WordPress運用を行うなら最低限これだけはやっておけリスト
事の始まり。ていうか、時すでに遅し。
既に事終えているのですが、弊社が管理しているサーバの一つに古いWordPressがインストールされており、Web ShellというBackdoorを仕込まれる事態になりました。
二度とこんなことは経験したくないため、誰でも容易に運用できるからこそ、誰でも簡単に攻撃できてしまうため、ある程度のリスクヘッジすることが必要と感じました。
しかしながら、攻撃手法も様々なためこれで全てとは思っていませんが、少なくともこれから挙げていくリストを守れば侵入を許すことは早々ないかな、と思います。
(っていう啓蒙活動はみんなやってるんですけど、なぜか広まらない。)
結果何が起きたか
WordPressの3.6を運用するサーバと独自のECパッケージが同居するサイトが瀕死になりました。
Shellログインができず、Nginxが起動しない(なんとかhttpdは生きてた)、yumパッケージの修復を試みるもOSのライブラリの一部が欠損しているため、どうしようもない状態です。
幸いしたのはDBサーバが元々はWebサーバから作られていたということもあり、OSのバージョンからライブラリまでほぼ全て同じであるということです。
このことから、Webサーバは仮復旧しましたが、以前としてウィルス感染したままです。
というわけで、急遽、DBサーバから改めてWebサーバを作り直しました。(今時Cent OS 5.2 )
これぐらいやっておけよって思うこと
- Pluginの導入一覧
-
Edit Author Slug
- authorを変更するためのプラグイン。管理者が誰であるかがわからなくようにするために必要。ググれば危険性がいくらでも出てきます。
- https://example.co.jp/?auther=1 とかするとログインユーザがわかります。やめましょう。
-
Acunetix Secure WordPress
- これも有名です。WordPressのセキュリティに関わる部分に対し、良い感じにセキュリティを担保します。
- config.phpを隠したりreadme.htmlを無効にしたりファイルパーミッションを適切にしてくれたり。
-
Wordfence Security or AntiVirus
- サイト改ざんを検出するPluginです。どちらかは最低入れましょう。
- Themeが改ざんされ、侵入されるケースは割と多いです。
-
Login LockDown
- 執拗にあるユーザでログインを試行した場合、そのユーザを一定回数で一定時間、そのユーザをロックするPluginです。
- 他のPluginとの兼ね合いで自分がロックされることもありますが、入れておきましょう。特に会社のIPや自宅のIPが動的IPであれば、入れておくことをなおさらお薦めします。固定IPでしたらwp-login.phpとadminディレクトリにBasic認証をかけておくと良いと思います。
-
Backwpup
- WordPressをDropboxにバックアップするPluginです。
- これ入れて設定しておけば最悪前日分に戻せます。
-
Akismet Anti-Spam (アンチスパム)
- スパム投稿されたコメントをがっつり消してくれるプラグインです。
- 個人ブログでもコーポレート系のブログなどでも入れておく方が良いプラグインです。
-
Jetpack by WordPress.com
- markdownとかアクセス状況を見たりとか色々見れるので入れておく方が良いプラグインです。
- 無料の範囲で十分使える上、自動アップデート(ログインは必要)にも対応してるのでオススメです。
- WordPress標準の自動アップデートやコードによるアップデートは更新通知が発生するだけとのこと。
しばらく運用してみて追加したプラグイン
- オプショナルで入れてもいいかも
-
Two Factor
- いま話題になりつつあるU2Fを使えるプラグインです。管理画面にログインする際に登録したU2F対応デバイスでしかログインできなくなるのでオススメと言えばオススメ。個人でやってる場合は紛失したらプラグイン無効化するなど一手間必要です。
-
Two Factor
脆弱性診断に専用ツールもあるので使ってみる
wpscanというruby製でできた脆弱性診断ツールですが、このツールを使うだけでも自分のサイトの脆弱っぷりがわかったりもします。
テーマやpluginに脆弱性がある場合は発見することが可能で、先ほど挙げたEdit Author Slugを使っていない場合は、管理者名とDBにログインユーザ名が一致してるので、ユーザ情報がごっそり出力されます。
弊社は固定IPを設けていますので.htaccessで管理画面にアクセス制限を設けたりすることでセキュリティを担保するようにしています。
まとめ
最低でもこれぐらいやっておかないと安心してWordPressの運用は利用者に任せられないと思います。
重くなるから嫌だとかそういうのはキャッシュを導入したり、サーバを増強すればなんとでもなります。
むしろ、これぐらいで重くなるようなサイトは色々Pluginの入れすぎか、jsやcssが最適化できていないとかそういう違う方面の努力が必要です。
あと、最近だと爆速になるwebサーバのミドルウェアがありますので、違う方向での努力を本当にお薦めします。
………弊社が運用するブログもPluginを入れすぎている関係で重い(表示が遅い)んですけどね………。
これは前任者が色々入れたからですけど………。