유닉스, 리눅스 시스템 관리자에게 필요한 방대한 사항을 하나하나 설명한다. 기본적인 시스템 관리에 필요한 사항뿐 아니라 현대에 집중 조명되고 있는 클라우드 컴퓨팅 및 가상화에 필요한 사항들도 함께 다룬다. 어떠한 환경에서 유닉스 및 리눅스 시스템을 사용하는지에 따라 대부분의 시스템 관리자가 현업에 맞게 주제를 찾아볼 수 있도록 돼 있다. 초보자에게는 방대한 지식을 얻을 수 있는 바이블로, 숙련자에게는 필요에 따라 찾아보는 레퍼런스로 참고할 수 있다.
Contents
1부. 기본 관리
1장. 시작하기
1.1 시스템 관리자의 핵심 임무
__접근 제어
____하드웨어 추가
____업무 자동화
____백업 관리
____소프트웨어 설치와 갱신
____모니터링
____문제 해결
____내부 문서 관리
____상시 보안 모니터링
____성능 튜닝
____사이트 정책 개발
____거래처 관리
____진화 작업
1.2 필요한 배경 지식
1.3 리눅스 배포판
1.4 이 책에서 사용된 예시 시스템
__리눅스 배포판 예시
__유닉스 배포판 예시
1.5 표기법과 표기 규칙
1.6 단위
1.7 매뉴얼 페이지와 온라인 문서
__맨페이지의 구성
__man: 맨페이지 읽기
__맨페이지 저장소
1.8 기타 권위 있는 문서
__시스템 특정 가이드
__패키지 특정 문서
__도서
__RFC 출판물
1.9 기타 정보 출처
__최신 동향 파악
__하우투와 레퍼런스 사이트
__콘퍼런스
1.10 소프트웨어 탐색과 설치 방법
__소프트웨어 설치 여부를 판단하는 방법
__신규 소프트웨어 추가
__소스코드에서 소프트웨어 빌드
__웹 스크립트에서 설치
1.11 호스팅 장소
1.12 전문화와 인접 분야
__데브옵스
__사이트 신뢰성 엔지니어
__보안 운영 엔지니어
__네트워크 관리자
__데이터베이스 관리자
__네트워크 운영 센터 엔지니어
__데이터 센터 기사
__설계자
1.13 추천 자료
__시스템 관리와 데브옵스
__핵심 도구
2장. 부팅과 시스템 관리 데몬
2.1 부트 프로세스 개요
2.2 시스템 펌웨어
__바이오스와 UEFI
__레거시 바이오스
__UEFI
2.3 부트 로더
2.4 GRUB: GRand Unified Boot loader
__GRUB의 환경설정
__GRUB 커맨드라인
__리눅스 커널 옵션
2.5 FreeBSD 부트 프로세스
__바이오스 경로: boot0
__UEFI 경로
__loader 환경설정
__loader 명령
2.6 시스템 관리 데몬
__init의 역할
__init의 구현
__전통적인 init
__systemd와 세계
__판결과 합당한 처벌을 받은 init
2.7 systemd 세부 사항
__유닛과 유닛 파일
__systemctl: systemd의 관리
__유닛 상태
__타깃
__유닛 간의 의존성
__실행 순서
__복잡한 유닛 파일 예제
__로컬 서비스와 사용자화
__서비스와 시동 제어에서 주의할 점
__systemd 로깅
2.8 FreeBSD init와 시동 스크립트
2.9 재부팅과 종료 절차
__물리적 시스템의 종료
__클라우드 시스템의 종료
2.10 부팅되지 않는 시스템을 위한 수단
__단일 사용자 모드
__FreeBSD의 단일 사용자 모드
__GRUB과 단일 사용자 모드
__클라우드 시스템의 복구
3장. 접근 제어와 루트 권한
3.1 표준 유닉스 접근 제어
__파일 시스템 접근 제어
__프로세스 소유권
__루트 계정
__setuid와 setgid의 실행
3.2 루트 계정 관리
__루트 계정 로그인
__su: 사용자 ID 치환
__sudo: 제한된 su
____환경설정 예제
____sudo의 장점과 단점
____sudo와 고급 접근 제어
____표준 설정
____환경 관리
____암호 없는 sudo
____우선권
____컨트롤 터미널 없는 sudo
____사이트 sudo 환경설정
__루트 계정의 비활성화
__루트 외의 시스템 계정
3.3 표준 접근 제어 모델로의 확장
__표준 모델의 단점
__PAM: 탈착형 인증 모듈
__커버로스: 네트워크 암호화 인증
__파일 시스템 접근 제어 목록
__리눅스 자격
__리눅스 네임스페이스
3.4 최신 접근 제어
__분리된 생태계
__강제 접근 제어
__역할 기반 접근 제어
__SELinux: 보안 강화 리눅스
__앱아머
3.5추천 자료
4장. 프로세스 제어
4.1 프로세스의 구성 요소
__PID: 프로세스 ID 번호
__PPID: 부모 PID
__UID와 EUID: 실제/유효 사용자 식별자
__GID와 EGID: 실제/유효 그룹 식별자
__나이스 값
__제어 터미널
4.2 프로세스의 생애 주기
__시그널
__kill: 시그널 전송
__프로세스와 스레드 상태
4.3 ps: 프로세스 모니터링
4.4 top을 이용한 대화형 모니터링
4.5 스케줄링 우선순위에 영향을 주는 nice와 renice
4.6 /proc 파일 시스템
4.7 strace와 truss: 시그널과 시스템 콜의 추적
4.8 런웨이 프로세스
4.9 주기성 프로세스
__cron: 명령 스케줄링
____크론탭 파일의 포맷
____크론탭 관리
____기타 크론탭
____cron 접근 제어
__systemd 타이머
____systemd 타이머의 구조
____systemd 타이머 예
____systemd 시간 표현식
____일시적 타이머
__작업 스케줄의 일반적 용도
____메일 전송
____파일 시스템 청소
____로그 파일 로테이션
____배치 작업의 실행
____백업과 미러링
5장. 파일 시스템
5.1 경로명
5.2 파일 시스템 마운트와 언마운트
5.3 파일 트리의 조직화
5.4 파일 유형
__일반 파일
__디렉터리
__하드 링크
__문자 장치 파일과 블록 장치 파일
__지역 도메인 소켓
__네임드 파이프
__심볼릭 링크
5.5 파일 속성
__사용 권한 비트
__etuid와 setgid 비트
__스티키 비트
__ls: 파일의 목록과 검사
__chmod: 사용 권한 변경
__chown과 chgrp: 소유권과 그룹의 변경
__umask: 기본 사용 권한의 지정
__리눅스 보너스 플래그
5.6 접근 제어 목록
__경계해야 할 사항
__ACL 유형
__ACL의 구현
__리눅스 ACL 지원
__FreeBSD ACL 지원
__포직스 ACL
____전통 모드와 ACL 간의 상호작용
____포직스 접근 결정
____포직스 ACL 상속
__NFSv4 ACL
____사용 권한을 지정할 수 있는 NFSv4 개체
____NFSv4 접근 결정
____NFSv4에서의 ACL 상속
____NFSv4 ACL 사례
____ACL과 모드 간의 상호작용
____NFSv4 ACL 설정
6장. 소프트웨어 설치와 관리
6.1 운영체제 설치
__네트워크 설치
__PXE 설정
__킥스타트를 이용한 레드햇과 센트OS용 자동 인스톨러
____킥스타트 환경설정 파일의 구성
____킥스타트 서버 구축
____킥스타트의 환경설정 파일 지정
__데비안과 우분투의 설치 자동화
__오픈소스 리눅스 프로비저닝 서버, 코블러를 이용한 넷부팅
__FreeBSD 설치 자동화
6.2 패키지 관리
6.3 리눅스 패키지 관리 시스템
__rpm: RPM 패키지 관리
__dpkg: .deb 패키지 관리
6.4 고수준 리눅스 패키지 관리 시스템
__패키지 저장소
__RHN: 레드햇 네트워크
__APT: 고급 패키지 도구
__저장소 환경설정
__/etc/apt/sources.list 파일의 사례
__로컬 저장소 미러의 생성
__APT 자동화
__yum: RPM용 릴리스 관리
6.5 FreeBSD 소프트웨어 관리
__베이스 시스템
__패카지 관리자
__포트 컬렉션
6.6 소프트웨어 지역화와 환경설정
__지역화 조직
__업데이트 구조화
__경기장 제한
__테스트
6.7 추천 자료
7장. 스크립트와 셸
7.1 스크립트 철학
__마이크로스크립트 작성
__일부 도구를 잘 학습하라
__모든 것을 자동화하라
__너무 일찍 최적화를 하지 말라
__올바른 스크립트 언어를 선택하라
__모범 사례를 따르라
7.2 셸 기초
__명령 편집
__파이프와 리다이렉션
__변수와 인용
__환경변수
__일반적인 필터 명령
__cut: 여러 줄을 필드로 분리한다
__sort: 줄들을 정렬한다
__uniq: 중복 없는 고유한 줄들을 출력한다
__wc: 줄, 단어, 문자의 수를 센다.
__tee: 입력을 두 곳으로 복사한다
__head와 tail: 파일의 시작이나 끝을 읽어낸다
__grep: 텍스트 검색
7.3 sh 스크립트
__실행
__명령에서 스크립트로
__입력과 출력
__파일명 내의 공백
__커맨드라인 인수와 함수
__제어 흐름
__루프
__산술 연산
7.4 정규표현식
__매칭 절차
__리터럴 문자
__특수 문자
__정규표현식의 예
__캡처
__그리디, 레이지, 재앙과 같은 백트래킹
7.5 파이썬 프로그래밍
__파이썬 3의 열정
__파이썬 2인가 파이썬 3인가?
__파이썬 빠르게 시작하기
__객체, 문자열, 숫자, 리스트, 딕셔너리, 튜플, 파일
__입력 검증 예제
__루프
7.6 루비 프로그래밍
__설치
__루비 빠르게 시작하기
__블록
__심볼과 옵션 해시
__루비에서의 정규표현식
__필터로서의 루비
7.7 파이썬과 루비를 위한 라이브러리와 환경 관리
__패키지 찾기와 설치
__재현 가능한 환경의 생성
__다중 환경
____virtualenv: 파이썬용 가상 환경
____RVM: 루비 환경 관리자
7.8 깃 이용한 리비전 제어
__간단한 깃 사용 예
__깃의 주의 사항
__깃을 이용한 소셜 코딩
7.9 추천 자료
__셸과 셸 스크립트
__정규표현식
__파이썬
__루비
8장. 사용자 관리
8.1 계정 관리
8.2 /etc/passwd 파일
__로그인명
__암호화된 암호
__UID(사용자 ID) 번호
__기본 GID(그룹 ID) 번호
__GECOS 필드
__홈 디렉터리
__로그인 셸
8.3 리눅스 /etc/shadow 파일
8.4 FreeBSD의 /etc/master.passwd와 /etc/login.conf
__/etc/master.passwd 파일
__/etc/login.conf 파일
8.5 /etc/group 파일
8.6 수작업으로 사용자 추가
__passwd와 group 파일의 편집
__암호 설정
__홈 디렉터리 생성과 시동 파일 설치
__홈 디렉터리의 사용 권한과 소유권 설정
__역할과 시스템 관리 권한 구성
__끝내기
8.7 사용자 추가 스크립트: useradd, adduser, newusers
__리눅스에서의 useradd
__데비안과 우분투에서의 adduser
__FreeBSD에서의 adduser
__리눅스의 newusers: 일괄 추가
8.8 사용자 계정과 파일의 안전한 제거
8.9 사용자 로그인 잠금
8.10 PAM을 이용한 리스크 감소
8.11 중앙 집중식 계정 관리
__LDAP와 액티브 디렉터리
__애플리케이션 레벨의 싱글 사인온 시스템
__ID 관리 시스템
9장. 클라우드 컴퓨팅
9.1 클라우드 개요
9.2 클라우드 플랫폼 선택
__공용, 사설, 하이브리드 클라우드
__아마존 웹 서비스(AWS)
__구글 클라우드 플랫폼
__디지털오션
9.3 클라우드 서비스 기초
__클라우드에 접근
__리전과 가용 영역
__가상 사설 서버
__네트워킹
__스토리지
__식별과 승인
__자동화
__서버리스 함수
9.4 클라우드: 플랫폼을 통한 빠른 VPS의 시작
__아마존 웹 서비스
____aws: AWS 서브시스템 제어
____EC2 인스턴스 생성
____콘솔 로그 보기
____인스턴스의 중지와 종결
__구글 클라우드 플랫폼
__gcloud의 설정
__GCE에서의 인스턴스 실행
__디지털오션
9.5 비용 관리
9.6 추천 자료
10장. 로깅
10.1 로그 위치
__관리하지 않는 파일
__systemd 저널로 로그를 보는 방법
10.2 systemd 저널
__systemd 저널의 환경설정
__journalctl에 필터링 옵션 추가
__syslog와의 공존
10.3 syslog
__syslog 메시지 읽기
__rsyslog 구조
__rsyslog 버전
__rsyslog 환경설정
____모듈
____sysklogd 문법
____레거시 지시어
____레이너스크립트
__환경설정 파일 예
____rsyslog 기본 환경설정
____네트워크 로깅 클라이언트
____중앙 로깅 호스트
__syslog 메시지 보안
__syslog 환경설정 디버깅
10.4 커널 로깅과 부트타임 로깅
10.5 로그 파일의 관리와 로테이션
__logrotate: 크로스플랫폼 로그 관리
__newsyslog: FreeBSD에서의 로그 관리
10.6 대규모 로그 관리
__ELK 스택
__Graylog
__서비스형 로깅
10.7 로깅 정책
11장. 드라이버와 커널
11.1 시스템 관리자용 커널 작업
11.2 커널 버전 부여
__리눅스 커널 버전
__FreeBSD 커널 버전
11.3 장치와 드라이버
__장치 파일과 장치 번호
__장치 파일 관리의 난제
__수작업에 의한 장치 파일 생성
__현대적인 장치 파일 관리
__리눅스 장치 관리
____sysfs: 장치의 영혼으로 들어가는 문
____udevadm: 장치 탐색
____룰과 영속 네임
__FreeBSD 장치 관리
____devfs: 자동 장치 파일 구성
____devd: 고수준 장치 관리
11.4 리눅스 커널 환경설정
__리눅스 커널 매개변수 튜닝
__커스텀 커널 빌드
____망가진 게 아니라면 고치려고 하지 말라
____리눅스 커널 빌드를 위한 준비
____커널 옵션의 설정
____커널 바이너리 만들기
__리눅스 장치 드라이버 추가
11.5 FreeBSD 커널 환경설정
__FreeBSD 커널 매개변수 튜닝
__FreeBSD 커널 작성
11.6 로드 가능한 커널 모듈
__리눅스에서의 로드 가능한 커널 모듈
__FreeBSD에서의 로드 가능한 커널 모듈
11.7 부팅
__리눅스 부트 메시지
__FreeBSD 부트 메시지
11.8 클라우드 교대 커널의 부팅
11.9 커널 에러
__리눅스 커널 에러
__FreeBSD 커널 패닉
11.10 추천 자료
12장. 프린팅
12.1 CUPS 프린팅
__프린팅 시스템 인터페이스
__프린트 큐
__다수의 프린터와 큐
__프린터 인스턴스
__네트워크 프린터 브라우징
__필터
12.2 CUP 서버 관리
__네트워크 프린트 서버 설정
__프린터 자동 설정
__네트워크 프린터 환경설정
__프린터 환경설정 사례
__서비스 중단
__기타 환경설정 작업
12.3 문제 해결 팁
__프린트 데몬 재시작
__로그 파일
__직접 프린팅 접속
__네트워크 프린팅 문제
12.4 추천 자료
2부. 네트워킹
13장. TCP/IP 네트워킹
13.1 TCP/IP와 인터넷의 관계
__누가 인터넷을 운용하는가?
__네트워크 표준과 문서화
13.2 네트워킹 기초
__IPv4와 IPv6
__패킷과 캡슐화
__이더넷 프레이밍
__최대 전송 단위
13.3 패킷 어드레싱
__하드웨어(MAC) 주소 지정
__IP 주소 지정
__호스트명 ‘주소 지정’
__포트
__주소 유형
13.4 IP 주소: 상세 설명
__IPv4 주소 클래스
__IPv4 서브넷팅
__서브넷 계산을 위한 요령과 도구
__CIDR: 클래스 없는 도메인 간 라우팅
__주소 할당
__사설 주소와 네트워크 주소 변환(NAT)
__IPv6 주소 지정
____IPv6 주소 표기법
____IPv6 접두어
____자동 호스트 번호 부여
____스테이트리스 주소 자동 설정
____IPv6 터널링
____IPv6 정보 출처
13.5 라우팅
__라우팅 테이블
__ICMP 리다이렉트
13.6 IPv4 ARP와 IPv6 이웃탐색
13.7 DHCP: 동적 호스트 구성 프로토콜
__DHCP 소프트웨어
__DHCP 동작 원리
__ISC의 DHCP 소프트웨어
13.8 보안 문제
__IP 포워딩
__ICMP 리다이렉트
__소스 라우팅
__브로드캐스트 핑과 다이렉티드 브로드캐스트
__IP 스푸핑
__호스트 기반 방화벽
__가상 사설 네트워크
13.9 기본 네트워크 환경설정
__호스트명과 IP 주소 할당
__네트워크 인터페이스와 IP 환경설정
__라우팅 환경설정
__DNS 환경설정
__시스템 특정 네트워크 환경설정
13.10 리눅스 네트워킹
__네트워크매니저
__ip: 수작업에 의한 네트워크 환경설정
__데비안과 우분투의 네트워크 환경설정
__레드햇과 센트OS 네트워크 환경설정
__리눅스 네트워크 하드웨어 옵션
__리눅스 TCP/IP 옵션
__보안 관련 커널 변수
13.11 FreeBSD 네트워킹
__ifconfig: 네트워크 인터페이스의 환경설정
__FreeBSD의 네트워크 하드웨어 환경설정
__FreeBSD 부트타임 네트워크 환경설정
__FreeBSD TCP/IP 환경설정
13.12 네트워크 문제 해결
__ping: 어떤 호스트가 살아 있는지를 알기 위한 체크
__traceroute: IP 패킷 추적
__패킷 스니퍼
__tcpdump: 커맨드라인 패킷 스니퍼
__와이어샤크와 티샤크: 더욱 강력한 tcpdump
13.13 네트워크 모니터링
__스모크핑: 시간 경과에 따른 핑 통계 수집
__iPerf: 네트워크 성능 추적
__Cacti: 데이터의 수집과 그래프 작성
13.14 방화벽과 NAT
__리눅스 iptables: 룰, 체인, 테이블
__iptables 룰 타깃
__iptables 방화벽 설정
__종합적인 사례
__리눅스 NAT와 패킷 필터링
__유닉스 시스템용 IPFilter
13.15 클라우드 네트워킹
__AWS의 가상 사설 클라우드
__서브넷과 라우팅 테이블
__보안 그룹과 NACL
__샘플 VPC 아키텍처
__테라폼으로 VPC 생성
__구글 클라우드 플랫폼 네트워킹
__디지털오션 네트워킹
13.16 추천 자료
__역사
__고전과 필독서
__프로토콜
14장. 물리적 네트워킹
14.1 이더넷: 네트워킹의 맥가이버칼
__이더넷 시그널링
__이더넷 토폴로지
__비차폐 연선
__광섬유
__이더넷 접속과 확장
____허브
____스위치
____VLAN 스위치
____라우터
__자동 협상
__이더넷 전원장치
__점보 프레임
14.2 무선: 노마드를 위한 이더넷
__무선 표준
__무선 클라이언트 접근
__무선 인프라와 WAP
____무선 토폴로지
____저가 무선 제품
____고가 무선 제품
__무선 보안
14.3 SDN: 소프트웨어 정의 네트워킹
14.4 네트워크 테스팅과 디버깅
14.5 빌딩 배선
__UTP 케이블링 옵션
__사무실까지 연결
__배선 표준
14.6 네트워크 설계 이슈
__네트워크 아키텍처와 빌딩 아키텍처
__확장
__정체 현상
__유지 관리와 문서화
14.7 관리 이슈
14.8 권장 업체
__케이블과 커넥터
__테스트 장비
__라우터/스위치
14.9 추천 자료
15장. IP 라우팅
15.1 패킷 포워딩: 자세히 살펴보기
15.2 라우팅 데몬과 라우팅 프로토콜
__거리-벡터 프로토콜
__링크-상태 프로토콜
__비용 메트릭
__인테리어와 익스테리어 프로토콜
15.3 프로토콜 소개
__RIP와 RIPng: 라우팅 정보 프로토콜
__OSPF: 개방형 최단 경로 우선
__EIGRP: 향상된 인테리어 게이트웨이 라우팅 프로토콜
__BGP: 보더 게이트웨이 프로토콜
15.4 라우팅 프로토콜 멀티캐스트 코디네이션
15.5 라우팅 전략 선택 기준
15.6 라우팅 데몬
__routed: 구식 RIP 구현
__콰가: 주류 라우팅 데몬
__XORP: 박스형 라우터
15.7 시스코 라우터
15.8 추천 자료
16장. DNS: 도메인 네임 시스템
16.1 DNS 아키텍처
__질의와 응답
__DNS 서비스 공급자
16.2 검색용 DNS
__resolv.conf: 클라이언트 리졸버 환경설정
__nsswitch.conf: 누구에게 이름을 요청했는가?
16.3 DNS 네임스페이스
__도메인명 등록
__서브도메인 만들기
16.4 DNS의 동작 원리
__네임 서버
__권한 서버와 캐싱온리 서버
__재귀적 서버와 비 재귀적 서버
__리소스 레코드
__위임
__캐싱과 효율성
__다중 응답과 라운드로빈 DNS 로드밸런싱
__쿼리 도구를 이용한 디버깅
16.5DNS 데이터베이스
__존 파일의 파서 명령
__리소스 레코드
__SOA 레코드
__NS 레코드
__A 레코드
__AAAA 레코드
__PTR 레코드
__MX 레코드
__CNAME 레코드
__SRV 레코드
__TXT 레코드
__SPF, DKIM, DMARC 레코드
__DNSSEC 레코드
16.6BIND 소프트웨어
__BIND의 구성 요소
__환경설정 파일
__include문
__options문
__acl문
__(TSIG) key문
__server문
__masters문
__logging문
__statistics-channels문
__zone문
____존을 위한 마스터 서버의 환경설정
____존을 위한 슬레이브 서버의 환경설정
____루트 서버 힌트의 설정
____포워딩 존의 구성
__rndc용 controls문
16.7 분리된 DNSSplit DNS와 view문
16.8 BIND 환경설정 예
__로컬호스트 존
__소규모 보안 회사
16.9 존 파일 업데이트
__존 전송
__동적 업데이트
16.10 DNS 보안 이슈
__BIND의 접근 제어 목록
__오픈 리졸버
__chroot된 감옥에서 실행
__TSIG와 TKEY를 이용한 안전한 서버 대 서버 통신
__BIND용 TSIG 설정
__DNSSEC
__DNSSEC 정책
__DNSSEC 리소스 레코드
__DNSSEC 활성화
__키 쌍 생성
__존 서명
__DNSSEC 신뢰 체인
__DNSSEC 키 롤오버
__DNSSEC 도구
____ldns tools, nlnetlabs.nl/projects/ldns
____dnssec-tools.org
____RIPE 도구, ripe.net
____OpenDNSSEC, opendnssec.org
__DNSSEC 디버깅
16.11 BIND 디버깅
__BIND의 로깅
____채널
____카테고리
____로그 메시지
____BIND 로깅 환경설정의 예
____BIND의 디버깅 레벨
__rndc를 이용한 네임 서버 제어
__불완전 위임에 대한 커맨드라인 쿼리
16.12 추천 자료
__도서와 문서
__온라인 자원
__RFC 자료
17장. 싱글 사인온
17.1 SSO의 핵심 요소
17.2 LDAP: 경량 디렉터리 서비스
__LDAP의 사용
__LDAP 데이터 구조
__OpenLDAP: 전통적인 오픈소스 LDAP 서버
__389 디렉터리 서버: 오픈소스 LDAP 서버의 대안
__LDAP 쿼리
__passwd와 group 파일을 LDAP로 변환
17.3 로그인을 위한 디렉터리 서비스 사용
__커버로스
____AD 통합을 위한 리눅스 커버로스 환경설정
____AD 통합을 위한 FreeBSD 커버로스 환경설정
__sssd: 시스템 보안 서비스 데몬
__nsswitch.conf: 네임 서비스 스위치
__PAM: 쿠킹 스프레이인가 경이로운 인증 수단인가?
____PAM 환경설정
____PAM의 예
17.4 다른 대안
__NIS: 네트워크 정보 서비스
__rsync: 보안 파일 전송
17.5 추천 자료
18장. 이메일
18.1 메일 시스템 아키텍처
__사용자 에이전트
__제출 에이전트
__전송 에이전트
__로컬 전달 에이전트
__메시지 저장소
__접근 에이전트
18.2 메일 메시지 해부학
18.3 SMTP 프로토콜
__EHLO
__SMTP 에러 코드
__SMTP 인증
18.4 스팸과 악성 소프트웨어
__위조
__SPF와 발신자 ID
__DKIM
18.5 메시지 개인 정보와 암호화
18.6 메일 앨리어스
__파일에서 앨리어스 만들기
__파일로 메일 보내기
__프로그램으로 메일 보내기
__해시된 앨리어스 데이터베이스 구축
18.7 이메일 환경설정
18.8 sendmail
__스위치 파일
__sendmail 시작
__메일 큐
__sendmail 환경설정
__m4 전처리기
__sendmail 환경설정 조각
__샘플 .mc 파일에서 만든 환경설정 파일
__환경설정 기본 사항
__테이블과 데이터베이스
__기본 매크로와 기능
____OSTYPE 매크로
____DOMAIN 매크로
____MAILER 매크로
____FEATURE 매크로
____use_cw_file 기능
____redirect 기능
____always_add_domain 기능
____access_db 기능
____virtusertable 기능
____ldap_routing 기능
____Masquerading 기능
____MAIL_HUB와 SMART_HOST 매크로
__클라이언트 환경설정
__m4 환경설정 옵션
__sendmail의 스팸 관련 기능
____릴레이 제어
____사용자 또는 사이트 블랙리스트
____스로틀, 접속률, 접속 제한
__보안과 sendmail
____소유 권한
____사용 권한
____파일과 프로그램으로 보내는 더 안전한 메일
____개인 정보 보호 옵션
____chroot된 sendmail의 실행(편집적인 사람들을 위한 것)
____서비스 거부 공격
____TLS: 전송 계층 보안
__sendmail 테스팅과 디버깅
____큐 모니터링
____로깅
18.9 엑심
__엑심의 설치
__엑심 시동
__엑심 유틸리티
__엑심 환경설정 언어
__엑심 환경설정 파일
__전역 옵션
____옵션
____목록
____매크로
__접근 제어 목록
__ACL 타임에서의 콘텐츠 스캐닝
__인증자
__라우터
____accept 라우터
____dnslookup 라우터
____manualroute 라우터
____redirect 라우터
____.forward 파일을 통한 사용자별 필터링
__전송
____appendfile 전송
____smtp 전송
__retry 환경설정
__rewriting 환경설정
__로컬 스캔 함수
__로깅
__디버깅
18.10 포스트픽스
__포스트픽스 아키텍처
____메일 수신
____메일 대기 큐의 관리
____메일 전송
__보안
__포스트픽스 명령과 문서
__포스트픽스 환경설정
____main.cf에 넣을 내용
____기본 설정
____널 클라이언트
____postconf의 사용
____룩업 테이블
____로컬 전송
__가상 도메인
____가상 앨리어스 도메인
____가상 메일박스 도메인
__접근 제어
____접근 테이블
____클라이언트 인증과 암호화
__디버깅
____큐 내용 보기
____소프트 바운싱
18.11 추천 자료
__sendmail 참고 자료
__엑심 참고 자료
__포스트픽스 참고 자료
__RFC
19장. 웹 호스팅
19.1 HTTP: 하이퍼텍스트 전송 프로토콜
__URL
__HTTP 트랜잭션 구조
____HTTP 요청
____HTTP 응답
____헤더와 메시지 바디
__curl: 커맨드라인에서의 HTTP
__TCP 접속 재사용
__TLS를 통한 HTTP
__가상 호스트
19.2 웹 소프트웨어 기초
__웹 서버와 HTTP 프록시 소프트웨어
__로드밸런서
__캐시
____브라우저 캐시
____프록시 캐시
____리버스 프록시 캐시
____캐시 문제
____캐시 소프트웨어
__콘텐츠 전송 네트워크
__웹 언어
____루비
____파이썬
____자바
____Node.js
____PHP
____Go
__애플리케이션 프로그래밍 인터페이스
19.3 클라우드에서의 웹 호스팅
__빌드와 구매
__서비스형 플랫폼
__정적 콘텐츠 호스팅
__서버리스 웹 애플리케이션
19.4 아파치 HTTPD
__httpd 사용
__httpd 환경설정 구조
__가상 호스트 환경설정
____HTTP 기본 인증
____TLS 환경설정
____아파치에서의 웹 애플리케이션 실행
__로깅
19.5 엔진엑스
__엔진엑스의 설치와 실행
__엔진엑스 환경설정
__엔진엑스용 TLS 환경설정
__엔진엑스에서의 로드밸런싱
19.6 HAProxy
__헬스 점검
__서버 통계
__스티키 세션
__TLS 종료
19.7 추천 자료
3부. 스토리지
20장. 스토리지
20.1 단순한 디스크 추가
__리눅스 예제
__FreeBSD 예제
20.2 스토리지 하드웨어
__하드디스크
____하드디스크 신뢰성
____고장 모드와 메트릭스
____드라이브 유형
____보증과 퇴출
__SSD
____재기록의 한계
____플래시 메모리와 컨트롤러 타입
____페이지 클러스터와 사전삭제
____SSD 신뢰성
__하이브리드 드라이브
__어드밴스트 포맷과 4KiB 블록
20.3 스토리지 하드웨어 인터페이스
__SATA 인터페이스
__PCI 익스프레스 인터페이스
__SAS 인터페이스
__USB
20.4 드라이브의 연결과 저수준 관리
__하드웨어 수준에서의 설치 검증
__디스크 장치 파일
__임시 장치명
__포맷과 배드 블록 관리
__ATA 보안 삭제
__hdparm과 camcontrol: 디스크와 인터페이스 매개변수 설정
__SMART를 이용한 하드디스크 모니터링
20.5 스토리지의 소프트웨어 측면: 양파 껍질 벗기기
__스토리지 시스템의 요소
__리눅스 디바이스 매퍼
20.6 디스크 파티셔닝
__전통적 파티셔닝
__MBR 파티셔닝
__GPT: GUID 파티션 테이블
__리눅스 파티셔닝
__FreeBSD 파티셔닝
20.7 논리적 볼륨 관리
__리눅스 논리적 볼륨 관리
____볼륨 스냅샷
____파일 시스템 리사이징
__FreeBSD 논리적 볼륨 관리
20.8 RAID: 합리적인 디스크의 다중 배열
__소프트웨어 RAID와 하드웨어 RAID
__RAID 레벨
__디스크 장애 복구
__RAID 5의 결점
__mdadm: 리눅스 소프트웨어 RAID
____배열의 생성
____mdadm.conf: 도큐먼트 배열 설정
____장애 시뮬레이션
20.9 파일 시스템
20.10 전통 파일 시스템: UFS, EXT4, XFS
__파일 시스템 용어
__파일 시스템 다형성
__파일 시스템 포맷
__fsck: 파일 시스템 체크와 복구
__파일 시스템 마운트
__자동 마운트의 설정
__USB 드라이브 마운트
__스왑 권고 사항
20.11 차세대 파일 시스템: ZFS와 BTRFS
__카피온라이트
__에러 검출
__성능
20.12 ZFS: 모든 스토리지 문제 해결
__리눅스에서의 ZFS
__ZFS 아키텍처
__예: 디스크 추가
__파일 시스템과 속성
__속성 상속
__사용자당 하나의 파일 시스템
__스냅샷과 클론
__원시 볼륨
__스토리지 풀 관리
20.13 BTRFS: 리눅스용 ZFS 라이트 버전
__Btrfs와 ZFS
__설정과 스토리지 전환
__볼륨과 하위 볼륨
__볼륨 스냅샷
__얕은 복사
20.14 데이터 백업 전략
20.15 추천 자료
21장. 네트워크 파일 시스템
21.1 네트워크 파일 서비스 보기
__경쟁자
__상태 이슈
__성능 고려 사항
__보안
21.2 NFS 접근법
__프로토콜 버전과 역사
__원격 프로시저 콜
__전송 프로토콜
__상태
__파일 시스템 내보내기
__파일 잠금
__보안 고려 사항
__버전 4에서 식별 매핑
__루트 접근과 nobody 계정
__버전 4에서의 성능 고려 사항
21.3 서버 측 NFS
__리눅스에서 내보내기
__FreeBSD에서 내보내기
__nfsd: serve files
21.4 클라이언트 측 NFS
__부트 시 원격 파일 시스템 마운트
__권한이 주어진 포트로의 내보내기 제한
21.5 NFS 버전 4를 위한 식별 매핑
21.6 NFSSTAT: NFS 통계 덤프
21.7 전용 NFS 파일 서버
21.8 자동 마운트
__간접 맵
__직접 맵
__마스터 맵
__실행 가능 맵
__automount 가시성
__복제된 파일 시스템과 automount
__자동 automount(V3; 리눅스 제외)
__리눅스에만 특별한 사항
21.9 추천 자료
22장. SMB
22.1 SAMBA: 유닉스를 위한 SMB 서버
22.2 삼바 설치와 환경설정
__로컬 인증을 통한 파일 공유
__액티브 디렉터리에 의해 인증된 계정을 통해 파일 공유
__공유 설정
____홈 디렉터리 공유
____프로젝트 디렉터리 공유
22.3 SMB 파일 공유 마운트
22.4 SMB 파일 공유 탐색
22.5 삼바 보안 확인
22.6 삼바 디버깅
__smbstatus를 이용해 삼바의 상태 쿼리
__삼바 로깅 구성
__캐릭터 세트 관리
22.7 추천 자료
4부. 오퍼레이션
23장. 환경설정 관리
23.1 환경설정 관리 핵심
23.2 환경설정 관리의 위험
23.3 환경설정 관리의 요소
__오퍼레이션과 매개변수
__변수
__다양한 정보
__핸들러 변경
__바인딩
__번들과 번들 저장소
__환경
__클라이언트 인벤토리와 등록
23.4 유명한 CM 시스템 비교
__용어
__비즈니스 모델
__아키텍처 옵션
__언어 선택
__종속성 관리 옵션
__쉐프에 대한 일반적인 의견
__퍼핏에 대한 일반적인 견해
__앤서블과 솔트에 대한 일반적인 견해
__YAML: 과장됨
23.5 앤서블 소개
__앤서블 예제
__클라이언트 설정
__클라이언트 그룹
__변수 할당
__동적이고 계산된 클라이언트 그룹
__태스크 목록
__스테이트 매개변수
__반복
__Jinja와 상호작용
__템플릿 렌더링
__바인딩: 플레이와 플레이북
__롤
__환경설정 베이스 구조화를 위한 권장 사항
__앤서블 접근 옵션
23.6 솔트 소개
__미니언 설정
__미니언에 변수 값 바인딩
__미니언 매칭
__솔트 스테이트
__솔트와 Jinja
__상태 ID와 종속성
__스테이트와 실행 함수
__매개변수와 이름
__미니언즈로 스테이트 바인딩
__하이스테이트
__솔트 포뮬라
__환경
__문서화 로드맵
23.7 앤서블과 솔트 비교
__배포 유연성과 확장성
__내장 모듈과 확장성
__보안
__기타
23.8 모범 사례
23.9 추천 자료
24장. 가상화
24.1 가상화 용어
__하이퍼바이저
____완전 가상화
____반가상화
____하드웨어 보조 가상화
____반가상화 드라이버
____현대의 가상화
____타입 1과 타입 2 하이퍼바이저
__라이브 마이그레이션
__가상 머신 이미지
__컨테이너화
24.2 리눅스 가상화
__Xen
__Xen 게스트 설치
__KVM
__KVM 게스트 설치
24.3 FreeBSD bhyve
24.4 VMware
24.5 VirtualBox
24.6 패커
24.7 베이그런트
24.8 추천 자료
25장. 컨테이너
25.1 기본과 핵심 개념
__커널 지원
__이미지
__네트워킹
25.2 도커: 오픈소스 컨테이너 엔진
__기본 구조
__설치
__클라이언트 설정
__컨테이너 예제
__볼륨
__데이터 볼륨 컨테이너
__도커 네트워크
____네임스페이스와 브리지 네트워크
____네트워크 오버레이
__스토리지 드라이버
__dockerd 옵션 변경
__이미지 빌딩
____기본 이미지 선택
____Dockerfile에서 빌드
____수정된 Dockerfile 구성
__레지스트리
25.3 현실에서의 컨테이너
__로깅
__보안 권장 사항
____데몬으로의 접근 제한
____TLS 사용
____권한 없는 사용자로 프로세스 실행
____읽기 전용 루트 파일 시스템 사용
____자격 제한
____보안 이미지
__디버깅과 문제 해결
25.4 컨테이너 클러스터링과 관리
__컨테이너 관리 소프트웨어 개요
__쿠버네티스
__메소스와 마라톤
__도커 스웜
__AWS EC2 컨테이너 서비스
25.5 추천 자료
26장. 지속적인 통합 및 배포
26.1 CI/CD 핵심 사항
__이론과 연습
____리비전 제어 사용
____빌드는 한 번, 배포는 자주
____처음부터 끝까지 자동화
____통합 커밋마다 빌드
____책임 공유
____빌드와 수정을 빠르게
____감사와 검증
__환경
__기능 플래그
26.2 파이프라인
__빌드 절차
__테스트
__배포
__중지 시간 없는 배포 기술
26.3 젠킨스: 오픈소스 자동화 서버
__기본 젠킨스 개념
__분산 빌드
__코드형 파이프라인
26.4 현실에서의 CI/CD
__UlsahGo, 기초적인 웹 애플리케이션
__UlsahGo 유닛 테스트
__젠킨스 파이프라인에서 첫 단계 수행
__디지털오션 이미지 빌드
__테스트를 위한 단일 시스템 프로비저닝
__드롭릿 테스트
__드롭릿 페어 와 로드밸런서로 UlsahGo 배포
__예제 파이프라인의 결론
26.5 컨테이너와 CI/CD
__빌드 환경으로 사용하는 컨테이너
__빌드 아티팩트로서의 컨테이너 이미지
26.6 추천 자료
27장. 보안
27.1 보안 요소
27.2 보안이 깨지는 모습
__소셜 엔지니어링
__소프트웨어 취약점
__분산 서비스 거부 공격(DDoS)
__내부 남용
__네트워크, 시스템, 애플리케이션 환경설정 에러
27.3 기본 보안 대책
__소프트웨어 업데이트
__불필요한 서비스
__원격 이벤트 로깅
__백업
__바이러스와 웜
__루트킷
__패킷 필터링
__암호와 다중 요소 인증
__경계
__애플리케이션 침투 테스트
27.4 암호와 사용자 계정
__암호 변경
__패스워드 볼트와 패스워드 에스크로
__암호 에이징
__그룹 로그인과 공유 로그인
__사용자 셸
__루트 엔트리
27.5 보안을 위한 강력한 도구
__엔맵: 네트워크 포트 스캐너
__네서스: 차세대 네트워크 스캐너
__메타스플로잇: 침투 테스트 소프트웨어
__리니스: 온박스 보안 감사
__존 더 리퍼: 안전하지 않은 암호 추적
__브로: 프로그래밍 가능한 네트워크 침투 탐지 시스템
__스노트: 유명 네트워크 침투 탐지 시스템
__OSSEC: 호스트 기반 침투 탐지
____OSSEC 기본 개념
____OSSEC 설치
____OSSEC 환경설정
__페일투밴: 무차별 대입 공격 대응 시스템
27.6 암호문 입문
__대칭키 암호화
__공개키 암호화
__공개키 인프라스트럭처
__전송 계층 보안
__암호 해시 함수
__난수 생성
__암호화 소프트웨어 선택
__openssl 명령
____키와 인증서 준비
____TLS 서버 디버깅
__PGP: Pretty Good Privacy
__커버로스: 네트워크 보안으로의 단일 접근
27.7 SSH, 보안 셸
__OpenSSH 핵심
__ssh 클라이언트
__공개키 인증
__ssh-agent
__~/.ssh/config의 호스트 앨리어스
__연결 멀티플렉싱
__포트 포워딩
__sshd: OpenSSH 서버
__SSHFP를 통한 호스트 키 인증
__파일 전송
__보안 로그인 대체재
27.8 방화벽
__패킷 필터링 방화벽
__서비스 필터링
__스테이트풀 검사 방화벽
__방화벽: 안전한가?
27.9 가상 사설 네트워크(VPN)
__IPsec 터널
__필요한 것이 VPN뿐인가?
27.10 인증서와 표준
__인증
__보안 표준
____ISO 27001:2013
____PCD DSS
____NIST 800 시리즈
____공통 평가 기준
____OWASP: 오픈 웹 애플리케이션 보안 프로젝트
____CIS
27.11 보안 정보의 출처
__securityfocus.com, BugTraq 메일링 리스트, OSS 메일링 리스트
__보안 전문가 슈나이어
__버라이즌 데이터 위반 검사 보고서
__SANS 인스티튜트
__배포판 특정 보안 자원
__기타 메일링 리스트와 웹 사이트
27.12 사이트가 공격 당했을 때
27.13 추천 자료
28장. 모니터링
28.1 모니터링 개요
__수단
__데이터 유형
__유입과 처리
__통지
__대시보드와 UI
28.2 모니터링 문화
28.3 모니터링 플랫폼
__오픈소스 실시간 플랫폼
____나기오스와 아이신가
____센수
__오픈소스 시계열 플랫폼
____그라파이트
____프로메테우스
____인플럭스DB
____무닌
__오픈소스 차트 플랫폼
__상용 모니터링 플랫폼
__호스팅되는 모니터링 플랫폼
28.4 데이터 수집
__StatsD: 일반 데이터 제출 프로토콜
__명령 출력에서 데이터 수집
28.5 네트워크 모니터링
28.6 시스템 모니터링
__시스템 모니터링을 위한 명령
__collectd: 일반 시스템 데이터 수집기
__sysdig와 dtrace: 실행 추적
28.7 애플리케이션 모니터링
__로그 모니터링
__슈퍼바이저 + 무닌: 제한된 도메인을 위한 간단한 옵션
__상용 애플리케이션 모니터링 도구
28.8 보안 모니터링
__시스템 무결성 검증
__침입 탐지 모니터링
28.9 SNMP: 간이 망 관리 프로토콜
__SNMP 구조
__SNMP 프로토콜 동작
__Net-SNMP: 서버용 도구
28.10 모니터링을 위한 팁과 요령
28.11 추천 자료
29장. 성능 분석
29.1 성능 튜닝 철학
29.2 성능을 향상시키는 방법
29.3 성능에 영향을 주는 요소
29.4 도난당한 CPU 사이클
29.5 성능 문제 분석
29.6 시스템 성능 점검
__장비 재고 조사
__성능 데이터 수집
__CPU 사용량 분석
__시스템이 메모리를 관리하는 방법
__메모리 사용량 분석
__디스크 I/O 분석
__fio: 스토리지 서브시스템 성능
__sar: 시간에 따른 통계 수집과 보고
__리눅스 I/O 스케줄러 선택
__perf: 리눅스 시스템을 자세히 프로파일링
29.7 서버가 느려진 경우 참고 사항
29.8 추천 자료
30장. 데이터 센터 기초
30.1 랙
30.2 전력
__랙 전력 요구 사항
__kVA와 kW
__에너지 효율
__계측
__비용
__원격 제어
30.3 냉각과 환경
__냉각 부하 추정
__지붕, 벽, 창문
__전자 장비
__조명 기구
__운영자
__전체 열 부하
__열기 통로와 냉기 통로
__습도
__환경 모니터링
30.4 데이터 센터 안정성 티어
30.5 데이터 센터 보안
__위치
__경계
__시설 접근
__랙 접근
30.6 도구
30.7 추천 자료
31장. 방법론, 정책, 정치
31.1 거대 통합 이론: 데브옵스
__데브옵스는 CLAMS다
____문화
____간결함
____자동화
____측정
____공유
__데브옵스 세계의 시스템 관리
31.2 티켓과 작업 관리 시스템
__티켓 시스템의 공통 기능
__티켓 소유권
__티켓 시스템의 사용자 수락
__샘플 티켓 시스템
__티켓 올리기
31.3 로컬 문서 유지 관리
__코드로서의 인프라
__문서화 표준
31.4 환경 분리
31.5 재난 관리
__위험 평가
__복구 계획
__재해에 대비한 인력 배치
__보안 사고
31.6 IT 정책과 절차
__정책과 절차의 차이점
__정책 모범 사례
__프로시저
31.7 서비스 수준 계약
__서비스 범위와 설명
__대기열 우선순위 정책
__적합성 측정
31.8 규정 준수: 규정과 표준
31.9 법적 문제
__개인 정보 보호
__정책 집행
__통제 = 책임
__소프트웨어 라이선스
31.10 조직, 회의, 기타 리소스
31.11 추천도서
부록 A. 시스템 관리의 간략한 역사
Author
에비 네메스,가스 스나이더,트렌트 헤인,벤 웨일리,댄 맥킨,김세영,정윤선
2001년에 콜로라도 대학의 컴퓨터 과학 교수진에서 은퇴했다. 2013년에 바다에서 길을 잃기 전에 원더랜드(Wonderland)라는 이름의 40피트 범선을 타고 태평양을 탐험했다. 마지막으로 적극 참여한 책은 4판이지만 가능한 한 그녀의 글을 그대로 유지하려고 노력했다.
2001년에 콜로라도 대학의 컴퓨터 과학 교수진에서 은퇴했다. 2013년에 바다에서 길을 잃기 전에 원더랜드(Wonderland)라는 이름의 40피트 범선을 타고 태평양을 탐험했다. 마지막으로 적극 참여한 책은 4판이지만 가능한 한 그녀의 글을 그대로 유지하려고 노력했다.