嗯,问题听起来很简单,但互联网上没有任何东西能帮我。有人知道关于这个主题的好资源吗?或者有人想在这里描述这个过程?我觉得这比我由于缺乏信息而经历的要容易得多。
作为一名初学者,我和许多其他人一样,对安装和配置 + 我应该拥有的特定 JAILS 的具体步骤感兴趣,而且我想知道为什么不激活所有的 JAILS,这会损坏我的服务器吗?
非常感谢那些花时间帮助我的人!
答案1
这似乎是一个很好的指南(它在我的浏览器历史记录中,所以我认为我过去曾经使用过它)。
Fail2ban 实际上非常简单。它主要是确保您将 LAN 网络列入白名单(这样您就不会将自己锁定在外),启用您想要的内置 jail,并调整禁止时间和重试次数。编写自己的 jail 相当简单,但内置 jail 可以满足 90% 的使用情况。
将您可能要连接的任何机器的地址列入白名单。因此,如果您在同一个网络上,并且您的服务器是 192.168.1.1,而您的 PC 是 192.168.1.2,请将整个 192.168.1.0 子网列入白名单,并使用 192.168.1.0/24 符号。如果您远程登录并且您在家中/工作时有一个静态 IP 地址,请将该 IP 地址列入白名单。如果您使用的是动态连接,您可能希望将整个 ISP 子网列入白名单,但不建议这样做。
答案2
这个过程确实很简单,但请注意,jail 寻找不存在的日志源(例如文件)可能会导致 fail2ban 无法启动。
我不知道 ubuntu 的细节,但对于 centos,我会这样做:
- 选择我的防火墙(最终将是firewalld,因为这是CentOS7的默认设置)
- 安装 fail2ban 和正确的防火墙绑定
- 启动 fail2ban,并确保其正常工作(默认情况下,它将激活 SSH jail)。
- 考虑一下你接下来需要什么
您可能需要考虑的一件事是简单地扩展 SSH jail 设置的阻止范围,以完全阻止任何违规源(即,不仅阻止端口 22,还阻止所有流量)。
如果你确实发现你需要其他jail和/或过滤器,我会:
- 使用 /etc/fail2ban/jail.d 来存储我的 jail 配置,以确保我可以删除任何导致问题的内容,而无需浏览大型配置文件
- 确保对新监狱进行测试,特别是不是首先将它们用于 SSH,并确保它们仅适用于监狱正在监控其日志的服务。
我在 ansible online 上有一个小例子,请参见https://github.com/iwaseatenbyagrue/ansible/blob/master/roles/fail2ban/tasks/suricata.yml和https://github.com/iwaseatenbyagrue/ansible/blob/master/roles/fail2ban/templates/(例如https://github.com/iwaseatenbyagrue/ansible/blob/master/roles/fail2ban/templates/jail.suricata.j2)
目前,整体代码还未完善,因此我不建议您使用它(至少在您不能 100% 确定完全理解它之前不建议您使用它),但希望这些片段能有所帮助。