길벗·이지톡

도서 IT전문서/IT입문서 임베디드/시스템/네트워크

실제 사례로 사고 유형을 파악하고,

직접 서버를 구축하고 해킹해보면서

안전한 리눅스 서버를 구축하고 운영하는 방법을 알아보자!

 

서버 운영자라면 “서버가 해킹당한 것 같은데 어떻게 해야 하지?”란 고민을 해보거나 들어본 적 있을 것이다. 이 책은 서버의 어느 부분이 보안에 취약한지, 리눅스 서버가 공격을 받아 사고가 발생했을 때 어떻게 사고 여부를 탐지하고 대응해야 할지 모르는 분들을 대상으로 한다. 저자의 오랜 경험을 바탕으로 실무에서 만날 수 있는 웹 해킹, 데이터베이스 해킹은 물론 원격 접속, 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 정리

 

더보기접기

저자

ㆍ지은이 장상근

지은이 소개
현재 KBS(한국방송공사)에서 근무하고 있다. 1998년 중학교 때부터 해킹과 보안 분야에 관심을 가졌으며, 고등학교 때는 충북 지역 정보 보안 연구 모임(충북 해커스랩)에서 활동했다. 세종대 정보보안 소모임(S.S.G)에서 활동했고, 육군 정보보호기술(CERT)병 및 자이툰 파병으로 군복무를 했다. 전역 후 2008년도 대학 정보보호동아리 연합회(KUCIS) 회장직을 맡았고, 국내 보안 업체에서 악성 코드 분석, 모바일 보안과 보안 취약점 분석, 보안 시스템 개발 등 선행 보안 기술 연구 활동을 주로 했다. 그 외 활동으로 화이트해커연합(HARU), SECUINSIDE 보안 컨퍼런스 운영진으로 참여했고 차세대 보안 리더 양성 프로그램(BOB)에서 보안 제품 개발 트랙 멘토로 활동하고 있다. 사물 인터넷, 인공지능, 첨단 농업 분야에 관심이 많다. 저서로는 『처음 배우는 네트워크 보안』(한빛미디어, 2021), 『네트워크 보안 시스템 구축과 보안 관제』(한빛미디어, 2016) 등이 있다.

ㆍ지은이 박진산

지은이 소개
현재 KBS(한국방송공사)에서 근무하고 있다. 대학에 입학하여 평범한 개발자의 삶을 꿈꿨고, 자동차 엔지니어를 거쳐 현재 회사에 서버 인프라 관리 업무를 접하면서 리눅스와 보안에 관심을 갖게 되었다. 서버, 네트워크, 스토리지 등 각종 장비를 구축하고 서버를 관리하면서 기술적으로 많이 부족하다는 것을 깨닫고 꾸준히 공부하여 각종 보안 자격증과 컴퓨터시스템응용기술사를 취득하였다. 이후 실무 경험을 바탕으로 리눅스 강의와 멘토링을 다수 진행하였다. 최근에는 인공 지능 등 최신 IT트렌드를 공부하고 학생들과 다양한 프로젝트를 수행하면서 함께 성장하고 있다.

연관 프로그램

아래 프로그램은 길벗출판사가 제공하는 것이 아닙니다.
무료로 사용할 수 있는 정보를 안내해 드리니, 지원이 필요하면 해당 프로그렘 제작사로 문의해 주세요.