重启后(fail2ban 或整个服务器)是否可以保存并使用 fail2ban 中已禁止的 IP?
答案1
截至 2016 年,这实际上是默认设置。不过,它可能是在 2011 年或 2012 年左右添加的。所以你现在什么都不用做。
fail2ban.conf
禁令数据库由两个变量定义:
# Options: dbfile
# Notes.: Set the file for the fail2ban persistent data to be stored.
# A value of ":memory:" means database is only stored in memory
# and data is lost when fail2ban is stopped.
# A value of "None" disables the database.
# Values: [ None :memory: FILE ] Default: /var/lib/fail2ban/fail2ban.sqlite3
dbfile = /var/lib/fail2ban/fail2ban.sqlite3
# Options: dbpurgeage
# Notes.: Sets age at which bans should be purged from the database
# Values: [ SECONDS ] Default: 86400 (24hours)
dbpurgeage = 86400
为了避免持久性,现在这是默认设置,编辑文件fail2ban.conf
,然后将其更改dbfile = <path>
为:
dbfile = None
我不太确定None
和之间有什么区别:memory:
,无论如何,这两者都会阻止在重新启动或重启时将 IP 重新添加到防火墙。
答案2
据我所知没有。我的建议是禁止一段时间,或者永久禁止。我将服务器配置为每 6 小时和关机时将永久禁止的 IP 列表转储到配置文件中;然后在启动时自动加载该文件。
我设置了规则,因此永久封禁的惩罚非常敏感,例如,登录网络邮件门户时,如果出现 2 个不同的无效用户名,就会触发永久封禁。对于用户名正确/密码错误等常见情况,封禁会在 10 次后触发,并且只会封禁很短的时间。