如何动态阻止apache内的ip地址?

时间:2016-05-24 23:01:27

标签: apache .htaccess iptables

我在我的网络服务器前使用负载均衡器,这意味着所有连接都来自192.168.x.x(或其他内部局域网段)。我的用户都将在x-forwarded-for标头中显示其原始IP地址。我试图动态禁用用户(IP地址),这样我就可以自动/安静地黑名单而无需人工管理干预。

目前,我使用htaccess规则手动执行此操作。不接受在应用程序级别自动阻止用户。

是否有任何apache模块或方法可以读取ipset列表,数据库或其他,以允许我根据x-forwarded-for标头自动拒绝用户?

1 个答案:

答案 0 :(得分:2)

请参阅:Ban IPs from text file using htaccess

基本上,您可以利用RewriteMap从文本文件中读取,运行脚本(可以访问数据库),甚至可以使用dbd执行SQL查询。请记住,您无法在htaccess文件中定义地图,但您可以将地图合二为一。

您正在检查%{HTTP:X-FORWARDED-FOR}条件而不是%{REMOTE_ADDR}

RewriteEngine On 
RewriteCond ${access:%{HTTP:X-FORWARDED-FOR}} deny [NC]
RewriteRule ^ - [L,F]