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 >sudosystemctl enable --now seccheck-daily.timer
列出所有活动计时器:
tux >sudosystemctl list-timers
列出所有已启用的活动和非活动计时器:
tux >sudosystemctl 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 包含多个配置示例。