Apache可以dynamic拒绝吗?

我在同一台服务器上托pipe三个不同的网站。 以下是今天上午的Apache日志摘录:

### SITE 1 ### [Fri Dec 13 09:15:49 2013] [error] [client 85.17.87.36] script not found or unable to stat: /var/www/vhosts/site1.com/cgi-bin/php.cgi [Fri Dec 13 09:15:49 2013] [error] [client 85.17.87.36] script not found or unable to stat: /var/www/vhosts/site1.com/cgi-bin/php4 [Fri Dec 13 09:23:21 2013] [error] [client 113.53.238.155] script not found or unable to stat: /var/www/vhosts/site1.com/cgi-bin/php [Fri Dec 13 09:23:22 2013] [error] [client 113.53.238.155] script not found or unable to stat: /var/www/vhosts/site1.com/cgi-bin/php5 [Fri Dec 13 09:23:22 2013] [error] [client 113.53.238.155] script not found or unable to stat: /var/www/vhosts/site1.com/cgi-bin/php-cgi [Fri Dec 13 09:23:23 2013] [error] [client 113.53.238.155] script not found or unable to stat: /var/www/vhosts/site1.com/cgi-bin/php.cgi [Fri Dec 13 09:23:24 2013] [error] [client 113.53.238.155] script not found or unable to stat: /var/www/vhosts/site1.com/cgi-bin/php4 [Fri Dec 13 09:47:03 2013] [error] [client 172.246.127.26] File does not exist: /var/www/vhosts/site1.com/httpdocs/install [Fri Dec 13 09:47:08 2013] [error] [client 172.246.127.26] File does not exist: /var/www/vhosts/site1.com/httpdocs/phpbb3 ### SITE 2 ### [Fri Dec 13 09:24:39 2013] [error] [client 107.20.169.255] script not found or unable to stat: /var/www/vhosts/site2.com/cgi-bin/php [Fri Dec 13 09:24:39 2013] [error] [client 107.20.169.255] script not found or unable to stat: /var/www/vhosts/site2.com/cgi-bin/php5 [Fri Dec 13 09:24:39 2013] [error] [client 107.20.169.255] script not found or unable to stat: /var/www/vhosts/site2.com/cgi-bin/php-cgi [Fri Dec 13 09:24:39 2013] [error] [client 107.20.169.255] script not found or unable to stat: /var/www/vhosts/site2.com/cgi-bin/php.cgi [Fri Dec 13 09:24:40 2013] [error] [client 107.20.169.255] script not found or unable to stat: /var/www/vhosts/site2.com/cgi-bin/php4 ### SITE 3 ### [Fri Dec 13 09:24:40 2013] [error] [client 107.20.169.255] script not found or unable to stat: /var/www/vhosts/site3.com/cgi-bin/php [Fri Dec 13 09:24:40 2013] [error] [client 107.20.169.255] script not found or unable to stat: /var/www/vhosts/site3.com/cgi-bin/php5 [Fri Dec 13 09:24:40 2013] [error] [client 107.20.169.255] script not found or unable to stat: /var/www/vhosts/site3.com/cgi-bin/php-cgi [Fri Dec 13 09:24:40 2013] [error] [client 107.20.169.255] script not found or unable to stat: /var/www/vhosts/site3.com/cgi-bin/php.cgi [Fri Dec 13 09:24:40 2013] [error] [client 107.20.169.255] script not found or unable to stat: /var/www/vhosts/site3.com/cgi-bin/php4 

正如您所看到的,一些攻击者正在探测可能安装在服务器上的软件的存在,或许是为了search漏洞。 我总是看到这样的事情。 一个问题是,这些日志并不能说明它们何时成功。 而且,在一种情况下,同一个IP地址甚至可以同时探测两个不同的站点。 这一次的请求似乎是来自云层,但情况并非总是如此。

当IP地址来自中国或俄罗斯等地时,我手动拒绝整个范围并重新启动Apache。 但是,当IP地址在美国时,我不能否认整个范围,因为理论上他们可以被合法的客户使用。

我不知道这是否可能,但我想dynamic阻止一个IP地址时,请求某些URLpath。

例如,如果请求/ cgi-bin / php-cgi,则IP地址将自动被拒绝

否认可能是暂时性的。 Apache会自动处理这个,不需要重启。

有这样的可能吗?

一个相当简单的解决scheme是让fail2ban监控您的日志,并将IP添加到您的防火墙。