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 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 정리
상세이미지
저자 소개
저자 : 장상근 (맥스)
KBS(한국방송공사)에 재직 중이다. 1998년 중학교 때부터 해킹과 보안 분야에 관심을 가졌으며 고등학교 때에는 충북 지역 정보보안 연구 모임(충북 해커스랩)에서 활동했다. 대학에 입학해서는 세종대 정보보안 소모임(S.S.G)에서 활동했고, 육군 정보보호기술(CERT)병 및 자이툰 파병으로 군 복무를 했다. 전역 후 2008년도 대학 정보보호동아리 연합회(KUCIS) 회장직을 맡았고, 국내 보안 업체들에서 악성코드 분석, 모바일 보안과 보안 취약점 분석, 보안 시스템 개발 등 선행 보안 기술 연구 활동을 주로 했다. 그 외 활동으로 화이트해커연합(HARU), SECUINSIDE 보안 컨퍼런스 운영진으로 참여했고 차세대 보안 리더 양성 프로그램(BOB)에서 멘토로 활동하고 있다. 사물인터넷, 인공지능, 첨단 농업 분야에 관심이 많다.
저자 : 박진산
현재 KBS(한국방송공사)에서 근무하고 있다. 대학에 입학하여 평범한 개발자의 삶을 꿈꿨고, 자동차 엔지니어를 거쳐 현재 회사에 서버 인프라 관리 업무를 접하면서 리눅스와 보안에 관심을 갖게 되었다. 서버, 네트워크, 스토리지 등 각종 장비를 구축하고 서버를 관리하면서 기술적으로 많이 부족하다는 것을 깨닫고 꾸준히 공부하여 각종 보안 자격증과 컴퓨터시스템응용기술사를 취득하였다. 이후 실무 경험을 바탕으로 리눅스 강의와 멘토링을 다수 진행하였다. 최근에는 인공지능 등 최신 IT 트렌드를 공부하고 학생들과 다양한 프로젝트를 수행하면서 함께 성장하고 있다.
목 차
실제 사례로 사고 유형을 파악하고,
직접 서버를 구축하고 해킹해보면서
안전한 리눅스 서버를 구축하고 운영하는 방법을 알아보자!
서버 운영자라면 “서버가 해킹당한 것 같은데 어떻게 해야 하지?”란 고민을 해보거나 들어본 적 있을 것이다. 이 책은 서버의 어느 부분이 보안에 취약한지, 리눅스 서버가 공격을 받아 사고가 발생했을 때 어떻게 사고 여부를 탐지하고 대응해야 할지 모르는 분들을 대상으로 한다. 저자의 오랜 경험을 바탕으로 실무에서 만날 수 있는 웹 해킹, 데이터베이스 해킹은 물론 원격 접속, FTP, 파일 공유 서버, 메일 서버 등을 모의 해킹으로 알아보며, 서버 침입 탐지/차단 시스템과 리눅스 서버 보안과 진단하는 방법도 살펴본다. 또한, 리눅스 백업 및 복구와 클라우드 환경에서의 해킹 사례까지 소개한다. 리눅스 서버를 좀 더 안전하게 구축하고자 하는 모든 분에게 이 책을 추천한다.
출판사 서평
주요 침해 사고 유형부터 백업 및 복구 과정까지
직접 실습하며 안전한 리눅스 서버를 만든다!
실제 운영 환경에서 발생할 수 있는 다양한 보안 문제와 해결 방법을 다룬다!
웹 해킹, 데이터베이스 해킹은 물론 원격 접속, FTP, 파일 공유 서버, 메일 서버 등 실무에서 만날 수 있는 다양한 해킹 사례를 다룬다. 더불어 DHCP, DNS, 악성 코드를 소개하며, 서버 내 이상 행위를 탐지하는 서버 침입 탐지/차단 시스템과 리눅스 서버의 네트워크 접속 영역, 시스템 접속 영역, 보안 점검 영역 세 영역의 보안을 진단하는 리눅스 서버 보안과 진단도 설명한다. 마지막으로 데이터의 손실이나 변조 등을 막기 위한 백업 시스템을 구축할 수 있도록 리눅스 백업 및 복구와 클라우드 환경에서의 해킹 사례를 소개한다.
서버 보안이 처음이라도 쉽게 이해할 수 있다!
가장 먼저 VM을 이용해 우분투와 칼리를 설치하고 실습에 필요한 리눅스 명령어부터 배운다. 그다음 해킹 사례별로 사고 사례 유형 → 서버 구축 실습 → 공격 유형 분석 → 보안 대응 방법을 차례대로 설명한다. 리눅스 환경에 익숙해지고 안전하게 리눅스 서버를 구축할 수 있도록 실습 과정을 최대한 세세하게 구성했으므로 서버 보안에 익숙하지 않아도 충분히 따라 하면 이해할 수 있다.
책 속에서
현재까지 출판된 리눅스 서버 관련 책은 대부분 서버 구축과 운영 관리 위주로 다루고 있으며, 리눅스 보안을 주제로 하는 책들은 보안에만 초점을 맞추고 있다. 이러다 보니 서버의 어느 부분에 보안이 취약한지, 리눅스 서버가 공격을 받아 침해 사고가 발생했을 때 어떻게 침해 사고 여부를 탐지하고 대응해야 할지 몰라 종종 서버 운영과 관련된 인터넷 커뮤니티에서 “서버가 해킹당한 것 같은데 어떻게 해야 하나요?”라는 질문을 볼 때가 많았다. 모의 해킹을 직접 실습해서 리눅스 서버가 어떻게 공격을 받을 수 있는지 이해하고, 리눅스 서버를 대상으로 이뤄지는 공격의 탐지와 대응을 어떻게 해야 하는지 배울 수 있고, 리눅스 서버를 좀 더 안전하게 구축하는 데 도움이 되기 위해 이 책을 집필했다.
---「지은이의 말」중에서