스크랩

구간

리눅스 서버 관리 바이블 CentOS 기반 필수 서버 프로그램 완벽 정리

시리즈 : 에이콘 오픈소스 프로그래밍 시리즈 [56]

정철 저 | 에이콘출판 | 2016년 08월

미리보기 북트리

정가
$100.00
판매가
$72.90 (27%↓) 최저가 보상
적립금
$1.46 (2%P)
출고예상일
2026년 10월 08일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9788960778924 / 1116쪽 187 x 250 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

  • 31,500
  • 26,100
  • 22,500
  • 23,400

책 소개

출판사 리뷰

출판사 서평 ★ 이 책에서 다루는 내용 ★ ■ CentOS 기반 네트워크 서버 ■ Firewalld 방화벽 등 서버 관리에 필수적인 시스템 및 서버 관리 기술 ■ 인터넷 서비스를 제공하는 핵심적인 서버 프로그램 ■ 유용?한 애플리케이션 서버 프로그램 ■ 보안, 모니터링, 백업, 로그 서버 관리 ■ 각 서버의 명령어와 설정 파일 및 동작 원리 ★ 이 책의 대상 독자 ★ 이 책은 다음과 같은 독자들에게 도움이 되리라 확신한다. ■ 리눅스 설치와 명령어는 알지만 서버 구축의 순서와 방법은 알지 못하는 리눅스 입문자 ■ 다... ★ 이 책에서 다루는 내용 ★ ■ CentOS 기반 네트워크 서버 ■ Firewalld 방화벽 등 서버 관리에 필수적인 시스템 및 서버 관리 기술 ■ 인터넷 서비스를 제공하는 핵심적인 서버 프로그램 ■ 유용한 애플리케이션 서버 프로그램 ■ 보안, 모니터링, 백업, 로그 서버 관리 ■ 각 서버의 명령어와 설정 파일 및 동작 원리 ★ 이 책의 대상 독자 ★ 이 책은 다음과 같은 독자들에게 도움이 되리라 확신한다. ■ 리눅스 설치와 명령어는 알지만 서버 구축의 순서와 방법은 알지 못하는 리눅스 입문자 ■ 다양한 종류의 리눅스 서버 프로그램을 이해하고 충분한 실습을 통해 더 높은 고급 수준 으로 도약하고 싶어 하는 리눅스 중급 사용자 ■ 명령어와 설정 파일에 대한 간단한 소개만 제공하는 입문자 위주의 설명에 실망한 중고급 리눅스 사용자 ■ 새로움이 없는 콘텐츠 구성에 실망한 중고급 사용자, 새로운 기술과 지식 습득에 열정과 흥미를 가진 사용자 ■ 기존에 알고 있던 리눅스 서버 프로그램에 대해 더 깊고 넓은 지식을 갈구하는 중고급 리눅스 사용자 ■ 1,000페이지 이상의 기술 서적도 체계적이고 자세한 정리로 지루함 없이 쉽게 읽고 싶은 리눅스 사용자 ■ 리눅스 서버 구축에 대해 두려움을 갖고 있거나 먼 훗날의 계획으로 미뤄뒀던 윈도우 사용자 ■ 서점에서 구입할 만한 리눅스 책이 별로 없다고 포기하거나 발걸음을 돌렸던 사용자 ■ 책을 구입해서 읽은 후에 책값이 아깝다고 후회했던 사용자, 서평에 본인이 구입한 책을 사지 말라고 리뷰를 남긴 사용자 ■ 책 구입 이후 사후 서비스에 만족하지 못한 독자 ■ 주위 친구 또는 지인에게 추천할 만한 리눅스 책이 없다고 생각하는 독자 ■ 명령어 하나까지도 놓치지 않는 자세한 설명을 기대하는 독자 ■ 리눅스 서적의 수준이 아직 외국 서적에 비해 많이 뒤떨어진다고 생각하는 독자 ■ 충분한 이해와 설명 없이 단지 따라 하기식 학습 방법에 대해 염증을 느낀 독자 ★ 이 책의 구성 ★ 이 책은 총 4개의 부와 24개의 장으로 구성돼 있다. 각 부에서 다루는 내용은 다음과 같다. 1부, ‘리눅스 서버 필수 시스템 관리 기술’에서는 리눅스 서버를 관리하기 위한 필수 시스템 관리 기술을 소개한다. 1부에서 소개하는 내용은 모두 서버 관리에 반드시 필요하며, 특히 3장의 Systemd를 이용한 서비스 관리와 4장의 Firewalld 방화벽 관리는 CentOS 7에 새롭게 소개된 서비스이므로 반드시 알아둬야 한다. 또한 1장의 사용자 관리와 2장의 패키지 관리를 통해 서버 프로그램을 쉽고 효율적으로 관리하기 위한 시스템 기술을 습득할 수 있다. 2부, ‘리눅스 핵심 네트워크 서버’에서는 리눅스 서버 프로그램 중에서 가장 중요한 서버 프로그램들을 정리했다. 현재 인터넷 서비스를 제공하는 가장 중요하면서도 핵심적인 서버 프로그램들을 망라했다. 5장의 Bind를 이용한 DNS 서버 관리 방법, 6장의 Apache 서버를 이용한 웹 서버 관리 방법, 7장의 Nginx를 이용한 웹 서버 관리 방법, 8장의 Postfix를 이용한 메일 서버 관리 방법, 9장의 MariaDB를 이용한 데이터베이스 서버 관리 방법, 10장의 VSFTP를 이용한 FTP 서버 관리 방법에 대해 각 서버의 원리와 실습 내용을 자세한 설명과 함께 소개한다. 각 장은 이러한 서버에 대한 기본 사용법과 고급 기술의 사용법은 물론 보안까지 총망라해 실습과 더불어 자세하게 설명한다. 3부, ‘리눅스 애플리케이션 네트워크 서버’에서는 2부에서 다룬 핵심 서버들 못지않게 자주 사용되는 애플리케이션 서버 프로그램들을 모두 정리했다. 11장의 Samba 서버와 12장의 NFS 서버를 이용해 파일 공유 서비스를 제공하는 방법, 13장의 SSH 서버와 14장의 VNC 서버를 이용해 커맨드라인과 GUI를 통한 원격 서버를 관리하는 방법, 15장의 OpenLDAP 서버를 이용해 디렉토리 서비스를 사용하는 방법, 16장의 Squid를 이용해 프록시 서버를 관리하는 방법, 17장의 Apache Tomcat 서버를 이용해 자바 애플리케이션 서버를 사용하는 방법, 18장의 DHCP 서버를 사용하는 방법, 19장의 NTP를 이용해 시간 서버를 관리하는 방법, 20장의 iSCSI 서버를 이용해 SAN 서비스를 제공하는 방법을 구체적인 실습 예제와 더불어 자세하게 설명한다. 4부, ‘리눅스 보안, 모니터링, 로그, 백업 서버’에서는 일반적인 서버 프로그램에 특별한 서비스를 제공하는 서버 프로그램들을 정리했다. 21장의 Kerberos 서버를 이용해 각 서버에 보안 인증 서비스를 제공하는 방법, 22장의 Nagios 서버를 이용해 각 서버를 모니터링하는 방법, 23장의 Log 서버를 이용해 각 서버가 생성한 로그를 관리하는 방법, 24장의 Bacula 서버를 이용해 각 서버의 데이터를 백업하고 복구하는 방법을 구체적인 실습 예제와 더불어 자세히 설명한다. 각 장에서 다루는 내용들을 구체적으로 살펴보면 다음과 같다. 1장, ‘사용자 관리’에서는 리눅스의 서버 관리를 위해 필요한 사용자와 그룹을 관리하는 방법을 설명한다. 사용자와 그룹 관리에 필요한 파일과 디렉토리, 명령어를 이용한 사용자와 그룹 관리, 패스워드 관리와 에이징 사용, GUI 프로그램을 사용한 사용자 관리에 대해 구체적인 실습 예제와 더불어 자세히 설명한다. 2장, ‘패키지 관리’에서는 리눅스에서 서버 프로그램을 관리하기 위한 필수 기술인 패키지 관리 방법을 설명한다. 바이너리 프로그램을 관리하는 RPM, YUM과 DNF 사용법, 소스코드를 이용해 컴파일과 설치, GUI 프로그램을 이용한 패키지 관리 등을 실습 예제와 더불어 자세히 설명한다. 3장, ‘서비스 관리’에서는 이전 버전에서 시스템과 서비스 관리를 위해 사용하던 Init을 대신해 CentOS 7부터 새롭게 소개된 Systemd를 다루는 방법을 설명한다. Systemd의 구성 요소와 부팅 과정, Systemd Unit과 Target을 사용하는 방법, Unit 파일을 생성하는 방법과 Journalctl을 사용하는 방법을 구체적인 실습 예제와 더불어 자세히 설명한다. 4장, ‘Firewalld 방화벽’에서는 기존 Iptables 방화벽을 대신해 CentOS 7에 새롭게 소개된 Firewalld 방화벽에 대해 설명한다. Firewalld 방화벽의 개념과 서비스 시작, Firewalld Zone 소개와 Firewalld 방화벽을 사용하는 방법을 구체적인 실습 예제와 더불어 자세히 설명한다. 5장, ‘Bind DNS 서버’에서는 리눅스 서버에서 Bind를 이용해 DNS 서비스를 제공하는 방법을 설명한다. DNS의 원리와 구조, Bind 패키지를 이용한 DNS 서버 구현 방법, DNS 서버의 고급 기능 사용 방법과 DNS 서버 보안, DNSSEC의 구축, GUI 프로그램 Webmin의 사용 방법 등을 구체적인 실습 예제와 더불어 자세히 설명한다. 6장, ‘Apache 서버’에서는 리눅스 서버에서 가장 인기 있는 웹 서버인 Apache 서버의 관리 방법을 설명한다. Apache 서버 설치와 서비스 시작, CGI 사용 방법과 인증 방법, 가상 호스트의 사용법과 HTTPS 구현, Apache 보안과 GUI 사용자 분석 프로그램, CMS WordPress 설치 방법 등을 구체적인 실습 예제와 더불어 자세히 설명한다. 7장, ‘Nginx 서버’에서는 Apache 서버와 더불어 최근 가장 인기 있는 웹 서버 중 하나인 Nginx 서버의 관리 방법을 설명한다. Nginx의 이해, 서비

저자 소개

성균관대학교에서 정보보호 전공으로 석사 과정을 졸업했고, 다양한 IT 기업과 대학교에서 소프트웨어 개발, 네트워크 관리, 리눅스 기반 서버 관리와 웹사이트 개발 등의 실무 경력을 쌓았다. 또한 쌍용 교육센터, 삼성 멀티캠퍼스, 레드햇 교육센터, 썬교육 센터, HP 교육센터 등에서 리눅스, 시스코 네트워킹 코스, 보안 및 해킹 등의 교육을 담당했고, RHCE, CCIE R&S, CISSP 등의 국제 자격증을 취득했다. 2008년 캄보디아 이주 후 NPIC, UP, ITC, RUPP 대학교에서 리눅스, 시스코 네트워킹 코스, 네트워크 보안 교육을 담당했으며, 현재 왕립 프놈펜 대학교(Royal University of Phnom Penh)에서 대학원생을 대상으로 네트워크 보안 강의를 맡고 있다. 다양한 비디오 강의를 개발해 유튜브로 100개 이상의 콘텐츠를 영문으로 제공하고 있으며, 세계의 IT 인재들과의 소통을 즐긴다. 현재 리눅스 서버, 클라우딩, DevOps, 보안 관련 코스를 개발했거나 개발하고 있으며, 관련 서적 집필을 추진 중이다.

머리말

★ 지은이의 말 ★

“우리나라에도 이런 책이 있었으면 좋겠다.”
언젠가 한 웹사이트에서 어떤 독자의 서평을 읽던 중 뇌리에 인상 깊게 남았던 글입니다. 그 독자는 일본의 한 저자가 집필한 리눅스 번역서를 읽고 남긴 리뷰에서 그를 칭찬하며, 한편으로는 이런 훌륭한 도서가 국내에는 부족한 현실에 대해 아쉬움을 표현했습니다. 저는 그 독자의 글을 집필 내내 기억하며 이 책을 읽는 독자들에게도 기억에 남을 만한 훌륭한 서적을 집필해야겠다는 각오를 다지게 되었습니다. 부디 이 책을 읽는 독자들에게 유익한 도움이 되길 간절히 소망합니다.
이 책을 집필하기로 한 동기는 크게 두 가지입니다.
첫 번째는 개인적으로 약 18년 정도 IT 관련 업무 및 강의를 통해 배우고 가르쳤던 내용을 전체적으로 정리하기 위한 목적입니다. 세월이 흘러가면서 과거에 배웠던 많은 내용들이 빠르게 업데이트되어, 그때마다 새로운 내용을 학습하기 위해 많은 시간과 노력을 들여야 했습니다. 그런데 이러한 지식들이 무엇인가 정리되지 않고 단지 흩어진 구름처럼 여기저기 떠다니고 있는 것 같은 느낌이 들어, 더 나이가 들기 전에 제가 가진 지식들을 체계적으로 정리해 기록으로 남기는 것이 좋겠다는 개인적인 소견에서 출발했습니다. 이 서적이 그 출발점이며, 다른 주제들(예를 들어 보안과 해킹, 클러스터링, 클라우딩, DevOps, 네트워킹 등)과 관련된 다양한 서적들도 향후 정리해서 세상에 소개할 예정입니다.
두 번째는 해외의 여러 웹사이트에서 소개하고 있는 양질의 리눅스 관련 블로그를 국내 독자들에게도 소개하고 싶은 마음이 동기가 되었습니다. 이 책의 내용 중 상당 부분은 개인적으로 검색 중에 발견한 해외 웹사이트에서 훌륭한 블로그들을 선택해 직접 테스트하고, 매뉴얼을 찾아서 연구하며, Q&A 사이트를 참조하여 습득한 내용을 제 경험과 더불어 자체적으로 종합 정리한 결과물입니다. 특히 CentOS 7 버전 이후 서버 프로그램들에 여러 변화가 있었는데, 이러한 새로운 기술들도 소개할 수 있는 좋은 기회라고 판단돼 집필을 시작하였습니다. 각 장에서 본문 다음에 책 집필에 도움이 되었던 유용한 웹사이트를 정리해 놓았으니, 독자분들도 자주 참고하면 큰 도움이 되리라 확신합니다.
집필하면서 가장 중점을 두었던 부분은 균형입니다. 책이 너무 이론적으로 치우쳐도 곤란하고 너무 실무 중심으로 치우쳐 설명이나 이해가 부족해도 안 되기 때문에 균형 감각을 유지하는 것이 큰 목표 중 한 가지였습니다. 특히 의미 없이 매뉴얼의 내용이나 명령어를 단지 나열하거나 설명이나 이해 없이 단지 따라 하기 방식의 예제만 제공하는 것에 염증을 느낀 경험이 많았기 때문에 이 부분을 특히 지양하려고 많이 노력했습니다. 그래서 설정 파일에서 한 문장씩 또는 사용된 명령어 하나하나에 번호를 부여해 자세하게 설명하려고 노력했고, 필요한 경우 표나 그림도 적극적으로 사용했습니다. 또한 명령어 사용에 대한 결과를 함께 추가해 독자분들이 직접 자신이 도출한 결과와 비교, 분석할 수 있게 배려했습니다.
“돈에 맞춰 일하면 직업이고, 돈을 넘어 일하면 소명이다. 직업으로 일하면 월급을 받고 소명으로 일하면 선물을 받는다.” 저는 백범 김구 선생님의 이 말씀이 참 좋습니다. 분량이 너무 많아 마치 터널처럼 끝이 보이지 않을 것 같던 지난 1년간, 그래서 도중에 지쳐서 포기하고 싶을 때 한 가지 떠오른 생각은 ‘이것을 소명으로 생각하고 진행하자.’였습니다. 많은 선배로부터 이러한 지식을 배웠으니 후배들에게 전달할 책임이 있다는 조그마한 소명 의식이 결국 최종 결과물에까지 이르게 한 큰 원동력이 되었습니다. 지난 시간이 때로는 힘들었지만, 한편으로는 이 1년이라는 시간이 제 인생에서 가장 많은 지식을 섭취한 기간으로서 풍성한 지식의 향연이 펼쳐진 축복과 감사의 시간이 되기도 했습니다.
- 정철
2016년 7월 프놈펜에서

 

목차

목차
1부. 리눅스 서버 필수 시스템 관리 기술
1장. 사용자 관리
__1.1. 사용자와 그룹 관리에 필요한 파일과 디렉토리
____1.1.1. 사용자와 그룹 관리에 필요한 기본 파일
____1.1.2. 사용자 생성 환경에 필요한 파일과 디렉토리
__1.2. 명령어를 이용한 사용자 관리
____1.2.1. 사용자 생성(useradd/adduser)
____1.2.2. 사용자 정보 수정(usermod)
____1.2.3. 사용자 제거(userdel)
____1.2.4. 파일과 디렉토리 소유권자 변경(chown)
____1.2.5. 모든 사용자 접근 불허
____1.2.6. 사용자 정보 모니터링
__1.3. 리눅스 패스워드 관리
____1.3.1. 두 파일의 구조 분석
____1.3.2. 파일 /etc/shadow에서 패스워드 없이 로그인
____1.3.3. SHA-512를 이용한 패스워드 생성 시 SALT 사용 테스트
____1.3.4. 명령어 pwconv와 pwunconv 사용
__1.4. 리눅스 패스워드 에이징 사용
____1.4.1. 사용자 정보 확인
____1.4.2. 최소(m), 최대(M), 경고 날짜(W) 변경
____1.4.3. 계정 만료 기간 설정
__1.5. 그룹 관리
____1.5.1. 리눅스 그룹의 몇 가지 특징
____1.5.2. 리눅스 그룹의 종류
____1.5.3. 그룹 관리에 사용되는 파일
____1.5.4. 명령어를 사용한 리눅스 그룹 관리
____1.5.5. 명령어 gpasswd를 이용한 그룹 관리
____1.5.6. 명령어 newgrp을 사용한 그룹 변경
____1.5.7. 명령어 grpconv와 grpunconv 이용
____1.5.8. 파일 무결성 검사
__1.6. Sudoers 파일을 이용한 root 권한 부여
____1.6.1. visudo를 이용한 /etc/sudoers 파일 편집
____1.6.2. 명령어 sudo를 이용한 일반 사용자의 root 권한 이용
__1.7. 사용자 관리를 위한 GUI 프로그램 사용
____1.7.1. 사용자 관리 GUI 프로그램의 설치와 실행
____1.7.2. GUI 프로그램 사용
__1.8. 참고문헌
__1.9. 요약
__1.10. 연습문제
__1.11. 연구과제
2장. 패키지 관리
__2.1. 패키지 관리 프로그램 RPM 사용
____2.1.1. RPM 패키지의 구성 방식
____2.1.2. RPM 패키지를 만드는 과정
____2.1.3. RPM 데이터베이스의 구조
____2.1.4. 명령어 rpm을 이용한 패키지 관리
____2.1.5. SRPM 다루기
__2.2. 패키지 관리 프로그램 YUM 사용
____2.2.1. YUM의 작동 원리 이해
____2.2.2. 명령어 yum 이해
____2.2.3. YUM 저장소 생성
____2.2.4. YUM 플러그인 다루기
__2.3. 패키지 관리 프로그램 DNF 사용
____2.3.1. DNF 패키지 설치
____2.3.2. 명령어 dnf 사용
__2.4. GUI 프로그램을 이용한 패키지 관리
____2.4.1. YUMEX 패키지의 설치와 실행
____2.4.2. YUMEX 사용
__2.5. 소스코드 관리
__2.6. 참고문헌
__2.7. 요약
__2.8. 연습문제
__2.9. 연구과제
3장. 서비스 관리
__3.1. Systemd 구성 요소 이해
____3.1.1. Systemd의 구성 요소
____3.1.2. Systemd 부팅 과정
__3.2. Systemd 명령어와 Unit 이해
____3.2.1. 명령어 비교
____3.2.2. Systemd Unit 이해
__3.3. Systemd를 이용한 서비스 관리
____3.3.1. 서비스 시작과 중지 관련 명령어
____3.3.2. 서비스 활성화 관련 명령어
____3.3.3. 서비스 상태 확인 명령어
__3.4. Systemd Unit 파일 다루기
____3.4.1. Systemd Unit 파일 이해
____3.4.2. Systemd Unit 파일 생성
__3.5. Systemd Target 사용
____3.5.1. Systemd Target 정보 확인
____3.5.2. Target 정보 변경
__3.6. Systemd Journalctl 사용
____3.6.1. Journalctl 기본 사용 방법
____3.6.2. 메시지 필터링 사용
__3.7. 참고문헌
__3.8. 요약
__3.9. 연습문제
__3.10. 연구과제
4장. Firewalld 방화벽
__4.1. Firewalld 서비스 이해
____4.1.1. 방화벽의 개념과 종류
____4.1.2. Netfilter의 작동 원리와 구성 요소
____4.1.3. Firewalld 이해
__4.2. Firewalld 서비스 시작과 사용
____4.2.1. Firewalld 서비스 시작
____4.2.2. Firewalld 기본 사용
__4.3. Firewalld Zone 사용
____4.3.1. Zone의 종류
____4.3.2. Zone 사용
__4.4. Firewalld를 이용한 서비스 사용
____4.4.1. 서비스와 포트 관리
____4.4.2. 머스커레이딩과 포트 포워딩
____4.4.3. 패닉 모드
____4.4.4. 다이렉트 인터페이스
____4.4.5. ICMP 사용
____4.4.6. 오프라인 설정과 백업
____4.4.7. Firewalld Rich Rule 생성
__4.5. 참고문헌
__4.6. 요약
__4.7. 연습문제
__4.8. 연구과제
2부. 리눅스 핵심 네트워크 서버
5장. Bind DNS 서버
__5.1. DNS 서비스 원리와 구조 이해
____5.1.1. DNS의 정의
____5.1.2. DNS의 구조
____5.1.3. DNS 작동 원리
____5.1.4. 리졸버와 Lookup
__5.2. DND 서버 구축
____5.2.1. BIND 설치와 DNS 서버 시작
____5.2.2. 도메인 설정(chul.com)
____5.2.3. 도메인 추가
____5.2.4. 라운드로빈 부하 분산
____5.2.5. 마스터와 슬레이브 네임 서버 구축
__5.3. DNS 서버의 고급 기능
____5.3.1. ACL
____5.3.2. Caching Only와 Forwarding 네임 서버
____5.3.3. BIND VIEW 사용
____5.3.4. DDNS
__5.4. DNS 클라이언트 프로그램 사용
____5.4.1. NSLOOKUP
____5.4.2. HOST
____5.4.3. DIG
__5.5. DNS 서버 보안
____5.5.1. TSIG를 이용한 파일 전송(Zone Transfer)
____5.5.2. RNDC
____5.5.3. Bind의 버전 정보 관리
__5.6. DNSSEC 구축
____5.6.1. DNSSEC의 개념 이해
____5.6.2. DNSSEC 구축
__5.7. DNS 서버 GUI 프로그램 Webmin 사용
____5.7.1. Webmin 설치와 서비스 시작
____5.7.2. Webmin 접속
__5.8. 참고문헌
__5.9. 요약
__5.10. 연습문제
__5.11. 연구과제
6장. Apache 서버
__6.1. Apache 웹 서버 설치와 서비스 시작
____6.1.1. Apache 서버 설치와 기본 설정
____6.1.2. Apache 서버 서비스 시작과 PHP 사용
____6.1.3. 방화벽 설정
__6.2. Apache CGI와 UserDir 사용
____6.2.1. Perl 사용
____6.2.2. 파이썬 사용
____6.2.3. 루비 사용
____6.2.4. USERDIR에서 CGI 사용
__6.3. Apache 인증 사용
____6.3.1. Basic 인증
____6.3.2. Digest 인증
__6.4. 가상 호스트 설정
____6.4.1. 이름 기반 가상 호스트
____6.4.2. IP 기반 가상 호스트
__6.5. HTTPS(HTTP + SSL/

top