2008. 3. 13.

[linux] CentOs bible

제1부. CentOS 리눅스 소개와 설치

1장. 리눅스란 무엇인가? ……………………………………………………………………………………………31
1.1 리눅스 소개 …………………………………………………………………………………………31
1.1.1 리눅스는 운영체제 소프트웨어이며, 운영체제의 핵심요소는 커널이다. ………………31
1.1.2 리누스 토발즈(Linus Benedict Torvalds)와 리눅스의 탄생 ……………………………32
1.1.3 리차드 스톨만(Richard Stallman) ……………………………………………………………41
1.1.4 GNU 정신(GNU is not UNIX) …………………………………………………………………42
1.1.5 리눅스 마스코트 펭귄 …………………………………………………………………………45
1.2 CentOS 리눅스의 특징 ………………………………………………………………………………47
1.3 리눅스 배포판의 역사와 배포판의 종류 …………………………………………………………51
1.3.1 MCC Interim 리눅스 배포판……………………………………………………………………51
1.3.2 SLS 리눅스 배포판 ……………………………………………………………………………52
1.3.3 슬랙웨어 리눅스 ………………………………………………………………………………53
1.3.4 Yggdrasil 리눅스 ………………………………………………………………………………54
1.3.5 레드햇 리눅스 …………………………………………………………………………………54
1.3.6 데비안 리눅스 …………………………………………………………………………………56
1.3.7 수세 리눅스 ……………………………………………………………………………………57
1.3.8 맨드레이크 리눅스 ……………………………………………………………………………58
1.3.9 젠투 리눅스 ……………………………………………………………………………………59
1.3.10 우분투 리눅스 ………………………………………………………………………………59
1.3.11 CentOS 리눅스 ..........................................................................................61
1.3.12 SULinux(수리눅스) ........................................................................................63

2장. CentOS 리눅스 설치……………………………………………………………………………………………67
2.1 설치전 준비사항 ……………………………………………………………………………………67
2.1.1 하드웨어 점검 …………………………………………………………………………………67
2.1.2 디스크 용량 점검 ………………………………………………………………………………67
2.1.3 설치디스크 준비 ………………………………………………………………………………67
2.1.4 부팅장치 설정 …………………………………………………………………………………68
2.2 그래픽 모드 설치 ……………………………………………………………………………………68
2.2.1 설치 시작 ………………………………………………………………………………………68
2.2.2 언어 선택 ………………………………………………………………………………………71
2.2.3 키보드 타입 선택 ……………………………………………………………………………72
2.2.4 파티션 설정 …………………………………………………………………………………72
2.2.5 부트로더 설정 …………………………………………………………………………………79
2.2.6 네트워크 설정 …………………………………………………………………………………79
2.2.7 시간 설정 ………………………………………………………………………………………81
2.2.8 root 암호 설정 ………………………………………………………………………………… 82
2.2.9 패키지 선택 ……………………………………………………………………………………82
2.2.10 설치파일 복사 …………………………………………………………………………………84
2.2.11 설치완료 …………………………………………………………………………………87
2.2.12 재부팅 …………………………………………………………………………………………88
2.3 설정 에이전트 ………………………………………………………………………………………89
2.3.1 환영 메시지 ……………………………………………………………………………………89
2.3.2 방화벽 설정 ……………………………………………………………………………………90
2.3.3 SELinux …………………………………………………………………………………………90
2.3.4 Kdump ………………………………………………………………………………………91
2.3.5 날짜 및 시간 ……………………………………………………………………………………91
2.3.6 사용자 생성 ……………………………………………………………………………………92
2.3.7 사운드 카드 ……………………………………………………………………………………92
2.3.8 추가 CD ………………………………………………………………………………………… 93
2.3.9 재부팅 …………………………………………………………………………………………93
2.4 텍스트 모드 설치 ……………………………………………………………………………………97
2.4.1 설치 시작 ………………………………………………………………………………………97
2.4.2 언어 선택 ………………………………………………………………………………………98
2.4.3 키보드 타입 선택 ……………………………………………………………………………99
2.4.4 파티션 설정 ……………………………………………………………………………………100
2.4.5 부트로더 설정 …………………………………………………………………………………106
2.4.6 네트워크 설정 …………………………………………………………………………………108
2.4.7 시간 설정 ………………………………………………………………………………………110
2.4.8 root 암호설정 ………………………………………………………………………………… 110
2.4.9 패키지 선택 …………………………………………………………………………………111
2.4.10 설치파일 복사…………………………………………………………………………………112
2.4.11 재부팅 ………………………………………………………………………………………115
2.4.12 SETUP ………………………………………………………………………………………116
2.5 네트워크로 리눅스 설치하기 ……………………………………………………………………117
2.5.1 설치 시작 ……………………………………………………………………………………117
2.5.2 언어 선택 ……………………………………………………………………………………118
2.5.3 키보드 타입 선택 ……………………………………………………………………………118
2.5.4 설치방식 선택 ………………………………………………………………………………119
2.5.5 네트워크 설정 …………………………………………………………………………………119
2.5.6 서버 정보 입력 ………………………………………………………………………………120
2.6 FTP를 이용하여 설치하기 ………………………………………………………………………122
2.7 NFS를 이용하여 설치하기 …………………………………………………………………………122

3장. CentOS 리눅스 부트로더 GRUB …………………………………………………………………………123
3.1 GRUB란? ……………………………………………………………………………………………123
3.2 GRUB 둘러보기 ……………………………………………………………………………………123
3.3 GRUB 장치명 ………………………………………………………………………………………126
3.4 GRUB 설정 파일 ……………………………………………………………………………………127
3.5 GRUB 명령어 ………………………………………………………………………………………129

제2부. CentOS 리눅스 부팅과 기초관리

4장. CentOS 리눅스 시작과 종료 ………………………………………………………………………………139
4.1 리눅스 부팅 과정 ……………………………………………………………………………………139
4.1.1 BIOS 실행 ………………………………………………………………………………………139
4.1.2 자체진단기능(POST) 수행……………………………………………………………………139
4.1.3 부팅매체 검색과 부트로더 실행 ……………………………………………………………139
4.1.4 GRUB 실행 …………………………………………………………………………………… 139
4.1.5 init 프로세스 실행 …………………………………………………………………………… 139
4.1.6 init에 의해 /etc/rc.d/rc.sysinit 실행 ………………………………………………………140
4.1.7 부팅레벨별 스크립트 실행 …………………………………………………………………141
4.1.8 /etc/rc.d/rc.local 실행 ………………………………………………………………………142
4.1.9 CTRL+ALT+DEL 설정…………………………………………………………………………142
4.1.10 전원관리 설정 ……………………………………………………………………………… 143
4.1.11 6개의 가상콘솔 실행…………………………………………………………………………143
4.1.12 로그인 프롬프트 …………………………………………………………………………… 143
4.2 리눅스 로그인 ……………………………………………………………………………………… 144
4.2.1 그래픽 모드에서의 로그인 …………………………………………………………………144
4.2.2 텍스트 모드에서의 로그인 …………………………………………………………………146
4.2.3 원격 로그인 …………………………………………………………………………………147
4.3 시스템 종료와 재부팅 …………………………………………………………………………… 149
4.3.1 shutdown ……………………………………………………………………………………149
4.3.2 halt ……………………………………………………………………………………………151
4.3.3 init ……………………………………………………………………………………………… 151
4.3.4 reboot …………………………………………………………………………………………153
4.3.5 로그아웃 ………………………………………………………………………………………153

5장. CentOS 리눅스 사용자 관리 ………………………………………………………………………………155
5.1 사용자 추가 ……………………………………………………………………………………… 155
5.1.1 useradd ……………………………………………………………………………………… 155
5.2 사용자 비밀번호 설정 …………………………………………………………………………… 158
5.2.1 passwd ………………………………………………………………………………………… 158
5.3 사용자 삭제 ……………………………………………………………………………………… 158
5.3.1 userdel ……………………………………………………………………………………… 159
5.4 그룹 추가 삭제 …………………………………………………………………………………… 159
5.4.1 groupadd ……………………………………………………………………………………159
5.4.2 groupdel ………………………………………………………………………………………160
5.5 유저 정보 조회 ……………………………………………………………………………………161
5.5.1 id ………………………………………………………………………………………………161
5.5.2 groups …………………………………………………………………………………………162
5.6 사용자 정보 수정 …………………………………………………………………………………162
5.6.1 usermod ………………………………………………………………………………………162
5.7 사용자 전환 …………………………………………………………………………………………163
5.7.1 su ………………………………………………………………………………………………163

6장. CentOS 리눅스 디렉토리 관리 ……………………………………………………………………………165
6.1 pwd …………………………………………………………………………………………………165
6.2 cd ……………………………………………………………………………………………………165
6.3 ls …………………………………………………………………………………………………… 166
6.4 mkdir …………………………………………………………………………………………………169
6.5 rmdir …………………………………………………………………………………………………170

7장. CentOS 리눅스 파일관리 …………………………………………………………………………………173
7.1 touch …………………………………………………………………………………………………173
7.2 퍼미션 …………………………………………………………………………………………………174
7.3 cp ……………………………………………………………………………………………………175
7.4 mv …………………………………………………………………………………………………… 177
7.5 rm ……………………………………………………………………………………………………179
7.6 cat ……………………………………………………………………………………………………181
7.7 more …………………………………………………………………………………………………182
7.8 less …………………………………………………………………………………………………183
7.9 find …………………………………………………………………………………………………184
7.10 grep ………………………………………………………………………………………………187
7.11 파이프 ……………………………………………………………………………………………188
7.12 리다이렉션 ………………………………………………………………………………………189
7.13 chmod ……………………………………………………………………………………………190
7.14 chown ……………………………………………………………………………………………190
7.15 chgrp ………………………………………………………………………………………………191

8장. CentOS 리눅스 파일 압축 관리 …………………………………………………………………………193
8.1 tar ……………………………………………………………………………………………………193
8.1.1 gzip 이용하기 ………………………………………………………………………………194
8.1.2 bzip2 이용하기 ………………………………………………………………………………194

9장. CentOS 리눅스 패키지 관리 ………………………………………………………………………………195
9.1 RPM이란? …………………………………………………………………………………………195
9.2 RPM파일의 기본구성 ……………………………………………………………………………195
9.3 RPM패키지 설치 …………………………………………………………………………………196
9.3.1 rpm ……………………………………………………………………………………………196
9.3.2 mc설치 ………………………………………………………………………………………197
9.3.3 RPM 패키지 정보 보기 ……………………………………………………………………198
9.3.4 RPM 패키지 삭제하기 ……………………………………………………………………199
9.4 yum 다루기 ………………………………………………………………………………………200
9.4.1 yum ……………………………………………………………………………………………200
9.4.2 mc설치 ………………………………………………………………………………………200
9.4.3 패키지 정보 보기 ……………………………………………………………………………202
9.4.4 패키지 제거하기 ……………………………………………………………………………203
9.4.5 업데이트 가능한 패키지 검색 …………………………………………………………… 204

10장. CentOS 리눅스 시간 관리 ………………………………………………………………………………209
10.1 clock ……………………………………………………………………………………………209
10.1.1 CMOS 시간 확인하기 ……………………………………………………………………210
10.1.2 리눅스 시스템 시각으로 CMOS 시간 설정하기 ……………………………………210
10.1.3 CMOS시간으로 리눅스 시스템 시간 설정하기 ………………………………………210
10.2 date …………………………………………………………………………………………………210
10.2.1 시스템의 시간을 출력하기 ………………………………………………………………212
10.2.2 시간 설정 하기 ……………………………………………………………………………213
10.3 rdate ………………………………………………………………………………………………213
10.3.1 시간 동기화 …………………………………………………………………………………214

11장. CentOS 리눅스 디렉토리 구조 ………………………………………………………………………… 215
11.1 / (root) 디렉토리 …………………………………………………………………………………215
11.1.1 / 디렉토리의 하위디렉토리 ………………………………………………………………215
11.2 하위 디렉토리 ……………………………………………………………………………………217
11.2.1 bin ……………………………………………………………………………………………217
11.2.2 boot …………………………………………………………………………………………217
11.2.3 dev ……………………………………………………………………………………………218
11.2.4 etc ……………………………………………………………………………………………218
11.2.5 home …………………………………………………………………………………………219
11.2.6 lib ……………………………………………………………………………………………219
11.2.7 media ………………………………………………………………………………………219
11.2.8 mnt …………………………………………………………………………………………219
11.2.9 opt …………………………………………………………………………………………219
11.2.10 proc …………………………………………………………………………………………219
11.2.11 root …………………………………………………………………………………………221
11.2.12 sbin …………………………………………………………………………………………221
11.2.13 srv …………………………………………………………………………………………… 222
11.2.14 sys …………………………………………………………………………………………222
11.2.15 tmp ………………………………………………………………………………………… 222
11.2.16 usr …………………………………………………………………………………………… 222
11.2.17 var …………………………………………………………………………………………223
11.2.18 lost+found …………………………………………………………………………………223

12장. CentOS 리눅스 파일시스템 ………………………………………………………………………………225
12.1 파일시스템의 종류 ……………………………………………………………………………… 225
12.2 파일시스템관련 설정파일과 명령어 …………………………………………………………… 226
12.2.1 /etc/fstab …………………………………………………………………………………226
12.2.2 /etc/mtab …………………………………………………………………………………228
12.3 파일 시스템 관리 명령어 ……………………………………………………………………… 229
12.3.1 fdisk ……………………………………………………………………………………… 229
12.3.2 배드 블럭 점검 ……………………………………………………………………………235
12.3.3 파일 시스템 작성 …………………………………………………………………………236
12.3.4 하드디스크 마운트와 마운트 해제 ……………………………………………………238
12.3.5 마운트 해제 ………………………………………………………………………………241
12.3.6 하드디스크 정보 보기 ……………………………………………………………………242
12.3.7 파일 및 디렉토리 사용량 보기 …………………………………………………………243
12.3.8 파일 시스템 점검 …………………………………………………………………………244

제3부. CentOS 리눅스 시스템관리

13장. CentOS 리눅스 시스템 자동화 …………………………………………………………………………247
13.1 crontab ……………………………………………………………………………………………247
14장. CentOS 리눅스 로그관리 …………………………………………………………………………………251
14.1 주요 로그 파일 …………………………………………………………………………………251
14.1.1 /var/log/maillog ……………………………………………………………………………251
14.1.2 /var/log/messages ………………………………………………………………………252
14.1.3 /var/log/secure …………………………………………………………………………252
14.1.4 /var/log/lastlog …………………………………………………………………………253
14.1.5 /var/log/boot.log ………………………………………………………………………254
14.1.6 /var/log/dmesg …………………………………………………………………………254
14.1.7 /var/log/cron ……………………………………………………………………………255
14.1.8 /var/log/wtmp ……………………………………………………………………………256
14.1.9 /var/log/xferlog …………………………………………………………………………257
14.2 로그관리를 위한 프로그램 ……………………………………………………………………257
14.2.1 syslogd ……………………………………………………………………………………257
14.2.2 logrotate ……………………………………………………………………………………260

15장. rsync를 이용한 원격백업 …………………………………………………………………………………265
15.1 서버측 설정 ………………………………………………………………………………………265
15.2 클라이언트 설정 …………………………………………………………………………………267

16장. CentOS 리눅스 유저 사용량 제한 ………………………………………………………………………269
16.1 Quota 설치 ………………………………………………………………………………………269
16.2 Quota 설정 ………………………………………………………………………………………269
16.3 Quota 시작 ………………………………………………………………………………………270

17장. CentOS 리눅스 메모리관리 ………………………………………………………………………………275
17.1 free …………………………………………………………………………………………………275
18장. CentOS 리눅스 프로세스관리 ……………………………………………………………………………277
18.1 ps ……………………………………………………………………………………………………277
18.2 pstree ………………………………………………………………………………………………279
18.3 kill …………………………………………………………………………………………………… 280
18.4 top …………………………………………………………………………………………………281

19장. CentOS 리눅스 서비스 관리 ……………………………………………………………………………283
19.1 ntsysv ……………………………………………………………………………………………283
19.2 chkconfig …………………………………………………………………………………………284
19.3 service ……………………………………………………………………………………………… 285

20장. CentOS 리눅스 시스템 설정 유틸리티 …………………………………………………………………287
20.1 setup ………………………………………………………………………………………………287

21장. CentOS 리눅스 네트워크 관리 …………………………………………………………………………291
21.1 ping …………………………………………………………………………………………………291
21.2 ifconfig ……………………………………………………………………………………………293
21.3 네트워크 장치 설정 툴 ……………………………………………………………………… 297
21.4 nslookup …………………………………………………………………………………………… 300
21.5 netstat …………………………………………………………………………………………… 301
21.6 hostname ………………………………………………………………………………………… 302

22장. CentOS 리눅스 커널 ………………………………………………………………………………………305
22.1 리눅스 커널 소개 ………………………………………………………………………………305
22.1.1 커널이란? …………………………………………………………………………………… 305
22.2 커널 컴파일 ………………………………………………………………………………………306
22.2.1 커널 버전 확인하기 ……………………………………………………………………… 306
22.2.2 커널 소스 다운로드 ……………………………………………………………………… 306
22.2.3 커널 설정값 초기화 ……………………………………………………………………… 308
22.2.4 커널 옵션 설정 …………………………………………………………………………… 308
22.2.5 커널 이미지 생성 ………………………………………………………………………… 331
22.2.6 커널 모듈생성 …………………………………………………………………………… 332
22.2.7 커널 관련파일 복사 ……………………………………………………………………… 334
22.2.8 재부팅 ……………………………………………………………………………………… 336
제4부. CentOS 리눅스 서버운영

23장. CentOS 리눅스 DNS 관리 ………………………………………………………………………………339
23.1 도메인이란 ……………………………………………………………………………………… 339
23.1.1 도메인 이름(Domain Name) 관리기구 …………………………………………………340
23.1.1.1 IANA ………………………………………………………………………340
23.1.1.2 ICANN …………………………………………………………………………340
23.1.1.3 KRNIC …………………………………………………………………………340
23.2 DNS 구조 ……………………………………………………………………………………………341
23.2.1 도메인의 종류와 성격 ………………………………………………………………………344
23.2.1.1 국제 도메인 ……………………………………………………………………344
23.2.1.2 국내 도메인(.kr) 네임체계 …………………………………………………345
23.3 DNS 서비스 …………………………………………………………………………………………346
23.3.1 DNS 서비스 구조 ………………………………………………………………………346
23.3.2 DNS 서버 처리 과정 ……………………………………………………………………350
23.3.3 도메인 이름 생성 규칙 …………………………………………………………………352
23.3.4 네임서버의 역할 …………………………………………………………………………352
23.3.5 네임서버 유형 ……………………………………………………………………………353
23.3.6 DNS 네임서버와 리졸버 개요 …………………………………………………………356
23.3.7 DNS 도메인 위임 설정(서브 도메인) ………………………………………………358
23.3.8 도메인 네임 리졸루션 ……………………………………………………………………364
23.4 CentOS 리눅스에서의 네임서버 설치, 운영 …………………………………………………366
23.4.1 네임서버 설치 패키지 ……………………………………………………………………366
23.4.2 네임서버 설치하기 ………………………………………………………………………367
23.4.3 네임서버 정보 검색 유틸리티 …………………………………………………………369
23.4.3.1 host ……………………………………………………………………………369
23.4.3.2 dig ……………………………………………………………………………370
23.4.3.3 nslookup …………………………………………………………………… 372
23.5 CentOS 네임서버 운영을 위한 설정파일 ………………………………………………………375
23.5.1 /etc/named.caching-nameserver.conf ……………………………………………375
23.5.2 /etc/named.rfc1912.zones ……………………………………………………………380
23.5.3 네임서버 존파일 작성법(/var/named 디렉토리) …………………………………396
23.6 네임버서를 이용한 부하분산 방법(Round Robin) ………………………………………… 403

24장. CentOS 리눅스 FTP 서버 운영 …………………………………………………………………………409
24.1 proftpd 서버 설치와 설정, 운영 ………………………………………………………………410
24.1.1 proftpd 서버 설치 ………………………………………………………………………411
24.1.2 proftpd 서버 실행과 접속 테스트 ……………………………………………………425
24.1.3 proftpd 서버 시작 스크립트 생성 ……………………………………………………432
24.1.4 proftpd 서버 설정파일 …………………………………………………………………437
24.1.5 proftpd 서버 로그파일 관리 ……………………………………………………………466
24.2 proftpd 서버의 포트 기반 가상 ftp 서버 운영 ……………………………………………… 467
24.2.1 가상 ftp 디렉토리 생성하기 …………………………………………………………… 467
24.2.2 iptables 방화벽 설정에 2121 포트번호 오픈하기 …………………………………468
24.2.3 proftpd.conf 파일에 가상 ftp 지시자 설정하기 ……………………………………469
24.3 vsftpd 서버 설치와 설정 및 운영 ………………………………………………………………472
24.3.1 vsftpd 서버 소스파일 다운로드와 설치 ………………………………………………472
24.3.2 vsftpd 서버 환경설정과 실행하기 ……………………………………………………476
24.3.3 vsftpd 서버 시작 스크립트 생성 ………………………………………………………491

25장. DHCP 서버와 IP 마스크레이드 …………………………………………………………………………499
25.1 DHCP란 ……………………………………………………………………………………………499
25.2 DHCP 서버 설치 …………………………………………………………………………………500
25.3 DHCP 서버 설정 …………………………………………………………………………………504
25.4 클라이언트 접속 설정 ……………………………………………………………………………508
25.5 IP마스크레이드(인터넷 공유) …………………………………………………………………511

26장. CentOS 리눅스 웹서버 구축관리 ………………………………………………………………………519
26.1 웹서버란? ………………………………………………………………………………………… 519
26.2 APM이란? ……………………………………………………………………………………………519
26.2.1 Apache란? …………………………………………………………………………………519
26.2.2 PHP란? ………………………………………………………………………………………520
26.2.3 MySQL이란? ……………………………………………………………………………… 521
26.3 설치 전 준비사항 ……………………………………………………………………………… 521
26.3.1 기존 패키지 삭제 ……………………………………………………………………………522
26.3.2 필요한 파일 다운로드 ………………………………………………………………………523
26.3.3 라이브러리, 컴파일러 확인 ………………………………………………………………530
26.4 MySQL설치 …………………………………………………………………………………………537
26.4.1 압축 해제 ……………………………………………………………………………………537
26.4.2 mysql 계정 생성 ……………………………………………………………………………537
26.4.3 ./configure 실행 ……………………………………………………………………………537
26.4.4 make && make install 설치 ………………………………………………………………538
26.4.5 환경설정파일 복사 …………………………………………………………………………539
26.4.6 기본 DB 생성 ………………………………………………………………………………540
26.4.7 디렉토리 권한 설정 …………………………………………………………………………540
26.4.8 환경변수 등록 ………………………………………………………………………………540
26.4.9 자동실행 설정 ………………………………………………………………………………540
26.4.10 root암호 등록 & 테스트 …………………………………………………………………541
26.5 Apache 설치 ………………………………………………………………………………………542
26.5.1 압축해제 ………………………………………………………………………………………542
26.5.2 ./configure 실행 ……………………………………………………………………………542
26.5.3 make && make install 설치 ………………………………………………………………543
26.5.4 자동실행 설정 ………………………………………………………………………………544
26.5.5 환경설정 ………………………………………………………………………………………545
26.6 PHP 설치 …………………………………………………………………………………………546
26.6.1 압축해제 ………………………………………………………………………………………546
26.6.2 ./configure 실행 ……………………………………………………………………………547
26.6.3 make && make install 실행 ………………………………………………………………549
26.6.4 환경설정 ………………………………………………………………………………………550
26.6.5 테스트 …………………………………………………………………………………………550
26.7 환경설정 …………………………………………………………………………………………… 553
26.7.1 Apache 환경설정(httpd.conf) ……………………………………………………………553
26.7.2 php 환경설정(php.ini) ………………………………………………………………………586
26.7.3 MySQL 환경설정(my.cnf) …………………………………………………………………597
26.8 좀 더 나은 웹서버 운영을 위한 Tip ………………………………………………………… 599
26.8.1 가상호스트 설정 …………………………………………………………………………… 599
26.8.2 웹에서 MySQL관리하기(phpmyadmin) ………………………………………………… 601
26.8.3 ZendOptimizer ……………………………………………………………………………… 608
26.8.4 트래픽 관리(mod_cband) ………………………………………………………………614
26.8.5 DOS공격 방어(mod_evasive) ……………………………………………………………623
26.8.6 웹 통계 관리(webalizer)…………………………………………………………………… 628
26.8.7 mysql 최적화 스크립트 ……………………………………………………………………631
26.8.8 php 확장모듈 동적으로 추가하기 ……………………………………………………… 632
26.9 APM 테스트 ………………………………………………………………………………………634
26.9.1 DB와 사용자 생성 ………………………………………………………………………… 634
26.9.2 PHP 소스파일 작성 …………………………………………………………………………637
26.9.3 제로보드 설치 ………………………………………………………………………………642
26.9.4 그누보드 설치 ………………………………………………………………………………651
26.9.5 테터툴즈 설치 ………………………………………………………………………………660

27장. CentOS 리눅스 메일서버 구축관리 ……………………………………………………………………671
27.1 메일 서버란? ……………………………………………………………………………………671
27.2 Sendmail 서버 ……………………………………………………………………………………673
27.2.1 Sendmail 서버 설치 ……………………………………………………………………673
27.2.2 Sendmail 서버 환경 설정 ……………………………………………………………677
27.2.3 Sendmail 서버의 시작과 종료 …………………………………………………………687
27.2.4 Sendmail 서버 접속 테스트 ……………………………………………………………688
27.2.5 Sendmail 서버 핵심 환경 설정 파일들 ………………………………………………701
27.2.5.1 /etc/mail/local-host-names ……………………………………………702
27.2.5.2 /etc/mail/access ……………………………………………………………703
27.2.5.3 /etc/mail/virtusertable ……………………………………………………… 714
27.2.5.4 /etc/aliases ……………………………………………………………………718
27.2.5.5 .forward 메일 포워딩 ………………………………………………………722
27.2.5.6 /etc/mail/domaintable ……………………………………………………726
27.2.6 Sendmail의 smtp 메일 발송 인증 제한하기 …………………………………………726
27.2.7 pop3, imap 서버 dovecot ………………………………………………………………728
27.2.7.1 dovecot 설치, 설정 …………………………………………………………729
27.2.7.2 썬더버드 메일 클라이언트 설정 및 사용법 ………………………………739
27.2.7.3 아웃룩 메일 클라이언트 ……………………………………………………746
27.2.7.4 Squirrel 웹메일 구축하기 ……………………………………………………749
27.3 Qmail 서버 ………………………………………………………………………………………… 761
27.3.1 qmail 이란? ………………………………………………………………………………761
27.3.2 qmail 설치 …………………………………………………………………………………764
27.3.2.1 ucspi-tcp 패치, 컴파일, 설치 …………………………………………… 766
27.3.2.2 daemontools 패치, 컴파일, 설치 ………………………………………… 769
27.3.2.3 qmail 컴파일, 설치 ………………………………………………………… 771
27.3.2.4 qmail 운영에 필요한 스크립트 작성 ………………………………………779
27.3.2.5 qmail 시작 스크립트 작성 …………………………………………………782
27.3.2.6 qmail 서버 시작과 종료 ……………………………………………………787
27.3.3 qmail 서버 메일 송신, 수신 테스트 …………………………………………………789
27.3.3.1 Maildir 디렉토리 자동생성법 ………………………………………………790
27.3.3.2 qmai에서의 메일 발송 방법 ………………………………………………791
27.3.3.3 qmail에서의 앨리아스와 메일 포워딩 …………………………………793
27.3.4 qmail 환경설정 파일 ……………………………………………………………………803
27.3.5 qmail 서버와 메일 클라이언트 사용법 ……………………………………………… 806
27.3.5.1 dovecot 설정 ……………………………………………………………… 806
27.3.5.2 썬더버드 메일 클라이언트 설정 ……………………………………………809
27.3.5.3 qmail용 squirrel 웹메일 구축하기 …………………………………………813
27.3.6 qmail + vpopmail을 이용한 가상도메인 메일 설치, 운영 ………………………820
27.3.6.1 vpopmail 다운로드, 설치 ……………………………………………………821
27.3.6.2 vpopmail 구성요소 및 설정파일들………………………………………… 825
27.3.6.3 vpopmail 도메인 추가, 메일계정 추가 ……………………………………832
27.3.6.4 기존 qmail 메일 계정 사용자를 vpopmail로 컨버팅하기 ……………836
27.3.6.5 daemontools를 이용한 qmail 시작과 종료 …………………………… 838
27.3.6.6 qmail 시작 스크립트에 vpopmail 관련 실행파일 추가 수정 …………840
27.3.6.7 pop3 접속 테스트…………………………………………………………… 845
27.3.6.8 imap 서비스를 위한 courier-imap 설치 …………………………………848
27.3.6.9 imap 서비스 설정과 접속 테스트 …………………………………………860
27.3.6.10 vpopmail과 squirrel 웹메일 ………………………………………………862
27.3.7 qmailadmin - 웹 인터페이스 vpopmail 관리 도구 …………………………………863
27.3.7.1 autorespond 설치 ……………………………………………………………863
27.3.7.2 ezmlm 설치 ……………………………………………………………………864
27.3.7.3 qmailadmin 설치………………………………………………………………865
27.3.7.4 qmailadmin 접속과 설정 ……………………………………………………868
27.3.8 vqadmin - 웹 인터페이스 vpopmail 관리 도구 …………………………………… 873
27.3.8.1 vqadmin 설치 ………………………………………………………………873
27.3.8.2 vqadmin 설정 ………………………………………………………………875
27.3.8.3 vqadmin 접속과 메뉴 설명 …………………………………………………878
27.3.9 qmHandle ? qmail queue 관리 도구 ………………………………………………… 882
27.3.9.1 qmHandle 다운로드 및 설치하기 ………………………………………… 882
27.4 스팸 메일과 바이러스 메일 필터링(qmail + vpopmail 기준) ……………………………… 888
27.4.1 procmail을 이용한 스팸 메일 필터링 …………………………………………………888
27.4.2 Simscan + ClamAV + Chkuser 메일, 바이러스 필터링 ……………………………924
27.4.2.1 Chkuser 설치와 qmail 패치 ………………………………………………924
27.4.2.2 ClamAV 설치 ? 오픈소스 안티 바이러스 프로그램 ……………………937
27.4.2.3 Simscan 설치 …………………………………………………………………944
27.4.2.4 바이러스 첨부메일 발송 테스트 ……………………………………………949

28장. CentOS 리눅스 프락시 서버(squid) 구축관리 …………………………………………………………957
28.1 프락시(proxy)란 ……………………………………………………………………………………957
28.2 squid 설치 …………………………………………………………………………………………959
28.3 squid 설정 …………………………………………………………………………………………961
28.4 squid 데몬 실행과 테스트 ………………………………………………………………………968

29장. CentOS 리눅스 NFS 서버 구축관리 ……………………………………………………………………975
29.1 NFS 설치 ……………………………………………………………………………………………975
29.2 환경설정 ………………………………………………………………………………………… 975
29.3 NFS 사용하기 ………………………………………………………………………………………976
29.4 방화벽 설정 ……………………………………………………………………………………… 978

30장. CentOS 리눅스 SAMBA 서버 구축관리 ………………………………………………………………985
30.1 삼바 설치 …………………………………………………………………………………………985
30.2 환경 설정 …………………………………………………………………………………………986
30.2.1 smb.conf ……………………………………………………………………………………986
30.2.2 방화벽 설정 …………………………………………………………………………………987
30.3 삼바서버 실행 ……………………………………………………………………………………988
30.4 디렉토리 공유 ……………………………………………………………………………………988
30.5 환경설정 파일(smb.conf) ………………………………………………………………………991
30.5.1 [global] ………………………………………………………………………………………991
30.5.2 [공유 디렉토리] ……………………………………………………………………………993
30.5.3 [homes] ………………………………………………………………………………………994
30.5.4 [printers] ……………………………………………………………………………………994
30.6 특정 유저에게만 공유 ……………………………………………………………………………994
30.6.1 리눅스 설정 …………………………………………………………………………………995
30.6.2 윈도우에서 접속 …………………………………………………………………………996
30.7 윈도우 공유폴더 접속 …………………………………………………………………………… 997
30.7.1 윈도우 공유 설정 ……………………………………………………………………………997
30.7.2 윈도우 공유폴더에 접속 ……………………………………………………………………997
30.8 삼바관련 명령어 …………………………………………………………………………………998
30.8.1 주요 명령어 …………………………………………………………………………………998
30.8.2 환경설정파일 점검 …………………………………………………………………………999
30.8.3 접속자 목록 보기 …………………………………………………………………………1000
30.9 SAMBA 웹설정툴(SWAT) ………………………………………………………………………1000
30.9.1 SWAT 설정 ………………………………………………………………………………… 1001
30.9.2 SWAT 실행 ……………………………………………………………………………… 1001

31장. CentOS 리눅스 프린터서버 구축관리 …………………………………………………………………1003
31.1 윈도우 프린터 공유 …………………………………………………………………………… 1003
31.1.1 리눅스용 프린터 드라이버 다운로드 ……………………………………………………1005
31.1.2 삼바 클라이언트 설치 ……………………………………………………………………1006
31.1.3 프린터 설치 …………………………………………………………………………………1006
31.2 리눅스 프린터 공유 …………………………………………………………………………… 1017
31.2.1 프린터 설치 …………………………………………………………………………………1017
31.2.2 윈도우에서 프린터 추가 …………………………………………………………………1025
31.3 리눅스 로컬 프린터 추가 ……………………………………………………………………… 1028

32장. CentOS 리눅스 서버 보안 ……………………………………………………………………………1031
32.1 리눅스 서버 보안에 대하여 ……………………………………………………………………1031
32.2 리눅스 시스템 기본보안원칙……………………………………………………………………1032
32.2.1 기본적인 컴파일러 속성을 root만 사용할 수 있도록 퍼미션 변경하기 ………1033
32.2.2 주요 환경 설정파일 압축 보관 ………………………………………………………1034
32.2.3 홈디렉토리 파티션과 백업 디스크를 준비한다 ……………………………………1035
32.2.4 런레벨별 시작 스크립트 활성화 상황을 분석하고 재정의한다 …………………1035
32.2.5 ssh 원격 접속 서비스 보안 ………………………………………………………… 1038
32.2.6 proftpd 서버에서의 chroot 적용 및 root 접속 제한하기 ………………………1039
32.2.7 su 명령어는 wheel 그룹 사용자만 실행 권한을 부여한다 ………………………1040
32.2.8 사용자 관련 명령어 파일속성 변경금지 설정 ………………………………………1041
32.2.9 root 소유의 SetUID, SetGID 파일 검색 후 퍼미션 조정하기 ……………………1043
32.2.10 기본 시스템 정보 오픈 파일들 점검 …………………………………………………1045
32.2.11 /etc/sysctl.conf와 /proc 파일 시스템 ……………………………………………1047
32.2.12 시작 프로그램의 수동 등록 ……………………………………………………………1071
32.2.13 서버의 표준 시간 설정 …………………………………………………………………1072
32.2.14 SetUID, SetGID, StickyBit ……………………………………………………………1072
32.2.15 파일 검색을 위한 find 명령어 사용 …………………………………………………1076
32.2.16 root 관리자 명령어와 일반 사용자 명령어 실행경로(PATH) 설정 ……………1081
32.2.17 파일 속성 설정으로 리눅스 파일변형 막기(chattr, lsattr) ………………………1082
32.2.18 TCP Wrapper를 이용한 호스트 접근 제어 ………………………………………1087
32.2.19 nmap 보안 스캐너 사용하기 ……………………………………………………1092
32.2.20 보안 쉘 접속을 위한 ssh 쉘 접속 사용 ……………………………………………1098
32.2.21 portsentry를 이용한 실시간 포트 스캔 방어 ………………………………………1102
32.2.22 chkrootkit을 이용한 rootkit 탐지 …………………………………………………1111
32.2.23 rootkithunter 설치 및 사용법 ………………………………………………………1120
32.2.24 OSSEC 유틸리티 …………………………………………………………………………1126
32.2.25 iptables를 이용한 방화벽 설정하기 ………………………………………………… 1133

33장. FreeNX 원격 데스크탑 서버 ……………………………………………………………………………1149
33.1 FreeNX 서버 설치 ………………………………………………………………………………1149
33.1.1 원격 ssh 접속 클라이언트 putty 설치 …………………………………………………1150
33.1.2 FreeNX 서버 설치와 iptables 포트 오픈하기 …………………………………………1153
33.2 FreeNX 윈도우 접속 클라이언트 설치 ………………………………………………………1163

34장. RRDtool과 cacti, iptraf 네트워크와 시스템 모니터링 도구 ………………………………………1177
34.1 RRDtool에 대하여 ………………………………………………………………………………1177
34.2 RRDtool 다운로드 및 설치하기 ………………………………………………………………1179
34.3 cacti 다운로드 및 설치하기 ……………………………………………………………………1184
34.4 iptraf 네트워크 모니터링 도구 …………………………………………………………………1199

제5부. CentOS 리눅스 프로그래밍

35장. CentOS 리눅스에서 MySQL관리 입문 …………………………………………………………………1203
35.1 MySQL 접속하기 ………………………………………………………………………………1203
35.2 root의 비밀번호 설정하기 …………………………………………………………………… 1203
35.3 MySQL 접속끊기 ………………………………………………………………………………1204
35.4 show ………………………………………………………………………………………………1206
35.4.1 데이터베이스 목록 보기 …………………………………………………………………1206
35.4.2 테이블 목록 보기 …………………………………………………………………………1206
35.4.3 테이블의 필드정보 보기 …………………………………………………………………1207
35.5 데이터베이스 생성 …………………………………………………………………………… 1208
35.6 DB 삭제 ………………………………………………………………………………………… 1209
35.7 테이블 생성 …………………………………………………………………………………… 1209
35.8 데이터 입력 ……………………………………………………………………………………… 1213
35.9 데이터 검색 ……………………………………………………………………………………… 1213
35.10 데이터 수정 ……………………………………………………………………………………1213
35.11 데이터 삭제 ……………………………………………………………………………………1214
35.12 테이블 수정하기(필드추가) ……………………………………………………………………1215
35.13 필드 삭제 ………………………………………………………………………………………1215
35.14 필드 이름 변경 ……………………………………………………………………………… 1216
35.15 WHERE …………………………………………………………………………………………1216
35.16 LIKE …………………………………………………………………………………………… 1217
35.17 LIMIT ……………………………………………………………………………………………1218
35.18 사용자 추가하기 ……………………………………………………………………………… 1219
35.19 사용자 삭제하기 ……………………………………………………………………………… 1219
35.20 MySQL 관련 명령어 ………………………………………………………………………… 1219
35.20.1 mysqladmin ………………………………………………………………………………1219
35.20.2 mysqldump ………………………………………………………………………………1221
35.20.3 mysqlshow ………………………………………………………………………………1222
35.20.4 mysqlcheck ………………………………………………………………………………1224

36장. CentOS 리눅스에서 PHP 프로그래밍하기 ……………………………………………………………1225
36.1 PHP란? ……………………………………………………………………………………………1225
36.2 시작하기 …………………………………………………………………………………………1225
36.2.1 기본 형식 …………………………………………………………………………………1225
36.2.2. 확장자 …………………………………………………………………………………… 1226
36.2.3 주석 …………………………………………………………………………………………1226
36.3 변수형 ……………………………………………………………………………………………1230
36.3.1 변수 ………………………………………………………………………………………… 1230
36.3.2 상수 …………………………………………………………………………………………1231
36.4. 배열 ………………………………………………………………………………………………1233
36.5 연산자 …………………………………………………………………………………………… 1234
36.5.1 지정연산자 ………………………………………………………………………………… 1234
36.5.2 수치연산자 …………………………………………………………………………………1234
36.5.3 문자열 연산자 …………………………………………………………………………… 1235
36.5.4 논리연산자 …………………………………………………………………………………1236
36.5.5 비교연산자 ………………………………………………………………………………… 1236
36.5.6 에러제어 연산자 ……………………………………………………………………………1237
36.6 제어문 ……………………………………………………………………………………………1237
36.6.1 if/else ………………………………………………………………………………………1237
36.6.2 switch ……………………………………………………………………………………… 1238
36.7 반복문………………………………………………………………………………………………1240
36.7.1 while ………………………………………………………………………………………1240
36.7.2 do ~ while ………………………………………………………………………………… 1241
36.7.3 for …………………………………………………………………………………………… 1242
36.7.4 break ………………………………………………………………………………………1243
36.7.5 continue ……………………………………………………………………………………1243
36.8 include ……………………………………………………………………………………………1244
36.9 함수 ………………………………………………………………………………………………1245
36.9.1 시간, 날짜 함수 …………………………………………………………………………1247
36.9.2 문자열 관련 함수 …………………………………………………………………………1250
36.9.3 MySQL관련 함수 ………………………………………………………………………… 1252
36.10 게시판 만들기 …………………………………………………………………………………1255
36.10.1 dbconn.inc …………………………………………………………………………………1255
36.10.2 create_table.php ………………………………………………………………………… 1256
36.10.3 write.php …………………………………………………………………………………1259
36.10.4 write_ok.php ………………………………………………………………………………1261
36.10.5 read.php …………………………………………………………………………………1264
36.10.6 board.php ………………………………………………………………………………1268
36.10.7 edit.php ……………………………………………………………………………………1276
36.10.8 edit_form.php ……………………………………………………………………………1277
36.10.9 edit_ok.php ………………………………………………………………………………1280
36.10.10 delete.php ………………………………………………………………………………1281
36.10.11 delete_ok.php …………………………………………………………………………1282
36.10.12 reply.php ………………………………………………………………………………1284
36.10.13 reply_ok.php ……………………………………………………………………………1286
36.10.14 댓글 기능 ……………………………………………………………………………… 1288
36.10.15 comment_write_ok.php ………………………………………………………………1288
36.10.16 comment_del.php ……………………………………………………………………… 1291
36.10.17 comment_del_ok.php …………………………………………………………………1292
36.10.18 search.php ……………………………………………………………………………1293

37장. CentOS에서의 자바 개발 환경과 톰켓 JSP 서버 ……………………………………………………1297
37.1 자바의 특징 ……………………………………………………………………………………1297
37.2 자바 설치와 이클립스 설치 ………………………………………………………………… 1299
37.3 이클립스를 이용한 자바 채팅 프로그래밍 기초 …………………………………………… 1319
37.3.1 자바 채팅 프로그램 개요 …………………………………………………………… 1319
37.3.2 서버와 클라이언트 기본 소스 코딩 …………………………………………………1319
37.3.3 메시지 출력을 위한 소스 코딩 ………………………………………………………1327
37.3.4 자바 스레드(Thread)에 대하여 ………………………………………………………1332
37.3.5 동기화(synchronization) ……………………………………………………………… 1348
37.3.6 양방향 통신을 위한 스레드 사용 ……………………………………………………1356
37.4 톰켓 JSP 서버 설치와 JSP 테스트 …………………………………………………………1371
37.4.1 톰켓 JSP 서버 설치 ………………………………………………………………… 1371
37.4.2 톰켓의 클래스 경로 설정 …………………………………………………………… 1374
37.4.3 톰켓 매니저 접속을 위한 환경 설정 ………………………………………………1378
37.4.4 JSP 작동 테스트 ……………………………………………………………………… 1382
37.4.5 JSP + MySQL 연동 테스트 ……………………………………………………………1391
37.4.6 톰켓 버추얼 서버 ………………………………………………………………………1399

38장. Python 프로그래밍 ………………………………………………………………………………………1403
38.1 파이썬 둘러보기 ………………………………………………………………………………1403
38.1.1 파이썬이란? …………………………………………………………………………………1403
38.1.2 파이썬의 특징 ………………………………………………………………………………1404
38.1.3 파이썬이 사용되는 곳………………………………………………………………………1405
38.2 파이썬 설치하기 ………………………………………………………………………………… 1405
38.3 파이썬 프로그래밍 시작하기 ………………………………………………………………… 1406
38.4 종료하기 ………………………………………………………………………………………… 1407
38.5 소스파일을 이용한 프로그래밍 ………………………………………………………………1407
38.5.1 소스파일에서의 한글 사용 ……………………………………………………………… 1408
38.6. 변수 ………………………………………………………………………………………………1409
38.6.1 예약어 ………………………………………………………………………………………1409
38.6.2 정수형 ………………………………………………………………………………………1409
38.6.3 큰 정수형 ……………………………………………………………………………………1410
38.6.4 실수형 ………………………………………………………………………………………1411
38.6.5 문자열(string) ……………………………………………………………………………1411
38.6.6. 리스트(list) …………………………………………………………………………………1412
38.6.7 튜플(tuple) …………………………………………………………………………………1414
38.6.8 사전(dictionary) ………………………………………………………………………… 1416
38.7. 흐름제어 …………………………………………………………………………………………1417
38.7.1 if ………………………………………………………………………………………………1417
38.7.2 for ……………………………………………………………………………………………1418
38.7.3 while …………………………………………………………………………………………1419
38.7.4 continue와 break …………………………………………………………………………1420
38.8. 함수 ………………………………………………………………………………………………1420
38.9. 모듈 ………………………………………………………………………………………………1421
38.10. 파이썬 활용하기 ………………………………………………………………………………1423
38.10.1 파이썬을 이용하여 리눅스 사용자 추가하기 ………………………………………1423
38.10.2 파이썬을 이용한 소켓프로그래밍 ……………………………………………………1424

Will be Prosumer's Revolution and Technical Revolution in the Future!
모든 지식은 자신의 시간 투자에 비례함을 잊지 않도록 하자.