
Lynis是一款Unix系統的安全審計以及加固工具,能夠進行深層次的安全掃描,其目的是檢測潛在的時間并對未來的系統加固提供建議。這款軟件會掃描一般系統信息,脆弱軟件包以及潛在的錯誤配置。掃描完成后,Lynis還會為我們生成一份包含所有掃描結果的安全報告。
Lynis是Unix/Linux系統用于軟件補丁管理,惡意軟件掃描和漏洞檢測的最值得信賴的自動化審計工具之一。此工具非常適合于安全審計人員,網絡安全專家,滲透測試人員,網絡和系統管理人員以及安全工程師使用。
與Lynis兼容的操作系統包括:
AIX
Arch Linux
BackTrack Linux
CentOS
Debian, DragonFlyBSD
Fedora Core, FreeBSD
Gentoo
HPUX
Kali, Knoppix
Linux Mint
MacOS X, Mageia, Mandriva
NetBSD
OpenBSD, OpenSolaris, openSUSE, Oracle Linux
PcBSD, PCLinuxOS
Red Hat Enterprise Linux (RHEL) and derivatives
Sabayon, Scientific Linux, Slackware, Solaris 10, SuSE
TrueOS
Ubuntu and derivatives
Lynis也可以被用于軟件審計
Database servers: MySQL, Oracle, PostgreSQL
Time daemons: dntpd, ntpd, timed
Web servers: Apache, Nginx
一旦lynis開始掃描你的系統,它將執行多個類別的審計:
系統工具:系統二進制文件
啟動和服務:啟動加載程序,啟動服務
內核:運行級別,加載模塊,內核配置,核心轉儲
內存和進程:僵尸進程,IO等待進程
用戶,組和身份驗證:組ID,sudoers,PAM配置,password aging,默認掩碼
Shells
文件系統:掛載點,/tmp文件, root文件系統
存儲:usb-storage,firewire ohci
NFS
軟件:名稱服務:DNS搜索域,BIND
端口和軟件包:易受攻擊/可升級軟件包,安全存儲庫
網絡:名稱服務器,混雜接口(promiscuous interfaces),連接
打印機和spools: cups配置
軟件:電子郵件和消息
軟件:防火墻:iptables,pf
軟件:webserver:Apache,nginx
SSH支持:SSH配置
SNMP支持
數據庫:MySQL root密碼
LDAP服務
軟件:php:php選項
Squid支持
日志記錄和文件:Syslog daemon,日志目錄
不安全服務:inetd
Banners和標識
計劃任務:crontab/cronjob,atd
Accounting:sysstat數據,auditd
時間和同步:ntp daemon
加密:SSL證書過期
虛擬化
安全框架:AppArmor,SELinux,安全狀態
軟件:文件完整性
軟件:惡意軟件掃描器
主目錄:shell歷史文件
第一次運行Lynis建議使用-c參數,-c表示對系統進行最全面的檢查。如果你想要添加審計員的名字,可以使用–auditor參數。
從GitHub下載和安裝Lynis。
git clone https://github.com/CISOfy/lynis
$ cd lynis-1.3.8
# ./lynis
使用示例:
# lynis -c –auditor “BALAJI”
圖1.初始化

圖2.系統工具

圖3. Boot&Services和Kernel

圖4.用戶和組

圖5.Shell和存儲

圖6.軟件,端口和軟件包

圖7.網絡和打印機

圖8.電子郵件,防火墻和Web服務器

圖9. SSH,SNMP和數據庫

圖10. PHP,Squid代理和日志記錄

圖11. Inetd,Banner和Cron

圖12.Accounting,NTP和密碼學

圖13.虛擬化,安全框架和文件完整性

圖14.惡意軟件掃描程序,系統工具和主目錄

圖15.內核加固

圖16.加固,自定義測試和結果

圖17.index加固

自定義測試
你的當前測試的系統可能并不需要對所有內容進行測試,例如你的系統并沒有運行Web服務器,那么我們可以使用-tests參數,語法如下:
# lynis –tests “Test-IDs”
有超過100個我們可以做的測試。以下是Lynis Tests-ID的部分列表。
FILE-7502 (檢查系統所有的二進制文件)
BOOT-5121 (GRUB boot loader存在檢查).
BOOT-5139 (LILO boot loader存在檢查)
BOOT-5142 (檢查SPARC Improved boot loader (SILO))
BOOT-5155 (檢查YABOOT boot loader配置文件)
BOOT-5159 (OpenBSD i386 boot loader存在檢查)
BOOT-5165 (檢查FreeBSD boot services)
BOOT-5177 (檢查Linux boot和正在運行的services)
BOOT-5180 (檢查Linux boot services (Debian style))
BOOT-5184 (檢查引導文件/腳本的權限)
BOOT-5202 (檢查系統的正常運行時間)
KRNL-5677 (檢查CPU選項和支持)
KRNL-5695 (確定Linux內核版本和版本號)
KRNL-5723 (確定Linux內核是否為單內核)
KRNL-5726 (檢查Linux加載的內核模塊)
KRNL-5728 (檢查Linux內核配置)
KRNL-5745 (檢查FreeBSD加載的內核模塊)
KRNL-5770 (檢查活動內核模塊)
KRNL-5788 (檢查新內核的可用性)
KRNL-5820 (檢查核心轉儲配置)
以下是運行“檢查系統正常運行時間”和“檢查核心轉儲配置”測試的命令示例。
# ./lynis –tests “BOOT-5202 KRNL-5820”

想要獲得更多Tests-ID,可以在/var/log/lynis.log中找到。這里有一個竅門。
1.首先,我們使用-c (check-all)參數運行lynis。
# ./lynis -c -Q
2.然后看看/var/log/lynis.log文件。使用cat命令并與grep結合使用。假設你想搜索與Kernel相關的Test-ID。則可以使用關鍵字KRNL找到它。
# cat /var/log/lynis.log | grep KRNL

以下是Lynis提供的完整的Test-ID關鍵字。
BOOT KRNL (kernel) PROC (processor) AUTH (authentication) SHLL (shell) FILE STRG (storage) NAME (dns) PKGS (packaging) NETW (network) PRNT (printer) MAIL FIRE (firewall) HTTP (webserver) SSH SNMP DBS (database) PHP LDAP SQD (squid proxy) LOGG (logging) INSE (insecure services – inetd) SCHD (scheduling – cron job) ACCT (accounting) TIME (time protocol – NTP) CRYP (cryptography) VIRT (virtualization) MACF (AppArmor – SELINUX) MALW (malware) HOME HRDN (hardening)
如果你覺得輸入Test-ID是件非常麻煩的事,那么你可以使用-test-category參數。使用該選項,Lynis將運行包含在特定類別內的Test-ID。例如,你想運行防火墻和內核測試。你可以輸入以下命令:
# ./lynis –tests-category “firewalls kernel”

將Lynis作為Cronjob運行
除了以上的方便之外,我們還可以將Lynis作為Cronjob定期自動運行。以下是每月運行一次的示例:
#!/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 /usr/local/lynis
./lynis -c –auditor “${AUDITOR}” –cronjob > ${REPORT}
mv /var/log/lynis-report.dat ${DATA}
# End
將腳本保存到/etc/cron.monthly/lynis。還有千萬不要忘記添加相關路徑(/usr/local/lynis和/var/log/lynis),否則腳本將無法正常工作。
|