WordPressのxmlrpc.phpへのアクセス数をLogwatchで通知する

WordPressのxmlrpc.phpへの大量アクセスで時々サーバーが息をしなくなってしまうので、IPアドレスでアクセス制限をかけています。ただ、毎回アクセスログを見てアクセス元のIPアドレスを確認するのも面倒です。

日頃からLogwatchでサーバーの状態を確認しているので、ここでxmlrpc.phpへのアクセス数の集計も見られると便利だと思い設定しました。Ubuntu 12.04.4 LTSにtaskselからLAMP環境を構築しWordPressを設置した状態を前提にしています。

まずLogwatchをインストール。

 

/etc/logwatch/conf/logwatch.conf の最低限の設定を変更します。

 

ここで動作確認

メールが届けばOKです。

 

/etc/logwatch/conf/services/services に wp-xmlrpc-access-count.conf を作成

 

/etc/logwatch/scripts/services にログの集計を行うスクリプト wp-xmlrpc-access-count を追加

 

スクリプトの動作確認

これで集計結果が表示されればOKです。

 

この設定を行うにあたってLogwatch にサービス・フィルタを追加するを参考にしました。

Limit Login Attemptsプラグインはxmlrpc.phpへのブルートフォースアタックも防ぐのか

ふと不安になって調べてもわからなかったので実験しました。iPhoneにWordPressアプリをインストールして3G回線でまずは正しいID/パスワードでログイン、アクセスログを見て自分のIPアドレスを確認しました。
今後は出鱈目なID/パスワードでログインを連打してLimit Login Attemptsの設定画面を確認。iPhoneのIPアドレスが登録されてブロック対象に自動設定されていることを確認しました。