Linux運維的安全防護
此文檔是一個可以實際操作的實時更新的Linux運維安全相關的實施清單,用於對linux運維相關安全防護的計划 > 實施 > 檢查 > 改進
1 安全原則
在實施安全措施之前規定一些基本安全原則,做到心中有丘壑,眉目作山河
- 信息和系統安全防御是多層面的縱深防御,按從外層到內層的順序,主要包括5層:物理安全防御 > 網絡安全防御 > 主機安全防御 > 應用安全防御 > 數據安全保護
- 最小權限法則,給予用戶、程序、系統最小的僅能完成其功能的權限
- 盡量使用白名單而不是黑名單
- 使用入侵檢測系統及早發現黑客的攻擊行為
- 定期掃描系統漏洞、Rootkit、病毒
- 培養運維人員的安全意識,編寫運維安全文檔統一安全規范
2 物理安全防御
第一層的防御就是物理層防御,不論機房大小都應該重視
- 機房鎖上門,避免有人拿大錘進機房砸了服務器、路由器、交換機、空調
- 使用 UPS,防止斷電引起的服務器停機
3 網絡安全防御
網絡是能摸到你服務器的最直接的觸手,需要嚴加防范
- 使用網絡防火牆,在網絡邊界使用硬件防火牆如juniper、cisco等品牌的硬件防火牆,在操作系統層使用軟件防火牆如 iptables,進行細粒度的網絡訪問控制
- 對於部署到公有雲的網絡安全防御,要盡量盡量減少暴露的雲服務器和端口的數量,使用安全組設置服務器的網絡訪問控制
- 使用堡壘機,如開源的 jumpserver
- 防御 DDos 攻擊,使用雲廠商提供的 DDos 防御服務,使用 CDN 加大承載能力
- 搭建 VPN,連接不同地域的網絡或服務器,用於遠程辦公人員使用,或者連接不同的局域網
- 網絡安全問題的分析工具,可以使用 tcpdump、wireshark
4 主機安全防御
突破了網絡防御的觸手到達了你的服務器,別讓他繼續下去
4.1 Linux用戶安全管理
- 禁止 root 用戶 ssh 登陸服務器,建立單獨的用戶用於 ssh 登陸,使用密鑰登陸而不是密碼
- 用戶密碼要保證復雜度杜絕弱口令,使用弱密碼工具 John ther ripper 或 hydra 檢查弱密碼
- 安全的配置 sudo,賦予不同用戶滿足需求的最小權限
- 限定可以使用su的用戶,防止未授權的用戶切換成root
4.2 文件系統安全
- 使用 sXid 監控 SUID 和 SGID 類型文件的變化
- 使用 extundelete 恢復已刪除的文件
- 使用 srm 和 dd 命令安全擦除敏感文件
5 Linux 應用安全
Linux 應用安全主要包括安裝在 Linux 上的應用的相關安全設置,根據一項調查顯示網站高危漏洞最常見的是跨站腳本攻擊、SQL 注入、PHP 錯誤信息泄漏,數據庫運行時錯誤等
- 使用開源web防火牆(WebApplication Firewll,WAF),Apache 可以使用 ModSecurity,Nginx 可以使用 NAXSI,共有用可以購買雲WAF防火牆
- 使用 HTTPS 避免中間人攻擊和防止網絡上的嗅探,
- PHP 安全配置
- 注意 PHP 開發框架的漏洞
- 配置文件中禁止錯誤信息顯示
- 禁止 PHP 打開遠程文件
- 禁止PHP包含遠程文件
- 在 Cookie 中設置 “HTTPonly” 屬性等一系列安全配置
- Tomcat 安全配置
- 刪除 webapps 目錄下默認應用
- 為 Tomcat 設置專用的啟動用戶
- 關閉 WAR 包自動部署
- 自定義錯誤頁面
- MySQL 安全
- 部署在僅有內網的服務器上
- 通過防火牆設置為僅 Web 服務器可訪問
- 使用獨立的普通用戶運行 MySQL 服務
- 刪除安裝后的測試數據庫
- 用戶授權采用授權最小化原則
- 定期備份數據,防止數據丟失
6 使用 Linux 安全掃描工具
Linux 安全掃描工具主要用於掃描網絡開放端口、web漏洞
- 使用網絡掃描工具 masscan、nmap 掃描和發現對外開放的端口並識別端口對應的應用
- 使用開源 Web 漏洞掃描工具如 Nikto2、OpenVAS 掃描 Web 漏洞
- 使用 SQLMap 進行 SQL 注入滲透測試
7 部署入侵檢測系統
使用入侵檢測系統可以及時監測到入侵行為,便於及時采取防護措施
- 使用開源入侵檢測系統 OSSEC 或商業入侵檢測系統青藤雲、安騎士
- 使用Kippo搭建SSH蜜罐捕獲入侵記錄
8 Linux RootKit和病毒木馬檢查
不只是 Windows 上需要掃描病毒,Linux上也需要
- 使用 Chkrootkit、Rkhunter 掃描 Rootkit 和檢查系統關鍵文件
- 使用 ClamAV 掃描病毒木馬
- 使用 LDM 檢查 Webshell
9 安全日志收集
及時的收集安全日志,方便監控和排查
- 搭建 Syslog-ng 收集遠程服務器的安全日志
10 威脅情報收集
及時收集威脅情報,提前預防可能的安全風險
- 通過威脅情報網站收集威脅情報,比較著名的有 微步在線威脅情報社區、360威脅情報中心、IBM威脅情報中心
11 入侵后檢測
如果所有的防御手段失效,被攻擊后要及時排查處理
- 檢測常用程序是否被替換,有則修復
- 使用 chkrootkit 和 rkhunter 掃描 Rootkit
- 使用 ClamAV 掃描病毒
- 檢測隱藏目錄和文件
- 查看近期登陸記錄
- 查看是否有異常進程、隱藏進程、查看異常進程打開的端口及文件
- 檢查網絡連接和監聽端口,特別注意本季主動連接到外部地址的連接
- 查看arp記錄是否正常
- 檢查安全日志、應用日志、bash_history
- 檢查是否有Webshell
- 重裝系統,更改原密碼