Lynis 系統安全稽核工具介紹
lynis 是一個 UNIX-based 系統安全稽核程式,它會執行一些常見的基本檢查項目,包含檢查系統設定與軟體安裝是否有常見的缺失,並提供適當的改善建議。目前支援 Linux、FreeBSD、OpenBSD、Mac OS X 與 Solaris 平台。
您對 Lynis 檢查後產出的缺失報告與建議,如有明確了解且為必要需求,則可以忽略該建議。
Lynis 檢查項目大致如下:
- 系統程式是否有被置換或竄改,避免管理者或使用者執行到惡意程式。
- 開機程式及設定,並檢查目前已啟動的服務。
- 系統中的帳號資訊 (使用者、群組) 及帳號驗證方式等資訊。
- 檔案系統相關資訊,如 ACL 權限。
- 軟體套件管理是否正常,是否存在有弱點的套件。
- 防火牆設定是否啟用。
- Web Server、MySQL、PHP、Postfix 設定檢查。
- NTP 對時是否有啟動。
- 其他。
安裝方式
- Fedora、CentOS (CentOS 由原始網站提供外部連結,下載 RPM 套件手動安裝)
# yum install lynis 或 # yum --nogpgcheck localinstall lynis-?.?.?-?.?.noarch.rpm
- Debian
# apt-get install lynis
- 手動安裝
# cd /usr/local/src # wget http://www.rootkit.nl/files/lynis-?.?.?.tar.gz # tar xvfz http://www.rootkit.nl/files/lynis-?.?.?.tar.gz # cd lynis-?.?.? # sh ./lynis
更新資料庫
執行方式
首先,您必須獲得 root 權限來執行,可以使用 --help
了解有哪些參數可以運用:
# lynis --help
--check-all 檢查整個系統 --quick 快速模式,不等待使用者互動確認 --tests 僅執行特定項目的檢查
- 執行完整檢查,並逐項確認
# lynis --check-all --quick
- 執行完整檢查,並產出執行過程的紀錄
# lynis --check-all --quick --no-colors > /tmp/lynis.txt
- 針對特定項目進行檢查
# lynis --quick --tests "HOME-9302"
常見問題說明與改善方式
- Warning: klogd is not running, which could lead to missing kernel messages in log files
請檢查您系統上的 Syslog 系統紀錄服務是否正常執行,如下:
# ps -ef | grep logd
- Warning: Couldn't find 2 responsive nameservers
您的 DNS 名稱解析至少需設定二台以上的名稱解析伺服器,以免其中一台故障時無法解析名稱。
# grep nameserver /etc/resolv.conf
- Suggestion: You are adviced to hide the mail_name (option: smtpd_banner) from your postfix configuration. Use postconf -e or change your main.cf file (/etc/postfix/main.cf)
您的 SMTP 服務的 banner 上透露出部份感興趣的資訊,可以修改main.cf
檔案中smtpd_banner
的設定。
- Warning: PHP option expose_php is possibly turned on, which can reveal useful information for attackers.
- Suggestion: Change the allow_url_fopen line to: allow_url_fopen = no, to disable downloads via PHP
您的網頁伺服器似乎透露出您有使用 PHP,可以修改php.ini
檔案中expose_php
的設定來隱藏。
可調整 PHP 當中php.ini
檔案設定:
error_reporting = E_ALL & ~E_NOTICE display_errors = Off register_globals = Off expose_php = Off allow_url_fopen = Off allow_url_include = Off file_uploads = Off enable_dl = Off
- 檢查您的 Apache 伺服器是否透露出過多的訊息供有心人士利用,可修改
httpd.conf
檔案中如下的設定。
ServerTokens Prod ServerSignature Off TraceEnable Off
- Suggestion: Use mysqladmin to set a MySQL root password (mysqladmin -u root -p password MYPASSWORD)
檢查您的 MySQL 中,root 帳號是否有設定密碼。 - Suggestion: Harden the system by removing unneeded compilers. This can decrease the chance of customized trojans, backdoors and rootkits to be compiled and installed
如果您的伺服器上沒有編譯程式的需求,可以暫時移除掉編譯器,以避免有心人士在您的系統上編譯或安裝特定的後門程式。