因此,我希望安装denyhosts
、安装并启用 epel 存储库,但yum install denyhosts
仍然找不到它。我必须注意,我设法以同样简单的方式在 CentOS 6.4 上完成了此操作,但在版本 7 上此操作不起作用。
repo id repo name status
base/7/x86_64 CentOS-7 - Base enabled: 8,465
base-debuginfo/x86_64 CentOS-7 - Debuginfo disabled
base-source/7 CentOS-7 - Base Sources disabled
centosplus/7/x86_64 CentOS-7 - Plus disabled
centosplus-source/7 CentOS-7 - Plus Sources disabled
epel/x86_64 Extra Packages for Enterprise Linux enabled: 5,923
epel-debuginfo/x86_64 Extra Packages for Enterprise Linux disabled
epel-source/x86_64 Extra Packages for Enterprise Linux disabled
epel-testing/x86_64 Extra Packages for Enterprise Linux disabled
epel-testing-debuginfo/x86_64 Extra Packages for Enterprise Linux disabled
epel-testing-source/x86_64 Extra Packages for Enterprise Linux disabled
extras/7/x86_64 CentOS-7 - Extras enabled: 44
extras-source/7 CentOS-7 - Extras Sources disabled
fasttrack/7/x86_64 CentOS-7 - fasttrack disabled
updates/7/x86_64 CentOS-7 - Updates enabled: 944
updates-source/7 CentOS-7 - Updates Sources disabled
repolist: 15,376
No package denyhosts available.
Error: Nothing to do
更新我认为该问题与 EPEL 7 库有关,该库/beta/
已从官方 URL 中删除。我不完全确定它在哪里http://dl.fedoraproject.org/pub/epel/7/x86_64/
答案1
与 Chris 所说的相反,DenyHost 不使用 iptables 或任何其他防火墙系统,它使用 /etc/hosts.allow 和 /etc/hosts.deny,它们被 tcpd 和 sshd 等使用。
不清楚为什么 CentOS 7 EPEL 中没有这些,但防火墙更改不太可能是原因...例如,FreeBSD 没有 iptables,但有拒绝主机。我刚刚通过拒绝主机脚本(它在 python 中)进行了 grep。'iptables' 无处可寻。
虽然我不愿意安装包管理系统之外的东西,但似乎denyhosts的代码自2008年以来就没有改变过(至少在sourceforge中),所以直接下载并安装它应该没问题:http://denyhosts.sourceforge.net/
至少它可以工作,但需要阅读 README.TXT 才能安装。说明非常完整,包括将其放入 chkdconfig/service 控制中。
我刚刚验证了这在 CentOS 7 下运行良好。
答案2
在 CentOS 7 中,默认防火墙是 Firewalld,而不是 iptables。denyhosts 工具目前与 iptables 配合使用。如果您绝对必须使用 Denyhosts,您可能需要尝试手动禁用 Firewalld,安装并激活 iptables,然后强制安装 el6 版本的 Denyhosts。
如何恢复 iptables: http://www.tejasbarot.com/2014/08/02/rhel-7-centos-7-disable-firewalld-and-use-iptables/
或者,您可以尝试在 EPEL 中安装 fail2ban-hostsdeny,由于它集成到 fail2ban 中,因此它可能是一个更强大的解决方案。这是我目前正在探索的路线。