詳解Linux開源安全審計和滲透測試工具Lynis

 轉載自FreeBuf.COMphp

lynis.jpg

Lynis是一款Unix系統的安全審計以及加固工具,可以進行深層次的安全掃描,其目的是檢測潛在的時間並對將來的系統加固提供建議。這款軟件會掃描通常系統信息,脆弱軟件包以及潛在的錯誤配置。掃描完成後,Lynis還會爲咱們生成一份包含全部掃描結果的安全報告。nginx

Lynis是Unix/Linux系統用於軟件補丁管理,惡意軟件掃描和漏洞檢測的最值得信賴的自動化審計工具之一。此工具很是適合於安全審計人員,網絡安全專家,滲透測試人員,網絡和系統管理人員以及安全工程師使用。git

與Lynis兼容的操做系統包括:

AIXgithub

Arch Linuxweb

BackTrack Linuxshell

CentOS數據庫

Debian, DragonFlyBSD安全

Fedora Core, FreeBSDbash

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.初始化

1.png

圖2.系統工具

lynis2.png

圖3. Boot&Services和Kernel

3.png

圖4.用戶和組

4.png

圖5.Shell和存儲

5.png

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

6.png

圖7.網絡和打印機

7.png

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

8.png

圖9. SSH,SNMP和數據庫

9.png

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

10.png

圖11. Inetd,Banner和Cron

11.png

圖12.Accounting,NTP和密碼學

12.png

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

13.png

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

14.png

圖15.內核加固

15.png

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

lynis_16_hardening_customtests_result.png

圖17.index加固

17.png

自定義測試

你的當前測試的系統可能並不須要對全部內容進行測試,例如你的系統並無運行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」

111111.png

想要得到更多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

2222.png

如下是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」

3333.png

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),不然腳本將沒法正常工做。

*參考來源:gbhackersFB小編 secist 編譯,轉載自FreeBuf.COM

相關文章
相關標籤/搜索