作為系統(tǒng)管理員、Linux安全技術(shù)員或系統(tǒng)審查員,你的職責(zé)可能涉及下列任務(wù):軟件補(bǔ)丁管理、惡意軟件掃描、文件完整性檢查、安全審查、配置錯(cuò)誤檢查等等。要是有一款安全漏洞自動(dòng)掃描工具,那么可以為你在檢查常見安全問題方面節(jié)省大量的時(shí)間。
lynis就是Linux平臺(tái)上的這樣一款安全漏洞掃描工具。這款工具是開源工具(采用GPLv3許可證),實(shí)際上在包括Linux、FreeBSD和Mac OS在內(nèi)的多個(gè)平臺(tái)上得到支持。
想把lynis安裝到Linux上,只要執(zhí)行下列命令。
$ wget http://cisofy.com/files/lynis-1.6.3.tar.gz
$ sudo tar xvfvz lynis-1.6.3.tar.gz -C /opt
想借助lynis掃描Linux的安全漏洞,請(qǐng)運(yùn)行下面這兩個(gè)命令。
$ cd /opt/lynis-1.6.3/
$ sudo ./lynis –check-all -Q
一旦lynis開始掃描你的系統(tǒng),它就會(huì)執(zhí)行許多類別的審查工作:
系統(tǒng)工具:系統(tǒng)二進(jìn)制代碼
引導(dǎo)和服務(wù):引導(dǎo)裝入程序和啟動(dòng)服務(wù)。
內(nèi)核:運(yùn)行級(jí)別、已裝入模塊、內(nèi)核配置和核心轉(zhuǎn)儲(chǔ)
內(nèi)存和進(jìn)程:僵尸進(jìn)程和輸入輸出等待進(jìn)程
用戶、用戶組和驗(yàn)證:用戶組編號(hào)、sudoers文件、可插拔驗(yàn)證模塊(PAM)配置、密碼老化和默認(rèn)掩碼
外殼
文件系統(tǒng):掛載點(diǎn)、臨時(shí)文件和根文件系統(tǒng)
存儲(chǔ):USB存儲(chǔ)(usb-storage)和火線開放式主機(jī)控制器接口(firewire ohci)
NFS
軟件:名稱服務(wù):DNS搜索域和BIND
端口和程序包:容易受到攻擊/可以升級(jí)的程序包和安全存儲(chǔ)庫
網(wǎng)絡(luò):名稱服務(wù)器、混雜接口和連接。
打印機(jī)和假脫機(jī):通用Unix打印系統(tǒng)(CUPS)配置
軟件:電子郵件和消息傳送
軟件:防火墻:iptables和pf
軟件:網(wǎng)站服務(wù)器:Apache和nginx
SSH支持:SSH配置
SNMP支持
數(shù)據(jù)庫:MySQL根密碼
LDAP服務(wù)
軟件:php:php選項(xiàng)
Squid支持
日志和文件:syslog守護(hù)程序和日志目錄
不安全服務(wù):inetd
banner信息和身份證明
調(diào)度任務(wù):crontab/cronjob和atd
審計(jì):sysstat數(shù)據(jù)和auditd
時(shí)間和同步:ntp守護(hù)程序
密碼:SSL證書到期
虛擬化
安全框架:AppArmor、SELinux和grsecurity狀態(tài)
軟件:文件完整性
軟件:惡意軟件掃描工具
主目錄:外殼歷史文件
實(shí)際運(yùn)行中的lynis的屏幕截圖如下所示:
如何借助lynis掃描Linux的安全漏洞?
一旦掃描完畢,你系統(tǒng)的審查報(bào)告就會(huì)自動(dòng)生成,并保存在/var/log/lynis.log中。
審查報(bào)告含有該工具檢測(cè)到的潛在安全漏洞方面的警告信息。比如說:
$ 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]
審查報(bào)告還含有許多建議措施,有助于加固你的Linux系統(tǒng)。比如說:
$ 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]
. . . .
掃描你系統(tǒng)的安全漏洞,作為一項(xiàng)日常計(jì)劃任務(wù)
想最充分地利用lynis,建議經(jīng)常來運(yùn)行它,比如說將它安排成一項(xiàng)日常計(jì)劃任務(wù)。在用“–cronjob”選項(xiàng)來運(yùn)行時(shí),lynis在自動(dòng)的非交互式掃描模式下運(yùn)行。
下面是日常計(jì)劃任務(wù)腳本,在自動(dòng)模式下運(yùn)行l(wèi)ynis,以便審查你的系統(tǒng),并且將每日掃描報(bào)告進(jìn)行歸檔。
$ sudo vi /etc/cron.daily/scan.sh
#!/bin/shAUDITOR="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