lynis check
System Tools
檢查系統可執行程序環境變量路徑nginx
Boot and services
GRUB2 菜單項進入單用戶模式已經設置密碼shell
其餘是檢查開始運行的服務,目前是運行24項服務,開機啓動是21項服務數據庫
- 服務腳本目錄: /lib/systemd/system/
- service文件權限: 0644
Kernel
運行級別、已裝入模塊、內核配置和核心轉儲apache
- 檢查運行級別 RUNLEVEL 5
- 檢查內核版本類型,以及加載模塊數量
- 檢查內核config文件,default I/O kernel scheduler,
- core dumps 配置,默認沒有開啓,
- setuid core dumps 配置爲默認
- 檢查是否須要重啓
Kernel Hardening
- Comparing sysctl key pairs with scan profile ,每一項後面是lynis給出的建議值,例如 (exp: 1)
- kernel.core_uses_pid (exp: 1) 每一個消息隊列的大小(單位:字節)限制
- kernel.ctrl-alt-del (exp: 0) 是否捕獲ctrl+alt+delete按鍵組合時的信號, 0,捕獲,1,不捕獲
- kernel.sysrq (exp: 0) 是否開啓SysRq功能, 0,禁用,1,啓用
- net.ipv4.conf.all.accept_redirects (exp: 0) ICMP接收重定向報文(全局設置) 0,忽略, 1 ,轉發
- net.ipv4.conf.all.accept_source_route (exp: 0) 接受全部源地址信息包(全局設置) 0,丟棄, 1 ,轉發
- net.ipv4.conf.all.bootp_relay (exp: 0)
- net.ipv4.conf.all.forwarding (exp: 0) 配置主機網絡接口的行爲, 0 禁止轉發,1,容許轉發
- net.ipv4.conf.all.log_martians (exp: 1) 將包含非法地址信息的ip包記錄到內核日誌(全局設置) 0 關閉, 1 開啓
- net.ipv4.conf.all.mc_forwarding (exp: 0) 多播路由 0 關閉, 1 開啓
- net.ipv4.conf.all.proxy_arp (exp: 0) ARP代理 0 關閉, 1 開啓
- net.ipv4.conf.all.rp_filter (exp: 1) 逆向路徑過濾 (Reverse Path Filtering) 0 關閉, 1 Strict mode, 2 Loose mode
- net.ipv4.conf.all.send_redirects (exp: 0) ICMP發送重定向報文 0 關閉, 1 開啓
- net.ipv4.conf.default.accept_redirects (exp: 0) ICMP接收重定向報文(默認設置) 0 忽略, 1 轉發
- net.ipv4.conf.default.accept_source_route (exp: 0) 接受全部源地址信息包(默認設置) 0 丟棄, 1 轉發
- net.ipv4.conf.default.log_martians (exp: 1) 將包含非法地址信息的ip包記錄到內核日誌(默認設置) 0 關閉, 1 開啓
- net.ipv4.icmp_echo_ignore_broadcasts (exp: 1) 設置是否響應icmp echo請求廣播, 0 響應, 1 忽略
- net.ipv4.icmp_ignore_bogus_error_responses (exp: 1) 忽略由網絡中的那些聲稱迴應地址是廣播地址的主機生成的ICMP錯誤 0 響應, 1 忽略
- net.ipv4.tcp_syncookies (exp: 1) 表示開啓SYN Cookies,當出現SYN等待隊列溢出時,啓用cookies來處理,可防範少許SYN攻擊, 0 關閉, 1 啓用
- net.ipv4.tcp_timestamps (exp: 0) 開啓時間戳,防範那些僞造的 sequence 號碼 0 關閉, 1 開啓
如下是針對ipv6的,和ipv4 的同參數功能相同
- net.ipv6.conf.all.accept_redirects (exp: 0)
- net.ipv6.conf.all.accept_source_route (exp: 0)
- net.ipv6.conf.default.accept_redirects (exp: 0)
- net.ipv6.conf.default.accept_source_route (exp: 0)
- man proc
- 網絡部分 https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
Memory and processes
檢查殭屍進程和輸入輸出等待進程,ps -aux
安全
- /proc/memento
- dead/zombie processes
- IO waiting processes
Users, Groups and Authentication
用戶組編號、sudoers文件、可插拔驗證模塊(PAM)配置、密碼老化和默認掩碼服務器
- 檢查 UID ID groupname 的惟一性
- 檢查 group files 和 password file 文件的一致性 (TODO)
- 檢查命名服務:
- 網絡信息服務 (Network Information Service, NIS)
- 輕型目錄訪問協議(Lightweight Directory Access Protocol,LDAP)
- 檢查sudo配置及其權限, /etc/sudoers 默認權限 0440
- PAM認證配置文件檢查,密碼強度配置檢查
- 檢查 LDAP module in PAM 是否配置,及其 LDAP authentication Support
- 檢查帳戶的到期日期,密碼爲空的配置狀況
- default umask (todo) /etc/profile 755 /etc/login.defs 644 /etc/init.d/rc 644
Shells
- /etc/shells 查看當前系統存在的shell數量
- 測試是否存在 Shellshock 漏洞
File systems
掛載點、臨時文件和根文件系統cookie
- 檢查 /home /tmp 掛載點
- 檢查 是否存在UNIX文件系統 FFS/UFS (BSD體系)
- 檢查 swap分區,測試swap分區狀態
- 檢查 /tmp old files 和 sticky bit,正確的權限 (1777)
- 檢查 根分區是否開啓 ACL 支持 已經開啓 (todo)
- 檢查 Locate database (todo)
- 檢查是否存在加密文件系統 否
Storage
檢查 USB存儲(usb-storage)和火線開放式主機控制器接口(firewire ohci) [ NOT DISABLED ] (todo)網絡
相關配置文件dom
- /lib/modprobe.d/aliases.conf
- /etc/modprobe.d/*
NFS
- 查詢 是否存在 rpc 程序 (Remote Procedure Call,遠程過程調用)
- 查詢 NFS 版本,協議,服務
Software: name services
- 檢查默認的 DNS search domain
- 檢查 search domains
- 檢查 /etc/resolv.conf 是否存在 options 配置項
- 檢查 DNS domain name
- 檢查 nscd,bind,PowerDNS,ypbind 運行狀態
- 檢查 /etc/hosts
- duplicates
- hostname
- localhost
Ports and packages
- 包管理套件: dpkg apt-get
- 檢查配置文件,以及是否存在安裝更新倉庫: 相關配置 /etc/apt/sources.list.d/*
- 包管理套件對應的數據庫完整性和一致性檢查,是針對包依賴關係,而不是包的文件內容,相關命令
dpkg -C
- 檢查 vulnerable packages (還沒太理解含義)
Networking
名稱服務器、混雜接口和鏈接狀態ssh
- 檢查是否配置nameservers 建議至少兩個可用的nameserver
- 檢查是否存在默認的網關,
- 檢查listening ports (TCP/UDP) 發現22個,經過下面命令能夠查詢
netstat -tlnp
netstat -ulnp
- 檢查網卡是否支持Promiscuous工做模式(混雜工做模式)
ifconfig [interface] promisc
ifconfig [interface] -promisc
- 檢查當前鏈接狀態,可執行命令查看
netstat -nat
- 檢查DHCP客戶端程序運行狀態
Printers and Spools
打印服務默認不安裝
Software: e-mail and messaging
檢查系統中 Exim Postfix Qmail Sendmail 的運行狀態
Software: firewalls
- 檢查 iptables 運行狀態
- 檢查 PF firewall (UNIX BSD 體系防火牆)
- 檢查 host based firewall 配置是否開啓
SSH Support
- PermitRootLogin 設置root遠程登陸策略,默認是 without-password
- StrictModes 設置ssh在接收登陸請求以前是否檢查用戶家目錄和rhosts文件的權限和全部權
- AllowUsers 用戶白名單
- AllowGroups 用戶組白名單
- Protocol 支持的協議版本
Logging and files
- 檢查日誌服務運行狀態,當前系統是rsyslog,
- 其餘同類軟件Syslog-NG,RFC 3195,minilogd
- logrotate進程是否運行,日誌文件管理工具,用於截斷(或輪循)、壓縮,刪除舊日誌文件,備份歷史日誌文件等
- 檢查是否在使用已經刪除的文件(deleted files in use)
- log directories (static list) (todo)
- open log files (todo)
Insecure services
Banners and identification
- 檢查 /etc/motd /etc/issue /etc/issue.net
Scheduled tasks
- 檢查 crontab atd 服務運行狀態
- 檢查 計劃任務運行狀態
Accounting
- 檢查 帳戶信息
- sysstat accounting data 默認沒有開啓
- auditd 檢查規則,配置文件,日誌文件
Time and Synchronization
- 檢查 ntp 服務或者客戶端是否存在
- 檢查 NTP client是否在/etc/anacrontab,/etc/crontab 或 cron.d files 中
Cryptography
- 檢查SSL證書是否過時
Virtualization
Security frameworks
- 檢查 AppArmor,SELinux,Grsecurity 是否開啓或支持
Software: file integrity
檢查如下文件完整性檢查工具是否存在
AFICK,AIDE,Osiris,Samhain,Tripwire,syscheck,mtree
Software: System tooling
saltstack,puppet,cfengine,chef,func,fabric
File Permissions
- 檢查 /etc/lilo.conf 和 $HOME/.ssh
Home directories
Hardening
- 檢查是否存在編譯器
- 檢查是否存在惡意軟件掃描工具
檢查是否存在如下軟件或服務
- apache
- nginx
- PHP
- MySQL
- PostgreSQL
- Oracle
- Squid
- OpenLDAP 運行實例
- SNMP 服務