리눅스 서버 관리 바이블 [CentOS 기반 필수 서버 프로그램 완벽 정리]
- 지은이정철
- ISBN : 9788960778924
- 50,000원
- 2016년 08월 26일 펴냄 (절판)
- 페이퍼백 | 1,116쪽 | 188*250mm
- 시리즈 : 오픈소스 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
요약
CentOS에 소개된 새로운 기술과 실무에 유용한 20가지 이상의 주요 네트워크 서버 프로그램을 충분한 실습 예제와 자세한 설명을 통해 집중적으로 소개한다. 충분한 개념 설명을 통해 독자들의 이해를 돕고, 명령어 및 설정 실습으로 실무 기능을 익히도록 하는 것이 이 책의 목표다. 리눅스 입문자부터 중∙고급 실력자까지 모두 만족할 만한 새롭고 알찬 내용과 자세한 설명으로 구성돼 있다.
이 책에서 다루는 내용
■ CentOS 기반 네트워크 서버
■ Firewalld 방화벽 등 서버 관리에 필수적인 시스템 및 서버 관리 기술
■ 인터넷 서비스를 제공하는 핵심적인 서버 프로그램
■ 유용한 애플리케이션 서버 프로그램
■ 보안, 모니터링, 백업, 로그 서버 관리
■ 각 서버의 명령어와 설정 파일 및 동작 원리
이 책의 대상 독자
이 책은 다음과 같은 독자들에게 도움이 되리라 확신한다.
■ 리눅스 설치와 명령어는 알지만 서버 구축의 순서와 방법은 알지 못하는 리눅스 입문자
■ 다양한 종류의 리눅스 서버 프로그램을 이해하고 충분한 실습을 통해 더 높은 고급 수준으로 도약하고 싶어 하는 리눅스 중급 사용자
■ 명령어와 설정 파일에 대한 간단한 소개만 제공하는 입문자 위주의 설명에 실망한 중고급 리눅스 사용자
■ 새로움이 없는 콘텐츠 구성에 실망한 중고급 사용자, 새로운 기술과 지식 습득에 열정과 흥미를 가진 사용자
■ 기존에 알고 있던 리눅스 서버 프로그램에 대해 더 깊고 넓은 지식을 갈구하는 중고급 리눅스 사용자
■ 1,000페이지 이상의 기술 서적도 체계적이고 자세한 정리로 지루함 없이 쉽게 읽고 싶은 리눅스 사용자
■ 리눅스 서버 구축에 대해 두려움을 갖고 있거나 먼 훗날의 계획으로 미뤄뒀던 윈도우 사용자
■ 서점에서 구입할 만한 리눅스 책이 별로 없다고 포기하거나 발걸음을 돌렸던 사용자
■ 책을 구입해서 읽은 후에 책값이 아깝다고 후회했던 사용자, 서평에 본인이 구입한 책을 사지 말라고 리뷰를 남긴 사용자
■ 책 구입 이후 사후 서비스에 만족하지 못한 독자
■ 주위 친구 또는 지인에게 추천할 만한 리눅스 책이 없다고 생각하는 독자
■ 명령어 하나까지도 놓치지 않는 자세한 설명을 기대하는 독자
■ 리눅스 서적의 수준이 아직 외국 서적에 비해 많이 뒤떨어진다고 생각하는 독자
■ 충분한 이해와 설명 없이 단지 따라 하기식 학습 방법에 대해 염증을 느낀 독자
이 책의 구성
각 부의 구성
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 프로그램의 사용 방법 등을 구체적인 실습 예제와 더불어 자세히 설명한다.
목차
목차
- 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. 연구과제
- 1.1. 사용자와 그룹 관리에 필요한 파일과 디렉토리
- 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. 연구과제
- 2.1. 패키지 관리 프로그램 RPM 사용
- 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. 연구과제
- 3.1. Systemd 구성 요소 이해
- 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. 연구과제
- 4.1. Firewalld 서비스 이해
- 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. 연구과제
- 5.1. DNS 서비스 원리와 구조 이해
- 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/TLS) 구현
- 6.5.1. HTTPS의 작동 원리
- 6.5.2. 인증서 생성
- 6.5.3. SSL 설정
- 6.5.4. SSL 테스트
- 6.5.5. 가상 호스트에서 HTTPS 사용
- 6.6. Apache 모듈 사용
- 6.6.1. mod_proxy 사용
- 6.6.2. mod_ratelimit 사용
- 6.6.3. mod_limitipconn 사용
- 6.7. Apache 보안 설정
- 6.7.1. Apache 버전 정보 감추기
- 6.7.2. DDoS 공격 방어와 성능 향상 설정
- 6.7.3. mod_evasive 사용
- 6.7.4. mod_security 사용
- 6.8. WordPress 설치
- 6.8.1. 데이터베이스 설정
- 6.8.2. WordPress 설치
- 6.9. Piwik - GUI 이용 웹사이트 분석
- 6.9.1. Piwik 설치
- 6.9.2. 브라우저에서 Piwik 설정
- 6.10. 참고문헌
- 6.11. 요약
- 6.12. 연습문제
- 6.13. 연구과제
- 6.1. Apache 웹 서버 설치와 서비스 시작
- 7장. Nginx 서버
- 7.1. Nginx 이해
- 7.1.1. Nginx 구조 이해
- 7.1.2. Nginx와 Apache 서버
- 7.2. Nginx 서비스 시작과 PHP 사용
- 7.2.1. Nginx 서버 설치와 서비스 시작
- 7.2.2. PHP 사용
- 7.3. Nginx CGI 사용
- 7.3.1. CGI Perl 사용
- 7.3.2. CGI Python 사용
- 7.3.3. 루비온레일즈 사용
- 7.3.4. Ghost 설치
- 7.4. Nginx UserDir 사용
- 7.4.1. Nginx 서버 설정
- 7.4.2. 테스트 페이지 작성과 테스트
- 7.5. Server Block(가상 호스트) 사용
- 7.5.1. Nginx 서버 설정
- 7.5.2. 테스트 페이지 작성과 테스트
- 7.6. Nginx 인증 사용
- 7.6.1. 서버에서의 설정
- 7.6.2. 인증 테스트
- 7.7. Nginx HTTPS 사용
- 7.7.1. SSL/TLS 설정
- 7.7.2. SSL/TLS 테스트
- 7.8. Apache 서버를 위한 리버스 프록시 사용
- 7.8.1. 리버스 프록시 개념과 목적
- 7.8.2. Nginx 리버스 프록시 설정하기
- 7.8.3. Apache 서버 설정
- 7.9. 부하 분산 사용
- 7.9.1. Nginx 서버에서의 설정
- 7.9.2. 부하 분산 테스트
- 7.10. Nginx 보안 설정
- 7.10.1. 버전 정보 숨기기
- 7.10.2. IP 주소 접근 제한
- 7.10.3. 접속자 수와 대역폭 제한
- 7.10.4. Fail2ban 사용
- 7.11. 참고문헌
- 7.12. 요약
- 7.13. 연습문제
- 7.14. 연구과제
- 7.1. Nginx 이해
- 8장. Postfix 메일 서버
- 8.1. 이메일 시스템 이해
- 8.1.1. 이메일 시스템의 구조
- 8.1.2. Postfix 메일 처리 과정 이해
- 8.2. Postfix 설치와 서버 시작
- 8.2.1. 선행 조건
- 8.2.2. Postfix 패키지 설치와 서비스 시작
- 8.2.3. Postfix 서버 기본 설정
- 8.3. IMAP과 POP3 서버 설정
- 8.3.1. Dovecot 서버 설정
- 8.3.2. IMAP과 POP3 테스트
- 8.4. Postfix Alias 사용
- 8.4.1. 로컬 Aliases
- 8.4.2. 가상 Aliases
- 8.5. 백업 메일 서버 설정
- 8.5.1. 백업 서버 설정
- 8.5.2. 백업 서버 테스트
- 8.6. SSL/TLS를 이용한 Postfix 인증 설정
- 8.6.1. SMTPS 개요
- 8.6.2. TLS를 이용한 SMTPS 구현
- 8.7. Roundcubemail 웹 메일 사용
- 8.7.1. Roundcubemail 소개와 전제 조건
- 8.7.2. Roundcubemail 설정
- 8.8. 메일 로그 프로그램 사용
- 8.8.1. pflogsumm
- 8.8.2. AWstats
- 8.9. Postfix 보안 설정: ClamAV와 Amavisd
- 8.9.1. Postfix와 필터링 프로그램 이해
- 8.9.2. Amavisd와 Spamassassin 시작
- 8.9.3. ClamAV 설정
- 8.9.4. Postfix 서버 설정
- 8.10. PostfixAdmin 사용
- 8.10.1. PostfixAdmin 설치와 데이터베이스 설정
- 8.10.2. PostfixAdmin 설정
- 8.10.3. PostfixAdmin 접속
- 8.11. DKIM(RFC 5585) 서비스 사용
- 8.11.1. DKIM 소개
- 8.11.2. DKIM 서비스 사용
- 8.11.3. Postfix 설정과 테스트
- 8.12. 참고문헌
- 8.13. 요약
- 8.14. 연습문제
- 8.15. 연구과제
- 8.1. 이메일 시스템 이해
- 9장. MariaDB 서버
- 9.1. 데이터베이스 기본 이해
- 9.1.1. 데이터베이스 구성 요소
- 9.1.2. 테이블 구성 요소
- 9.2. MariaDB 서비스 시작
- 9.2.1. MariaDB 설치와 서비스 시작
- 9.2.2. MariaDB 서버 접속
- 9.3. 데이터베이스와 테이블 관리
- 9.3.1. 데이터베이스 사용
- 9.3.2. 테이블 사용
- 9.4. SQL을 이용한 데이터 사용
- 9.4.1. INSERT 구문 사용
- 9.4.2. SELECT 사용
- 9.4.3. UPDATE 구문 사용
- 9.4.4. DELETE와 TRUNCATE 사용
- 9.5. MariaDB 사용자 관리
- 9.5.1. 사용자 생성과 삭제
- 9.5.2. 패스워드 관리
- 9.6. MariaDB 백업과 복구
- 9.6.1. 논리적 백업과 물리적 백업
- 9.6.2. 백업
- 9.6.3. 복구
- 9.7. MariaDB 데이터 복제
- 9.7.1. 마스터 서버 설정(master)
- 9.7.2. 슬레이브 호스트 설정
- 9.7.3. 복제 테스트
- 9.8. MariaDB 보안: SSL 적용
- 9.8.1. MariaDB 서버 설정(master)
- 9.8.2. MariaDB 클라이언트 설정과 테스트(node1)
- 9.9. MariaDB GUI 툴 사용
- 9.9.1. phpMyAdmin
- 9.9.2. Database Workbench
- 9.10. 참고문헌
- 9.11. 요약
- 9.12. 연습문제
- 9.13. 연구과제
- 9.1. 데이터베이스 기본 이해
- 10장. VSFTP 서버
- 10.1. FTP 서비스의 작동 원리와 VSFTP 소개
- 10.1.1. FTP 서비스 작동 원리
- 10.1.2. VSFTP 프로그램에 대한 간단한 소개
- 10.2. VSFTP 기본 설정
- 10.2.1. VSFTP 서비스 시작
- 10.2.2. Anonymous 사용자 파일 업로드와 다운로드 설정
- 10.2.3. FTP 사용자 계정을 위한 설정
- 10.3. VSFTP 고급 및 기타 기능 설정
- 10.3.1. 접근과 연결 제한
- 10.3.2. VSFTP 가상 사용자 사용
- 10.3.3. 기타 기능 설정
- 10.4. VSFTP 보안 기능 설정: SFTP와 FTPS
- 10.4.1. SFTP 사용
- 10.4.2. SSL/TLS 이용한 FTPS 사용
- 10.5. 참고문헌
- 10.6. 요약
- 10.7. 연습문제
- 10.8. 연구과제
- 10.1. FTP 서비스의 작동 원리와 VSFTP 소개
- 3부. 리눅스 애플리케이션 네트워크 서버
- 11장. Samba 서버
- 11.1. Samba 데몬 소개
- 11.2. Samba 서버 설치와 서비스 시작
- 11.2.1. Samba 서버 설치
- 11.2.2. Samba 서비스 시작
- 11.2.3. Samba 서비스 방화벽 설정
- 11.3. Samba Stand-alone 서버 설정
- 11.3.1. 임의의 사용자를 위한 공유 디렉토리 설정
- 11.3.2. 공유 디렉토리 인증 설정
- 11.3.3. 사용자 홈 디렉토리 접근 설정
- 11.4. Samba AD PDC 설정
- 11.4.1. Samba AD PDC 설정(master)
- 11.4.2. Samba PDC 사용자 관리
- 11.4.3. 윈도우 7 클라이언트를 PDC에 가입
- 11.5. Samba AD 멤버(Member) 서버 설정(node1)
- 11.5.1. DNS와 NTP
- 11.5.2. PAM과 NSS
- 11.5.3. Kerberos 설정
- 11.5.4. Samba 멤버 서버 설정
- 11.5.5. Samba 멤버 서버 테스트
- 11.5.6. 도메인 사용자에게 공유 디렉토리 제공
- 11.5.7. GUI를 이용한 멤버 서버 가입
- 11.6. 참고문헌
- 11.7. 요약
- 11.8. 연습문제
- 11.9. 연구과제
- 12장. NFS 서버
- 12.1. NFS 프로토콜 이해
- 12.1.1. NFS 시스템 구조
- 12.1.2. NFS 버전 이해
- 12.2. NFS 서버 설정
- 12.2.1. NFS 패키지 설치와 공유 디렉토리 지정
- 12.2.2. NFS 서버 시작
- 12.2.3. 방화벽 설정
- 12.3. NFS 클라이언트 사용
- 12.3.1. NFS 리눅스 클라이언트(node1)
- 12.3.2. NFS 윈도우 클라이언트
- 12.4. NFS 서버 보안
- 12.4.1. RPCSEC_GSS를 통한 NFS 보안
- 12.4.2. RPCSEC_GSS를 설정하는 방법
- 12.5. 참고문헌
- 12.6. 요약
- 12.7. 연습문제
- 12.8. 연구과제
- 12.1. NFS 프로토콜 이해
- 13장. SSH 서버
- 13.1. SSH(RFC 4251) 서비스 이해
- 13.1.1. SSH 프로토콜 이해
- 13.1.2. SSH 공개 키 인증 과정의 이해
- 13.2. SSH 서버 설치와 서비스 시작
- 13.2.1. OpenSSH 패키지 설치
- 13.2.2. OpenSSH 서버 시작
- 13.2.3. OpenSSH 서버를 위한 방화벽 설정
- 13.3. SSH 서버 인증 설정
- 13.3.1. 패스워드 기반 인증 설정
- 13.3.2. 공개 키 기반 인증 설정
- 13.4. SSH 서버 고급 기능 사용
- 13.4.1. 포트 포워딩
- 13.4.2. X11 포워딩
- 13.5. SSH 클라이언트 프로그램 사용
- 13.5.1. SSH
- 13.5.2. SCP
- 13.5.3. SFTP
- 13.6. SSH 서버 보안 설정
- 13.6.1. SSH 서버 기본 보안
- 13.6.2. 사용자 접근 제어
- 13.6.3. TCP 래퍼 사용
- 13.7. 참고문헌
- 13.8. 요약
- 13.9. 연습문제
- 13.10. 연구과제
- 13.1. SSH(RFC 4251) 서비스 이해
- 14장. VNC 서버
- 14.1. VNC 서비스 이해
- 14.2. VNC 서버 구축
- 14.2.1. VNC 서버 설치와 기본 설정
- 14.2.2. VNC 서버 시작
- 14.2.3. 방화벽 설정
- 14.3. 리눅스 클라이언트 사용
- 14.4. 윈도우 클라이언트 사용
- 14.5. 웹 클라이언트 NOVNC 사용
- 14.5.1. VNC 서버에서 설정(master)
- 14.5.2. 웹 클라이언트에서 테스트(windows)
- 14.6. SSH를 이용한 안전한 VNC 서버 사용
- 14.6.1. Master 서버 설정
- 14.6.2. 클라이언트 설정과 연결 테스트
- 14.7. 참고문헌
- 14.8. 요약
- 14.9. 연습문제
- 14.10. 연구과제
- 15장. OpenLDAP 서버
- 15.1. LDAP 프로토콜 소개
- 15.1.1. LDAP의 역사
- 15.1.2. LDAP 프로토콜 이해
- 15.2. OpenLDAP 서버 설치와 서비스 시작
- 15.2.1. OpenLDAP 패키지 설치
- 15.2.2. OpenLDAP 서비스 시작
- 15.2.3. OpenLDAP 서버를 위한 방화벽 설정
- 15.3. OpenLDAP 서버 설정
- 15.3.1. LDAP 패스워드와 스키마 설정
- 15.3.2. LDAP 데이터베이스에 도메인 설정
- 15.3.3. LDAP 사용자 생성
- 15.3.4. OpenLDAP 클라이언트 설정
- 15.4. Migrationtools 사용
- 15.4.1. LDAP 서버에서 설정(master)
- 15.4.2. LDAP 클라이언트에서 테스트(node1)
- 15.5. OpenLDAP 클라이언트 프로그램 사용
- 15.5.1. LDAPSEARCH
- 15.5.2. LDAPADD와 LDAPMODIFY
- 15.5.3. LDAPPASSWD
- 15.5.4. LDAPWHOAMI
- 15.5.5. LDAPDELETE
- 15.5.6. LDAPMODRDN
- 15.6. OpenLDAP 보안(LDAP+SSL) 사용
- 15.6.1. 서버 설정(master)
- 15.6.2. 클라이언트 설정(node1)
- 15.7. OpenLDAP 복제
- 15.7.1. 모든 LDAP 마스터 설정(master와 node2)
- 15.7.2. LDAP 클라이언트(node1) 설정과 테스트
- 15.8. phpLDAPadmin를 이용한 LDAP 서버 관리
- 15.8.1. phpLDAPadmin 패키지 설치와 설정
- 15.8.2. phpLDAPadmin 사용
- 15.9. 참고문헌
- 15.10. 요약
- 15.11. 연습문제
- 15.12. 연구과제
- 15.1. LDAP 프로토콜 소개
- 16장. Squid 서버
- 16.1. Squid 서버 서비스 이해
- 16.1.1. 프록시 서비스의 종류
- 16.2. Squid 서버 서비스 시작
- 16.2.1. Squid 프락시 서버 설치와 서비스 시작
- 16.2.2. Squid 서버 기본 설정 변경
- 16.2.3. Squid 서버 방화벽 설정
- 16.2.4. Squid 서버 사용을 위한 클라이언트 설정
- 16.3. Squid 프록시 서버 인증
- 16.3.1. Squid Basic 인증 설정
- 16.3.2. Basic 인증 클라이언트에서 테스트
- 16.4. Squid 서버 접근 제어(ACL) 사용
- 16.4.1. 도메인을 이용한 접근 제어
- 16.4.2. 특정 키워드를 사용한 접근 제어
- 16.4.3. MAC 주소를 사용한 접근 제어
- 16.4.4. 동시 접속 사이트 숫자 제한
- 16.4.5. 특정 포트 접속 제한
- 16.5. 리버스 프록시 서버 사용
- 16.5.1. 리버스 프록시 서버 설정
- 16.5.2. 리버스 프록시 서버 테스트
- 16.6. SquidGuard 사용
- 16.6.1. SquidGuard 설정
- 16.6.2. 클라이언트 테스트
- 16.7. 참고문헌
- 16.8. 요약
- 16.9. 연습문제
- 16.10. 연구과제
- 16.1. Squid 서버 서비스 이해
- 17장. Tomcat 서버
- 17.1. Tomcat 서버 이해
- 17.1.1. Tomcat 서버의 역할
- 17.1.2. Tomcat 서버의 구성 요소와 디렉토리
- 17.2. Tomcat 서버 시작
- 17.2.1. Tomcat 서버 설치와 서비스 시작
- 17.2.2. Tomcat 서버를 위한 방화벽 설정
- 17.3. Tomcat 서버 설정
- 17.3.1. Tomcat 서버 설정
- 17.3.2. 클라이언트에서 연결 테스트
- 17.3.3. JSP 파일
- 17.4. 가상 호스트 사용
- 17.4.1. 설정 파일 편집
- 17.4.2. 브라우저에서 확인
- 17.5. Apache 서버와 Tomcat 서버 연동
- 17.5.1. 연동 목적과 모듈 종류
- 17.5.2. modproxyajp 모듈 사용
- 17.5.3. mod_jk 모듈 사용
- 17.6. SSL/TLS 사용
- 17.6.1. SSL/TLS 설정
- 17.6.2. SSL 설정 테스트
- 17.7. 참고문헌
- 17.8. 요약
- 17.9. 연습문제
- 17.10. 연구과제
- 17.1. Tomcat 서버 이해
- 18장. DHCP 서버
- 18.1. DHCP 프로토콜 이해
- 18.1.1. DHCP의 작동 과정
- 18.1.2. DHCP 서버의 IP 할당 방식
- 18.1.3. DHCP 서비스의 구성 요소
- 18.2. DHCP 서버 서비스 시작
- 18.2.1. DHCP 서버 설정
- 18.2.2. 클라이언트 설정 테스트
- 18.3. DHCP 서버 기능 확장
- 18.4. DHCP 릴레이 에이전트 설정
- 18.4.1. DHCP 릴레이 에이전트(RFC 3046) 개념 이해
- 18.4.2. DHCP 릴레이 에이전트 설정
- 18.5. DHCPv6 서버 설정
- 18.5.1. DHCPv6 서버 설정(master)
- 18.5.2. DHCPv6 클라이언트 설정
- 18.6. 참고문헌
- 18.7. 요약
- 18.8. 연습문제
- 18.9. 연구과제
- 18.1. DHCP 프로토콜 이해
- 19장. NPT 서버
- 19.1. 시간과 날짜 설정
- 19.1.1. 명령어 date
- 19.1.2. 명령어 timedatectl
- 19.1.3. 명령어 hwclock
- 19.1.4. ntpdate 서비스
- 19.2. NTP 서버 시작
- 19.2.1. NTP 서버 설치와 서비스 시작
- 19.2.2. NTP 서비스를 위한 방화벽 설정
- 19.3. NTP 서버와 클라이언트 설정
- 19.3.1. NTP 서버 설정
- 19.3.2. NTP 클라이언트 설정(node1)
- 19.4. NTP Autokey 인증 사용
- 19.4.1. NTP 서버의 Autokey 설정
- 19.4.2. NTP 클라이언트 Auto 설정
- 19.5. 참고문헌
- 19.6. 요약
- 19.7. 연습문제
- 19.8. 연구과제
- 19.1. 시간과 날짜 설정
- 20장. iSCSI 서버
- 20.1. iSCSI 서비스 이해
- 20.1.1. iSCSI 정의
- 20.1.2. iSCSI 구성 요소
- 20.2. iSCSI 서버(Target) 서비스 시작
- 20.2.1. iSCSI 서버 패키지 설치
- 20.2.2. iSCSI 서버 시작
- 20.2.3. iSCSI 서버를 위한 방화벽 설정
- 20.3. LVM을 이용한 LUN 생성
- 20.3.1. LVM 이용한 스토리지 생성
- 20.3.2. ISCSI 서버 Target과 LUN 생성
- 20.4. 리눅스 클라이언트(Initiator) 설정
- 20.4.1. iSCSI Initiator 서비스 시작
- 20.4.2. iSCSI Target 서버로 로그인
- 20.4.3. iSCSI Target 서버 스토리지 이용
- 20.5. 윈도우 클라이언트(Initiator) 설정
- 20.6. 참고문헌
- 20.7. 요약
- 20.8. 연습문제
- 20.9. 연구과제
- 20.1. iSCSI 서비스 이해
- 4부. 리눅스 보안, 모니터링, 로그, 백업 서버
- 21장. Kerberos 서버
- 21.1. Kerberos 서비스 이해
- 21.1.1. Kerberos 구성 요소
- 21.1.2. Kerberos 작동 원리
- 21.1.3. Kerberos 용어 설명
- 21.2. Kerberos 서버 설정과 서비스 시작
- 21.2.1. Kerberos 서버 설치
- 21.2.2. 설정 파일 편집
- 21.2.3. Kerberos 서비스 시작
- 21.2.4. KDC 서버를 위한 Principal 생성
- 21.2.5. Kerberos 서비스를 위한 방화벽 설정
- 21.3. Kerberos 클라이언트 설정
- 21.4. Kerberos를 이용한 서비스 사용
- 21.4.1. SSH 서버 사용
- 21.5. 참고문헌
- 21.6. 요약
- 21.7. 연습문제
- 21.8. 연구과제
- 21.1. Kerberos 서비스 이해
- 22장. Nagios 서버
- 22.1. Nagios 서버 설치와 서비스 시작
- 22.1.1. Nagios 서버 설치
- 21.1.2. Nagios 서버 시작
- 22.2. 리눅스 서버 모니터링
- 22.2.1. 리눅스 호스트와 Ping 서비스 추가
- 22.2.2. NRPE 플러그인 사용
- 22.3. 윈도우 서버 2012 모니터링
- 22.3.1. 윈도우 서버 2012에 NSClint++ 설치
- 22.3.2. Nagios에서 설정
- 22.4. pnp4nagios 이용
- 22.4.1. pnp4nagios 사용
- 22.4.2. Nagios 파일 수정
- 22.5. 참고문헌
- 22.6. 요약
- 22.7. 연습문제
- 22.8. 연구과제
- 22.1. Nagios 서버 설치와 서비스 시작
- 23장. Log 서버
- 23.1. 로그 종류 이해
- 23.1.1. 시스템 로그
- 23.1.2. 애플리케이션 로그
- 23.1.3. 바이너리 로그
- 23.2. Rsyslog 로그 서버 사용
- 23.2.1. Log 서버 서비스 시작
- 23.2.2. Rsyslog 설정 파일 이해
- 23.2.3. Rsyslog 원격지 로그 서버 사용
- 23.2.4. Rsyslog 데이터베이스 사용
- 23.2.5. LogAnalyzer 사용
- 23.3. 로그 GUI 프로그램 ELK 스택 사용
- 23.3.1. ELK 스택 구성 요소
- 23.3.2. ELK 스택 설치
- 24.3.3. 클라이언트에 Filebeat 설치(node1)
- 24.3.4. Kibana 접속 테스트
- 23.4. 참고문헌
- 23.5. 요약
- 23.6. 연습문제
- 23.7. 연구과제
- 23.1. 로그 종류 이해
- 24장. Bacula 서버
- 24.1. Bacula 서비스 이해
- 24.1.1. Bacula 시스템 정의
- 24.1.2. Bacula 구성 요소
- 24.1.3. 용어 설명
- 24.2. Bacula 서버 서비스 시작
- 24.2.1. Bacula 서버 패키지 설치와 데이터베이스 생성
- 24.2.2. Bacula 서버 파일 설정
- 24.2.3. Bacula 서버 서비스 시작
- 24.2.4. Bacula 서버를 위한 방화벽 설정
- 24.3. Bacula 클라이언트 설정
- 24.3.1. 리눅스 클라이언트 설정(node1)
- 24.3.2. 윈도우 클라이언트 설정(winserver)
- 24.4. 백업과 복구 테스트
- 24.4.1. Bacula 백업 테스트
- 24.4.2. Bacula 복구 테스트
- 24.5. Bacula GUI 툴 사용
- 24.5.1. Bacula-Web 사용
- 24.5.2. Bacula Bat 사용
- 24.6. 참고문헌
- 24.7. 요약
- 24.8. 연습문제
- 24.9. 연구과제
- 24.1. Bacula 서비스 이해