如何借助lynis掃描Linux的安全漏洞?
譯文作為系統管理員、Linux安全技術員或系統審查員,你的職責可能涉及下列任務:軟件補丁管理、惡意軟件掃描、文件完整性檢查、安全審查、配置錯誤檢查等等。要是有一款安全漏洞自動掃描工具,那么可以為你在檢查常見安全問題方面節省大量的時間。
lynis就是Linux平臺上的這樣一款安全漏洞掃描工具。這款工具是開源工具(采用GPLv3許可證),實際上在包括Linux、FreeBSD和Mac OS在內的多個平臺上得到支持。
想把lynis安裝到Linux上,只要執行下列命令。
$ wget http://cisofy.com/files/lynis-1.6.3.tar.gz $ sudo tar xvfvz lynis-1.6.3.tar.gz -C /opt
想借助lynis掃描Linux的安全漏洞,請運行下面這兩個命令。
$ cd /opt/lynis-1.6.3/ $ sudo ./lynis --check-all -Q
一旦lynis開始掃描你的系統,它就會執行許多類別的審查工作:
•系統工具:系統二進制代碼
•引導和服務:引導裝入程序和啟動服務。
•內核:運行級別、已裝入模塊、內核配置和核心轉儲
•內存和進程:僵尸進程和輸入輸出等待進程
•用戶、用戶組和驗證:用戶組編號、sudoers文件、可插拔驗證模塊(PAM)配置、密碼老化和默認掩碼
•外殼
•文件系統:掛載點、臨時文件和根文件系統
•存儲:USB存儲(usb-storage)和火線開放式主機控制器接口(firewire ohci)
•NFS
•軟件:名稱服務:DNS搜索域和BIND
•端口和程序包:容易受到攻擊/可以升級的程序包和安全存儲庫
•網絡:名稱服務器、混雜接口和連接。
•打印機和假脫機:通用Unix打印系統(CUPS)配置
•軟件:電子郵件和消息傳送
•軟件:防火墻:iptables和pf
•軟件:網站服務器:Apache和nginx
•SSH支持:SSH配置
•SNMP支持
•數據庫:MySQL根密碼
•LDAP服務
•軟件:php:php選項
•Squid支持
•日志和文件:syslog守護程序和日志目錄
•不安全服務:inetd
•banner信息和身份證明
•調度任務:crontab/cronjob和atd
•審計:sysstat數據和auditd
•時間和同步:ntp守護程序
•密碼:SSL證書到期
•虛擬化
•安全框架:AppArmor、SELinux和grsecurity狀態
•軟件:文件完整性
•軟件:惡意軟件掃描工具
•主目錄:外殼歷史文件
實際運行中的lynis的屏幕截圖如下所示:
一旦掃描完畢,你系統的審查報告就會自動生成,并保存在/var/log/lynis.log中。
審查報告含有該工具檢測到的潛在安全漏洞方面的警告信息。比如說:
$ sudo grep Warning /var/log/lynis.log
[20:20:04] Warning: Root can directly login via SSH [test:SSH-7412] [impact:M] [20:20:04] Warning: PHP option expose_php is possibly turned on, which can reveal useful information for attackers. [test:PHP-2372] [impact:M] [20:20:06] Warning: No running NTP daemon or available client found [test:TIME-3104] [impact:M]
審查報告還含有許多建議措施,有助于加固你的Linux系統。比如說:
$ sudo grep Suggestion /var/log/lynis.log
[20:19:41] Suggestion: Install a PAM module for password strength testing like pam_cracklib or pam_passwdqc [test:AUTH-9262] [20:19:41] Suggestion: When possible set expire dates for all password protected accounts [test:AUTH-9282] [20:19:41] Suggestion: Configure password aging limits to enforce password changing on a regular base [test:AUTH-9286] [20:19:41] Suggestion: Default umask in /etc/profile could be more strict like 027 [test:AUTH-9328] [20:19:42] Suggestion: Default umask in /etc/login.defs could be more strict like 027 [test:AUTH-9328] [20:19:42] Suggestion: Default umask in /etc/init.d/rc could be more strict like 027 [test:AUTH-9328] [20:19:42] Suggestion: To decrease the impact of a full /tmp file system, place /tmp on a separated partition [test:FILE-6310] [20:19:42] Suggestion: Disable drivers like USB storage when not used, to prevent unauthorized storage or data theft [test:STRG-1840] [20:19:42] Suggestion: Disable drivers like firewire storage when not used, to prevent unauthorized storage or data theft [test:STRG-1846] [20:20:03] Suggestion: Install package apt-show-versions for patch management purposes [test:PKGS-7394] . . . .
掃描你系統的安全漏洞,作為一項日常計劃任務
想最充分地利用lynis,建議經常來運行它,比如說將它安排成一項日常計劃任務。在用“--cronjob”選項來運行時,lynis在自動的非交互式掃描模式下運行。
下面是日常計劃任務腳本,在自動模式下運行lynis,以便審查你的系統,并且將每日掃描報告進行歸檔。
$ sudo vi /etc/cron.daily/scan.sh
#!/bin/sh
AUDITOR="automated"
DATE=$(date +%Y%m%d)
HOST=$(hostname)
LOG_DIR="/var/log/lynis"
REPORT="$LOG_DIR/report-${HOST}.${DATE}"
DATA="$LOG_DIR/report-data-${HOST}.${DATE}.txt"cd /opt/lynis
./lynis -c --auditor "${AUDITOR}" --cronjob > ${REPORT}mv /var/log/lynis-report.dat ${DATA}
$ sudo chmod 755 /etc/cron.daily/scan.sh
原文地址:http://xmodulo.com/how-to-scan-linux-for-vulnerabilities.html