+
85
-

回答

实时地监控root密码的修改并立即发出报警可以使用 auditd 和 audisp-remote 来实现这个功能。以下是具体步骤:

安装必要的软件包:
sudo yum install audit audisp-plugins postfix mailx
配置审计规则:

编辑 /etc/audit/rules.d/audit.rules 文件,添加以下规则:

-w /etc/shadow -p wa -k password-change
重启审计服务:
sudo service auditd restart
创建一个脚本来处理密码变更事件:

创建一个名为 /usr/local/bin/password_change_alert.sh 的脚本文件:

#!/bin/bash

ALERT_EMAIL="your_email@example.com"

echo "Root password change detected!" | mail -s "URGENT: Root Password Changed" $ALERT_EMAIL

确保将 your_email@example.com 替换为你想接收警报的邮箱地址。

给脚本添加执行权限:
sudo chmod +x /usr/local/bin/password_change_alert.sh
配置 audisp-remote:

编辑 /etc/audisp/audisp-remote.conf 文件,确保以下行被正确设置:

active = yes
direction = out
path = /sbin/audisp-remote
type = always
format = string
配置 audispd:

编辑 /etc/audisp/plugins.d/af_unix.conf 文件,确保以下行被正确设置:

active = yes
direction = out
path = /sbin/audispd
type = always
args = /usr/local/bin/password_change_alert.sh
format = string
重启 auditd 服务:
sudo service auditd restart
配置邮件服务:

如果你还没有配置过邮件服务,需要配置 Postfix 来发送邮件。编辑 /etc/postfix/main.cf 文件,添加或修改以下行:

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_use_tls = yes

然后创建 /etc/postfix/sasl_passwd 文件:

[smtp.gmail.com]:587 username@gmail.com:password

替换 username@gmail.com 和 password 为你的 Gmail 账户信息。

运行以下命令:

postmap /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
systemctl restart postfix

这样设置后,每当 root 密码被更改,你就会立即收到一封提醒邮件。这个方法会实时监控 /etc/shadow 文件的变化,只要有写入或属性更改的操作,就会触发警报。

请注意,这个方法可能会产生一些误报,因为它监控的是 /etc/shadow 文件的任何更改,而不仅仅是 root 密码的更改。如果你希望更精确地只监控 root 密码的更改,可能需要编写更复杂的脚本来解析审计日志并检查具体是否为 root 密码更改。

另外,为了确保系统安全,建议同时采取其他安全措施,如使用强密码策略、限制 root 登录、使用 SSH 密钥认证等。

网友回复

我知道答案,我要回答