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