如何借助lynis扫描Linux的安全漏洞

  作为系统管理员、Linux安全技术员或系统审查员,你的职责可能涉及下列任务:软件补丁管理、恶意软件扫描、文件完整性检查、安全审查、配置错误检查等等。要是有一款安全漏洞自动扫描工具,那么可以为你在检查常见安全问题方面节省大量的时间。

  lynis就是Linux平台上的这样一款安全漏洞扫描工具。这款工具是开源工具(采用GPLv3许可证),实际上在包括Linux、FreeBSD和Mac OS在内的多个平台上得到支持。

  想把lynis安装到Linux上,只要执行下列命令。

  $ wget http://cisofy.com/files/lynis-1.6.3.tar.gz

  $ sudo tar xvfvz lynis-1.6.3.tar.gz -C /opt

  想借助lynis扫描Linux的安全漏洞,请运行下面这两个命令。

  $ cd /opt/lynis-1.6.3/

  $ sudo ./lynis –check-all -Q

  一旦lynis开始扫描你的系统,它就会执行许多类别的审查工作:

  系统工具:系统二进制代码

  引导和服务:引导装入程序和启动服务。

  内核:运行级别、已装入模块、内核配置和核心转储

  内存和进程:僵尸进程和输入输出等待进程

  用户、用户组和验证:用户组编号、sudoers文件、可插拔验证模块(PAM)配置、密码老化和默认掩码

  外壳

  文件系统:挂载点、临时文件和根文件系统

  存储:USB存储(usb-storage)和火线开放式主机控制器接口(firewire ohci)

  NFS

  软件:名称服务:DNS搜索域和BIND

  端口和程序包:容易受到攻击/可以升级的程序包和安全存储库

  网络:名称服务器、混杂接口和连接。

  打印机和假脱机:通用Unix打印系统(CUPS)配置

  软件:电子邮件和消息传送

  软件:防火墙:iptables和pf

  软件:网站服务器:Apache和nginx

  SSH支持:SSH配置

  SNMP支持

  数据库:MySQL根密码

  LDAP服务

  软件:php:php选项

  Squid支持

  日志和文件:syslog守护程序和日志目录

  不安全服务:inetd

  banner信息和身份证明

  调度任务:crontab/cronjob和atd

  审计:sysstat数据和auditd

  时间和同步:ntp守护程序

  密码:SSL证书到期

  虚拟化

  安全框架:AppArmor、SELinux和grsecurity状态

  软件:文件完整性

  软件:恶意软件扫描工具

  主目录:外壳历史文件

  实际运行中的lynis的屏幕截图如下所示:

  如何借助lynis扫描Linux的安全漏洞?

  一旦扫描完毕,你系统的审查报告就会自动生成,并保存在/var/log/lynis.log中。

  审查报告含有该工具检测到的潜在安全漏洞方面的警告信息。比如说:

  $ 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]

  审查报告还含有许多建议措施,有助于加固你的Linux系统。比如说:

  $ 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]

  . . . .

  扫描你系统的安全漏洞,作为一项日常计划任务

  想最充分地利用lynis,建议经常来运行它,比如说将它安排成一项日常计划任务。在用“–cronjob”选项来运行时,lynis在自动的非交互式扫描模式下运行。

  下面是日常计划任务脚本,在自动模式下运行lynis,以便审查你的系统,并且将每日扫描报告进行归档。

  $ 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

上一篇:智能无惧挑战 山石网科轰动RSA2015

下一篇:垃圾邮件现新骗局 卡巴斯基为你揭秘