실제 사례로 사고 유형을 파악하고, 직접 서버를 구축하고 해킹해보면서 안전한 리눅스 서버를 구축하고 운영하는 방법을 알아보자! 서버 운영자라면 “서버가 해킹당한 것 같은데 어떻게 해야 하지?”란 고민을 해보거나 들어본 적 있을 것이다. 이 책은 서버의 어느 부분이 보안에 취약한지, 리눅스 서버가 공격을 받아 사고가 발생했을 때 어떻게 사고 여부를 탐지하고 대응해야 할지 모르는 분들을 대상으로 한다. 저자의 오랜 경험을 바탕으로 실무에서 만날 수 있는 웹 해킹, 데이터베이스 해킹은 물론 원격 접속, FTP, 파일 공유 서버, 메일 서버 등을 모의 해킹으로 알아보며, 서버 침입 탐지/차단 시스템과 리눅스 서버 보안과 진단하는 방법도 살펴본다. 또한, 리눅스 백업 및 복구와 클라우드 환경에서의 해킹 사례까지 소개한다. 리눅스 서버를 좀 더 안전하게 구축하고자 하는 모든 분에게 도움이 될 책이다.
1장 실습 환경 구축
1.1 가상 머신 설치
___1.1.1 VirtualBox 설치
___1.1.2 가상 머신 구축 방법
1.2 모의 해킹을 위한 칼리 리눅스 설치
___1.2.1 칼리 리눅스의 특징
___1.2.2 칼리 리눅스 설치
___1.2.3 칼리 리눅스 기본 설정
1.3 안전한 서버 구축을 위한 우분투 리눅스 설치
___1.3.1 리눅스 배포판의 종류
___1.3.2 우분투 리눅스 설치
1.4 실습을 위한 가상 머신 설정
___1.4.1 실습 네트워크 구성
___1.4.2 VirtualBox 네트워크 설정
___1.4.3 운영체제 네트워크 설정
1.5 정리
2장 리눅스 서버 관리 명령어
2.1 리눅스 기본 명령어
___2.1.1 ls, 파일 및 디렉터리 목록 확인
___2.1.2 cd, 디렉터리 이동
___2.1.3 pwd, 현재 위치 확인
___2.1.4 mkdir, 디렉터리 생성
___2.1.5 rmdir & rm, 파일 및 디렉터리 삭제
___2.1.6 cp, 파일 및 디렉터리 복사
___2.1.7 mv, 파일 및 디렉터리 이동
___2.1.8 find, 파일 및 디렉터리 검색
___2.1.9 du & df, 파일 및 디렉터리 용량 확인
___2.1.10 tar, 파일 및 디렉터리의 압축(묶기)과 해제
___2.1.11 sudo, root 권한 실행 명령어
2.2 사용자 및 파일 권한 관리 명령어
___2.2.1 whoami, 현재 사용자 확인
___2.2.2 adduser/useradd, 사용자 추가
___2.2.3 userdel, 사용자 삭제
___2.2.4 usermod, 사용자 변경
___2.2.5 chmod, 파일 권한 변경
___2.2.6 chown, 파일 소유권 변경
___2.2.7 chgrp, 파일 그룹 변경
___2.2.8 umask, 초기 파일 접근 권한 설정
2.3 네트워크 관리 명령어
___2.3.1 ifconfig, 네트워크 인터페이스 및 정보 확인
___2.3.2 netstat, 네트워크 접속 정보 확인
___2.3.3 route, 라우팅 테이블 확인 및 설정
___2.3.4 ping, 원격지 네트워크 응답 확인
2.4 서비스 관리 명령어
___2.4.1 systemctl, 서비스 관리
2.5 리눅스 편집기
2.5.1 리눅스 vi 편집기
2.6 정리
3장 리눅스 시스템 보안 기초
3.1 부트로더 보안
___3.1.1 GRUB 보안 설정하기
3.2 사용자 계정
___3.2.1 사용자 계정의 보안 사고/공격
___3.2.2 사용자 계정의 보안 설정하기
3.3 방화벽
___3.3.1 리눅스 방화벽
3.4 PAM을 활용한 사용자 계정 보안
___3.4.1 PAM의 구성
___3.4.2 PAM의 보안 설정하기
3.5 정리
4장 웹 해킹
4.1 실습을 위한 웹 서버 구축
___4.1.1 아파치 + PHP + MariaDB 설치
___4.1.2 웹 해킹 실습을 위한 예제 설치하기
4.2 웹 해킹 실습
___4.2.1 웹 서버 취약점을 통한 해킹
___4.2.2 웹 애플리케이션 취약점을 통한 해킹
4.3 웹 서버 해킹 사고 분석
___4.3.1 웹 로그 분석
4.4 안전한 웹 서버 구축
___4.4.1 아파치 보안 설정
___4.4.2 아파치 ModSecurity
___4.4.3 보안 서버 구축
4.5 정리
5장 데이터베이스 해킹
5.1 데이터베이스 해킹 개요
5.2 데이터베이스 해킹 실습
___5.2.1 데이터베이스와 연동할 때 데이터베이스 해킹하기
___5.2.2 데이터베이스의 네트워크 취약점을 활용해 해킹하기
5.3 데이터베이스 해킹 사고 분석
5.4 데이터베이스 보안
___5.4.1 데이터베이스 초기 설정하기
___5.4.2 데이터베이스 네트워크 보안 설정하기
___5.4.3 데이터베이스 장애를 대비해 이중화 구성하기
5.5 정리
6장 원격 접속
6.1 원격 접속을 위한 환경 구축
___6.1.1 SSH 원격 접속을 위한 환경 구축
___6.1.2 XRDP 원격 접속을 위한 환경 구축
6.2 원격 접속 해킹의 사고 분석
___6.2.1 SSH 무차별 대입 공격
___6.2.2 SSH 무차별 대입 공격 분석
6.3 안전한 원격 접속 환경 구축 실습
___6.3.1 원격 접속용 포트 변경
___6.3.2 방화벽을 통한 접근 통제
6.4 정리
7장 FTP
7.1 FTP 개요
7.2 FTP 해킹 분석
___7.2.1 암호화되지 않은 FTP 통신 정보 노출
___7.2.2 무차별 대입 공격
___7.2.3 로그인 사용자의 디렉터리 탐색
___7.2.4 FTP 로그 분석
7.3 안전한 FTP 서버 구축 실습
___7.3.1 FTP 설치
___7.3.2 FTP 보안 환경 설정
___7.3.3 FTPS(FTP Secure) 설정
7.4 정리
8장 파일 공유 서버
8.1 파일 공유 서버의 해킹 분석
___8.1.1 보안 취약점을 통한 원격 코드 실행
8.2 안전한 파일 공유 서버 구축 실습
___8.2.1 파일 공유 서버 설치
___8.2.2 안전한 파일 공유 서버 설정
8.3 정리
9장 메일 서버
9.1 메일 서버 해킹 분석
___9.1.1 취약한 사용자 계정을 대상으로 한 무차별 대입 공격
9.2 안전한 메일 서버 구축 실습
___9.2.1 메일 서버 설치
___9.2.2 메일 서버 보안 설정
___9.2.3 안티바이러스 및 스팸 메일 방지 패키지 설치
___9.2.4 KISA-RBL 및 SPF 인증 서비스
9.3 정리
10장 DHCP
10.1 DHCP 해킹
___10.1.1 DHCP 자원 고갈
10.2 안전한 DHCP 서버 구축 실습
___10.2.1 DHCP 설치
___10.2.2 DHCP 설정 및 테스트
___10.2.3 안전한 DHCP 사용법
10.3 정리
11장 DNS
11.1 DNS 해킹 실습 사고 분석
___11.1.1 DNS 스푸핑 공격
___11.1.2 DNS 하이재킹
11.2 안전한 DNS 서버 구축 실습
___11.2.1 BIND DNS 서비스 설치
___11.2.2 zone 파일 설정(DNS 추가)
___11.2.3 DNSSEC 설정
11.3 정리
12장 악성 코드
12.1 악성 코드 개요
12.2 악성 코드의 유형과 감염 사례
___12.2.1 웹 취약점을 통한 악성 코드 감염
___12.2.2 시스템 취약점을 통한 악성 코드 감염
12.3 악성 코드 탐지
12.4 정리
13장 서버 침입 탐지/차단 시스템(HIDS)
13.1 서버 침입 탐지/차단 시스템의 개요
13.2 OSSEC 구축
___13.2.1 OSSEC 설치
13.3 OSSEC 실습
___13.3.1 경보 메일 설정
___13.3.2 파일 및 디렉터리 변경 모니터링
___13.3.3 이상 행위 탐지와 대응
1___3.3.4 OSSEC의 ELK Stack 구성을 통한 보안 관제
13.4 정리
14장 리눅스 서버 보안과 진단
14.1 Nmap
14.2 GVM
___14.2.1 GVM 설치
___14.2.2 GVM으로 보안 취약점 점검
14.3 Lynis
___14.3.1 Lynis 설치
___14.3.2 Lynis로 보안 취약점 점검
14.4 정리
15장 우분투 리눅스 백업 및 복구
15.1 스냅샷 방식으로 백업 및 복구
___15.1.1 Timeshift를 이용한 리눅스 스냅샷 백업 및 복구
15.2 데이터베이스 백업과 복구
___15.2.1 mysqldump로 백업 및 복구(논리적 백업)
___15.2.2 Mariabackup으로 백업 및 복구(물리적 백업)
15.3 정리
16장 클라우드 환경에서 리눅스 보안
16.1 클라우드 환경 해킹 사례
16.2 클라우드 환경에서 리눅스 보안 강화
16.3 정리