我之前在 Ubuntu 16.04 上通过简单地安装包成功使用了 sshguard sshguard
。然而,当我尝试在 20.04 上执行同样操作时,我发现它只是大多工作:sshguard 正在记录这些阻止,并将其添加到iptables --list sshguard
,但这些阻止实际上并未生效。
我需要做什么才能让sshguard
Focal Fossa 充分发挥作用?
答案1
我发现sshguard 上的 Arch Wiki 页面,建议将以下内容添加到块/etc/ufw/before.rules
下方# allow all on loopback
:
# hand off control for sshd to sshguard
:sshguard - [0:0]
-A ufw-before-input -p tcp --dport 22 -j sshguard
将其添加到文件中并执行sudo systemctl restart ufw
似乎已成功。
但是,你还需要进行另一个配置更改:Ubuntu 自带的 sshguard.conf 文件将导致 sshguard 在其自己的日志消息上重新触发,一旦 IP 出现错误,立即封禁该 IP。(这个错误似乎是在上游 debian 软件包中引入的;sshguard 源中提供的示例没有这个问题。)要解决此问题,请编辑/etc/sshguard/sshguard.conf
并从设置SYSLOG_FACILITY
中删除选项LOGREADER
,将其替换为-t sshd
(以及可能还有其他您希望 sshguard 监控的服务)。设置应如下所示:
LOGREADER="LANG=C /bin/journalctl -afb -p info -n1 -o cat -t sshd"
经过这两项改变,它现在似乎可以按预期运行。