Linux系統安全:縱深防禦、安全掃描與入侵偵測 | 被動收入的投資秘訣 - 2024年5月

Linux系統安全:縱深防禦、安全掃描與入侵偵測

作者:胥峰
出版社:機械工業
出版日期:2019年07月17日
ISBN:9787111632184
語言:繁體中文
售價:412元

這是一部從技術原理、工程實踐兩個方面系統、深入講解Linux系統安全的著作,從縱深防禦、安全掃描、入侵偵測3個維度細緻講解了如何構建一個如銅牆鐵壁般的Linux防護體系。

作者是資深的Linux系統安全專家、運維技術專家,有13年的從業經驗,厚積薄發。本書得到了來自騰訊、阿里等知名企業的多位行業專家的高度評價。全書不僅包含大量工程實踐案例,而且為各種核心知識點繪製了方便記憶的思維導圖。

全書共14章:
第1章介紹了安全的概念和保障安全的主要原則,引申出“縱深防禦”理念;

第2~3章是縱深防禦的第個關鍵步驟,即從網路層面對Linux系統進行防護,包含Linux網路防火牆和虛擬私人網路絡的各個方面;

第4章介紹tcpdump、RawCap、Wireshark和libpcap等網路流量分析工具的技術原理,以及用它們來定位網路安全問題的方法;

第5~7章是縱深防禦的第二個關鍵步驟,即從作業系統層面對Linux系統進行防護,包含使用者管理、套裝軟體管理、檔案系統管理等核心主題;

第8章是縱深防禦的第三個關鍵步驟,即保障Linux應用的安全,避免應用成為駭客入侵的入口,涵蓋網站安全架構、Apache安全、Nginx安全、PHP安全、Tomcat安全、Memcached安全、Redis安全、My SQL安全等話題;

第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
 

為什麼要寫本書
我國西漢時期著名學者戴聖在其著作《禮記·中庸》中寫道,“凡事豫則立,不豫則廢。”面對日益嚴峻的網路安全形勢,這句話尤為適用。

全球知名網路安全公司Gemalto發佈的《資料洩露水準指數》指出,2018年上半年,全球每天有超過2500萬條資料遭到入侵或洩露,涉及醫療、信用卡、財務、個人身份資訊等。網路威脅事件時時刻刻在發生,駭客攻擊手法也趨於複雜和多樣。高速的網路連接是一把雙刃劍,它在加速了互聯網應用的同時,也助長了入侵者的危害能力。面對這樣險峻的形勢,我們亟需構建自己的網路防禦體系,這樣才能做到胸有成竹,禦敵於千里之外。

Linux是廣受歡迎的互聯網基礎設施之一,具有開源、免費的特點,並有豐富健康的生態環境和社區支持。正因如此,Linux也成為駭客攻擊的重要目標,因為其承載了大量互聯網上不可或缺的基礎服務,也是收集、生產、處理、傳輸和存儲有價值資料的實體。保護Linux安全的重要性不言而喻。

筆者注意到,雖然市面上有很多以“資訊安全”和“網路安全”為主題的書籍,但這些書籍大多聚焦在安全意識、法律法規和一些通用技術上。雖然這些書籍對網路安全建設起到了一定的指導作用,但是它們並不側重于Linux安全,也不強調在保障Linux安全上的特定實踐。因此,筆者認為有必要寫一本側重于Linux安全實踐的書籍,真正把安全的規範和指南落實在Linux上,構建Linux的安全體系。

本書以Linux安全為主線,強調實踐。實踐出真知,因此,筆者也鼓勵讀者在閱讀本書的過程中,多多動手在測試機上進行驗證,然後把這些技術應用到生產環境中。

讀者對象
本書以廣泛適用的資訊安全基本原則為指導,聚焦Linux安全,強調實戰。本書適合的讀者對象包括:
網路安全工程師
Linux運維工程師
Linux運維架構師
Linux開發工程師
Web開發工程師
軟體架構師
大中專院校電腦系學生
勘誤和支持
儘管筆者努力確保書中不存在明顯的技術錯誤,但由於技術水準和能力有限,書中可能存在某項技術不適用於讀者特定環境的情況,也可能存在紕漏。在此,筆者懇請讀者不吝指正。回饋專屬郵箱:[email protected]
本書中所有已發現的錯誤,除了在下一次印刷中修正以外,還會通過微信公眾號“運維技術實踐”(yunweijishushijian)發佈。
為了更好地服務讀者,筆者建立了本書的專屬支持QQ群(434242482)。有興趣的讀者可以加入該群,就本書的內容進行探討。

致謝
寫作的過程就像一場長跑,在這個跑道上,我收穫了無數的鼓勵和支持。

在此,我首先感謝機械工業出版社華章公司的楊福川老師和李藝老師。楊福川老師是出版界的資深人士,他出版了一系列高品質、廣受讚譽的IT類書籍。楊福川老師協助我完成了本書的選題並確定了基本內容和組織結構。李藝老師是一位專業、盡職、高效的編輯,她多次就本書提出非常有建設性的建議。

在長達數月的寫作過程中,我的太太承擔了全部的家庭責任,她使得我能持久安心地完成本書的寫作。感謝她!我的女兒今年5歲了,活潑靈巧。感謝她成為我生命中的一部分,鼓勵我努力前行!
 


相關書籍