• 리눅스 서버 보안
  • 오픈소스를 이용한 서버 보안 핵심 가이드

  • 나카지마 요시카즈 지음
  • 양현 옮김

  • 해킹 & 보안 시리즈 _ 006
  • ISBN: 9791158390068
  • 27,000원 | 2015년 08월 25일 발행 | 348쪽



이것만은 꼭 알아둬야 할 서버 보안 지식!

‘내가 관리하는 서버는 안전할까? 어떻게 하면 해커의 침입을 막을 수 있을까’라는 고민은 서버 관리자라면 한 번쯤은 생각해본 문제일 것이다. 대부분의 침해 사고는 서버의 잘못된 설정으로 발생한다. 응용프로그램이 잘못 만들어져 침해 사고가 발생하기도 하지만, 서버의 설정이 안전하다면 침입자가 서버에 침투하더라도 할 수 있는 일이 매우 제한된다.

이 책은 심도 있는 기술까지는 다루고 있진 않지만 서버 관리자가 보안상 반드시 알아두고 실천해야 할 설정에 대해 다루고 있다. 이 책에서 다룬 내용만 완벽하게 설정해도 일반적인 침입에 대해 여유롭게 대처할 수 있다. 보안을 이제 배우기 시작한 사람, 보안을 배운 적은 없지만 해킹에 대비해 안전한 서버를 구축하고 싶은 실무자라면 많은 도움이 될 것이다.

★ 이 책에서 다루는 핵심 내용 ★

  • 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 침입 대비
    •  
  • ▣ 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 인증서 발급 의뢰서 작성
    •  
  • ▣ 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)
    •  
  • ▣ 4장: Secure 서버의 빠른 설정
    • 4.1 CentOS 설치
      • 4.1.1 설치 시 확인 사항
      • 4.1.2 설치 후 설정
    • 4.2 빠른 보안 대응
      • 4.2.1 호스트의 보안
      • 4.2.2 사용자 보안
      • 4.2.3 네트워크 보안
    •  
  • ▣ 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 바이러스 스캔
    •  
  • ▣ 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 파일 시스템의 암호화
    •  
  • ▣ 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 툴을 이용한 패킷 필터링 설정
    •  
  • ▣ 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 파일 복사와 백업
    •  
  • ▣ 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
    •  
  • ▣ 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
    •  
  • ▣ 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
    •  
  • ▣ 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 설치 및 설정
    •  
  • ▣ 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
    •  
  • ▣ 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 로그
    •  
  • ▣ 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 클라이언트 설정
    •  
  • ▣ 부록: 서버 보안 체크리스트
  • 17쪽, 그림 바로 위의 줄

    취약점(Security Hall)

    ==>

    취약점(Security Hole)

 

  • 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(일부)

    두 번째 설정 항목의 serversserver로 수정

 

  • 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

관련 글