前書き

WordPressは、フリーでオープンソースの非常に堅牢なコンテンツ管理システム(CMS)です。 誰でもコメントしたり、アカウントを作成したり、WordPressに投稿したりできるため、多くの悪意のある攻撃者は、ブルートフォース攻撃によってWordPressサイトを侵害およびスパムするボットとサーバーのネットワークを作成しました。 ツールFail2banは、DropletとWordPressサイトの両方への不正アクセスを防ぐのに役立ちます。 不審または繰り返しログインに失敗したことに注意し、Dropletのファイアウォールルールを変更することにより、それらのIPを予防的に禁止します。

このガイドでは、Ubuntu 14.04 LAMPサーバーでFail2banのバージョン0.9.3を使用し、スパムログプラグインを使用してWordPressと統合します。

前提条件

このガイドを完了するには、次のものが必要です

ステップ1 – WordPress Fail2banプラグインのインストール

まず、ブラウザーで「+ https:/// wp-admin +」にアクセスし、WordPressのインストール中に作成した管理者資格情報を使用して、WordPressサイトにログインします。 ログインすると、次の画面が表示されます。これはWordPressダッシュボードです。

image:https://assets.digitalocean.com/articles/wordpress_1404/admin_interface.png [Dashboard screen、title = “dashboard screen”]

左側のサイドバーで、*プラグイン*という単語を探します。これは、サイドバーの中ほどに表示されます。 [プラグイン]をクリックすると、次の画面が表示されます。

image:http://i.imgur.com/cJhyxi6.png?1 [Plugin、title = “plugin add new”]

上部の右側のセクションで、「新規追加」をクリックできます。 これにより、サイトをカスタマイズ、セキュリティ保護、または拡張できる新しいプラグインをWordPressサイトに追加できます。 この場合、Fail2banプラグインを検索します。 次の画面は次のように表示されます。

image:http://i.imgur.com/m5Jecd6.png?1 [Add New Search、title = “新しい検索を追加”]

検索フィールドに* Fail2ban と入力し、キーボードの `+ ENTER +`を押します。 結果は、いくつかのプラグインを表示する画面を返します。インストールするプラグインは WP fail2ban *です。

image:http://i.imgur.com/2nmPJ61.png?1 [Fail2ban、title = “fail2banプラグイン”]

[今すぐインストール]をクリックしてインストールを開始すると、2つのプロンプトが表示されます:プラグインをアクティブ化*および*プラグインインストーラーに戻ります。 * Activate Plugin を選択すると、ブラウザはインストールされたプラグインのリストに戻り、リストに新しい WP fail2ban *プラグインが表示されます。 現時点では、*詳細を表示*をクリックして、新しいプラグインに関する詳細情報を表示できます。 コンテンツやコメントでWordPressサイトをスパムするために使用される可能性のある特定のユーザーのブロックなど、機能を有効にする方法を理解するのに役立つFAQもあります。

ステップ2-Fail2banへのWordPressフィルターの適用

このWordPressプラグインには、新しいカスタムFail2banフィルターが含まれています。 この手順では、Fail2banがsyslogに送信される認証ログを正しく解析して使用できるように、そのフィルターをインストールします。

最初に、WordPressプラグインディレクトリから適切なFail2banフィルターの場所にフィルターを移動します。 保護を強化するために、「ハード」WordPressフィルターを使用します。

sudo cp /var/www/html/wp-content/plugins/wp-fail2ban/filters.d/wordpress-hard.conf /etc/fail2ban/filter.d/

新しい「+ wordpress-hard.conf 」フィルターを設定したら、ファイル「 / etc / fail2ban / jail.local +」を編集して、Fail2banに適切な認証ログを指定できます。 Fail2banの刑務所は、IPアドレスのフィルターを提供する一連のルールとアクションを指します。

nanoまたはお好みのテキストエディターを使用して、ファイル「+ jail.local +」を開きます。

sudo nano /etc/fail2ban/jail.local

ファイルが開いたら、一番下までスクロールし、次の行を最後に追加します。 これらの行はプラグインを有効にし、以前に + filters.d +`ディレクトリにコピーした `+ wordpress-hard.conf +`フィルターにフィルターを設定し、アクセス試行の適切なロギング先を設定し、このトラフィックが+ http `と ` https +`ポートに来てください。

[wordpress-hard]

enabled = true
filter = wordpress-hard
logpath = /var/log/auth.log
maxretry = 3
port = http,https

ファイルを保存して閉じます。

次に、ターミナルで次のコマンドを実行して、Fail2banを再起動し、新しいフィルターが現在設定されていることを確認します。

sudo service fail2ban restart

ステップ3-コンピューターからのログイン試行を無視する

あなたや他の既知のユーザーが誤って認証に失敗して禁止されるのを防ぐため、ローカルコンピューターのパブリックIPアドレスを無視することをお勧めします。

LinuxベースのOSを使用している場合は、次のコマンドを使用します。

curl ipecho.net/plain ; echo

それ以外の場合は、「+ http://checkip.dyndns.org+」にアクセスして、コンピューターのパブリックIPアドレスを確認します。 WordPressサイトの他のユーザーが別の場所にいる場合は、そのアドレスも検索できます。

編集のために `+ jail.local +`を再度開きます:

sudo nano /etc/fail2ban/jail.local

次の行は、ローカルサーバーIP(localhost)で始まる無視されたIPアドレスを、WordPressへのアクセスを許可する既知のホストの各値をスペースで区切ってリストします。 WordPressプラグインのセットアップ手順で追加したignoreipステートメントの下に、これをDEFAULTセクションに追加します。

ignoreip = 127.0.0.1/8

エディターを保存して終了します。

ステップ4 –フィルターのテスト

フィルタが機能しているかどうかをテストするには、WordPressサイトの* wp-admin *サイトからログアウトして、再度ログインします。

このFail2ban jailステータスを使用して、ログインが成功したことをフィルターが記録しなかったことを確認できます。

sudo fail2ban-client status wordpress-hard

次のような結果が表示されます。

Status for the jail: wordpress-hard
|- filter
|  |- File list:    /var/log/auth.log
|  |- Currently failed: 0
|  `- Total failed: 0
`- action
  |- Currently banned: 0
  |  `- IP list:
  `- Total banned: 0

`+ auth.log `ファイルを表示すると、出力の最後の10行を表示する ` tail +`を使用して、ファイルの下部にログイン成功が表示されます。

sudo tail /var/log/auth.log

成功した認証は次のように表示されます。

+ Month Day Hour:Minute:Second wordpress()[]:Accepted password for admin from +

不正なユーザーまたは認証の失敗がログに表示される場合、新しいプラグインはファイアウォールルールを適切に変更することにより、このIPがサイトへのアクセスをブロックするようにします。

ステップ5 –ログファイルのローテーション

WordPressサイトが非常に大量の不正なログイン試行を受けており、ログファイルが急速に増大している場合、ファイル `+ / etc / logrotate.conf +`を編集することにより、ログファイルを新しいものに変更できます。

sudo nano /etc/logrotate.conf

これらの行を追加して、ファイルの最大サイズ、ログのアクセス許可、および週数を設定します。 たとえば、ファイルが更新されるまでの週数として4を設定できます。

/var/log/auth.log {
   size 30k
   create 0600 root root
   rotate 4
}

ファイルを適切に保存して終了します。

結論

このガイドの手順に従って、Fail2banプラグインをインストールおよび構成し、ローカルIPアドレスを除外して、作業をテストしました。 また、ログローテーションを設定して、ログファイルが無期限に増大しないようにします。 これで、WordPressインスタンスは、不正なログイン試行、コメントスパム、サイトへの侵入に対してはるかに堅牢で安全になりました。