이것만은 꼭 알아둬야 할 서버 보안 지식!
‘내가 관리하는 서버는 안전할까? 어떻게 하면 해커의 침입을 막을 수 있을까’라는 고민은 서버 관리자라면 한 번쯤은 생각해본 문제일 것이다. 대부분의 침해 사고는 서버의 잘못된 설정으로 발생한다. 응용프로그램이 잘못 만들어져 침해 사고가 발생하기도 하지만, 서버의 설정이 안전하다면 침입자가 서버에 침투하더라도 할 수 있는 일이 매우 제한된다.
이 책은 심도 있는 기술까지는 다루고 있진 않지만 서버 관리자가 보안상 반드시 알아두고 실천해야 할 설정에 대해 다루고 있다. 이 책에서 다룬 내용만 완벽하게 설정해도 일반적인 침입에 대해 여유롭게 대처할 수 있다. 보안을 이제 배우기 시작한 사람, 보안을 배운 적은 없지만 해킹에 대비해 안전한 서버를 구축하고 싶은 실무자라면 많은 도움이 될 것이다.
★ 이 책에서 다루는 핵심 내용 ★
- Secure OS
- 시스템 및 서비스 로그 관리
- 서비스 데몬 보안 설정
- 정보 보안 기술
나카지마 요시카즈 (中島能和)
Linux와 보안, 오픈 소스 전반의 교육 및 교재 개발에 종사.
현재 리눅스 아카데미 전임 강사.
최근에는 매일 두 딸에게 새벽부터 시달리는 아버지.
주요 저서로는 『Linux 교과서 LPIC 레벨1』, 『Linux 교과서 LPIC 레벨2』, 『zsh 최강 쉘 입문』, 공저로 『CentOS 철저입문』 등이 있다.
양현
경희대학교 지리학과를 졸업하고 웹 개발자로 근무하다 보안 업무에 뛰어들었다. SK인포섹에서 소스 취약점 분석, 모의해킹, 서버 취약점 분석 업무로 본격적인 보안 실무 경험을 쌓고, 현재 일본 NHN-Playart 애플리케이션 보안 업무를 담당하고 있다.
- ▣ 1장: 정보보안 개요
- 1.1 정보 보호란
- 1.1.1 정보 보호의 3대 요소
- 1.1.2 보안과 위험
- 1.1.3 정보 보호 정책
- 1.1.4 정보 보호/매니지먼트
- 1.1.5 정보 보호 관련 법률
- 1.2 리눅스 서버 보안의 기본 개념
- 1.2.1 시스템 설정
- 1.2.2 운영체제 레벨 보안
- 1.2.3 침입 대비
- 1.1 정보 보호란
- ▣ 2장: 정보보호 기술
- 2.1 암호
- 2.1.1 암호화 기초
- 2.1.2 공통 키 암호화 방식
- 2.1.3 공개 키 암호화 방식
- 2.1.4 디지털 서명
- 2.1.5 PKI
- 2.1.6 해시 함수
- 2.2 리눅스 보안 기술
- 2.2.1 패스워드 인증
- 2.2.2 PAM
- 2.2.3 Secure OS
- 2.2.4 방화벽
- 2.3 SSL/TLS
- 2.3.1 SSL/TLS 기초
- 2.3.2 SSL/TLS 사용 준비
- 2.3.3 서버 인증서(자체 서명 인증서) 생성
- 2.3.4 인증서 발급 의뢰서 작성
- 2.1 암호
- ▣ 3장: 보안 공격 종류
- 3.1 공격 준비
- 3.1.1 어드레스 스캔
- 3.1.2 포트 스캔
- 3.2 서버에 대한 공격
- 3.2.1 DoS/DDoS 공격
- 3.2.2 패스워드 크랙(Password Crack)
- 3.2.3 보안 홀을 이용한 공격
- 3.2.4 각종 서비스 공격
- 3.2.5 웹 애플리케이션 공격
- 3.3. 악성코드(Malware)
- 3.3.1 바이러스/웜
- 3.3.2 rootkit
- 3.3.3 키 로거(Key Logger)
- 3.1 공격 준비
- ▣ 4장: Secure 서버의 빠른 설정
- 4.1 CentOS 설치
- 4.1.1 설치 시 확인 사항
- 4.1.2 설치 후 설정
- 4.2 빠른 보안 대응
- 4.2.1 호스트의 보안
- 4.2.2 사용자 보안
- 4.2.3 네트워크 보안
- 4.1 CentOS 설치
- ▣ 5장: 운영체제 보안
- 5.1 부트 로더 암호 설정
- 5.1.1 부팅 매개변수
- 5.1.2 GRUB 패스워드 설정
- 5.2 소프트웨어 업데이트
- 5.2.1 YUM을 사용하기 위한 준비
- 5.2.2 YUM 설정
- 5.2.3 YUM 기본 조작
- 5.2.4 시스템 자동 업데이트
- 5.3 사용자 계정 관리
- 5.3.1 일반 사용자의 로그인 관리
- 5.3.2 root 계정 로그인 금지
- 5.3.3 su 명령어 사용
- 5.3.4 root 권한 사용
- 5.3.5 패스워드 관리
- 5.4 서비스 관리
- 5.4.1 불필요한 서비스 중지
- 5.4.2 xinetd
- 5.5 TCP Wrapper
- 5.5.1 TCP Wrapper 개요
- 5.5.2 TCP Wrapper 기본 설정
- 5.6 프로세스 모니터링
- 5.6.1 ps 명령어를 통한 프로세스 모니터링
- 5.6.2 top 명령어를 통한 프로세스와 시스템 모니터링
- 5.7 바이러스 대책
- 5.7.1 Clam AntiVirus 설치
- 5.7.2 바이러스 데이터베이스 업데이트
- 5.7.3 바이러스 스캔
- 5.1 부트 로더 암호 설정
- ▣ 6장: 파일 시스템 보안
- 6.1 퍼미션
- 6.1.1 소유자와 소유 그룹
- 6.1.2 접근 권한
- 6.1.3 접근 권한 변경
- 6.1.4 SUID, SGID
- 6.1.5 Sticky Bit
- 6.1.6 기본 접근 권한
- 6.2 ACL
- 6.2.1 ACL 개요
- 6.2.2 ACL 설정
- 6.3 파일과 파일 시스템 암호화
- 6.3.1 GnuPG를 이용한 파일 암호화
- 6.3.2 파일 시스템의 암호화
- 6.1 퍼미션
- ▣ 7장: 네트워크 보안
- 7.1 네트워크 기본 설정
- 7.1.1 네트워크 설정 파일
- 7.1.2 /etc/hosts
- 7.1.4 네트워크 탐지 대책
- 7.2 방화벽
- 7.2.1 패킷 필터링 방법
- 7.2.2 체인과 테이블
- 7.2.3 iptables 명령
- 7.2.4 기본적인 패킷 필터링 설정
- 7.2.5 iptables 응용
- 7.2.6 ip6tables 명령
- 7.2.7 CUI 툴을 이용한 패킷 필터링 설정
- 7.1 네트워크 기본 설정
- ▣ 8장: SELinux
- 8.1 SELinux 개요
- 8.1.1 SELinux 기본 개념
- 8.1.2 보안 컨텍스트(Security Context)
- 8.1.3 동작 모드
- 8.1.4 정책
- 8.2 SELinux 설정
- 8.2.1 논리 매개변수 설정
- 8.2.2 파일 보안 컨텍스트 변경
- 8.2.3 파일 복사와 백업
- 8.1 SELinux 개요
- ▣ 9장: 시스템 로그 관리
- 9.1 시스템 로그 개요
- 9.1.1 로그 저장 구조
- 9.1.2 syslog 설정
- 9.1.3 rsyslog 설정
- 9.1.4 로그 서버 설정
- 9.1.5 로그 로테이션
- 9.2 로그 모니터링
- 9.2.1 로그 파일 모니터링
- 9.2.2 logwatch
- 9.2.3 swatch
- 9.1 시스템 로그 개요
- ▣ 10장: 보안 체크와 침입 탐지
- 10.1 포트 스캔과 패킷 캡처
- 10.1.1 nmap
- 10.1.2 tcpdump
- 10.2 Tripwire
- 10.2.1 Tripwire 설치
- 10.2.2 Tripwire 설정
- 10.2.3 Tripwire 운영
- 10.3 Rootkit Hunter와 fail2ban 사용
- 10.3.1 Rootkit Hunter
- 10.3.2 fail2ban
- 10.1 포트 스캔과 패킷 캡처
- ▣ 11장: DNS 서버 보안
- 11.1 DNS 기본
- 11.1.1 이름 확인
- 11.1.2 DNS 구조
- 11.1.3 DNS 서버 용어
- 11.1.4 DNS 클라이언트 명령
- 11.2 BIND 기본 설정
- 11.2.1 BIND 설치
- 11.2.2 rndc 명령
- 11.2.3 BIND 설정 파일
- 11.2.4 BIND 로그
- 11.3 캐시 서버 설정
- 11.3.1 named.conf 설정
- 11.4 존 서버 기본 설정
- 11.4.1 named.conf 설정
- 11.4.2 존 파일 형식
- 11.4.3 영역 전송 제한
- 11.5 보다 안전한 BIND 설정과 운영
- 11.5.1 버전 표시
- 11.5.2 TSIG
- 11.5.3 DNSSEC
- 11.1 DNS 기본
- ▣ 12장: 웹 서버 보안
- 12.1 아파치 기본
- 12.1.1 웹 서버 구조
- 12.1.2 아파치 설치 및 기본
- 12.1.3 웹 보안 요점
- 12.2 아파치의 안전한 설정과 운영
- 12.2.1 httpd.conf 기본 설정
- 12.2.2 httpd.conf 파일 주요 설정
- 12.2.3 외부 설정 파일
- 12.2.4 아파치 로그
- 12.2.5 httpd.conf 기타 설정
- 12.3 사용자 인증과 호스트 기반 접근 제어
- 12.3.1 기본 인증
- 12.3.2 다이제스트 인증
- 12.3.3 호스트 기반 접근 제어
- 12.4 SSL/TLS 설정
- 12.4.1 SSL/TLS 설치 및 설정
- 12.1 아파치 기본
- ▣ 13장: 메일 서버 보안
- 13.1 메일 서버 기초
- 13.1.1 메일 서버 구조
- 13.1.2 Postfix 설치 및 기본
- 13.1.3 Dovecot 설치 및 기본
- 13.1.4 메일 서버 보안 요점
- 13.2 안전한 Postfix 설정
- 13.2.1 Postfix 기본 설정
- 13.2.2 main.cf 주요 설정
- 13.2.3 설정 반영 및 확인
- 13.2.4 SMTP 인증
- 13.2.5 SSL/TLS 사용
- 13.2.6 OP25B 지원
- 13.2.7 Postfix 로그
- 13.3 POP/IMAP
- 13.3.1 Dovecot 기본 설정
- 13.3.2 POP/IMAP over SSL
- 13.1 메일 서버 기초
- ▣ 14장: FTP 서버 보안
- 14.1 FTP 기본
- 14.1.1 FTP 프로토콜
- 14.1.2 FTP 클라이언트 lftp
- 14.2 vsftpd 설정
- 14.2.1 vsftpd 기본 설정
- 14.2.2 사용자 설정
- 14.2.3 익명 FTP
- 14.2.4 FTPS
- 14.2.5 vsftpd 로그
- 14.1 FTP 기본
- ▣ 15장: SSH
- 15.1 SSH 기본
- 15.1.1 SSH의 이점
- 15.1.2 호스트 인증
- 15.1.3 사용자 인증
- 15.1.4 공개 키 생성
- 15.2 OpenSSH 서버
- 15.2.1 SSH 서버 기본 설정
- 15.2.2 안전한 SSH 서버 설정
- 15.3 SSH 클라이언트
- 15.3.1 SSH 원격 로그인
- 15.3.2 SSH 원격 복사
- 15.3.3 sftp
- 15.3.4 포트 포워딩
- 15.3.5 SSH Agent
- 15.3.6 SSH 클라이언트 설정
- 15.1 SSH 기본
- ▣ 부록: 서버 보안 체크리스트
17쪽, 그림 바로 위의 줄
취약점(Security
Hall
)==>
취약점(Security
Hole
)
40쪽, 6번째 줄
통신 프로토콜로
IEFT
에 의해==>
통신 프로토콜로
IETF
에 의해
59쪽, 페이지 하단 각주 8
브라우저는 <scrip>를
==>
브라우저는 <script>를
179쪽, 첫 번째 줄
▶ 로그를 IP 주소가 192.168.11.2인 서버로 전송(TCP) *.warning @192.168.11.2
==>
▶ 로그를 IP 주소가 192.168.11.2인 서버로 전송(TCP) *.warning @@192.168.11.2
219쪽, 본문 마지막 단락
상세한 정보를 얻을 수 있는
ig
명령을 설명한다.==>
상세한 정보를 얻을 수 있는
dig
명령을 설명한다.
245쪽, 마스터/슬레이브 DNS 서버의 /etc/named.conf(일부)
두 번째 설정 항목의
servers
는server
로 수정
271쪽, 표 12.9 첫 번째 항목
SeerverRoot
“/etc/httpd”==>
ServerRoot
“/etc/httpd”
279쪽, 상단 첫 번째 항목
SSLCertificateFile /etc/pki/tls/certs/windsor.example.com.
certs
==>
SSLCertificateFile /etc/pki/tls/certs/windsor.example.com.
crt
343쪽, 찾아보기의 IETF 항목
IETF 121
==>
IETF 40, 121