WordPressでサイトの改ざんをされない為のセキュリティ対策とFTPアクセス制限
ある日、Outlook.comにメールが届かなくなってしまいました。
管理しているサイトの一つのドメインなのですが、「failure notice」というタイトルで「MAILER-DAEMON」から「550 OU-001 (BLU004-MC1F35) Unfortunately, messages from [IPアドレス] weren’t sent.」というエラーのメールが返ってきます。
調べてみると、どうやら送信しているメールアドレスのドメインが、迷惑メールとして定義されてしまっているようで、Outlook.comから弾かれてしまっているようです。
迷惑メールの解除は、こちらのサイトで紹介されています。
http://springpaduser.blogspot.com/2016/05/outlookcomblock-list550-sc-001.html
目次
該当のドメインのWEBサイトの改ざんが原因
そもそも、なぜ迷惑メールとして扱われてしまっているのでしょうか。
調べてみると、どうやら該当のドメインのWEBサイトが改ざんされてしまっていたのです。サイトへアクセスすると、ウィルスに感染するようなページへリダイレクトされるようになっていました。その為、このサイト(ドメイン)は危険ということで、迷惑メールとして定義されてしまっているようです。
改ざんされた理由としては、WordPressの古いバージョンが原因ですね。。。
ということで、アップされているファイルを見てみると、改ざんされたらしきファイルがたくさんありました。「wp_redirecter.php」や「〇〇〇_suspect」などという名称のファイルがアップされていたり、既存のファイルが変更されていたり。。。至る所に改ざんされたファイルがあるので、キリがありません。ということで、ファイルを全て削除し、再度、ローカルに保存してあるファイルをアップすることにしました。
全ファイルを削除してバックアップファイルと入れ替え
ローカルにバックアップファイルがない場合には、WordPressの管理画面から、エクスポートも可能です。その際には、「/wp-contents/upload/」にアップされている画像ファイルなどを全てダウンロードしましょう。こちらのディレクトリにも、改ざんされたファイルが仕込まれている可能性がありますので、十分に注意しましょう。
全てのファイルの削除が完了したら、最新のWordPressをアップして設定します。
そして、バックアップファイルをFTPでアップまたはインポートして、入れ替え完了です。また、念のためFTPやデータベースのIDやパスワードは変更しましょう。
WordPressのプラグインでセキュリティ対策
そして、WordPressのセキュリティを高める為に、プラグインなどをインストールします。
SiteGuard WP Pluginでセキュリティの向上
「SiteGuard WP Plugin」は色々なサイトで推奨されている、WordPressのプラグインです。インストールすることで、「自動的にログインページのURLを変更」「ログイン時に画像認証」「ブルートフォース攻撃・リスト攻撃対策」「ログインされた際にお知らせメール」「ピンバック無効化」「更新通知」「WAFのチューニングサポート」など、一通りのセキュリティを向上させることができます。
また、管理ページにログインを試みた履歴も表示されるので、不正にログインされているかどうかも知ることができるようになっています。
ただ、機能のうちの一つ「管理ページアクセス制限」を有効にしてログインしようとすると、ログインできなくなってしまうことがあります。正常なIDとパスワードを入力しても、またログイン画面に戻ってしまうという現象です。その場合、ログインできなくなってしまったと焦らずに、落ち着きましょう。
解決策は、「管理ページアクセス制限」を使うのをやめ、無効にすることです。
まずは、FTPで「/wp-content/plugins」の中の「siteguard」のディレクトリ名を一時的に「_siteguard」等と変更します。
これで通常のWordPressのログイン画面からログイン出来るようになるので、正常にログイン処理が完了したら、再びFTPで、先ほど変更した「_siteguard」のディレクトリ名を「siteguard」に戻します。そして、更新ボタンを押すと「SiteGuard」の設定メニューが復活するので、設定メニューから「管理ページアクセス制限」を無効にします。これで完了です。
「SiteGuard」を設置すると分かりますが、思っている以上に頻繁に誰かがログインを試みようとしています。もちろん失敗していますが。。。ユーザー名には「admin」やドメイン名等を入力してくるパターンが多いようです。それをふまえると、次に紹介する「Edit Author Slug」で、ユーザー名を隠すことは重要になってきます。
Edit Author Slugでアカウント名を隠す
WordPressを普通に使っていると、投稿者アーカイブにアカウント名(ユーザー名)が使われてしまいます。その場合、あとはパスワードさえ分かればログイン出来てしまう為、セキュリティ上好ましくありません。
そこで「Edit Author Slug」を使うことで、アカウント名(ユーザー名)を表示しないように変更できます。インストールした後、ユーザー設定に移動すると、下の方に「Author Slug」という項目が追加されています。こちらで「Custom」の欄に、表示させたい名称(スラッグ名)を入力して、プロフィールを更新することで、本来のユーザー名を隠すことができます。
.ftpaccessでFTPのアクセス制限
特定のIPアドレスやドメイン名からのみアクセスできるように制限することができます。テキストエディタ等で以下のように記述して、「.ftpaccess.txt」というファイル名で保存します。
<Limit ALL>
Order Allow,Deny
Allow from ***.***.***.***
Deny from all
</Limit>
「***.***.***.***」には、アクセスを許可するIPアドレスが入ります。
自分のIPアドレスは以下のサイトで確認することができます。
https://www.cman.jp/network/support/go_access.cgi
また、ホスト名を指定することも可能なようなのですが、その都度ホスト名の逆引きをすることになる為、サーバーに負荷がかかってしまい、推奨されないようです。基本的にはIPアドレスで指定しましょう。
https://www.rapidsite.jp/support/guide_migration/reference/ftp/e_11320.html
ちなみにWebArenaでは、IPアドレスまたはホスト名で指定ができるようになっています。
http://faq.nttpc.co.jp/faq/show/8571?site_domain=suitex
通常の大手プロバイダを利用している場合、IPアドレスは動的に変更されるので、IPアドレスを「***.***.***.***」のように指定していると、変更されて接続できなくなってしまう可能性があります。その為、「***.***.***.」のように、最後の一つを空欄にすることで、動的に変更されるIPアドレスでも対応することが可能です。最後の「.(ドット)」を忘れないようにしましょう。
<Limit ALL>
Order Allow,Deny
Allow from ***.***.***.
Deny from all
</Limit>
複数ある場合には、以下のように複数行書けば大丈夫です。
<Limit ALL>
Order Allow,Deny
Allow from ***.***.***.
Allow from aaa.bbb.ccc.ddd
Allow from 012.345.678.901
Deny from all
</Limit>
保存したら、「.ftpaccess.txt」をFTPでディレクトリ直下にアップします。
そしてファイル名を「.ftpaccess」のように変更すれば完了です。
レンタルサーバーによっては、管理画面から簡単に「.ftpaccess」を設定できます。
ロリポップの場合、「WEBツール」の「FTPアクセス制限」から簡単に設定することができます。その場合、自分で設定したIPアドレスだけでなく、ロリポップ!で利用されるIPアドレスも自動で追加されています。
WordPressを使う場合には、常に最新版にするようにし、wp-config.phpのパーミッションを400に変更したり、プラグインでセキュリティ対策を施したり、FTPのアクセス制限をして、セキュリティを強化するようにしましょう!
コメントする