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

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

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

まずLogwatchをインストール。

sudo aptitude install logwatch
sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/
sudo cp /usr/share/logwatch/default.conf/services/* /etc/logwatch/conf/services/

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

TmpDir = /tmp
Output = mail

MailTo = myname@example.com

ここで動作確認

sudo /etc/cron.daily/00logwatch

メールが届けばOKです。

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

Title = "WordPress xmlrpc.php Access Count"
LogFile = http

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

#!/usr/bin/python
import sys;

ipcount = {}
for line in sys.stdin.readlines():
    if "xmlrpc.php" in line:
        ip = line.split(" ", 1)[0]
        if (ip in ipcount):
            ipcount[ip] = ipcount[ip] + 1
        else:
            ipcount[ip] = 1

count_length = 0
for ip, count in sorted(ipcount.items(), key=lambda x:x[1] * -1):
    if count_length == 0:
        count_length = len(str(count))

    print ((ip + ":").ljust(17) + str(count).rjust(count_length) + " Time(s)")

スクリプトの動作確認

logwatch -service wp-xmlrpc-access-count -output stdout

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

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

POPFileをWindowsからVPSのUbuntuに移行させたお話

POPFileのIMAPモジュールを使ってメールの振り分けをしていたけど、POPFileのためだけにデスクトップPCの電源を常時点けておくのは許せないし、かと言って常時持ち歩いているタブレットPCでPOPFileを動かすとバッテリーの減りが心配。

そこで以前から考えていた計画を実行に移した。さくらのVPSを借りてPOPFileを動かす!そこでメモも兼ねて手順を残すことにした。POPFileのお話なのでPOPFile固有じゃないところは出来る限り端折って書く。

POPFileのパッケージが用意されているディストリビューションの中ではUbuntuが一番簡単そうなので、カスタムOSの Ubuntu 12.04 amd 64 をインストールする。

VPSコントロールパネルからログイン。

SSHサーバの設定をしてSSHでログイン出来るようにしとく。

POPFileのインストール

sudo aptitude install popfile

 

libtext-kakasi-perlをインストール Thanks: http://mux03.panda64.net/diary/20070822.html#p01

sudo aptitude install libtext-kakasi-perl

 

lynxブラウザをインストール

sudo aptitude install lynx

 

Windows側にあるpopfile.dbファイルをSFTPか何かで何とかしてUbuntu側の /var/lib/popfile/ にコピー。所有者とパーミッションをchownコマンドとかchmodコマンドとかで元からUbuntu側にあるpopfile.dbファイルと同じにする。

lynxでlocalhost:7070にアクセス。これでPOPFileの管理画面に入れる。セキュリティタブの”リモートマシンからの HTTP 接続(ユーザーインターフェースの利用)を認める (POPFile の再起動が必要)”を”はい”にする。

Puttyとかでポートフォワーディングの設定をする。Windows側7070/tcp→Uuntu側7070/tcp。

Windows側のブラウザからlocalhost:7070へアクセス。これでUbuntu側のPOPFlieの管理画面に入れる。Windows側のPOPFileの設定をUbuntu側のPOPFileへ手動でポチポチと入力して設定する。

これで完了。試してないけど通常のPOP3で利用する場合にはPOP3用のポートもポートフォワーディングすれば大丈夫だと思う。

Linux|WindowsとUbuntuのurlショートカット

【IEのお気に入り】

ファイル名は”タイトル.url”

中身は最低限これで動く

[InternetShortcut]

URL=ここにURL

文字コードはshift-jis

改行コードはCR-LF

【ubuntu】

ubuntuでFireFoxを起動して、アドレスバー横のアイコンをデスクトップにドラッグ&ドロップして出来たファイルはこんな感じだった。

ファイル名:”タイトル.desktop”

Windowsと違ってプログラムのショートカットとurlのショートカットの区別はないらしい。

中身はこんな感じ

[Desktop Entry]

Version=1.0

Encoding=UTF-8

Name=ここにタイトル

Type=Link

URL=ここにURL

Icon=gnome-fs-bookmark

文字コード:UTF-8

改行コード:LF

デスクトップ上で表示されるのはファイル名じゃなくてNameキーの内容だった。

こんな感じでIEのお気に入りをubuntu用に変換するプログラム書いたらうまく動いた。

他のディストリビューションはどうなんだろう。ググっても分からなかった。

Linux|Linuxを入れてみた

以前からLinuxに興味があったのですが、敷居の高さを感じてなかなか導入に至りませんでした。

PCが1台しかないので考えられる方法は

1.デュアルブート

2.1CD Linux

3.仮想マシン

1はWinが起動しなくなることが稀にあるとかで却下。

2はCDROM買わないといけないので却下。お金はかけない主義。

残るは3の仮想マシンです。仮想マシンというとVirtualPCしか知らないのでその線で調べると、僕のWinXPHomeではVirtualPCは使えないらしい。

そこでVMwareという同種のソフトがあるのをグーグルで見付けました。VMware Playerというタダバージョンもあるとか。

しかしこのVMware Player、インストールしてみたら、仮想マシンが作れない!そう、これは構築済みの仮想マシンを動かすだけのソフトだったのです。よく調べないお前が悪い!仮想マシンを作れるバージョンは有料だとか。

そこで色々検索してみたら、ありました。UbuntuのサイトでUbuntuインストール済みのVMwareの仮想PCのファイルを配布しているではありませんか。そうか、Linuxにはこんな配布方法もあったのか…。

さっそく導入しました。Windowsを1からインストールするよりずっと簡単でした。VMwareを起動したら、もうすぐそこに使えるUbuntuの環境があるんですよ。GUIバリバリでWindowsと同じ感覚で使えます。必要なアプリも最初から一通りインストールされてるのも親切です。ブラウザやテキストエディタ、Officeソフト各種、メディアプレイヤーから、Windowsになりすましてファイル共有が出来るSambaサーバー、各種言語のコンパイラなんかも入ってるのには驚きです。

といっても、Windowsを使いながら培ってきた過去の遺産を生かせなければ進んでLinuxを使おうとは思いません。そこでまずはsambaサーバーでWindowsのディレクトリにアクセス出来るようにしてMS Officeの各種ファイルを開いてみました。OOoで問題なく扱えます。

次は画像、一通りのフォーマットはプリインストールのビューアで開けました。画像、オーディオ、ビデオ関連も付属のプレイヤーで再生出来ました。

FireFoxでニコニコ動画も見られるし、ずっとWindows使ってきて、Linuxで使えない資産があるってわけじゃなければこれで充分ですね。

ってことで超簡単にLinuxを使ってみる方法、

http://www.ubuntulinux.jp/products/JA-Localized/vmware

ここに全部載ってます。