11 使用 seccheck 进行自动安全检查 #
seccheck
SUSE 安全检查器是一组外壳脚本,旨在定期自动检查系统的本地安全,并通过电子邮件向 root 用户或管理员配置的任何用户发送报告。
如果 seccheck 未安装(在您的系统上),请使用 sudo zypper in seccheck
进行安装。这些脚本由 systemd
计时器进行控制,该计时器默认未启用,必须由管理员进行启用。
11.1 Seccheck 计时器 #
有以下四种 seccheck
计时器:
/usr/lib/systemd/system/seccheck-daily.timer
/usr/lib/systemd/system/seccheck-monthly.timer
/usr/lib/systemd/system/seccheck-weekly.timer
/usr/lib/systemd/system/seccheck-autologout.timer
seccheck-daily.timer
、seccheck-monthly.timer
和 seccheck-weekly.timer
运行多项检查,如第 11.3 节 “每日、每周和每月检查”中所述。seccheck-autologout.timer
可注销非活动用户,请参见第 11.4 节 “自动注销”。
您可以将 seccheck 邮件的收件人由 root 更改为 /etc/sysconfig/seccheck
中的任何用户。以下示例将其更改为名为 firewall
的管理员用户:
SECCHK_USER="firewall"
11.2 启用 seccheck 计时器 #
使用 systemctl
管理您的计时器,如同任何其他 systemd 计时器一样。以下示例启用并启动 seccheck-daily.timer
:
tux >
sudo
systemctl enable --now seccheck-daily.timer
列出所有活动计时器:
tux >
sudo
systemctl list-timers
列出所有已启用的活动和非活动计时器:
tux >
sudo
systemctl list-timers --all
11.3 每日、每周和每月检查 #
seccheck
执行下列每日检查:
|
字段的长度/数量/内容,具有相同 UID 的帐户,UID/GID 为 0 或 1 的帐户(root 和 bin 除外) |
|
字段的长度/数量/内容,没有口令的帐户 |
|
字段的长度/数量/内容 |
用户 root 检查 |
安全 umask 和 |
|
检查是否将重要的系统用户置于此处 |
|
检查执行程序的邮件别名 |
|
检查用户的 |
用户主目录 |
检查主目录是否可写入或被其他用户拥有 |
点文件检查 |
检查主目录中的众多点文件是否具有正确的所有权和权限 |
邮箱检查 |
检查用户邮箱是否由正确的用户拥有,以及是否可读 |
NFS 导出检查 |
不应进行全局导出 |
NFS 导入检查 |
NFS 装入应设置 |
混杂检查 |
检查网卡是否处于混杂模式 |
列表模块 |
列出装载的模块 |
列表套接字 |
列出打开的端口 |
下表列出了每周检查:
口令检查 |
运行 |
RPM md5 检查 |
通过 RPM 的 MD5 校验和功能检查已更改文件 |
suid/sgid 检查 |
列出所有 suid 和 sgid 文件 |
可执行文件组写入 |
列出组可写/全局可写的所有可执行文件 |
可写入检查 |
列出全局可写的所有文件(包括可执行文件) |
设备检查 |
列出所有设备 |
john
审计口令要启用口令审计,必须先安装软件包 john,即 John the Ripper 快速口令破解程序。该软件包可从 https://build.opensuse.org/package/show/security/john 上的 openSUSE Build Service 获取。
每月检查会列显一份完整的报告,每日检查和每周检查的列显内容则不相同。
11.4 自动注销 #
seccheck-autologout.timer
计时器每隔 10 分钟运行一次,检查远程和本地终端会话是否处于非活动状态,并在超过空闲时间后终止会话。
在 /etc/security/autologout.conf
文件中配置您需要的超时。参数包括默认的空闲和注销延迟时间,以及限制特定于用户、组、TTY 设备和 SSH 会话的最大空闲时间的配置。/etc/security/autologout.conf
包含多个配置示例。