外部から2chに接続するためのProxyがおかしくなっているのに気がつく。
2chのアドレスを自鯖のアドレスに変換しているのだけれど、アドレス変換が上手く動いていない模様。

ぱっと見た感じ、転送データがgzip圧縮になっていて、htmlの変換が効いていない様子。
とりあえず、RequestHeaderディレクティブで Accept-Encoding ヘッダを除去。
Apache再起動……、うん、アドレスの変換ができるようになった。

ついでに、SetEnvIf と RequestHeader の合わせ技で、書き込みにも対応させてみる。
(2chは正しいRefererでないと書き込めない)
ブラウザからは書き込めるようになったのだけれど、Janeで書き込むとCookieの確認から先に進めず詰まる。
どうも、確認画面が正しく出ていない感じ。
ちょっと考えるも上手い対処が見つからない。

まぁ、無理に書き込みをするわけでもないから問題ないか……

うん、簡単にいうと設定に抜けがあった。

そりゃwikiってディレクトリだから想像するのも楽だよな。
ログを見た感じ、全頁をざっと眺めたあと、いくらかのPOSTを投げたようだ。
実質的な被害は変なページをいくつか作られたくらい。

が、気味悪いなぁ……

そもそもがほとんど更新のない自分のメモ用wikiだったんで処分も考えた方がよいのかも。
いっそ、ちゃんとしたWebページとして作り直したほうがいいのかなぁ……

とりあえずは外部からのアクセスを遮断するように変更した。
やっぱり甘い所から攻撃されるよなぁ。
まぁ、後回しでいいか。

今、自分用にPHPでWebサイトを作っているのだけれど、その中でDB接続をどうしようかと言う問題があって、PHP5だとPDOとかいうのが一般的らしいのでマニュアル見つつインストールを開始。

まず、大本のPDOは以下でさっくり入った。
pecl install pdo

次、PDOのPostgreSQLドライバ
pecl install pdo_pgsql
入らない。(´・ω・`)

標準出力はこんな感じ
checking for pg_config… not found
configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
ERROR: `/tmp/pear/temp/PDO_PGSQL/configure’ failed
PostgreSQLのインストールパスが見つけられないらしい。

とりあえず、PATH通してみる。
かわらねぇ……
エラー文言でGoogleさまにお伺い立ててみるも、PHPのMake時の事例しか出てこない。
他にも引っかかってる奴いると思うんだけどなぁ……

しょうがないので、/tmp/pear/配下を覗く。
/tmp/pear/download/PDO_PGSQL-1.0.2
という、いかにもソース入ってますというディレクトリを発見。
中を覗くと、config.m4 発見。

ほぅほぅ。 $PHP_PDO_PGSQL を設定してやればよさそうな予感。
あ~、/usr/local/bin は決め打ちか、そりゃデフォルトインストールしてれば引っかからんわ。

んで、setenvして設定。
できねぇ……

仕方がないので、スクリプト側で決め打ちしてる以下から、
/usr/local/pgsql/bin /usr/local/bin /usr/bin
/usr/binを選んで、リンク作成。
ln -s /xxx/postgresql/bin/pg_config pg_config

再トライ。ようやく通った。
リンク削除。

php.ini に extension=pdo_pgsql.so を追加。

あぁ、めんどくさ……
が、今度はApacheが起動しない。\(^o^)/

今しがた作った、 pdo_pgsql.so と、PHPに組み込んであるPDOのバージョンが違うのが原因でエラーを吐いとる……

いい加減うんざりしながら、PHPの最新5.3が出ていたのでついでにバージョンアップを慣行。
また、環境作るところからか……
なんか、ずいぶん大事になってしまったなぁ…… (さらに…)

ここ2~3日サーバマシンとの間のネットワークの転送速度が異常に落ちる事象が発生していたのだけれど、あれこれ試すうちにどうやら室温が高くなると不調になるらしいことが分かってきた。

konata.netは、古いノートPCにFreeBSDを入れて運用しているのだけれど、
このノートの置き場は、普段操作することがないんで、本棚の上に置いている。
一応冷却を考えて隙間は十分に取っていたのだけれど、どうもノートの画面を閉じていると、あまり冷却できていない様子。
当然ノートの液晶は切ってあるのだけれど、蓋を閉めると熱も篭ってしまうようだ。

冷房を入れて、少しするとアクセス速度が回復するので温度が原因なのはほぼ確定。
常に冷房を入れておける余裕があるわけでもないので、とりあえず蓋を開けたままで、どのくらい影響があるのか確かめてみることにした。

これでもダメなら……、買い替えか?
新しいパーツを買える大義名分が立つのはよいのだけれど、実際に移行するとなると結構ハードルがあるかもしれん。

HDDの内容は移し変えなければならないし、ノート以外を鯖にするなら緊急用にコンソール用の小さな液晶が欲しいところだ。
加えて、機器を更新してもBlogのアクセスが増える訳でもないしなぁ……

夏さえ乗り切れば影響はないんで、なんとかあと2ヶ月持ってくれないかなぁ……

表題のとおりである。

例によって、konata.netに届くSPAMの量がちっとも減らないので、どうしようかと思案した結果、安直にもJP以外のアドレスを全部弾いてみることにした。

幸い、Postfixはサブネットマスク(CIDR表記)で記述したIPリストを読み込むことができる。
そうと決まれば話は早い。以前PF設定用に抽出した国を弾くスクリプトがあるので、それを適当にいじって「 xxx.xxx.xxx.xxx/xx OK 」な形式のPostfix用のリストを作成するスクリプトを作成。

できたら、postmapでリストをdb形式に変換。
main.cfを開いて、smtpd_helo_restrictionsに下の行を追加。
check_client_access cidr:/opt/postfix/etc/postfix/jp_list
reject

Postfix の設定をリロードさせて完成。
IPリストは定期的に作り直したほうがよいのだけれど、まぁ大手のしっかりしたところは早々割り当てIPも変わらんだろうと高をくくる。
cronで回せばいいだけの話ではあるんだけど。

ともかくこれで、国外からの接続は弾いているハズ。
これで、SPAMとはサヨナラだ。
心配になったので、gmailとhotmailのアカウントからメールを送信してみる。
とどかねぇ……/(^o^)\
サーバを海外においている場合当然ながら全部問答無用で弾くので早速やらかした予感。
スパムどころか必要なサービスともサヨナラしてどーするよ。

/var/log/maillog を確認。ばっちり拒否ってる(´・ω・`)
日本語のサービスでも鯖は日本にないのね……

以前ハンゲームのスパムを弾いた時に使った個別アクセスリストがあったので、google.comとhotmail.comをOKで追加。
が、google.comが再度弾かれる。

気になったメッセージは以下。
warning: 209.85.198.240: address not listed for hostname rv-out-0708.google.com
Client host rejected: cannot find your hostname,
調べてみると、逆引きがうまくいっていない時に出るらしい。

さてどうしたモンかと思案しているうちに、google.com側で接続するホストを変えてきて無事にメールは届いたのだった。
まぁ、いずれ届くなら問題ないか……

それより問題は、利用しているネット通販とかで海外の鯖にデータセンターを作ってる場合だよなぁ……
当面、通販するときはメールに気をつけよう。 (さらに…)