MediaWikiでページ管理しているウエブサイトのApacheログを見ていると、どうも連続攻撃を受け続けているようだ。
つぎのような設定で、ログオンしていないユーザは、記事を「編集」できないようにしているので、今のところ防御は破られていないようだが…
LocalSettings.php
$wgGroupPermissions['*' ]['createaccount'] = false;
#$wgGroupPermissions['*' ]['read'] = true;
$wgGroupPermissions['*' ]['edit'] = false;
$wgGroupPermissions['*' ]['createpage'] = false;
$wgGroupPermissions['*' ]['createtalk'] = false;
Apacheに記録されているエラーは
access_log
p32113-ipngn100102yosemiya.okinawa.ocn.ne.jp - - [07/Feb/2012:09:01:37 +0900] "GET /mw/index.php?title=http://210.1.60.156:2082/index.html? HTTP/1.1" 301 5 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
p32113-ipngn100102yosemiya.okinawa.ocn.ne.jp - - [07/Feb/2012:09:01:37 +0900] "GET /mw/index.php?title=Http://210.1.60.156:2082/index.html%3F HTTP/1.1" 404 5781 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
host-92-9-199-86.as43234.net - - [07/Feb/2012:09:16:35 +0900] "GET /mw/index.php?title=http://210.1.60.156:2082/index.html? HTTP/1.1" 301 5 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
host-92-9-199-86.as43234.net - - [07/Feb/2012:09:16:36 +0900] "GET /mw/index.php?title=Http://210.1.60.156:2082/index.html%3F HTTP/1.1" 404 5778 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
とにかく、1日に何百回と連続攻撃がやって来る。サーバにも負荷が掛かるのでこの辺りで反転攻勢に出るべきだろう。
ApacheのRewrite機能を使って、httpサーバの段階でアクセスを拒否することにする。MediaWikiルートフォルダにある .htaccess にちょこっと追加
.htaccess
# 通常、外部からアクセスする必要性のないファイルは接続拒否
<Files ~ "(AdminSettings.php*|LocalSettings.php|StartProfiler.sample|api.php*|img_auth.php*|opensearch_desc.php*|profileinfo.php|redirect.ph*|thumb.php*|trackback.php*|wiki.phtml|COPYING|CREDITS|FAQ|HISTORY|INSTALL|README|UPGRADE)">
Deny from all
</Files>
RewriteEngine on
# http://xxxx のキーワードを感知した場合は、接続拒否する
RewriteCond %{QUERY_STRING} title=http: [NC,OR]
RewriteCond %{THE_REQUEST} index.php/http: [NC]
RewriteRule index.php - [F]
こんな感じで… 多分うまく行くだろう。