我正在使用fail2ban来阻止networking漏洞扫描器。 如果CloudFlare被绕过,它在访问站点时工作正常,但用户仍然可以通过它访问它。 我已经安装了mod_cloudflare 。
使用Cloudflare时,是否可以使用IPtables阻止用户?
Ubuntu Server 12.04 32位
access.log的:
112.64.89.231 - - [29/Aug/2012:19:16:01 -0500] "GET /muieblackcat HTTP/1.1" 404 469 "-" "-"
Jail.conf
[apache-probe] enabled = true port = http,https filter = apache-probe logpath = /var/log/apache2/access.log action = iptables-multiport[name=apache-probe, port="http,https", protocol=tcp] maxretry = 1 bantime = 30 # Test
Apache的probe.conf
[Definition] failregex = ^<HOST>.*"GET \/muieblackcat HTTP\/1\.1".* ignoreregex =
这是不工作的原因是,iptables运行在直接连接到你的机器的IP地址上。 如果您使用CloudFlare,这意味着您正在接收来自CloudFlare的连接,而不是直接来自最终用户。
以下是CloudFlare上我的一个站点的示例:
::ffff:108.162.221.19 www.yes-www.org - [05/Sep/2012:21:50:50 +0000] "GET / HTTP/1.1" 200 9585 "http://no-www.org/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.8 (KHTML, like Gecko) Chrome/23.0.1251.2 Safari/537.8" "64.244.153.130"
在这里,我们看到连接是从CloudFlare的服务器之一108.162.221.19收到的。 如果这在iptables中被阻止,CloudFlare将无法联系到我们(从那个地址,幸运的是他们有很多其他的)。 与CloudFlare的连接实际上来自64.244.153.130,这是出现在X-Forwarded-For和CF-Connecting-IP首部中的。
不幸的是,在这种设置中,这意味着你不能真正使用iptables来阻止访问者。 不过你有几个select:
我们实际上应该尊重你在iptables中的任何东西。
您是否尝试在CloudFlare威胁控制面板中阻止该IP? 实际上,在我们的威胁控制面板中阻止IP比在您的服务器上更容易。