第1章 架站前所需的技能 3
1.1 前言 3
目录 3
第1篇 网络基础篇 3
1.2 架站的基本流程 4
1.2.1 了解网络基础 6
1.2.2 了解架站的目的 7
1.2.3 Linux安装硬盘规划 8
1.2.5 服务的包安装、漏洞修补、包升级 10
1.2.4 了解欲架设的网站服务原理 10
1.2.6 主机设置、启动、观察与调试 11
1.2.8 安全性设置 13
1.2.7 客户端设置、观察与调试 13
1.2.9 服务日志、日志文件与备份管理 14
1.3 自我评估是否已经具有架站能力 15
课后练习 16
2.1 关于网络 18
第2章 简易网络基础 18
2.1.3 网络的一般运作流程 19
2.1.2 网络的功能 19
2.1.1 网络是什么 19
2.1.4 TCP/IP与OSI网络七层协议 20
2.2.2 物理层 24
2.2.1 传输单位 24
2.2 网络层的相关协议 24
2.2.3 数据链路层 27
2.3.1 IP的组成 29
2.3 Internet Protocol(IP)的概念 29
2.3.2 网段的概念 30
2.3.3 Netmask的用途与子网的划分 31
2.3.4 IP的种类与IP的获取方式 33
2.4.1 什么是路由(Route) 35
2.4 路由的概念 35
2.4.2 观察主机的路由 37
2.4.3 设置网络需要的一组参数 38
2.5.1 通信端口与Socket pair 39
2.5 数据包的格式 39
2.5.2 数据包的传送 40
2.5.3 TCP和三次握手 41
2.5.4 UDP 43
2.5.5 ICMP 44
2.6 DNS的基本概念 45
2.5.6 数据包过滤防火墙的概念 45
2.7.1 基本组件 46
2.7 基本网络布线模式 46
2.7.2 连网的基本要求 47
2.8.1 网线的等级 48
2.8 网络媒体的选择 48
2.8.3 Switch还是Hub 49
2.8.2 网卡的选购依据 49
重点回顾 50
2.8.4 整体流量的考虑 50
课后练习 51
参考资料 51
特别感谢 51
3.1.1 常见的硬件连接方式 53
3.1 如何组网 53
第3章 局域网构建简介 53
3.1.2 网络设备与连线选购的注意事项 55
3.1.3 内部连接的网络参数 57
3.2 网络连接的方式 58
3.1.4 要安装哪些通信协议 58
3.3.1 Windows 2000的设置方式 60
3.3 Windows个人计算机的设置 60
3.3.2 Windows 98的设置方式 63
3.3.3 Windows XP的设置方式 66
课后练习 68
4.1.4 /etc/resolv.conf 69
4.1.3 /etc/modules.conf 69
第4章 接入Internet 69
4.1 Linux网络相关配置文件 69
4.1.1 /etc/sysconfig/network 69
4.1.2 /etc/sysconfig/network-scrips/ifcfg-ethn 69
4.2.1 手动安装网卡驱动程序 70
4.2 安装网卡 70
4.1.5 /etc/hosts 70
4.2.2 使用Private IP测试网卡 74
4.3.1 固定IP的上网方式:非拨号上网 76
4.3 接入Internet的方法 76
4.3.2 Cable Modem上网方式 78
4.3.3 ADSL拨号上网方式 79
4.3.4 拨号程序rp-pppoe出错处理 85
4.4.1 /etc/hosts 86
4.4 设置内部保留IP与DNS IP 86
4.4.2 resolv.conf 87
4.5 详解无法连网的几大问题 88
课后练习 89
参考文献 89
5.1.1 ifconfig 90
5.1 网络参数设置命令 90
第5章 Linux常用的网络命令 90
5.1.3 route 92
5.1.2 ifup和ifdown 92
5.2 一些网络诊断命令 94
5.2.1 ping 95
5.2.2 traceroute 96
5.3.1 netstat 97
5.3 网络查询命令 97
5.3.2 host 99
5.3.3 nslookup 100
5.4.1 telnet 101
5.4 远程连接使用命令:telnet,ftp,ncftp 101
5.4.2 ftp 102
5.4.3 ncftp 103
5.5.1 lynx 105
5.5 文本网页浏览:lynx,wget 105
5.5.2 wget 107
5.6 终端机的中文显示:jmcce计划 108
5.7.1 找出MTU值 112
5.7 连不上某些网站的处理方法:修改MTU 112
5.7.2 修改MTU值 114
课后练习 115
参考资料 116
第6章 Linux网络排错七步骤 117
6.1 网络硬件传输的问题 118
6.3 解决问题的方法 119
6.2 软件设置的问题 119
6.3.1 步骤一:确认网卡工作正常 120
6.3.2 步骤二:确认局域网硬件连接 124
6.3.4 步骤四:确认DNS的设置 126
6.3.3 步骤三:确认路由表没有问题 126
6.3.5 步骤五:NAT功能(或IP共享器)是否正常 127
6.3.6 步骤六:ADSL或router的问题 128
6.3.7 步骤七:主机服务是否关掉与服务权限的问题 129
7.1 什么是端口 133
第7章 限制Linux的对外连接端口 133
第2篇 简易防火措施篇 133
7.1.1 总共有多少端口?哪些是保留端口 134
7.1.2 Server/Client连接建立的TCP三次握手 135
7.2 如何查看端口 136
7.1.3 安全性 136
7.2.1 使用netstat命令 137
7.2.2 使用nmap包 140
7.3 如何关闭或启动一个端口 142
7.4 设置开机时启动服务的方法 143
7.5 安全性:关闭所有对外开放的端口 145
课后练习 146
8.1 为何要升级Linux 147
第8章 在线升级Linux包 147
8.2 以up2date进行Linux包升级 148
8.2.2 注册 150
8.2.1 安装或更新up2date与rhn_register包 150
8.2.3 开始使用up2date 157
8.3 Mandrake的urpmi升级 158
8.2.4 结语 158
8.3.2 选择放置RPM文件的媒体 159
8.3.1 urpmi的包结构 159
8.3.3 升级:urpmi.update,urpmi 161
8.4 APT的使用 162
8.3.4 每日自动升级 162
8.5 鸟哥的自动更新程序 164
课后练习 167
参考资料 167
重点回顾 167
9.1.2 如何实现 168
9.1.1 为何需要多个IP 168
第9章 设置多个IP地址与路由器 168
9.1 在一块网卡上设置多个IP地址 168
9.1.3 通过命令行手动设置多个IP地址 169
9.1.5 需要注意的地方 171
9.1.4 以设备配置文件设置多个IP地址 171
9.2.2 为何需要路由器 172
9.2.1 什么是路由器 172
9.2 路由器 172
9.2.3 查看与修改路由 173
9.3 一个路由器架设范例 175
9.3.2 开始设置 176
9.3.1 测试环境说明 176
9.3.3 测试路由器 178
9.4 架设路由器的建议 180
课后练习 181
重点回顾 181
10.1.1 认识TCP/IP 182
10.1 TCP/IP数据包进入主机的基本流程 182
第10章 认识网络安全 182
10.1.2 TCP数据包进入主机的简易流程 183
10.2 一些常见的攻击手法 185
10.3 主机防护计划 186
10.4 系统管理员要掌握的技能 188
10.5 被入侵后的修复工作 189
课后练习 191
重点回顾 191
参考资料 192
11.1.1 为何需要防火墙 193
11.1 防火墙 193
第11章 简易防火墙的架设 193
11.1.2 防火墙的主要类型 194
11.1.3 常见的防火墙部署方法与数据包过滤技巧 195
11.2.1 Linux内核版本与防火墙机制 198
11.2 Linux的数据包过滤机制 198
11.1.4 防火墙的限制 198
11.2.2 iptables的表格与数据包进入主机的流程 199
11.2.3 iptables的语法 202
11.3 一个简单的防火墙设置 208
11.4 TCP_Wrappers 214
参考资料 218
重点回顾 218
课后练习 219
12.1.1 主机名称的由来 220
12.1 为何需要主机名称 220
第12章 申请合法的主机名称 220
12.1.2 关于DNS的查询流程 221
12.1.4 申请静态还是动态DNS主机名称 222
12.1.3 重点在合法授权 222
12.2 注册一个合法的主机名称 223
12.2.1 静态DNS的申请 224
12.2.2 动态DNS的申请——http://www.adsldns.org 225
12.2.3 动态DNS的申请——http://www.no-ip.com 231
参考资料 235
课后练习 235
13.1 远程连接程序的功能 239
第13章 简易Telnet与SSH主机架设 239
第3篇 服务器架设篇 239
13.2 Telnet服务器 240
13.2.1 telnet服务器:服务安装、启动和关闭 241
13.2.2 telnet客户端:好用的软件 243
13.2.3 telnet安全性:iptables、TCP_Wrappers、一些建议 244
13.3 SSH服务器 246
13.3.1 连接加密技术简介 247
13.3.2 启动ssh服务 248
13.3.3 ssh客户端连接 249
13.3.4 详细设置sshd服务器 254
13.3.5 制作不用密码可立即登入的ssh用户 257
13.3.6 安全设置 259
参考资料 260
课后练习 260
14.1.1 NAT的功能 261
14.1 什么是NAT 261
第14章 简易NAT服务器架设 261
14.1.4 谁需要架设NAT 263
14.1.3 内核版本 263
14.1.2 连网示意图 263
14.2.1 一块网卡的NAT架设 264
14.2 NAT的设置 264
14.2.2 两块网卡的NAT架设 269
14.4 安全性 270
14.3 客户端的设置 270
14.2.3 观察路由信息 270
课后练习 271
15.1.1 什么是NFS 272
15.1 NFS的由来及其功能 272
第15章 简易NFS服务器架设 272
15.1.2 什么是RPC 273
15.2 需要的包 274
15.1.3 NFS启动的RPC daemons 274
15.3.3 设置流程(/etc/exports) 275
15.3.2 主机规划技巧建议 275
15.3 Server端的设置 275
15.3.1 NFS软件的结构 275
15.3.4 RPC服务器的相关命令 282
15.4.1 挂载远程主机 283
15.4 Client端的设置 283
15.4.2 可能发生的问题 284
15.6 安全设置(被防火墙过滤掉) 285
15.5 关机或结束时的注意事项 285
15.7 实际演练 286
参考资料 288
重点回顾 288
课后练习 289
16.1.1 什么是DHCP 290
16.1 DHCP的工作原理 290
第16章 简易DHCP服务器架设 290
16.1.2 DHCP的工作方式 291
16.1.3 什么时候需要DHCP 294
16.3.1 DHCP包结构 295
16.3 设置DHCP服务器 295
16.2 包安装 295
16.3.3 设置流程 296
16.3.2 主机的规划技巧 296
16.4 设置DHCP客户端 301
16.5 调试与查看租约文件 304
课后练习 306
参考资料 306
重点回顾 306
17.1.1 什么是DNS 307
17.1 原理部分 307
第17章 简易DNS服务器架设 307
17.1.2 DNS的查询过程 309
17.1.3 授权的意义 312
17.1.5 正解、反解和Zone的含义 313
17.1.4 网站代管还是自己设置DNS 313
17.1.6 架设DNS所需的软件包 315
17.2 设置部分 316
17.3.1 文件设置 330
17.3 Client端的设置 330
17.3.2 测试DNS设置 331
17.4.1 子网段授权问题 335
17.4 高级设置 335
17.4.2 架设一个合法授权的DNS主机 336
参考资料 338
重点回顾 338
课后练习 339
18.1.1 WWW与URL 340
18.1 原理 340
第18章 简易WWW服务器架设 340
18.1.2 客户端如何向服务器端请求数据 341
18.1.3 有哪些类型的WWW网站?什么是LAMP 342
18.1.4 SSL与CA的认证机制 344
18.2.1 以RPM方式安装LAMP 345
18.2 软件包安装 345
18.2.2 以Tarball方式安装LAMP(Apache 2.xx) 347
18.3 设置主机 356
18.2.3 升级与安装方式的选择 356
18.3.1 LAMP的包结构与主机规划 357
18.3.3 最简易的Apache设置 358
18.3.2 基本要求 358
18.3.4 启动httpd(如何关闭https) 363
18.3.5 测试结果 364
18.3.6 启动用户的个人网页 365
18.4.1 CGI的执行、显示Index、设置找不到网页时的显示 366
18.4 高级安全设置 366
18.4.2 抵挡IP与限制用户的设置(allow,deny,limit) 369
18.4.3 设置说明主机状态的网页 370
18.4.4 关于权限的意义说明与设置 371
18.4.5 设置认证网页 372
18.4.6 .htaccess文件与AllowOverride设置的用途 375
18.5.1 syslog与logrotate 377
18.5 日志文件分析与其重要性 377
18.4.7 防火墙 377
18.5.2 Web Analyser 378
18.6 架设虚拟主机 382
18.7 客户端的文本模式的浏览器 384
18.8.1 MM Cache增强速度模块 385
18.8 加快PHP程序执行速度的模块 385
18.8.2 Apache的效率测试 387
18.9 离线浏览软件与抵挡Nimda病毒的脚本 388
18.11 问题讨论 389
18.10 安装phpBB2论坛 389
课后练习 391
19.1.1 SAMBA的发展历史与名称的由来 392
19.1 原理 392
第19章 简易SAMBA服务器架设 392
19.1.2 SAMBA的应用功能 393
19.1.3 NetBIOS通信协议 394
19.1.5 连接模式介绍 395
19.1.4 SAMBA使用的daemons 395
19.2.2 使用Tarball来安装 398
19.2.1 使用RPM安装 398
19.2 包安装 398
19.3.1 SAMBA的包结构 400
19.3 Server端的设置 400
19.3.3 基础的设置流程与smb.conf的主要规划 402
19.3.2 主机规划的建议 402
19.3.4 没有限制的SAMBA共享文件设置 405
19.3.5 设置需要用户登入的Workgroup 409
19.3.6 设置大型网段的Linux SambaPDC主机 414
19.3.7 设置为打印机服务器 427
19.4 Client端的设置 432
19.4.2 设置在Linux上浏览Windows共享文件 433
19.4.1 设置在Windows上浏览Linux共享文件 433
19.5 安全方面的设置 436
19.5.1 配合quota设置用户的使用空间 437
19.5.3 如何设置daemons的阻挡功能(hosts allow参数) 438
19.5.2 如何设置iptables防火墙 438
19.6 克服问题 439
19.5.4 备份内容 439
课后练习 440
参考资料 440
20.1 前言 441
第20章 简易邮件服务器架设——Sendmail 441
20.2.1 邮件服务器与DNS系统的关系 442
20.2 邮件服务器工作原理 442
20.2.2 邮件的传送流程、MUA、MTA、MDA 443
20.2.4 什么是Relay与认证机制 447
20.2.3 使用的协议 447
20.3 软件包安装 448
20.4 主机的设置 449
20.3.2 使用RPM安装IMAP包 449
20.3.1 使用RPM安装sendmail(适用于Linux原本使用sendmail) 449
20.4.1 Sendmail Server的文件架构与基础说明 450
20.4.2 使用m4简易设置sendmail 452
20.4.3 启动邮件服务器 455
20.4.4 设置主机名称 456
20.4.5 设置邮件服务器使用权限/etc/mail/access 457
20.4.6 重要概念:一封信件的收受流程 458
20.4.7 设置用户别名/etc/aliases 460
20.4.9 查看信件队列(mailq)与Mailers状态 464
20.4.8 设置邮件转发~/.forward 464
20.5.1 在Linux下使用邮件功能 466
20.5 客户端的使用说明 466
20.5.2 在Linux下使用telnet 470
20.5.3 X-Window与Windows的MUA功能 471
20.6.2 SMTP认证 474
20.6.1 sendmail本身的安全设置项(Sendmail官方建议) 474
20.6 邮件主机的安全设置 474
20.6.3 使用ORDB抵挡open relay邮件主机的机制说明与操作 478
20.6.4 Procmail相关说明 480
20.7 Tarball安装方式 485
20.8.1 无法寄信时的可能问题与解决之道 492
20.8 其他应用说明 492
20.8.2 关于备份 494
20.8.3 关于quota的设置与转移/var/spool/mail目录 495
课后练习 496
参考资料 496
21.1.1 学习本章之前需要了解的知识 497
21.1 前言 497
第21章 简易邮件服务器架设——Postfix 497
21.2 软件包安装 498
21.1.2 为什么要有Postfix 498
21.2.1 使用RPM安装完整的Postfix+POP3+SMTP+Procmail 499
21.2.2 使用Tarball安装完整的Postfix+POP3+SMTP+Procmail(适用任何版本的Linux) 502
21.3.1 Postfix的结构 505
21.3 主机的设置 505
21.3.2 基础设置 507
21.3.4 启动smtp邮件认证功能 511
21.3.3 重要观念:Postfix默认的Relay流程与接收信件的流程 511
21.4 客户端的使用说明 515
21.5 关于邮件主机安全的设置 515
21.3.5 几个相关的文件说明 515
21.5.3 关于邮件过滤的规则设置 516
21.5.2 关于Procmail用法 516
21.5.1 关于Open Relay Data Base 516
21.6 其他应用说明 519
21.5.4 问题信件的送达notify_classes 519
课后练习 520
参考资料 520
22.1.1 FTP功能简介 521
22.1 原理 521
第22章 简易FTP服务器架设——Wu FTP 521
22.1.2 FTP的工作流程与使用的端口 522
22.1.3 什么是被动的连网 524
22.1.5 设置FTP的用户权限 525
22.1.4 FTP的安全性问题与替代方案 525
22.2 软件包安装 526
22.3.2 最简单的ftpaccess配置文件 527
22.3.1 Wu FTP的结构 527
22.3 Server端设置 527
22.3.3 使用Super daemon管理FTP 532
22.3.4 欢迎画面的建立、Readme文件与关闭FTP信息内容 533
22.3.5 限制最大在线人数 535
22.3.7 与时间相关的设置项目 536
22.3.6 限制与取消用户的主目录 536
22.3.8 上传下载的流量限制项目 537
22.3.9 创建guest user与guest user的主目录 539
22.3.10 anonymous的根目录与建立可上传目录 540
22.3.12 拒绝与允许某些用户的登录 541
22.3.11 针对用户(real,guest,anonymous)的限制设置项目 541
22.3.14 建立被动端口供客户端登录 544
22.3.13 目录与链接文件的问题 544
22.3.15 修改FTP默认的端口21的连网 545
22.3.16 一个多样化的实例 546
22.4 客户端使用的FTP软件 549
22.4.2 ncftp 550
22.4.1 ftp 550
22.5 Server端的安全设置项目 551
22.5.3 PAM模块与/etc/ftpusers的关系 552
22.5.2 TCP_Wrappers 552
22.5.1 iptables 552
课后练习 553
参考资料 553
22.5.4 FTP自身提供的用于抵挡username或host的控件 553
重点回顾 553
23.1.1 要使用Professional FTPD的原因 555
23.1 前言 555
第23章 简易FTP服务器架设——Pro FTPD 555
23.2 软件包安装 556
23.1.2 架设之前需要了解的原理 556
23.3.1 proftpd的结构 559
23.3 Server端设置 559
23.3.2 proftpd.conf的设置方式 560
23.3.3 最简单的proftpd.conf配置文件 562
23.3.4 针对实体用户的设置 563
23.3.5 针对匿名用户的设置 565
23.3.6 建立特殊交流账号(建立一个ftpguest组,将所有的guset设置在这个组中) 567
23.4 Client端的设置 570
23.3.7 小结 570
课后练习 571
参考资料 571
24.1 前言 572
第24章 简易vsftpd服务器架设 572
24.2.2 以Tarball安装 573
24.2.1 以RPM安装 573
24.2 软件包安装 573
24.3.1 vsftpd的包结构 575
24.3 Server端的设置 575
24.3.2 vsftpd.conf设置值说明 576
24.3.3 最简单的vsftpd.conf设置 580
24.3.4 针对仅开放实体用户登录的设置 581
24.3.5 针对仅开放匿名用户登录的设置 584
24.5 相关的安全设置 585
24.4 Client端的设置 585
24.5.2 Super daemon的管理 586
24.5.1 设置防火墙 586
24.6 对于选择FTP服务器软件的建议 587
24.5.3 问题解决方案 587
参考资料 588
25.1.1 什么是代理服务器 589
25.1 原理 589
第25章 简易Proxy服务器架设 589
25.1.2 代理服务器的工作流程 590
25.1.3 代理服务器的用途与优缺点 591
25.1.4 什么是上层代理服务器?哪里有上层代理服务器 593
25.1.6 硬件要求与最佳硬件配置方式 594
25.1.5 是否一定要设置Proxy 594
25.1.7 代理服务器与NAT主机的差异 595
25.2.1 使用RPM方式安装Squid 596
25.2 软件包安装 596
25.2.2 使用Tarball方式安装Squid 597
25.3 Server端设置 598
25.3.2 squid的process owner与cache directory owner 599
25.3.1 Squid的结构 599
25.3.3 最简易的设置squid的方法 600
25.3.4 内存与磁盘缓存的百分比设置 603
25.3.5 acl的用法与用途 605
25.3.6 选择上层Proxy与分流负载的设置方法 606
25.3.8 总是系统自己去获取数据(always_direct) 609
25.3.7 与时间相关的设置值(connect_timeout,request_timeout) 609
25.3.9 限制使用proxy的用户(acl and http_access) 610
25.3.10 其他的功能参数 612
25.4.1 Netscape 613
25.4 设置Client端 613
25.4.2 Internet Explorer 614
25.5.1 数据分析软件pwebstats 616
25.5 Server端高级设置 616
25.5.2 数据分析软件sarg 621
25.5.4 NAT与Proxy通过transparent proxy设置加快网络传输 624
25.5.3 防火墙的规划 624
25.5.5 squid的注意事项 625
参考资料 626
重点回顾 626
课后练习 627
26.1.1 什么是NIS与NIS的主要功能 628
26.1 原理 628
第26章 简易NIS服务器架设 628
26.1.2 NIS的工作流程 629
26.2 软件包安装 630
26.1.4 NIS Server的master与slave架构 630
26.1.3 NIS与RPC的关系 630
26.3.2 NIS Server设置流程 631
26.3.1 NIS Server的结构 631
26.3 Server端设置 631
26.4.2 NIS Client的设置流程 636
26.4.1 NIS Client的结构 636
26.4 Client端设置 636
26.4.3 NIS Client端检验NIS设置:yptest,ypwhich,ypcat 639
26.4.4 修改用户密码(需要有root身份):yppasswd,ypchfn,ypchsh 640
26.5.1 NIS与NFS的结合 641
26.5 主机上的高级设置 641
重点回顾 642
26.5.2 防火墙的规划 642
课后练习 643
参考资料 643
27.1.1 时区 645
27.1 原理 645
第27章 简易NTP服务器架设 645
27.1.4 NTP 647
27.1.3 协和标准时间与系统时间的误差 647
27.1.2 夏令时时间(daylight savings) 647
27.2.1 使用RPM安装 648
27.2 软件包安装 648
27.3.1 NTP的包结构 649
27.3 Server端的设置 649
27.2.2 使用Tarball安装 649
27.3.3 编辑主要配置文件/etc/ntp.conf 650
27.3.2 主机的规划技巧 650
27.3.4 NTP的启动与查看 653
27.4.1 如何调整Linux系统的时区与手动设置时间(date MMDDhhmmYYYY) 654
27.4 Client端的设置 654
27.4.3 在Windows系统上进行网络校时 655
27.4.2 在Linux系统中自动进行网络校时 655
课后练习 656
参考资料 656
27.5 相关安全设置 656
28.1.1 为什么要架设APT服务器 657
28.1 前言 657
第28章 简易APT服务器架设 657
28.1.2 APT服务器的机制 658
28.1.3 架设前需要启用的服务 659
28.2 软件包安装 660
28.3.2 APT的包结构 661
28.3.1 架设APT的基本要求 661
28.3 Server端的设置 661
28.3.4 设置由HTTP提供服务的APT主机 664
28.3.3 主机的规划技巧与建议 664
参考资料 667
28.4 Client端的设置 667