《Linux防火墻(第4版)》是構(gòu)建Linux防火墻的杰出指南,包括如何使用Linux iptables/nftables來(lái)實(shí)現(xiàn)防火墻安全的主題。本書(shū)共分三大部分。第1部分為數(shù)據(jù)包過(guò)濾以及基本的安全措施,其內(nèi)容有:數(shù)據(jù)包過(guò)濾防火墻的預(yù)備知識(shí)、數(shù)據(jù)包過(guò)濾防火墻概念、傳統(tǒng)的Linux防火墻管理程序iptables、新的Linux防火墻管理程序nftables、構(gòu)建和安裝獨(dú)立的防火墻。第2部分為L(zhǎng)inux防火墻的高級(jí)主題、多個(gè)防火墻和網(wǎng)絡(luò)防護(hù)帶,其內(nèi)容有:防火墻的優(yōu)化、數(shù)據(jù)包轉(zhuǎn)發(fā)、NAT、調(diào)試防火墻規(guī)則、虛擬專(zhuān)用網(wǎng)絡(luò)。第3部分則講解了iptables和nftables之外的主題,包括入侵檢測(cè)和響應(yīng)、入侵檢測(cè)工具、網(wǎng)絡(luò)監(jiān)控和攻擊檢測(cè)、文件系統(tǒng)完整性等內(nèi)容。
《Linux防火墻(第4版)》適合Linux系統(tǒng)管理員、網(wǎng)絡(luò)安全專(zhuān)業(yè)技術(shù)人員閱讀。
Steve Suehring,是一位技術(shù)架構(gòu)師,提供各種技術(shù)的咨詢服務(wù),并發(fā)表過(guò)與這些技術(shù)相關(guān)的演講。從1995年起,他就從事Linux管理和安全工作,并擔(dān)任過(guò)LinuxWorld雜志的Linux Security編輯。他還寫(xiě)作了JavaScript Step by Step,Third Edition和MySQL Bible圖書(shū)。
第1部分 數(shù)據(jù)包過(guò)濾以及基本安全措施 1
第1章 數(shù)據(jù)包過(guò)濾防火墻的預(yù)備知識(shí) 3
1.1 OSI網(wǎng)絡(luò)模型 5
1.1.1 面向連接和無(wú)連接的協(xié)議 6
1.1.2 下一步 7
1.2 IP協(xié)議 7
1.2.1 IP編址和子網(wǎng)劃分 7
1.2.2 IP分片 10
1.2.3 廣播與組播 10
1.2.4 ICMP 11
1.3 傳輸層機(jī)制 13
1.3.1 UDP 13
1.3.2 TCP 14
1.4 地址解析協(xié)議(ARP) 16
1.5 主機(jī)名和IP地址 16
1.6 路由:將數(shù)據(jù)包從這里傳輸?shù)侥抢铩?7
1.7 服務(wù)端口:通向您系統(tǒng)中程序的大門(mén) 17
1.8 小結(jié) 22
第2章 數(shù)據(jù)包過(guò)濾防火墻概念 23
2.1 一個(gè)數(shù)據(jù)包過(guò)濾防火墻 24
2.2 選擇一個(gè)默認(rèn)的數(shù)據(jù)包過(guò)濾策略 26
2.3 對(duì)一個(gè)數(shù)據(jù)包的駁回(Rejecting)VS拒絕(Denying) 28
2.4 過(guò)濾傳入的數(shù)據(jù)包 28
2.4.1 遠(yuǎn)程源地址過(guò)濾 28
2.4.2 本地目的地址過(guò)濾 31
2.4.3 遠(yuǎn)程源端口過(guò)濾 31
2.4.4 本地目的端口過(guò)濾 32
2.4.5 傳入TCP的連接狀態(tài)過(guò)濾 32
2.4.6 探測(cè)和掃描 32
2.4.7 拒絕服務(wù)攻擊 36
2.4.8 源路由數(shù)據(jù)包 42
2.5 過(guò)濾傳出數(shù)據(jù)包 42
2.5.1 本地源地址過(guò)濾 42
2.5.2 遠(yuǎn)程目的地址過(guò)濾 43
2.5.3 本地源端口過(guò)濾 43
2.5.4 遠(yuǎn)程目的端口過(guò)濾 44
2.5.5 傳出TCP連接狀態(tài)過(guò)濾 44
2.6 私有網(wǎng)絡(luò)服務(wù)VS公有網(wǎng)絡(luò)服務(wù) 44
2.6.1 保護(hù)不安全的本地服務(wù) 45
2.6.2 選擇運(yùn)行的服務(wù) 45
2.7 小結(jié) 46
第3章 iptables:傳統(tǒng)的Linux防火墻管理程序 47
3.1 IP防火墻(IPFW)和Netfilter防火墻機(jī)制的不同 47
3.1.1 IPFW數(shù)據(jù)包傳輸 48
3.1.2 Netfilter數(shù)據(jù)包傳輸 49
3.2 iptables基本語(yǔ)法 50
3.3 iptables特性 51
3.3.1 NAT表特性 53
3.3.2 mangle表特性 55
3.4 iptables語(yǔ)法 55
3.4.1 filter表命令 57
3.4.2 filter表目標(biāo)擴(kuò)展 60
3.4.3 filter表匹配擴(kuò)展 62
3.4.4 nat表目標(biāo)擴(kuò)展 71
3.4.5 mangle表命令 73
3.5 小結(jié) 74
第4章 nftables:(新)Linux防火墻管理程序 75
4.1 iptables和nftables的差別 75
4.2 nftables基本語(yǔ)法 75
4.3 nftables特性 75
4.4 nftables語(yǔ)法 76
4.4.1 表語(yǔ)法 77
4.4.2 規(guī)則鏈語(yǔ)法 78
4.4.3 規(guī)則語(yǔ)法 78
4.4.4 nftables的基礎(chǔ)操作 82
4.4.5 nftables文件語(yǔ)法 83
4.5 小結(jié) 83
第5章 構(gòu)建和安裝獨(dú)立的防火墻 85
5.1 Linux防火墻管理程序 86
5.1.1 定制與購(gòu)買(mǎi):Linux內(nèi)核 87
5.1.2 源地址和目的地址的選項(xiàng) 88
5.2 初始化防火墻 89
5.2.1 符號(hào)常量在防火墻示例中的使用 90
5.2.2 啟用內(nèi)核對(duì)監(jiān)控的支持 90
5.2.3 移除所有預(yù)先存在的規(guī)則 92
5.2.4 重置默認(rèn)策略及停止防火墻 93
5.2.5 啟用回環(huán)接口 94
5.2.6 定義默認(rèn)策略 95
5.2.7 利用連接狀態(tài)繞過(guò)規(guī)則檢測(cè) 96
5.2.8 源地址欺騙及其他不合法地址 97
5.3 保護(hù)被分配在非特權(quán)端口上的服務(wù) 101
5.3.1 分配在非特權(quán)端口上的常用本地TCP服務(wù) 102
5.3.2 分配在非特權(quán)端口上的常用本地UDP服務(wù) 104
5.4 啟用基本的、必需的互聯(lián)網(wǎng)服務(wù) 106
5.5 啟用常用TCP服務(wù) 111
5.5.1 Email (TCP SMTP端口25, POP端口110, IMAP端口143) 111
5.5.2 SSH(TCP端口22) 117
5.5.3 FTP (TCP端口20、21) 118
5.5.4 通用的TCP服務(wù) 121
5.6 啟用常用UDP服務(wù) 122
5.6.1 訪問(wèn)您ISP的DHCP服務(wù)器(UDP端口67、68) 122
5.6.2 訪問(wèn)遠(yuǎn)程網(wǎng)絡(luò)時(shí)間服務(wù)器(UDP端口123) 124
5.7 記錄被丟棄的傳入數(shù)據(jù)包 125
5.8 記錄被丟棄的傳出數(shù)據(jù)包 126
5.9 安裝防火墻 126
5.9.1 調(diào)試防火墻腳本的小竅門(mén) 127
5.9.2 在啟動(dòng)Red Hat和SUSE時(shí)啟動(dòng)防火墻 128
5.9.3 在啟動(dòng)Debian時(shí)啟動(dòng)防火墻 128
5.9.4 安裝使用動(dòng)態(tài)IP地址的防火墻 128
5.10 小結(jié) 129
第2部分 高級(jí)議題、多個(gè)防火墻和網(wǎng)絡(luò)防護(hù)帶 131
第6章 防火墻的優(yōu)化 133
6.1 規(guī)則組織 133
6.1.1 從阻止高位端口流量的規(guī)則開(kāi)始 133
6.1.2 使用狀態(tài)模塊進(jìn)行ESTABLISHED和RELATED匹配 134
6.1.3 考慮傳輸層協(xié)議 134
6.1.4 盡早為常用的服務(wù)設(shè)置防火墻規(guī)則 135
6.1.5 使用網(wǎng)絡(luò)數(shù)據(jù)流來(lái)決定在哪里為多個(gè)網(wǎng)絡(luò)接口設(shè)置規(guī)則 135
6.2 用戶自定義規(guī)則鏈 136
6.3 優(yōu)化的示例 139
6.3.1 優(yōu)化的iptables腳本 139
6.3.2 防火墻初始化 140
6.3.3 安裝規(guī)則鏈 142
6.3.4 構(gòu)建用戶自定義的EXT-input和EXT-output規(guī)則鏈 144
6.3.5 tcp-state-flags 152
6.3.6 connection-tracking 153
6.3.7 local-dhcp-client-query和remote-dhcp-server-response 153
6.3.8 source-address-check 155
6.3.9 destination-address-check 155
6.3.10 在iptables中記錄丟棄的數(shù)據(jù)包 156
6.3.11 優(yōu)化的nftables腳本 157
6.3.12 防火墻初始化 158
6.3.13 構(gòu)建規(guī)則文件 159
6.3.14 在nftables中記錄丟棄的數(shù)據(jù)包 163
6.4 優(yōu)化帶來(lái)了什么 163
6.4.1 iptables的優(yōu)化 163
6.4.2 nftables的優(yōu)化 164
6.5 小結(jié) 164
第7章 數(shù)據(jù)包轉(zhuǎn)發(fā) 165
7.1 獨(dú)立防火墻的局限性 165
7.2 基本的網(wǎng)關(guān)防火墻的設(shè)置 166
7.3 局域網(wǎng)安全問(wèn)題 168
7.4 可信家庭局域網(wǎng)的配置選項(xiàng) 169
7.4.1 對(duì)網(wǎng)關(guān)防火墻的局域網(wǎng)訪問(wèn) 170
7.4.2 對(duì)其他局域網(wǎng)的訪問(wèn):在多個(gè)局域網(wǎng)間轉(zhuǎn)發(fā)本地流量 171
7.5 較大型或不可信局域網(wǎng)的配置選項(xiàng) 173
7.5.1 劃分地址空間來(lái)創(chuàng)建多個(gè)網(wǎng)絡(luò) 173
7.5.2 通過(guò)主機(jī)、地址或端口范圍限制內(nèi)部訪問(wèn) 175
7.6 小結(jié) 180
第8章 網(wǎng)絡(luò)地址轉(zhuǎn)換 181
8.1 NAT的概念背景 181
8.2 iptables和nftables中的NAT語(yǔ)義 184
8.2.1 源地址NAT 186
8.2.2 目的地址NAT 187
8.3 SNAT和私有局域網(wǎng)的例子 189
8.3.1 偽裝發(fā)往互聯(lián)網(wǎng)的局域網(wǎng)流量 189
8.3.2 對(duì)發(fā)往互聯(lián)網(wǎng)的局域網(wǎng)流量應(yīng)用標(biāo)準(zhǔn)的NAT 190
8.4 DNAT、局域網(wǎng)和代理的例子 191
8.5 小結(jié) 192
第9章 調(diào)試防火墻規(guī)則 193
9.1 常用防火墻開(kāi)發(fā)技巧 193
9.2 列出防火墻規(guī)則 194
9.2.1 iptables中列出表的例子 195
9.2.2 nftables中列出表的例子 198
9.3 解釋系統(tǒng)日志 199
9.3.1 syslog配置 199
9.3.2 防火墻日志消息:它們意味著什么 202
9.4 檢查開(kāi)放端口 205
9.4.1 netstat -a [ -n -p -A inet ] 205
9.4.2 使用fuser檢查一個(gè)綁定在特定端口的進(jìn)程 207
9.4.3 Nmap 208
9.5 小結(jié) 208
第10章 虛擬專(zhuān)用網(wǎng)絡(luò) 209
10.1 虛擬專(zhuān)用網(wǎng)絡(luò)概述 209
10.2 VPN協(xié)議 209
10.2.1 PPTP和L2TP 209
10.2.2 IPSec 210
10.3 Linux和VPN產(chǎn)品 212
10.3.1 Openswan/Libreswan 213
10.3.2 OpenVPN 213
10.3.3 PPTP 213
10.4 VPN和防火墻 213
10.5 小結(jié) 214
第3部分 iptables和nftables之外的事 215
第11章 入侵檢測(cè)和響應(yīng) 217
11.1 檢測(cè)入侵 217
11.2 系統(tǒng)可能遭受入侵時(shí)的癥狀 218
11.2.1 體現(xiàn)在系統(tǒng)日志中的跡象 218
11.2.2 體現(xiàn)在系統(tǒng)配置中的跡象 219
11.2.3 體現(xiàn)在文件系統(tǒng)中的跡象 219
11.2.4 體現(xiàn)在用戶賬戶中的跡象 220
11.2.5 體現(xiàn)在安全審計(jì)工具中的跡象 220
11.2.6 體現(xiàn)在系統(tǒng)性能方面的跡象 220
11.3 系統(tǒng)被入侵后應(yīng)采取的措施 221
11.4 事故報(bào)告 222
11.4.1 為什么要報(bào)告事故 222
11.4.2 報(bào)告哪些類(lèi)型的事故 223
11.4.3 向誰(shuí)報(bào)告事故 224
11.4.4 報(bào)告事故時(shí)應(yīng)提供哪些信息 225
11.5 小結(jié) 226
第12章 入侵檢測(cè)工具 227
12.1 入侵檢測(cè)工具包:網(wǎng)絡(luò)工具 227
12.1.1 交換機(jī)和集線器以及您為什么應(yīng)該關(guān)心它 228
12.1.2 ARPWatch 228
12.2 Rootkit檢測(cè)器 229
12.2.1 運(yùn)行Chkrootkit 229
12.2.2 當(dāng)Chkrootkit報(bào)告計(jì)算機(jī)已被感染時(shí)應(yīng)如何處理 230
12.2.3 Chkrootkit和同類(lèi)工具的局限性 231
12.2.4 安全地使用Chkrootkit 231
12.2.5 什么時(shí)候需要運(yùn)行Chkrootkit 232
12.3 文件系統(tǒng)完整性 232
12.4 日志監(jiān)控 233
12.5 如何防止入侵 234
12.5.1 勤安防 234
12.5.2 勤更新 235
12.5.3 勤測(cè)試 236
12.6 小結(jié) 237
第13章 網(wǎng)絡(luò)監(jiān)控和攻擊檢測(cè) 239
13.1 監(jiān)聽(tīng)以太網(wǎng) 239
13.2 TCPDump:簡(jiǎn)單介紹 241
13.2.1 獲得并安裝TCPDump 242
13.2.2 TCPDump的選項(xiàng) 242
13.2.3 TCPDump表達(dá)式 244
13.2.4 TCPDump高級(jí)功能 247
13.3 使用TCPDump捕獲特定的協(xié)議 247
13.3.1 在現(xiàn)實(shí)中使用TCPDump 247
13.3.2 通過(guò)TCPDump檢測(cè)攻擊 254
13.3.3 使用TCPDump記錄流量 258
13.4 使用Snort進(jìn)行自動(dòng)入侵檢測(cè) 260
13.4.1 獲取和安裝Snort 261
13.4.2 配置Snort 262
13.4.3 測(cè)試Snort 263
13.4.4 接收警報(bào) 264
13.4.5 關(guān)于Snort的最后思考 265
13.5 使用ARPWatch進(jìn)行監(jiān)控 265
13.6 小結(jié) 267
第14章 文件系統(tǒng)完整性 269
14.1 文件系統(tǒng)完整性的定義 269
14.2 安裝AIDE 270
14.3 配置AIDE 270
14.3.1 創(chuàng)建AIDE配置文件 271
14.3.2 AIDE配置文件的示例 273
14.3.3 初始化AIDE數(shù)據(jù)庫(kù) 273
14.3.4 調(diào)度AIDE自動(dòng)地運(yùn)行 274
14.4 用AIDE監(jiān)控一些壞事 274
14.5 清除AIDE數(shù)據(jù)庫(kù) 276
14.6 更改AIDE報(bào)告的輸出 277
14.7 在AIDE中定義宏 279
14.8 AIDE的檢測(cè)類(lèi)型 280
14.9 小結(jié) 283
第4部分 附錄 285
附錄A 安全資源 287
附錄B 防火墻示例與支持腳本 289
附錄C 詞匯表 325
附錄D GNU自由文檔許可證 335