这是一个棘手的问题(对我来说)
我正在尝试设置fail2ban 来禁止所有未登录的ssh 服务器连接尝试。
现在,我的问题是..一切都在文件filter.d/sshd.conf中。
对我来说是难以理解的,胡言乱语,我根本无法理解正则表达式(我根本无法理解正则表达式,相信我,我已经尝试过)在该配置文件中。
我想扫描并禁止日志的这一行:(因为它显示仅连接的连接)
连接被 192.168.0.2 端口 12210 [preauth] 关闭
现在,正如我之前写的,我已经不知道如何或在何处将其写入/放置在配置文件中(不想用标准文件堵塞论坛)这个
因此,如果有人愿意帮助我,我应该写什么,以及我应该把它放在配置文件中的哪里。
并且,如果可能的话,解释一下(或至少尝试解释)你在做什么?
答案1
对于最新版本的fail2ban,设置就足够了:
[sshd]
mode = aggressive
enabled = true
在你的/etc/fail2ban/jail.local
。
对于某些旧版本,这取决于。无论如何,我会从更新过滤器配置开始(例如从这里),如果您的版本早于 0.10.5(在 0.10.5 中引入),请确保替换F-MLFGAINED
为F-NOFAIL
https://github.com/fail2ban/fail2ban/commit/1c1d2cc435d6e8f1eb4a1b60c935a1385a82e295)。
如果您的fail2ban 版本早于0.10(即0.9),最好升级它。
回到实际问题“如何扩展股票正则表达式”......使用此设置是可能的:
[sshd]
failregex = %(known/failregex)s
^Connection closed by <ADDR> port \d+ \[preauth\]
(对于没有 的fail2ban <= 0.9 prefregex
,您必须使用前缀行等指定整个 RE 并使用<HOST>
而不是<ADDR>
)。
答案2
我对此没有太多经验,但是您尝试过将此行添加到failregex
吗?
^Connection closed by 192.168.0.2 port 12210\s*%(__suff)s$
对于任何主机/端口:
^Connection closed by <HOST>%(__on_port_opt)s\s*%(__suff)s$