《Linux系統安全:縱深防禦、安全掃描與入侵檢測》是一部從縱深防禦、安全掃描、入侵檢測3個維度闡釋構建安全Linux系統藝術的著作,由機械工業出版社出版。
基本介紹
- 書名:Linux系統安全:縱深防禦、安全掃描與入侵檢測
- 作者:胥峰 著
- ISBN:978-7-111-63218-4
- 頁數:278頁
- 定價:79.00元
- 出版社:機械工業出版社
- 出版時間:2019.7
- 裝幀:平裝
- 開本:16開
內容簡介,作者簡介,圖書目錄,
內容簡介
這是一部從技術原理、工程實踐兩個方面系統、深入講解Linux系統安全的著作,從縱深防禦、安全掃描、入侵檢測3個維度細緻講解了如何構建一個銅牆鐵壁的Linux防護體系。
作者是資深的Linux系統安全專家、運維技術專家,在該領域有13年的從業經驗,厚積薄發。本書得到了來自騰訊、阿里等知名企業的多位行業專家的高度評價。全書不僅包含大量工程實踐案例,而且對各種核心知識點繪製了方便記憶的思維導圖。
全書共14章:
第1章介紹了安全的概念和保障安全的主要原則,引申出了“縱深防禦”理念;
第2-3章是縱深防禦的第一個關鍵步驟,即從網路層面對Linux系統進行防護,包含Linux網路防火牆和虛擬專用網路的各個方面;
第4章介紹tcpdump、RawCap、Wiresharklibpcap等網路流量分析工具的技術原理,以及用它們來定位網路安全問題的方法;
第5-7章是縱深防禦的第二個關鍵步驟,即從作業系統層面對Linux系統進行防護,包含用戶管理、軟體包管理、檔案系統管理等核心主題;
第8章是縱深防禦的第三個關鍵步驟,即保障Linux套用的安全,避免套用成為黑客入侵的入口,涵蓋網站安全架構、Apache安全、Nginx安全、PHP安全、Tomcat安全、Memcached安全、Redis安全、MySQL安全等話題;
第9章是縱深防禦的第四個關鍵步驟,即確保業務連續性,防禦數據被篡改或者數據丟失的風險,講解了各種場景下的數據備份與恢復;
第10章介紹了nmap、masscan等掃描工具的原理與使用,以及各種開源和商業Web漏洞掃描工具的原理和使用;
第11-13章重點講解了Linux系統的入侵檢測,涉及Linux Rootkit、病毒木馬查殺、日誌與審計等主題;
第14章介紹利用威脅情報追蹤最新攻擊趨勢、確定攻擊事件性質的方法。
作者簡介
胥峰
資深運維專家、Linux系統專家和安全技術專家,有13年Linux系統運維和安全經驗,在業界頗具威望和影響力。曾就職於盛大遊戲,擔任架構師,參與多個重大項目的運維和保障,主導運維自動化平台的設計與實施。對DevOps、AIOps等新技術和新思想也有很深的理解。
著有暢銷書《Linux運維最佳實踐》,同時還翻譯了DevOps領域的劃時代著作《DevOps:軟體架構師行動指南》。
圖書目錄
前言
第1章 Linux系統安全概述1
1.1 什麼是安全2
1.1.1 什麼是信息安全2
1.1.2 信息安全的木桶原理4
1.1.3 Linux系統安全與信息安全的關係5
1.2 威脅分析模型5
1.2.1 STRIDE模型5
1.2.2 常見的安全威脅來源6
1.3 安全的原則8
1.3.1 縱深防禦8
1.3.2 運用PDCA模型9
1.3.3 最小許可權法則11
1.3.4 白名單機制12
1.3.5 安全地失敗12
1.3.6 避免通過隱藏來實現安全13
1.3.7 入侵檢測14
1.3.8 不要信任基礎設施14
1.3.9 不要信任服務15
1.3.10 交付時保持默認是安全的15
1.4 組織和管理的因素16
1.4.1 加強安全意識培訓16
1.4.2 特別注意弱密碼問題17
1.4.3 明令禁止使用破解版軟體18
1.4.4 組建合理的安全組織結構18
1.5 本章小結19
第2章 Linux網路防火牆21
2.1 網路防火牆概述21
2.2 利用iptables構建網路防火牆23
2.2.1 理解iptables表和鏈23
2.2.2 實際生產中的iptables腳本編寫25
2.2.3 使用iptables進行網路地址轉換27
2.2.4 禁用iptables的連線追蹤29
2.3 利用Cisco防火牆設定訪問控制34
2.4 利用TCP Wrappers構建套用訪問控制列表35
2.5 利用DenyHosts防止暴力破解36
2.6 在公有雲上實施網路安全防護38
2.6.1 減少公網暴露的雲伺服器數量39
2.6.2 使用網路安全組防護40
2.7 使用堡壘機增加系統訪問的安全性41
2.7.1 開源堡壘機簡介43
2.7.2 商業堡壘機簡介44
2.8 分散式拒絕服務攻擊的防護措施46
2.8.1 直接式分散式拒絕服務攻擊46
2.8.2 反射式分散式拒絕服務攻擊47
2.8.3 防禦的思路48
2.9 區域網路中ARP欺騙的防禦48
2.10 本章小結50
第3章 虛擬專用網路52
3.1 常見虛擬專用網路構建技術53
3.1.1 PPTP虛擬專用網路的原理53
3.1.2 IPSec虛擬專用網路的原理53
3.1.3 SSL/TLS虛擬專用網路的原理54
3.2 深入理解OpenVPN的特性55
3.3 使用OpenVPN創建點到點的虛擬專用網路55
3.4 使用OpenVPN創建遠程訪問的虛擬專用網路61
3.5 使用OpenVPN創建站點到站點虛擬專用網路69
3.6 回收OpenVPN客戶端的證書70
3.7 使用OpenVPN提供的各種script功能71
3.8 OpenVPN的排錯步驟73
3.9 本章小結77
第4章 網路流量分析工具79
4.1 理解tcpdump工作原理80
4.1.1 tcpdump的實現機制80
4.1.2 tcpdump與iptables的關係82
4.1.3 tcpdump的簡要安裝步驟82
4.1.4 學習tcpdump的5個參數和過濾器83
4.1.5 學習tcpdump的過濾器83
4.2 使用RawCap抓取迴環連線埠的數據84
4.3 熟悉Wireshark的最佳配置項85
4.3.1 Wireshark安裝過程的注意事項85
4.3.2 Wireshark的關鍵配置項86
4.3.3 使用追蹤數據流功能89
4.4 使用libpcap進行自動化分析90
4.5 案例1:定位非正常發包問題91
4.6 案例2:分析運營商劫持問題94
4.6.1 中小運營商的網路現狀94
4.6.2 基於下載檔案的快取劫持95
4.6.3 基於頁面的iframe廣告嵌入劫持99
4.6.4 基於偽造DNS回響的劫持100
4.6.5 網卡混雜模式與raw socket技術100
4.7 本章小結103
第5章 Linux用戶管理105
5.1 Linux用戶管理的重要性105
5.2 Linux用戶管理的基本操作107
5.2.1 增加用戶108
5.2.2 為用戶設定密碼108
5.2.3 刪除用戶109
5.2.4 修改用戶屬性109
5.3 存儲Linux用戶信息的關鍵檔案詳解110
5.3.1 passwd檔案說明110
5.3.2 shadow檔案說明111
5.4 Linux用戶密碼管理112
5.4.1 密碼複雜度設定112
5.4.2 生成複雜密碼的方法113
5.4.3 弱密碼檢查方法116
5.5 用戶特權管理118
5.5.1 限定可以使用su的用戶118
5.5.2 安全地配置sudo118
5.6 關鍵環境變數和日誌管理119
5.6.1 關鍵環境變數設定唯讀119
5.6.2 記錄日誌執行時間戳119
5.7 本章小結120
第6章 Linux軟體包管理122
6.1 RPM概述122
6.2 使用RPM安裝和移除軟體123
6.2.1 使用RPM安裝和升級軟體123
6.2.2 使用RPM移除軟體124
6.3 獲取軟體包的信息125
6.3.1 列出系統中已安裝的所有RPM包125
6.3.2 軟體包的詳細信息查詢125
6.3.3 查詢哪個軟體包含有指定檔案126
6.3.4 列出軟體包中的所有檔案126
6.3.5 列出軟體包中的配置檔案127
6.3.6 解壓軟體包內容127
6.3.7 檢查檔案完整性127
6.4 Yum及Yum源的安全管理129
6.4.1 Yum簡介129
6.4.2 Yum源的安全管理130
6.5 自啟動服務管理130
6.6 本章小結131
第7章 Linux檔案系統管理133
7.1 Linux檔案系統概述133
7.1.1 Inode134
7.1.2 檔案的許可權135
7.2 SUID和SGID執行檔136
7.2.1 SUID和SGID執行檔概述136
7.2.2 使用sXid監控SUID和SGID檔案變化137
7.3 Linux檔案系統管理的常用工具137
7.3.1 使用chattr對關鍵檔案加鎖137
7.3.2 使用extundelete恢復已刪除檔案138
7.3.3 使用srm和dd安全擦除敏感檔案的方法141
7.4 案例:使用Python編寫敏感檔案掃描程式141
7.5 本章小結143
第8章 Linux套用安全145
8.1 簡化的網站架構和數據流向145
8.2 主要網站漏洞解析146
8.2.1 注入漏洞147
8.2.2 跨站腳本漏洞148
8.2.3 信息泄露149
8.2.4 檔案解析漏洞150
8.3 Apache安全152
8.3.1 使用HTTPS加密網站153
8.3.2 使用ModSecurity加固Web154
8.3.3 關注Apache漏洞情報158
8.4 Nginx安全158
8.4.1 使用HTTPS加密網站158
8.4.2 使用NAXSI加固Web159
8.4.3 關注Nginx漏洞情報160
8.5 PHP安全160
8.5.1 PHP配置的安全選項160
8.5.2 PHP開發框架的安全162
8.6 Tomcat安全163
8.7 Memcached安全165
8.8 Redis安全165
8.9 MySQL安全166
8.10 使用公有雲上的WAF服務167
8.11 本章小結168
第9章 Linux數據備份與恢復170
9.1 數據備份和恢復中的關鍵指標171
9.2 Linux下的定時任務172
9.2.1 本地定時任務172
9.2.2 分散式定時任務系統174
9.3 備份存儲位置的選擇175
9.3.1 本地備份存儲175
9.3.2 遠程備份存儲176
9.3.3 離線備份177
9.4 數據備份178
9.4.1 檔案備份178
9.4.2 資料庫備份179
9.5 備份加密181
9.6 資料庫恢復182
9.7 生產環境中的大規模備份系統案例182
9.8 本章小結184
第10章 Linux安全掃描工具186
10.1 需要重點關注的敏感連線埠列表186
10.2 掃描工具nmap188
10.2.1 使用源碼安裝nmap188
10.2.2 使用nmap進行主機發現189
10.2.3 使用nmap進行TCP連線埠掃描190
10.2.4 使用nmap進行UDP連線埠掃描192
10.2.5 使用nmap識別套用192
10.3 掃描工具masscan193
10.3.1 安裝masscan193
10.3.2 masscan用法示例193
10.3.3 聯合使用masscan和nmap194
10.4 開源Web漏洞掃描工具195
10.4.1 Nikto2195
10.4.2 OpenVAS196
10.4.3 SQLMap198
10.5 商業Web漏洞掃描工具199
10.5.1 Nessus199
10.5.2 Acunetix Web Vulnerability Scanner201
10.6 本章小結202
第11章 入侵檢測系統204
11.1 IDS與IPS204
11.2 開源HIDS OSSEC部署實踐205
11.3 商業主機入侵檢測系統214
11.3.1 青藤雲215
11.3.2 安全狗215
11.3.3 安騎士215
11.4 Linux Prelink對檔案完整性檢查的影響217
11.5 利用Kippo搭建SSH蜜罐218
11.5.1 Kippo簡介218
11.5.2 Kippo安裝219
11.5.3 Kippo捕獲入侵案例分析220
11.6 本章小結221
第12章 Linux Rootkit與病毒木馬檢查223
12.1 Rootkit分類和原理223
12.2 可載入核心模組225
12.3 利用Chkrootkit檢查Rootkit226
12.3.1 Chkrootkit安裝227
12.3.2 執行Chkrootkit227
12.4 利用Rkhunter檢查Rootkit228
12.4.1 Rkhunter安裝228
12.4.2 執行Rkhunter228
12.5 利用ClamAV掃描病毒木馬229
12.6 可疑檔案的線上病毒木馬檢查230
12.6.1 VirusTotal231
12.6.2 VirSCAN231
12.6.3 Jotti232
12.7 Webshell檢測232
12.7.1 D盾233
12.7.2 LMD檢查Webshell234
12.8 本章小結235
第13章 日誌與審計237
13.1 搭建遠程日誌收集系統237
13.1.1 Syslog-ng server搭建238
13.1.2 Rsyslog/Syslog client配置239
13.2 利用Audit審計系統行為239
13.2.1 審計目標239
13.2.2 組件240
13.2.3 安裝241
13.2.4 配置241
13.2.5 轉換系統調用242
13.2.6 審計Linux的進程243
13.2.7 按照用戶來審計檔案訪問244
13.3 利用unhide審計隱藏進程244
13.4 利用lsof審計進程打開檔案245
13.5 利用netstat審計網路連線246
13.6 本章小結246
第14章 威脅情報248
14.1 威脅情報的概況248
14.2 主流威脅情報介紹249
14.2.1 微步線上威脅情報社區249
14.2.2 360威脅情報中心252
14.2.3 IBM威脅情報中心253
14.3 利用威脅情報提高攻擊檢測與防禦能力254
14.4 本章小結255
附錄A 網站安全開發的原則257
附錄B Linux系統被入侵後的排查過程273
第1章 Linux系統安全概述1
1.1 什麼是安全2
1.1.1 什麼是信息安全2
1.1.2 信息安全的木桶原理4
1.1.3 Linux系統安全與信息安全的關係5
1.2 威脅分析模型5
1.2.1 STRIDE模型5
1.2.2 常見的安全威脅來源6
1.3 安全的原則8
1.3.1 縱深防禦8
1.3.2 運用PDCA模型9
1.3.3 最小許可權法則11
1.3.4 白名單機制12
1.3.5 安全地失敗12
1.3.6 避免通過隱藏來實現安全13
1.3.7 入侵檢測14
1.3.8 不要信任基礎設施14
1.3.9 不要信任服務15
1.3.10 交付時保持默認是安全的15
1.4 組織和管理的因素16
1.4.1 加強安全意識培訓16
1.4.2 特別注意弱密碼問題17
1.4.3 明令禁止使用破解版軟體18
1.4.4 組建合理的安全組織結構18
1.5 本章小結19
第2章 Linux網路防火牆21
2.1 網路防火牆概述21
2.2 利用iptables構建網路防火牆23
2.2.1 理解iptables表和鏈23
2.2.2 實際生產中的iptables腳本編寫25
2.2.3 使用iptables進行網路地址轉換27
2.2.4 禁用iptables的連線追蹤29
2.3 利用Cisco防火牆設定訪問控制34
2.4 利用TCP Wrappers構建套用訪問控制列表35
2.5 利用DenyHosts防止暴力破解36
2.6 在公有雲上實施網路安全防護38
2.6.1 減少公網暴露的雲伺服器數量39
2.6.2 使用網路安全組防護40
2.7 使用堡壘機增加系統訪問的安全性41
2.7.1 開源堡壘機簡介43
2.7.2 商業堡壘機簡介44
2.8 分散式拒絕服務攻擊的防護措施46
2.8.1 直接式分散式拒絕服務攻擊46
2.8.2 反射式分散式拒絕服務攻擊47
2.8.3 防禦的思路48
2.9 區域網路中ARP欺騙的防禦48
2.10 本章小結50
第3章 虛擬專用網路52
3.1 常見虛擬專用網路構建技術53
3.1.1 PPTP虛擬專用網路的原理53
3.1.2 IPSec虛擬專用網路的原理53
3.1.3 SSL/TLS虛擬專用網路的原理54
3.2 深入理解OpenVPN的特性55
3.3 使用OpenVPN創建點到點的虛擬專用網路55
3.4 使用OpenVPN創建遠程訪問的虛擬專用網路61
3.5 使用OpenVPN創建站點到站點虛擬專用網路69
3.6 回收OpenVPN客戶端的證書70
3.7 使用OpenVPN提供的各種script功能71
3.8 OpenVPN的排錯步驟73
3.9 本章小結77
第4章 網路流量分析工具79
4.1 理解tcpdump工作原理80
4.1.1 tcpdump的實現機制80
4.1.2 tcpdump與iptables的關係82
4.1.3 tcpdump的簡要安裝步驟82
4.1.4 學習tcpdump的5個參數和過濾器83
4.1.5 學習tcpdump的過濾器83
4.2 使用RawCap抓取迴環連線埠的數據84
4.3 熟悉Wireshark的最佳配置項85
4.3.1 Wireshark安裝過程的注意事項85
4.3.2 Wireshark的關鍵配置項86
4.3.3 使用追蹤數據流功能89
4.4 使用libpcap進行自動化分析90
4.5 案例1:定位非正常發包問題91
4.6 案例2:分析運營商劫持問題94
4.6.1 中小運營商的網路現狀94
4.6.2 基於下載檔案的快取劫持95
4.6.3 基於頁面的iframe廣告嵌入劫持99
4.6.4 基於偽造DNS回響的劫持100
4.6.5 網卡混雜模式與raw socket技術100
4.7 本章小結103
第5章 Linux用戶管理105
5.1 Linux用戶管理的重要性105
5.2 Linux用戶管理的基本操作107
5.2.1 增加用戶108
5.2.2 為用戶設定密碼108
5.2.3 刪除用戶109
5.2.4 修改用戶屬性109
5.3 存儲Linux用戶信息的關鍵檔案詳解110
5.3.1 passwd檔案說明110
5.3.2 shadow檔案說明111
5.4 Linux用戶密碼管理112
5.4.1 密碼複雜度設定112
5.4.2 生成複雜密碼的方法113
5.4.3 弱密碼檢查方法116
5.5 用戶特權管理118
5.5.1 限定可以使用su的用戶118
5.5.2 安全地配置sudo118
5.6 關鍵環境變數和日誌管理119
5.6.1 關鍵環境變數設定唯讀119
5.6.2 記錄日誌執行時間戳119
5.7 本章小結120
第6章 Linux軟體包管理122
6.1 RPM概述122
6.2 使用RPM安裝和移除軟體123
6.2.1 使用RPM安裝和升級軟體123
6.2.2 使用RPM移除軟體124
6.3 獲取軟體包的信息125
6.3.1 列出系統中已安裝的所有RPM包125
6.3.2 軟體包的詳細信息查詢125
6.3.3 查詢哪個軟體包含有指定檔案126
6.3.4 列出軟體包中的所有檔案126
6.3.5 列出軟體包中的配置檔案127
6.3.6 解壓軟體包內容127
6.3.7 檢查檔案完整性127
6.4 Yum及Yum源的安全管理129
6.4.1 Yum簡介129
6.4.2 Yum源的安全管理130
6.5 自啟動服務管理130
6.6 本章小結131
第7章 Linux檔案系統管理133
7.1 Linux檔案系統概述133
7.1.1 Inode134
7.1.2 檔案的許可權135
7.2 SUID和SGID執行檔136
7.2.1 SUID和SGID執行檔概述136
7.2.2 使用sXid監控SUID和SGID檔案變化137
7.3 Linux檔案系統管理的常用工具137
7.3.1 使用chattr對關鍵檔案加鎖137
7.3.2 使用extundelete恢復已刪除檔案138
7.3.3 使用srm和dd安全擦除敏感檔案的方法141
7.4 案例:使用Python編寫敏感檔案掃描程式141
7.5 本章小結143
第8章 Linux套用安全145
8.1 簡化的網站架構和數據流向145
8.2 主要網站漏洞解析146
8.2.1 注入漏洞147
8.2.2 跨站腳本漏洞148
8.2.3 信息泄露149
8.2.4 檔案解析漏洞150
8.3 Apache安全152
8.3.1 使用HTTPS加密網站153
8.3.2 使用ModSecurity加固Web154
8.3.3 關注Apache漏洞情報158
8.4 Nginx安全158
8.4.1 使用HTTPS加密網站158
8.4.2 使用NAXSI加固Web159
8.4.3 關注Nginx漏洞情報160
8.5 PHP安全160
8.5.1 PHP配置的安全選項160
8.5.2 PHP開發框架的安全162
8.6 Tomcat安全163
8.7 Memcached安全165
8.8 Redis安全165
8.9 MySQL安全166
8.10 使用公有雲上的WAF服務167
8.11 本章小結168
第9章 Linux數據備份與恢復170
9.1 數據備份和恢復中的關鍵指標171
9.2 Linux下的定時任務172
9.2.1 本地定時任務172
9.2.2 分散式定時任務系統174
9.3 備份存儲位置的選擇175
9.3.1 本地備份存儲175
9.3.2 遠程備份存儲176
9.3.3 離線備份177
9.4 數據備份178
9.4.1 檔案備份178
9.4.2 資料庫備份179
9.5 備份加密181
9.6 資料庫恢復182
9.7 生產環境中的大規模備份系統案例182
9.8 本章小結184
第10章 Linux安全掃描工具186
10.1 需要重點關注的敏感連線埠列表186
10.2 掃描工具nmap188
10.2.1 使用源碼安裝nmap188
10.2.2 使用nmap進行主機發現189
10.2.3 使用nmap進行TCP連線埠掃描190
10.2.4 使用nmap進行UDP連線埠掃描192
10.2.5 使用nmap識別套用192
10.3 掃描工具masscan193
10.3.1 安裝masscan193
10.3.2 masscan用法示例193
10.3.3 聯合使用masscan和nmap194
10.4 開源Web漏洞掃描工具195
10.4.1 Nikto2195
10.4.2 OpenVAS196
10.4.3 SQLMap198
10.5 商業Web漏洞掃描工具199
10.5.1 Nessus199
10.5.2 Acunetix Web Vulnerability Scanner201
10.6 本章小結202
第11章 入侵檢測系統204
11.1 IDS與IPS204
11.2 開源HIDS OSSEC部署實踐205
11.3 商業主機入侵檢測系統214
11.3.1 青藤雲215
11.3.2 安全狗215
11.3.3 安騎士215
11.4 Linux Prelink對檔案完整性檢查的影響217
11.5 利用Kippo搭建SSH蜜罐218
11.5.1 Kippo簡介218
11.5.2 Kippo安裝219
11.5.3 Kippo捕獲入侵案例分析220
11.6 本章小結221
第12章 Linux Rootkit與病毒木馬檢查223
12.1 Rootkit分類和原理223
12.2 可載入核心模組225
12.3 利用Chkrootkit檢查Rootkit226
12.3.1 Chkrootkit安裝227
12.3.2 執行Chkrootkit227
12.4 利用Rkhunter檢查Rootkit228
12.4.1 Rkhunter安裝228
12.4.2 執行Rkhunter228
12.5 利用ClamAV掃描病毒木馬229
12.6 可疑檔案的線上病毒木馬檢查230
12.6.1 VirusTotal231
12.6.2 VirSCAN231
12.6.3 Jotti232
12.7 Webshell檢測232
12.7.1 D盾233
12.7.2 LMD檢查Webshell234
12.8 本章小結235
第13章 日誌與審計237
13.1 搭建遠程日誌收集系統237
13.1.1 Syslog-ng server搭建238
13.1.2 Rsyslog/Syslog client配置239
13.2 利用Audit審計系統行為239
13.2.1 審計目標239
13.2.2 組件240
13.2.3 安裝241
13.2.4 配置241
13.2.5 轉換系統調用242
13.2.6 審計Linux的進程243
13.2.7 按照用戶來審計檔案訪問244
13.3 利用unhide審計隱藏進程244
13.4 利用lsof審計進程打開檔案245
13.5 利用netstat審計網路連線246
13.6 本章小結246
第14章 威脅情報248
14.1 威脅情報的概況248
14.2 主流威脅情報介紹249
14.2.1 微步線上威脅情報社區249
14.2.2 360威脅情報中心252
14.2.3 IBM威脅情報中心253
14.3 利用威脅情報提高攻擊檢測與防禦能力254
14.4 本章小結255
附錄A 網站安全開發的原則257
附錄B Linux系統被入侵後的排查過程273