Lynis - 审计和硬化Linux系统的安全工具

时间:2020-03-05 15:28:53  来源:igfitidea点击:

Lynis是一种用于审计和硬化Linux/UNIX系统的安全工具。
此工具扫描我们的系统,执行一些测试并收集有关它的信息。
Lynis将提供一个关于建议和安全相关警告的报告,以增加系统的安全性。

安装

我们可以以两种方法安装Lynis。

方法1:从包装安装

两种方法都同样容易。
Lynis可在.deb和.rpm包中提供。
所以我们可以从Linux存储库安装它。

在Debian/Ubuntu及其衍生物上

$sudo apt-get install lynis

在Redhat/Centos和Fedora

$yum install lynis

一旦Lynis安装了,我们可以通过从控制台键入lynis来运行它。

请注意,Lynis将需要root权限(或者等于)运行。

方法2:从源安装

使用此方法,我们需要手动下载源。
我们可以转到Lynis下载页面下载源。

在文章写完时,Lynis的最新版本为1.3.8.

实际上,Lynis不需要安装。
我们只需下载源文件,提取它并运行它。
以下是步骤:

下载源。我们可以使用WGET下载。

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

提取它

$tar zxfv lynis-1.3.8.tar.gz

转到Lynis文件夹并运行它

$cd lynis-1.3.8
# ./lynis

请注意,Lynis需要root权限(或者等于)来运行。

如何运行lynis

要在第一次运行它,建议使用-c选项。
-c选项意味着执行所有测试以检查系统。
如果要将审计员名称放置,则只需在那里添加 - additor参数。

以下是一些输出示例:

# lynis -c --auditor “Pungki Arianto”

图1.初始化

图2.系统工具

图3.启动和服务和内核

图4.用户和组

图5. shell和存储

图6.软件,端口和包

图7.网络和打印机

图8.电子邮件,防火墙和Web服务器

图9. SSH,SNMP和数据库

. PHP,SQUID代理和日志记录

. INETD,BANNER和CRON

.会计,NTP和密码学

图13.虚拟化,安全框架和文件完整性

图14.恶意软件Scanner,系统工具和主目录

图15.内核硬化

图16.硬化,自定义测试和结果

图17.硬化指数

使用自定义测试运行lynis

系统可能不需要运行所有测试。
如果服务器未运行Web服务器,则无需测试它。
为此目的,我们可以使用--tests参数。
语法是:

# lynis --tests “Test-IDs”

对于版本1.3.8,我们可以使用100多个测试。
以下是Lynis Tests-ID的一些列表。

FILE-7502 (Check all system binaries)
BOOT-5121 (Check for GRUB boot loader presence)
BOOT-5124 (Check for FreeBSD boot loader presence)
BOOT-5139 (Check for LILO boot loader presence)
BOOT-5142 (Check SPARC Improved boot loader (SILO))
BOOT-5155 (Check for YABOOT boot loader configuration file)
BOOT-5159 (Check for OpenBSD i386 boot loader presence)
BOOT-5165 (Check for FreeBSD boot services)
BOOT-5177 (Check for Linux boot and running services)
BOOT-5180 (Check for Linux boot services (Debian style))
BOOT-5184 (Check permissions for boot files/scripts)
BOOT-5202 (Check uptime of system)
KRNL-5622 (Determine Linux default run level)
KRNL-5677 (Check CPU options and support)
KRNL-5695 (Determine Linux kernel version and release number)
KRNL-5723 (Determining if Linux kernel is monolithic)
KRNL-5726 (Checking Linux loaded kernel modules)
KRNL-5728 (Checking Linux kernel config)
KRNL-5745 (Checking FreeBSD loaded kernel modules)
[04:57:04] Reason to skip: Test not in list of tests to perform
KRNL-5770 (Checking active kernel modules)
KRNL-5788 (Checking availability new kernel)
KRNL-5820 (Checking core dumps configuration)

下面是要运行系统和检查核心转储配置测试的示例命令。
如果要添加更多测试,只需添加更多的Test-ID,以空格分隔。

# ./lynis --tests “BOOT-5202 KRNL-5820”

要获得更多测试ID,我们可以在/var/log/lynis.log中找到它。
这是如何做到的伎俩。

1.首先,我们需要使用-c(check-all)参数运行lynis。

# ./lynis -c -Q

2.然后查看内部/var/log/log/lynis.log文件。
使用CAT命令并将其与Grep结合起来。

假设我们想要搜索与内核相关的测试ID。
使用关键字krnl找到它。

# cat /var/log/lynis.log | grep KRNL

以下是Lynis中可用的test-ids的完整关键字。

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)

用类别运行lynis

如果我们觉得大量的测试ID是痛苦的,可以使用--test-category参数。
使用此选项,Lynis将运行包含在特定类别中的测试ID。
例如,我们希望运行防火墙和内核测试。
然后你可以这样做:

# ./lynis --tests-category “firewalls kernel”

要查看可用类别的完整列表,请运行:

# ./lynis --view-categories

将lynis作为cronjob

由于安全性需要一致,因此我们可以自动化Lynis定期运行。
假设,你想每月运行它,以便自上次Lynis运行以来有没有改进。

为此,我们可以将lynis作为cronjob运行。
这是一个每月运行它的示例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),否则脚本将无法正常工作。

检查Lynis的最新版本

我们可以使用--Check-Update参数来执行此操作。

# lynis --check-update

如果它过时,Lynis只能告诉我们它。
我们必须手动下载更新。