问题标签 [fail2ban]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1206 浏览

nginx - 网络爬虫超载网站

我们的一些网站存在问题,Yahoo、Google、Yandex、Bing Ahrefs 和其他网站同时索引该网站,这会导致该网站死亡。

我已经将fail2ban 配置为阻止源IP,但是这些一直在变化,因此并不理想。我也尝试过使用 robots.txt,但这没什么区别。

我们已经尝试将站点置于 cloudflare 之后,但这同样没什么区别,我们所能做的就是阻止源 IP。

我还可以做些什么?

目前我们正在使用 Nagios 监控站点,当站点无响应时它会重新启动 nginx,但这似乎远非理想。

运行 nginx 的 Ubuntu 服务器

Robots.txt 文件在这里:-

在这里发帖,以防我有什么可以让我们的开发人员尝试的东西。

谢谢

0 投票
1 回答
3497 浏览

nginx - fail2ban白名单动态ip更新主机名关联ip

这是我在这里的第一个问题,所以如果不遵守最佳实践,我深表歉意。

最近,我成为了 POST HTTP 慢速 DDoS 攻击的受害者,该攻击在我的服务器上使用不同 IP 的类似和不同范围。

通过为我的特定需求创建个性化过滤器,我设法使用 fail2ban 来缓解它:

这两个是我服务器上最递归的尝试:“POST xmlrpc.php”请求和“HEAD http://myip/ {phpmyadmin|phpwhatevervariation|etc...}”。

我成功地使用我当地的监狱阻止了他们,因为

问题是我在开发过程中经常把自己锁在外面。所以我决定把自己列入白名单。不幸的是,我的 ISP 提供动态 ip,所以我不得不将主机名与 zonomi 相关联,并使用 DDNS 每隔一段时间用我分配的新 IP 地址更新我的子域。然后,我将主机名添加到本地监狱中的 ignoreip 条目中,如下所示:

今天我在网络服务器上工作,我被阻止了,所以我检查了我的主机名,它没有更新我的 IP。我手动完成了它,在 DNS 传播并且主机名的 ip 更改后,我尝试访问我的网站/服务器但没有成功。

在我看来,要么:(1)一旦设置了禁令,我将不得不重新启动 fail2ban 以刷新我的 IP 上的块(我不喜欢,因为所有其他 IP 被阻止的事实都被遗忘了,真正的威胁)或(2) 不知何故,fail2ban 无法更新我的主机名的关联 IP。

我的问题是:如果是 (1),有没有办法在不重新启动 fail2ban 的情况下自动解除阻止,或者,如果是 (2),有没有办法自动更新我的主机名的 ip?

fail2ban 使用 IPTABLES 吗?我是否应该每分钟在 iptables 上用我的主机名 IP 刷新一个链?

好心,A.

0 投票
1 回答
754 浏览

python - fail2ban custom script start function

I have made my own custom action for fail2ban. It is a script write in Python. I have created the following function according to the documentation:

  • _init_
  • start : When fail2ban start
  • stop : When fail2ban stop
  • ban : When fail2ban ban an ip
  • unban : When fail2ban unban an ip

I use this action for many jails and it seems that for each jails fail2ban call the start function and in my case create a new rule iptables. So I have many duplicate iptables rules because fail2ban call several time the start function.

I have tried to put a condition. "If the rule doesn't exist I create it". But all jails seems to be started in thread. With this condition I can limited the duplicate rules to 2 or 3.

Is there a tricks or a permanent solution ? Maybe semaphore during the start function or lock a file or something else ?

0 投票
2 回答
76 浏览

monitoring - fail2ban 模棱两可地停止工作

自监测以来已经3个月了。我观察到的 fail2ban 的性质是,它在繁忙的几天后停止阻止 ips。然后我用它重新启动它,它再次开始工作,阻止IP。几个月以来事情都是这样发展的,但几个月后,即使重新启动,fail2ban 也不会阻止 IP。然后我必须重新安装fail2ban,然后它再次开始阻塞。

谁能说出fail2ban这种性质的原因?

0 投票
1 回答
783 浏览

python-3.x - 使用来自子流程输出的列表

我在以下脚本中使用 subprocess 和 python3:

输出如下:

我的问题是所有这些输出都不是列表。这只是一个带有新行的非常大的字符串。我尝试使用以下命令将每一行转换为列表:

但我认为这不是好方法。所以我的问题是如何将字符串(看起来像列表)转换为列表。

0 投票
1 回答
294 浏览

regex - 为什么fail2ban不匹配脚本未找到

为什么会出现以下fail2ban regex

不匹配

0 投票
2 回答
1905 浏览

regex - Fail2ban 未能匹配日期格式

我目前正在优化我的 fail2ban 过滤器。

在我的正则表达式之前是这样的:

它适用于包含这样的 404 错误的每一行:

之后我改变了:

经过

但是现在它不再与 fail2ban 匹配,而像 regex101 这样的网站仍然可以识别正确的模式!(如果我没有把 \ 这个词没有出现,请不要介意 \HOST)。

我试图将\d更改为[0-9] / by \/ : by \: Fail2ban 总是错过线路,我不知道为什么..

有人有同样的问题吗?谢谢 !:)

0 投票
0 回答
395 浏览

nginx - fail2ban nginx 忽略正则表达式不起作用

我有一个 Rails 应用程序,与资产相关的请求将被忽略。如果我将以下正则表达式放入ignoreregex设置中,它与任何行都不匹配,而如果我将其放入 中failregex,它会正确识别行。 ignoreregex = (?i)^<HOST> - .* "GET .*/(assets|site_images|site_scripts)/.*

我想算作“忽略”的日志行示例: XX.XX.XX.XX - - [30/Aug/2017:02:01:40 +0000] "GET /assets/logo-1a29bc0c23e29be7ca1f27d9fd90d735adb61e94562db7478d9f6c445205da5c.jpg HTTP/1.1" 200 32279 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) wkhtmltopdf_linux_amd64 Safari/534.34" "-"

Fail2Ban 版本:v0.9.3

Ubuntu 16.04.2 LTS

0 投票
1 回答
401 浏览

nginx - 如何在 nginx access.log 中获取真实 IP

我有一个很大的问题。我的网站通过 joomla 联系表发送垃圾邮件。在 nginx access.log 我只看到:

10.50.0.1 - - [06/Sep/2017:19:57:32 +0200]“GET /index.php/en/kontakt HTTP/1.1”200 16132“ http://polskaszkolaslough.org/index.php/en /kontakt " "Mozilla/4.0 (兼容; MSIE 9.0; Windows NT 6.1)" 10.50.0.1 - - [06/Sep/2017:19:57:32 +0200] "POST /index.php/en/kontakt HTTP/ 1.1" 301 193 " http://polskaszkolaslough.org/index.php/en/kontakt " "Mozilla/4.0(兼容;MSIE 9.0;Windows NT 6.1)" 10.50.0.1 - - [06/Sep/2017:19: 57:34 +0200]“POST /index.php/en/kontakt HTTP/1.1”301 193“ http://polskaszkolaslough.org/index.php/en/kontakt ”“Mozilla/4.0(兼容;MSIE 9.0;Windows NT 6.1)" 10.50.0.1 - - [06/Sep/2017:19:57:34 +0200] "GET /index.php/en/kontakt HTTP/1.1" 301 193 "http://polskaszkolaslough.org/index.php/en/kontakt" "Mozilla/4.0 (兼容; MSIE 9.0; Windows NT 6.1)" 10.50.0.1 - - [06/Sep/2017:19:57:34 +0200] "GET /index.php/en/kontakt HTTP/1.1" 301 193“ http://polskaszkolaslough.org/index.php/en/kontakt ”“Mozilla/4.0(兼容;MSIE 9.0;Windows NT 6.1)”10.50.0.1 - - [06/Sep/2017:19:57: 36 +0200]“GET /index.php/en/kontakt HTTP/1.1”200 16132“ http://polskaszkolaslough.org/index.php/en/kontakt ”“Mozilla/4.0(兼容;MSIE 9.0;Windows NT 6.1 )" 10.50.0.1 - - [06/Sep/2017:19:57:37 +0200] "GET /index.php/en/kontakt HTTP/1.1" 301 193 " http://polskaszkolaslough.org/index.php /en/kontakt " "Mozilla/4.0 (兼容; MSIE 9.0; Windows NT 6.1)" 10.50.0.1 - - [06/Sep/2017:19:57:37 +0200]“获取/index.php/en/kontakt HTTP/1.1”200 16132“http://polskaszkolaslough.org/index.php/en/kontakt “”Mozilla/4.0(兼容;MSIE 9.0;Windows NT 6.1)“10.50.0.1 - - [06/Sep/2017:19:57:37 +0200 ]“GET /index.php/en/kontakt HTTP/1.1”301 193“ http://polskaszkolaslough.org/index.php/en/kontakt ”“Mozilla/4.0(兼容;MSIE 9.0;Windows NT 6.1)”

当我打开 Linux 命令尾时,新的请求一个接一个。这是震惊!我的网站很慢。我有公共 IP 的私人服务器。我的本地 IP 是:10.50.0.6,网关是:10.50.0.1 DNS 在我的域提供商处,记录 A 将流量转发到我的公共 IP,然后路由器转发到我的本地 IP。我想阻止向我的域发送垃圾邮件的 ip 范围,但我没有看到原始地址。我只看到我的网关 IP。我安装了fail2ban,并在联系表格中添加了reCaptha,但没有帮助。我该如何解决这个问题?

0 投票
1 回答
2735 浏览

regex - 用于检测网站上复杂攻击字符串的正则表达式

我不是 Regex 的天才,但我想知道是否有可能编写某种 Regex 模式来检测这些复杂的攻击字符串,我相信很多人在他们的 Web 服务器日志中都看到了这些攻击字符串。

这些字符串变化如此频繁,我相信精通正则表达式的人可以找到一种方法来检测这些字符串,并且可以在自定义的 Fail2Ban 过滤器中使用这个正则表达式。

这里只是一些攻击字符串的几个示例。

更新:请求看起来像这样。不使用 GET、HEAD 或 POST。