web-dev-qa-db-ja.com

Apacheは動的に拒否できますか?

同じサーバーで3つの異なるWebサイトをホストしています。今朝の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

ご覧のとおり、一部の攻撃者は、おそらくエクスプロイトを検索するために、サーバーにインストールされている可能性のあるソフトウェアの存在を調査しています。私はいつもこのようなものを見ます。 1つの懸念は、これらのログがいつ成功したかを示していないことです。また、あるケースでは、同じIPアドレスが2つの異なるサイトを同時にプローブしている場合もあります。今回はクラウドからのリクエストのようですが、必ずしもそうとは限りません。

IPアドレスが中国やロシアなどのものである場合、手動で範囲全体を拒否し、Apacheを再起動します。しかし、IPアドレスが米国にある場合、理論的には正当な顧客が使用できるため、範囲全体を否定することはできません。

これが可能かどうかはわかりませんが、特定のURLパスが要求されたときにIPアドレスを動的にブロックしたいと思います。

たとえば、IPアドレスが/ cgi-bin/php-cgiを要求した場合、IPアドレスは自動的に拒否されます

拒否は本質的に一時的なものである可能性があります。 Apacheは、再起動を必要とせずにこれを自動的に処理します。

このようなことは可能ですか?

1
Timothy B.

かなり簡単な解決策は、 fail2ban ログを監視し、ファイアウォールにIPを追加することです。

1
user9517