wp-login.phpへのアタックを利用して、ユーザー権限でできるセキュリティアップしよう。

前々回にwp-login.phpへのアタックのネタをやってから、過去最高のアクセス数が出た!というところまでは良かったのだけど、アタックまで増えてしまったw

という事で一気に制限しちまおうと思ったのでIPアドレスの抽出作業から始めた。
今回の作業はユーザー権限でできるので是非やろう。

cat /var/log/httpd/access_log-20130819 /var/log/httpd/access_log-2013082[0-4] | grep wp-login.php | awk '{ print $1}' | sort | uniq -c | sort | awk '{ print $2 }' > ip.txt

こんな感じで、IPアドレスまたはホスト名だけ引っこ抜いて、ip.txtというファイルに記述してやる。
アクセスログのファイル名は各環境に合わせて変えてください。
ユーザー権限でできるって書いたけどアクセスログが見れるレンタルサーバーじゃないとできないなあ。

.htaccessで使うためにIPの先頭にdeny fromを挿入する。

cat ip.txt | sed -e 's/^/deny from /g' > ip2.txt

これでリストは出来上がった。このリストに上がってるのはwp-login.phpにアクセスしてきたホストだから、まるっとアクセス制限してもいいんだけど、一応JPドメインは外しておいた。
それとテストしたりしてて自分のIPアドレスが入ってる場合もかもしれないので、ちゃんとチェックしよう。
自分のIPアドレスが入ってたらサクじょー。

あとは.htaccessをviで編集するなり、そのままコピペしたり、catの>>で追記したりとかで完了。
うまく動作してたらレンタルサーバーの場合はForbiddenの表示になるはず。
テストで自分のIPアドレスも入れてみてうまく動作しているかチェックしよう。

ちなみにたけけんの環境で、8月19日から24日途中までのwp-login.phpへのアクセスがあったアクセス元IPアドレスは500個以上、実際のアクセスはもっともっと多いので、同じ踏み台から何度もやってきてるみたい。
踏み台になっているIPアドレスを制限するということでセキュリティを上げることにもなるかなーなんて思います。
何個かホームページを運営してる人だったら、このアクセス制限.htaccessはサーバーのドキュメントルートに設置して、前々回にやった自分のIPアドレスだけを許可する.htaccessファイルをワードプレスが入ってるドキュメントルートに設置します。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
    RewriteCond %{REMOTE_ADDR} !^111\.222\.333\.444$  ←自分のIPアドレスに変えよう。
    RewriteRule ^(.*)$ - [F]
</IfModule>

とりあえずこんな感じです。

 

ここからはroot権限があるサーバーの話になる、というか自分の環境で起こった話w
403エラーの画面に飛ばすに何故かApacheテストページになってしまうという現象がおこっていて、ちょっとググっていたら/etc/httpd/conf.d/welcome.confの記述が問題らしい。

たけけんはコメントアウトしてやりました。

てな感じで。

参考サイト

Read it later.
.htaccessで、IPによるアクセス制限をかけたら、「Apache 2 Test Page」が表示される。

 

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です