カテゴリー
WordPress

WordPress に BulletProof Security を入れてみた。

The same article in English
投稿アップデート情報  追記(12/2)~~追記4(2014/7/14)  追記5(7/16)

 WordPress のセキュリティ強化のために「BulletProof Security」というプラグインを入れてみた。インストールは簡単だが,有効化するについては,いくつか気を付けたほうがいいところがある。

  1. Network / Multisite 上で使用可能なプラグインだが,「ネットワークで有効」にしてはいけない。「ネットワークで無効」のまま,親サイトでだけ有効にする。
  2. BulletProof Security は .htaccess を使うので,当然ながら,サイトの .htaccess が書き換えられてしまう。前もって, WordPress ルートと wp-admin 内の .htaccess をバックアップしておこう。
  3. .htaccess を利用するので, BulletProof Security が自分の WordPress で使えるかどうかは,サーバのコンフィグ次第ということだ。うちの場合だと,途中でエラーが出たので, Apache のログを見て, httpd.conf の <Directory> にある AllowOverride ディレクティブOptions=Indexes を付け加えた。

 ところで, BulletProof Security のページで, Sucuri SiteCheck Scanner を見つけたので,スキャンしてみた。怖いものは見つからなかった。まあ,「Sucuri SiteCheck は無料のリモートスキャナです。できる限り正確な情報をお届けできるように努めていますが,スキャン結果に間違いがないことを保証するものではありません。」てスキャンのサイトに書いてあったけど,それは当たり前のことだから。

追記(12/2):
 なんか ‘Broken Link Checker’ プラグインが下記のメールをくれましてん。自ブログの存在するファイルのことなので,ビックリ。

   Broken Link Checkerは、あなたのサイトに新しいリンク1がリンクエラーと検出されました。
   リンクエラーの一覧 :
   リンク テキスト: Asus ,HCL X51C (T12C) Motherboard schematic
   リンクのURL : /blog-j/files/Asus_HCL_X51C_(T12C).pdf
   ソース : ノートをWin8 Proにアップグレード。
   すべてのリンクエラーを見ることができます: http://ダッシュボードのツールの URL

 何で,どうして??? 10/16 にアップロードしてから全然変えてないし,とか思って,ブラウザからアクセスしたら,別のエラーが出た。こんなの:
   o6asan.com 403 Forbidden Error Page
   If you arrived here due to a search or clicking on a link click your Browser’s back button
   to return to the previous page. Thank you.

 調べたてみたら, ‘BulletProof Security’ プラグインが吐くものだった。さらに調べて ‘BulletProof Security’ は,ファイル名に ( ) があると拒否する設定になっていることがわかった。何かセキュリティ上でまずいことでもあるのかな。

 安直に, Asus_HCL_X51C_(T12C).pdf を Asus_HCL_X51C-T12C.pdf に変えて解決 (^_^;)。

追記2(12/3):
 早速,Version:.49.7 へのアップデートがあり,使えないと書いたばかりの「ネットワークで有効」ができるようになった。もちろん,前のままの方式でも使える。
 追記(12/2)の補足だが,ファイル名に半角空白が入っているのもダメなようだ。

追記3(12/4):
 なんか毎日ここに追記書いてるよー(苦笑)。 ‘BulletProof Security’ 君,今度は,わがサイトの Flash Movie をブロックしてやんの。お蔭さんで,高住神社のなんかで,「ムービーが未ロード」とか出た。ご本尊の Adobe Flash Player がらみでもよくある話なんで,疑っちゃったじゃないの,今回は無実なのに-ハハ。
 解決方法は, Flash swf 403 error – Flash slideshow blocked で,どんぴしゃり。 Root の .htaccess に我が家の swf を足してやった。こんな感じ。太字のイタリックですね。
   RewriteRule .* index.php [F,L]
   RewriteCond %{REQUEST_URI} (flvplayer.swf|timthumb.php|~~|thumbs.php) [NC]

追記4(2014/7/14):
 最近気づいたんだが,サーバのログにかなりな数の 500 Internal Server Error が出ていた。しょっぱなの見た目では, font-face の IE 用ハックのせいに見えた。しかし,最終的にわかったのは, BPS の .htaccess の フィルターから来ているということだった。 URI の最後に ? があるとまずいようだった。それで, WordPress 日本語フォーラムと BulletProof Security Free フォーラムに相談に行った。おかげで,無事,解決。パチパチ!!

 より詳しい話は,相談先の下記2サイトをご覧ください。
   IE11(Win8.1),IE10(Win7)で,アクセスしたとき,font.eotについてエラーがでる。
   font-face 500 Internal Server Errors

追記5(7/16):
 我が家の http_error_log.txt には,うちのサイト関連の 403 Forbidden Error がズラッと並んできた。 Broken Link Checker が HEAD メソッドを使うせいである。 Broken Link Checker が HEAD メソッドを使うんだということは 2012.12.29 の TODOS の話題で知っていたが,両プラグインとも使い続けたかったので,あきらめて事態を受け入れていた。どうすりゃいいのか,わかんなかったし(爆)。

 ところが,今回 500 Internal Server Error の件で, .htaccess を覗いていて,下記の文言を発見。ワォッ!!
# REQUEST METHODS FILTERED
# This filter is for blocking junk bots and spam bots from making a HEAD request, but may also
# block some HEAD request from bots that you want to allow in certain cases. This is not a
# security filter and is just a nuisance filter. This filter will not block any important bots
# like the google bot. If you want to allow all bots to make a HEAD request then remove HEAD
# from the Request Method filter.
# The TRACE, DELETE, TRACK and DEBUG request methods should never be allowed against
# your website.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK|DEBUG) [NC]
RewriteRule ^(.*)$ - [F,L]

 これって,こっから, HEAD を消しちゃっていいってことだよね?早速,ルートの .htaccess から HEAD を消した。 wp-admin のほうは,そのまま。 Broken Link Checker はここで HEAD をやる必要ないからネ。

 思惑通り,ことは進んでいる (*´▽`*)。

「WordPress に BulletProof Security を入れてみた。」への3件の返信

こんばんは

年末になると変な奴がサーバーきますから、セキュリティは強化したほうがよろしいかと思います。

一回総点検しようかなと感じております。

くりくりさん,こんばんは。

> 年末になると変な奴がサーバーきますから、セキュリティは強化したほうがよろしいかと思います。

そうでしたねぇ。クリスマスとか,年末年始,ゴールデンウィークとか,変な方たち(自動&手動を問わず)は好きですよね(笑)。お休みに入る前に,総点検するに越したことはないです。

コメントを残す

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