这拒绝主机服务应该分析我的日志并告诉我是否有人试图暴力破解我的 sshd。它应该拒绝他们的访问并向我发送电子邮件。我怎么知道它是否正常工作?特别是,我可以让它向我发送一封测试电子邮件,以便我知道它确实具有正确的地址和配置。
我强烈怀疑不能给我发送一封电子邮件,因为这个盒子上没有发送邮件。
答案1
看起来拒绝主机需要配置 SMTP 服务器denyhosts.cfg
- 它不支持标准/usr/sbin/sendmail
接口。
尝试运行denyhosts --foreground
,并检查系统日志和/或配置的日志文件。
您还可以使用此脚本发送测试电子邮件;使用以下命令运行它sudo -u denyhosts
:
#!/usr/bin/env python
import sys
sys.path.insert(0, '/usr/share/denyhosts')
from DenyHosts import constants, prefs, util
prefs = prefs.Prefs(constants.CONFIG_FILE)
util.setup_logging(prefs, True, False, False)
util.send_email(prefs, "This is a test.")
仅供参考:这里的“sendmail”不特指 Sendmail MTA,而是指/usr/sbin
(有时/usr/lib
)中的可执行程序,它由任何MTA — 不仅仅是 Sendmail,还有 Postfix、Exim 等。
答案2
让 DenyHosts 向您发送测试电子邮件。
- 登录包含 sshd 服务器的 Linux 系统并切换到 root 用户。
- 将以下行附加到文件 /etc/hosts.deny -sshd:127.0.0.1
- 保存文件
- 尝试连接到本地 sshd 服务器:-$ ssh 本地主机 (如果您连接的是 22 以外的端口,请使用 -p 开关)
- 您应该会收到以下错误信息:-ssh_exchange_identification:远程主机关闭连接
- 你还应该收到了来自 DenyHosts [Nobody@yourserver] 的电子邮件
- 记得删除您添加到文件 /etc/hosts.deny 的行 - 保存该文件。