2009/09/29 (火)

今日は早朝ミーティングの日なので、6時前起床で手早く仕度して家を出る。
が、電車乗っているうちにおなかがいたくなり、途中の駅で下車してトイレに駆け込む羽目に。。。
しばしのタイムロス。

2009-09-29:postfix+bsfilter で spam 排除

ユーザーサイド(?)で procmail+bsfilter での spam よけを自分自身のアカウントではやっていたんだけど、最近、同じサーバの fml でやってる ML 宛に支那から spam が定期的に来てうざいので、サーバサイド(言い方ただしいんだろか)で撥ねることにした。

ロジックは
  postfix がメールを pipe で bsfilter に渡す
  → bsfilter が X-Spam-Flag: {Yes|No} をつけて postfix に投げる
  → postfix が header_checks でフラグを見て通しか廃棄かする
という形。

サーバは debian lenny つかっている。
bsfilter は自分はすでに入れていたのだけど、まだの人(と将来のサーバ再セットアップする私)向けにメモを整備。
まずは bsfilter 自体の環境作り。

% sudo groupadd -g 115 bsfilter
% sudo useradd -u 115 -g bsfilter bsfilter
% sudo mkdir /var/lib/bsfilter
% sudo chown -R bsfilter.bsfilter /var/lib/bsfilter
% sudo vipw
% grep bsfilter /etc/passwd
bsfilter:x:115:115::/var/lib/bsfilter:/bin/false
% sudo -u bsfilter vi /var/lib/bsfilter/bsfilter.conf
% cat /var/lib/bsfilter/bsfilter.conf
homedir /var/lib/bsfilter
jtokenizer kakasi
pipe
insert-flag
insert-probability

postfix 用のフィルタは以下。

% sudo -u bsfilter vi /var/lib/bsfilter/postfix_bsfilter.sh
% cat /var/lib/bsfilter/postfix_bsfilter.sh
#!/bin/sh
HOME="/var/lib/bsfilter"
FILTER="/usr/bin/bsfilter"
CONF="/var/lib/bsfilter/bsfilter.conf"
SENDMAIL="/usr/sbin/sendmail -i"
cat | $FILTER --config-file $CONF --auto-update | $SENDMAIL "$@"
exit $?
% sudo chmod +x /var/lib/bsfilter/postfix_bsfilter.sh

続けて、postfix が bsfilter へパイプする設定。master.cf を編集する。
変更部分だけ抜粋。

% sudo vi /etc/postfix/master.cf
% tail -n5 /etc/postfix/master.cf
smtp      inet  n       -       -       -       -       smtpd -o content_filter=filter:dummy
# anti spam filter
filter    unix  -       n       n       -       -       pipe
  flags=Rq user=bsfilter argv=/var/lib/bsfilter/postfix_bsfilter.sh -f ${sender} -- ${recipient}

最後に、ヘッダを見てメールを撥ねる postfix の header_checks の設定。

% sudo vi /etc/postfix/main.cf
% tail -n1 /etc/postfix/main.cf
header_check = regexp:/etc/postfix/header_checks

% sudo vi /etc/postfix/header_checks
% cat /etc/postfix/header_checks
/^X-Spam-Flag: Yes/ REJECT sorry

header_checks ファイルの REJECT のところ、最初は WARN にして様子を見るのが吉。WARN はログに残したうえで、撥ねずに通す設定。false-positive もあるかもしれないからね。
設定値については man 5 header_checks しましょう。

最後に postfix を再起動して、おしまい。

—-

以上で設定終了なんだけど、上記をまとめるまでにぐぐって調べていたら、罠があったので注意書き。
世のサイトには「header_checks ファイルを書いたら postmap しろ」と書かれていることがある。これ、「正規表現でのレシピを書いている場合はやらないこと」なのだ。
もし、考えずに盲目的に postmap してしまうと、

warning: /etc/postfix/header_checks, line 1: record is in “key: value” format; is this an alias file?

といったオコられ方をする。
もし、やってしまった場合は、/etc/postfix/header_checks.db ファイルを削除してから postfix を再起動すればよい。

comment

2009/09/24 (木)

今日は休み明けで打ち合わせばかり。
自分の仕事は20時から開始。

2009-09-24:OpenSSH形式鍵と PuTTYgen の鍵

OpenSSH 形式で作った鍵を Putty 系で使えるように変換したり、PuTTYgen で作った鍵を OpenSSH 形式に変換したり、ということをしたので、今後のためにやり方をメモ。

◆PuTTYgen で作った鍵を OpenSSH 形式に
その1: puttygen.exe を使う方法

  1. puttygen.exe を実行
  2. [File]->[Load private key] で、変換したい鍵を選択(必要に応じてパスフレーズ入力)
  3. [Conversions]->[Export OpenSSH key] で、ファイル名を決めて保存

その2: ssh-keygen を使う

  1. ssh-keygen -i -f [made_with_puttygen_key] > [key_for_openssh]

◆OpenSSH 形式で作った鍵を Putty 系で使う

  1. puttygen.exe を実行
  2. [Conversions]->[Import key] で、鍵を選択
  3. id_dsa などの形式を正しく選択
  4. Save private key を押して保存
comment

2009/09/17 (木)

週末の川崎戦のチケットを確保しそこねていて、浦議の掲示板経由で連絡をとりあって仕事上がりに浜松町でチケット引き取り。
今年はあとはもう、チケット確保が難しい試合はないな。

2009/09/16 (水)

美味しんぼで「このあらいを作ったのはだれだぁ!」と海原雄山がドスドスと足音を響かせるシーンがあるけど、今日は「この DoS を仕掛けたのはだれだぁ」と言いたい気分。
というわけで、2日連続でサーバに DoS 攻撃をくらってぐんにょり。
上流で遮断してもらって、とりあえずは平和が戻ったけど。

2009-09-16:trac+subversion

trac をいまさらながら初めてセットアップ。
これ、subversion と連動できてとても便利ね。svn commit 時のログメッセージのキーワードを見て trac 内のチケットがクローズされたりするのはアタマいいなぁ。
trac 上で subversion レポジトリ内のファイルを気軽に見れるのはうれしい。
wiki も変更履歴つきで保存されるのがよい。

ちょっとはまったのは、trac が自動的に出すメールを wanderlust で開こうとして、Wrong type argument: arrayp, nil とオコラレタこと。
UTF-8 なメールをデフォルトでは出しちゃうのね。

comment

2009-09-16:ばんごはん

サーモンとホタテのムニエル。
生ハムのサラダ。
ポテトポタージュ。

ルッコラの葉好きー。

comment

2009/09/15 (火)

朝、雨具を持たずに出て、帰宅の家路で白山駅に降りたところでまだ降ってなかったので、無事に帰れるかなと思ったら、最後の路地で降られて濡れてしまった。

2009-09-15:XP で nslookup できるのに ping できない

イントラネット内で DNS を用意して、クライアントの XP で DNS サーバの登録をするも、イントラ内のサーバの名前が引けないぞ、という罠をくらった。
cmd.exe で nslookup すると名前引きにちゃんと成功する。でも firefox で見に行くことあたわずで、ping も通らない。

こういうときは、

ipconfig /flushdns

とするものらしい。
それでもダメな場合は、

net stop dnscache

を試そう。

うーん、これでまた、無駄な XP 知識がひとつ。。。

comment

2009-09-15:よめばんごはん

嫁にばんごはんをつくってもらうの日。
ニョッキのクリームソース。白ワインとあうぜ。
スープはカボチャのポタージュ。

最近、Bermix をポタージュ作りにしか使ってない気がする。
とはいえ、他に使い道あんまりないんだよな。。。

comment

2009/09/14 (月)

昔決めた仕様が、なぜそうしたのかが思い出せないという、ありがちな話。

2009-09-14:apache の keepalive

apache の keep alive を off にしているシステムがあって、なんでそうしているのかが不明。
だめなクライアントがいたとかだったかなぁ。。。うーむ。

comment

2009-09-14:ばんごはん

さんま一夜干しが安かった(一尾80円)ので、今夜は和食。
さんまの上に載っているのは大根おろしではなくて、蕪おろし。辛くなく、わりといいもんです。お試しあれ。
蕪の葉っぱは味噌汁の具にもなってくれます。
真ん中はほうれんそうのおひたし。

comment

2009/09/13 (日)

長いトンネルを抜け、ようやく勝利。
うれしい。。。(しみじみ