이 책에서 다루는 내용
■ 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의 이해, 서비스 시작, CGI 사용법 및 가상 호스트와 HTTPS, 리버스 프록시 사용 방법과 Nginx 보안에 대해 구체적인 실습 예제와 더불어 자세히 설명한다.
8장, *Postfix 메일 서버*에서는 리눅스에서 가장 중요한 서버 중 하나인 Postfix 메일 서버의관리 방법을 설명한다. 이메일의 개념, Postfix 서버 및 Dovecot 서버 설정과 TLS를 사용한 인증 방법, Postfix 보안, 웹 메일과 DKIM의 사용 방법을 구체적인 실습 예제와 더불어 자세히 설명한다.
9장, *MariaDB 서버*에서는 CentOS 7뿐 아니라 여러 리눅스 배포판에서 MySQL을 대체해 기본 데이터베이스 서버로 채택돼 사용되고 있는 MariaDB 서버를 설명한다. 데이터베이스의 개념, MariaDB 서버 시작, 데이터베이스와 테이블 관리, SQL을 이용한 데이터 다루기와 사용자 관리, 백업과 복구, 복제 설정, MariaDB GUI 툴을 사용하는 방법을 실습 예제와 더불어 자세히 설명한다.
10장, *VSFTP 서버*에서는 리눅스에서 VSFTPD 패키지를 이용해 FTP 서버를 관리하는 방법을 설명한다. FTP 서버 파일 다운로드 및 업로드 설정 방법, 사용자 관리, SSH를 이용한 SFTP와 SSL/TLS를 이용한 안전한 FTPS 서버 구축 방법을 구체적인 실습 예제와 더불어 자세히 설명한다.
11장, *Samba 서버*에서는 리눅스에서 리눅스 및 윈도우 클라이언트에게 파일 공유 서비스를 제공하는 Samba 서버를 설명한다. Samba Stand-alone 서버 설정, 액티브 디렉토리(Active Directory) PDC 및 멤버 서버 설정, 리눅스와 윈도우에서의 클라이언트 프로그램 사용 등을 구체적인 실습 예제와 더불어 자세히 설명한다.
12장, *NFS 서버*에서는 리눅스 및 유닉스 시스템에서 파일 공유 서비스를 제공하는 NFS 서버를 설명한다. NFS 서버 설정 및 NFS 클라이언트 사용 방법, NFS 서버 보안에 대해 구체적인 실습 예제와 더불어 자세히 설명한다.
13장, *OpenSSH 서버*에서는 리눅스에서 암호화 기능을 지원해 안전한 서버 접속을 가능케 하는 OpenSSH 서버를 설명한다. SSH 서버의 이해, SSH 서버 시작과 인증 방법, SSH 서버의 고급 기능 사용, SSH 클라이언트 프로그램의 사용, SSH 서버 보안에 대한 내용을 실습 예제와 더불어 자세히 설명한다.
14장, *VNC 서버*에서는 리눅스에서 데스크톱 환경을 원격지의 클라이언트에 제공하는 VNC 서버를 설명한다. VNC 서버의 개념 및 서버 시스템 시작, 리눅스와 윈도우에서 VNC 클라이언트 프로그램을 사용하는 방법, SSH 터널링 기법을 사용한 접속 방법을 구체적인 실습 예제와 더불어 자세히 설명한다.
15장, *OpenLDAP 서버*에서는 리눅스의 중앙 서버에 저장된 정보에 클라이언트가 TCP/IP 기반의 네트워크를 통해 접근할 수 있게 허용하는 디렉토리 서비스를 제공하는 OpenLDAP 서버를 설명한다. OpenLDAP 서버의 개념 및 서버 시작, LDAPS 구현 및 LDAP 서버 복제, OpenLDAP 클라이언트 프로그램의 사용, GUI 프로그램을 사용한 LDAP 서버 관리에 대해 구체적인 실습 예제와 더불어 자세히 설명한다.
16장, *Squid 서버*에서는 웹 서버와 클라이언트 사이에 위치해 웹 서버의 정보를 캐시에 저장해 클라이언트에게 제공하는 Squid 프록시 서버를 설명한다. Squid 프록시 서버의 종류 및 Squid 서버 시작, 인증 사용, 리눅스와 윈도우에서 Squid 서버를 이용하는 방법을 구체적인 실습 예제와 더불어 자세히 설명한다.
17장, *Apache Tomcat 서버*에서는 웹에서 자바 프로그램을 사용할 수 있게 지원하는 Apache Tomcat 서버를 설명한다. Tomcat 서버의 개념 및 서버 시작, 자바 애플리케이션 사용과 가상 호스트 사용 방법, Apache 서버와의 연동 방법, SSL 사용 방법을 구체적인 실습 예제와 더불어 자세히 설명한다.
18장, *DHCP 서버*에서는 리눅스 서버에서 클라이언트에게 자동으로 IP 주소를 비롯한 네트워크 정보를 할당하는 DHCP 서버를 구축하는 방법을 설명한다. DHCP의 개념, DHCPv4와 DHCPv6 서버 설정, DHCP 릴레이 에이전트의 사용, 클라이언트 테스트 등을 구체적인 실습 예제와 더불어 자세히 설명한다.
19장, *NTP 서버*에서는 리눅스 서버에서 정확한 시간과 날짜 서비스를 클라이언트에게 제공하는 NTP 서버를 설명한다. NTP 서버의 개념 및 서버 설정, 리눅스와 윈도우에서 NTP 클라이언트 설정 방법, Autokey를 이용한 인증 등을 구체적인 실습 예제와 더불어 자세히 설명한다.
20장, *iSCSI 서버*에서는 리눅스 서버에서 TCP/IP를 이용해 스토리지 공간을 원격지의 클라이언트에게 제공하는 iSCSI 서버를 설명한다. iSCSI 기본 개념 및 서버 설정, 리눅스와 윈도우에서 클라이언트 프로그램을 이용해 iSCSI 서비스를 사용하는 방법을 구체적인 실습 예제와 더불어 자세히 설명한다.
21장, *Kerberos 서버*에서는 리눅스에서 안전한 인증 서비스를 클라이언트에 제공하는Kerberos 서버를 설명한다. Kerberos 작동 원리 및 Kerberos 서버 설정, 클라이언트에서 Kerberos의 인증을 이용해 서비스를 사용하는 방법 등을 구체적인 실습 예제와 더불어 자세히 설명한다.
22장, *Nagios 서버*에서는 리눅스 서버에서 다양한 기능을 제공하는 모니터링 서버인 Nagios 서버를 설명한다. Nagios 서버 설정, 리눅스와 윈도우 서버 시스템을 Nagios 서버로 모니터링하는 방법, GUI 프로그램을 사용해 Nagios 서버를 관리하는 방법 등을 구체적인 실습 예제와 더불어 자세히 설명한다.
23장, *Log 서버*에서는 리눅스 시스템에서 발생하는 다양한 종류의 로그 파일, 로그 서버 관리 방법을 설명한다. 로그의 종류 및 로그를 관리하기 위한 Rsyslog 서버, GUI 로그 관리 프로그램인 ELK 스택의 사용 방법을 구체적인 실습 예제와 더불어 자세히 설명한다.
24장, *Bacula 서버*에서는 리눅스 서버에서 네트워크를 통해 백업 서비스를 제공하는 Bacula 서버를 설명한다. Bacula 서버의 개념 및 구성 요소 설명, 서버 설정, 리눅스와 윈도우 서버를 Bacula 클라이언트로 추가하는 방법, 데이터를 백업 및 복구하는 방법, Bacula 서버 관리를 위한 GUI 프로그램의 사용 방법 등을 구체적인 실습 예제와 더불어 자세히 설명한다.
펼쳐보기
정철
성균관대학교에서 정보보호 전공으로 석사 과정을 졸업했고, 다양한 IT 기업과 대학교에서 소프트웨어 개발, 네트워크 관리, 리눅스 기반 서버 관리와 웹사이트 개발 등의 실무 경력을 쌓았다. 또한 쌍용 교육센터, 삼성 멀티캠퍼스, 레드햇 교육센터, 썬교육 센터, HP 교육센터 등에서 리눅스, 시스코 네트워킹 코스, 보안 및 해킹 등의 교육을 담당했고, RHCE, CCIE R&S, CISSP 등의 국제 자격증을 취득했다. 2008년 캄보디아 이주 후 NPIC, UP, ITC, RUPP 대학교에서 리눅스, 시스코 네트워킹 코스, 네트워크 보안 교육을 담당했으며, 현재 왕립 프놈펜 대학교(Royal University of Phnom Penh)에서 대학원생을 대상으로 네트워크 보안 강의를 맡고 있다. 다양한 비디오 강의를 개발해 유튜브로 100개 이상의 콘텐츠를 영문으로 제공하고 있으며, 세계의 IT 인재들과의 소통을 즐긴다. 현재 리눅스 서버, 클라우딩, DevOps, 보안 관련 코스를 개발했거나 개발하고 있으며, 관련 서적 집필을 추진 중이다.
펼쳐보기