Articles of fail2ban

正确的方法来自动阻止IP的

问题: 我pipe理一个拥有很多dynamic生成页面的网站。 Google,Yahoo和其他search引擎每天都会下载100K以上的页面。 有时候,我也遇到了“黑客”试图大规模下载整个网站的问题。 我想阻止“黑客”的IP地址,同时保持search引擎漫游器爬行页面。 做这个的最好方式是什么 ? 注意: 现在我正在解决这个问题如下。 每隔X秒将每个页面请求的ip保存到一个文件中。 我有一个crontab脚本,每30分钟计算重复的IP。 对于重复次数过多的IP,脚本会检查一个主机名 – 如果它不属于Google / Yahoo / Bing /等,那么我们有一个被禁止的候选人。 但我并不喜欢我的解决scheme,认为自动禁止可以做得更好,或者使用一些开箱即用的解决scheme。

fail2ban大部分时间都没有被禁止,为什么呢?

它的工作,就像3000次左右的5次。 在使用apt-get安装的Debian上运行,只添加下面的jail.local文件 猫jail.local [ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6 bantime = 43200 当我运行fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf 我得到: Success, the total number of match is 9964 但是我的logging说只有5个禁令发生。 日志文件: ################################################################## ——————— fail2ban-messages Begin ———————— Banned services with Fail2Ban: Bans:Unbans ssh: [ 5:5 ] ———————- fail2ban-messages End ————————- ——————— […]

自定义行动永久禁止来自中国的知识产权

当一个IP地址被禁止时,我如何检查被禁止的IP地址是否来自中国。 如果是,则将其添加到永久禁止列表中。 我已经find了这个不错的指南 ,把禁止的IP写入文件。 理由:我每天都受到很多来自中国的暴力攻击,幸好失败了,2ban帮助限制了这一点,尽pipe他们似乎正在变得更糟,他们只是在改变他们的IP地址。 或者更好的是,如果有一个已知的黑客IP地址的维护数据库。 例1 Hi, The IP 60.169.78.77 has just been banned by Fail2Ban after 4 attempts against vsftpd. Here are more information about 60.169.78.77: % [whois.apnic.net node-7] % Whois data copyright terms http://www.apnic.net/db/dbcopyright.html inetnum: 60.166.0.0 – 60.175.255.255 netname: CHINANET-AH descr: CHINANET anhui province network descr: China Telecom descr: A12,Xin-Jie-Kou-Wai Street descr: […]

更改ssh端口后的Fail2ban设置

我把我的SSH端口切换到22000,我改变了/etc/fail2ban/jail.local的端口设置,指定禁止22和22000,但是当我尝试login失败6次时,我的连接被切断,但能够尝试立即再次login。 看来我的IP没有被禁止一个小时,每个我设置的默认禁用时间。 我如何configuration这个有什么问题吗? # "bantime" is the number of seconds that a host is banned. bantime = 3600 [ssh] enabled = true port = ssh,22000 filter = sshd logpath = /var/log/auth.log maxretry = 6 谢谢。 编辑: 每个请求的Netstat输出。 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 […]

使用PermitRootLogin时不带密码的fail2ban?

我试图select一个涵盖主题的标题: 为什么我应该使用fail2ban(或类似的程序),如果我的PermitRootLogin设置为without-password ? 我知道一个非常值得信赖和经验丰富的系统pipe理员build议我同时安装fail2ban,这样可以保护我的自定义服务器免受暴力攻击,因为它们消耗资源(并且我拥有的资源有限)。 另一个非常值得信赖和经验丰富的系统pipe理员,我知道build议我不要安装fail2ban,因为我已经禁用了密码validation,所以没有必要防止暴力破解,因为没有任何密码可以工作。 我很困惑。 谢谢大家给我的任何帮助。

fail2ban.action错误iptables -w -N f2b- <jail-name>

我一直在使用fail2ban一段时间没有任何问题。 有一天,我决定停止fail2ban从我的默认iptables删除一个规则。 当我启动fail2ban时,它开始OK(根据命令:service fail2ban start)。 但是,当我检查iptables,我没有看到添加fail2ban链。 我检查了fail2ban日志,我发现这样的几个错误: fail2ban.action [32091]:错误iptables -w -N f2b- iptables -w -I INPUT -p tcp -m多端口 – 端口0:65535 -j f2b- – stderr:“iptables v1.4.7:选项-w' requires an argument\nTry iptables -h'或'iptables –help'以获取更多信息。\ niptables v1.4.7:选项-w' requires an argument\nTry iptables -h'或'iptables –help'以获取更多信息。\ niptables v1.4.7:选项-w' requires an argument\nTry iptables -h'或'iptables –help'以获取更多信息。\ n“ 从这个日志看来,fail2ban正在尝试使用不存在的-w选项运行iptables。 我检查了所有的fail2banconfiguration文件,特别是在action.d目录下,并且没有一行-w选项。 这有多奇怪? 我不知道这里发生了什么,因此我无法使用fail2ban。 我感谢您的帮助。

Fail2Ban阻止行为取决于状态代码

我正在使用Fail2Ban,并根据需要进行了configuration。 这是从nginx / error.log读取日志,并根据configuration关于maxretry和时间设置。 问题是这是可能有不同的规则,取决于状态代码? 例如,我想阻止任何人在5分钟内获得10 404 Status code ,但是阻止任何获得3 403 Status code 。 任何帮助将不胜感激,在此先感谢。

Fail2Ban SASLfilter丢失login失败

我在我的邮件服务器上使用了fail2ban 。 我今天早上发现,有大约5000次失败的login尝试(在1个小时的过程中)通过SMTP没有被我的saslfilter拿起。 以下是/var/log/mail.log中的一个条目示例 Jan 25 04:39:56 ***** postfix/smtpd[23828]: warning: 114-32-231-17.HINET-IP.hinet.net[114.32.231.17]: SASL LOGIN authentication failed: authentication failure 这是我的(未修改的)fail2ban的saslfilter定义: # Fail2Ban configuration file # # Author: Yaroslav Halchenko # # $Revision: 728 $ # [Definition] # Option: failregex # Notes.: regex to match the password failures messages in the logfile. The # host must be matched […]

运行fail2ban而不禁止

在某种“模拟模式”下运行fail2ban是可能的,所以它不禁止,但是在什么地方禁止login呢? 在Ubuntu 12.04上运行fail2ban。

fail2ban正则expression式不匹配

我必须承认,正则expression式对我来说一直是一个弱点。 我从来没有坐下来,花了足够的时间学习他们有效地使用它们。 不过,我真的为此感到不知所措。 我试图做一个自定义的failregex阻止人们试图利用任何xmlrpc.php错误(他们是不断暴力企图这样做)。 我正在使用fail2ban v0.9.3,在Ubuntu 16.04.2上使用Apache 2.4.18。 这是我的正则expression式: <HOST> – – \[\d{2}/\w{3}/\d{4}:\d{2}:\d{2}:\d{2} +\d{4}\] "POST /xmlrpc.php HTTP/1.0" 200 这是一个示例行,它不匹配(IPreplace为0): 0.0.0.0 – – [06/Apr/2017:07:45:42 +0000] "POST /xmlrpc.php HTTP/1.0" 200 752 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)" 我不明白为什么它不匹配。 据我所知,这应该是一个完全匹配。 任何人都可以点亮一下吗? 另外,如果时区偏移符合+和a – 符号,这将是很好的…我想用HTTP/1.\d{1}代替HTTP/1.0 HTTP/1.\d{1}它应该匹配1.0和1.1,正确? 提前致谢! 编辑:在与fail2ban-regex命令行玩弄后,我已经find了与<HOST> – – \[它将匹配所有行的正则expression式。 但是,第二个我将它改为<HOST> – – \[\d{2}它根本不匹配任何行。 这似乎没有道理! 编辑2:那么,在此期间,我正在使用<HOST> […]