2013/05/08(水)libccid VerUpに伴うB-CASカード周りの設定変更
2013/05/08 24:56
今回はpcscd, bcs-perl 周りの話。
wheezyにして以降、pcsc_scanしてもカードが出てこない。
原因は、libccidのバージョンが変わった所為でカードリーダを認識しなくなったからのようだ。
[参考]
Linux/テレビ関連/libccid - PukiWiki Plus!
とりあえず、libccid_Info.plistにエントリを追加してpcscdを再起動すれば良い。
$diff /etc/libccid_Info.plist /etc/libccid_Info.plist.orig 328d327 < <string>0x04E6</string> 554d552 < <string>0x511A</string> 780d777 < <string>SCM SCR 3310 NTTCom</string> #/etc/init.d/pcscd restartbcs-perl側の名前が"SCM SCR 3310 NTTCom"なのでそのまま入れてやる。
pcsc_scanしてカードの検出、bcs-perl listしてカードの認識が出来てることを確認すること。pcsc_scanがだめならpcsc側のリストをチェック、bcs-perl listがダメならbcs-perl.pl内のカード名($selected_reader)が怪しい。
パッケージ作り直す、unstableにするという方法もあるがうーん、依存の整理とか考えたくない……
[2013/10/11 追記]
後日、カードリーダを指し直したらまたbcs-perl listで取れる名前が変わってしまった。うーん、カードリーダ同じ型番でも取れるものが違うのか、ドライバ周りで細かく変わるものなのか……
bcs-perlを弄って修正。
[参考]
ぼんぼんブログ - ぼんぼん工房
2011/07/21(木)DNSを変えた(ZoneEdit->MyDNS)
2011/07/21 16:34
$whoisがこうなった。
[Name Server] ns8.zoneedit.com [Name Server] ns18.zoneedit.com↓
[Name Server] ns0.mydns.jp [Name Server] ns1.mydns.jp [Name Server] ns18.zoneedit.com経緯としては、Try WiMaxした際にdt8.jpに接続できなかったことに端を発する。WiMaxの自動取得DNSがdt8.jpをタイムアウトしているようなのでざっと調べてみると、ZoneEditの挙動がおかしい。ns18は応答を返すがns8は応答を返さなかった。
ここで色々調べてみたのだが、どうもアクセス元として特定IPアドレスなりドメインなりをns8ははじいているようだ(そうとしか思えない)。下はWindowsのcmd.exe。
>nslookup dt8.jp ns8.zoneedit.com DNS request timed out. timeout was 2 seconds. *** Can't find server name for address 75.125.10.187: Timed out Server: UnKnown Address: 75.125.10.187 DNS request timed out. timeout was 2 seconds. DNS request timed out. timeout was 2 seconds. *** Request to UnKnown timed-out >ping ns8.zoneedit.com Pinging ns8.zoneedit.com [75.125.10.187] with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out. Ping statistics for 75.125.10.187: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),と、こうなる。
自宅(so-net配下)ではnslookup, pingともに通っていたので気づかなかった。
もしかしたら今までこのサイト見られなかったりしたのかも。ごめんなさい。
nslookup(dig)テスト【DNSサーバ接続・応答確認】
上記のサイトでもはねられる。
ということで元々zoneeditは挙動が怪しかったこともあり、できれば乗り換えたいと考えた。個人運営ながらMyDNSがそこそこ長期かつ安定的に運営されている(感謝!)ようなので特に挙動が怪しいns8.zoneedit.comを廃し、MyDNSをメインに差し替えることにした。
しかし、調べてみると現在フルドメイン登録可能なフリーのDDNSがほとんど無くなっている。EveryDNSはDynDNSに吸収されるようだし、概して有料化かサービス停止の流れにあるようだ。無料DDNSは広告プログラムとくっつきづらいのもわかるので、仕方ないかもしれない。
MyDNSもいつまでサービスを提供していてくれるかわからない。将来的にどうするか。
ドメインをVALUE-DOMAINに移管すればVALUE-DOMAINのDDNSが使えるのだが、VALUE-DOMAIN自体が今不安定な状況のようなので今回は控えた。VALUE-DOMAINはいつの間にか安くなっていて、汎用jpに関して現在のレジストラ21-domainと値段がほぼ互角のようだ。経営が安定していることが確認できればVALUE-DOMAINへの移管も手ではある(VALUE-DOMAINのDDNSも不安定という噂があるが)。
自前でネームサーバを立て、フルドメインでない適当なDDNSでドメインを取得し(たとえばxxx.dyndns.org)、それをDNSとしてJPRSなりに登録するという手もある(技術的には可能なはずだが認識に誤りがあるだろうか?)。
話を戻す。とりあえず、1月程度問題がないかどうか確認し、問題ないようだったらZoneEditを全廃することとする。
【追記 2011/11/10】
2011/11/07付けでmydnsに一本化した。
[Name Server] ns0.mydns.jp [Name Server] ns1.mydns.jpさらばzoneedit。
2011/02/12(土)lenny->squeeze入れ替え
2011/02/12 21:22
squeezeはCONFIG_SYSFS_DEPRECATED=nでないといけないというので、一応kernel作り直した。
色々悩んだけど、お任せでいいや。
aptitude update aptitude install aptitude aptitude dist-upgradeApacheがApache2になったので設定を移してちょっとおかしいところだけいじって対応。
うーん、ほんとはこんなことじゃないけないんだけどちょっと今時間がないのでこれでいこう。
以下のパッケージが削除されたのでメモ。
1) dvipdfmx 2) iceape-gnome-support 3) initrd-tools 4) irb1.8 5) libdatrie0 6) libdevmapper1.02 7) libgnomekbd2 8) libgnomekbdui2 9) libmetacity0 10) libreadline-ruby1.8 11) libslab0 12) libvorbis0 13) libxcb-xlib0 14) libxcb-xlib0-dev 15) mysql-client 16) mysql-server 17) proftpd 18) python-numeric 19) racoon 20) rdoc1.8 21) rpm 22) texlive-base-bin 23) xserver-xorg-video-cyrix 24) xserver-xorg-video-imstt
2006/03/29(水)woody -> sargeへのアップグレード
2006/03/29 19:15
■まずはaptの書き直し
そうそう、ring.asahiが死んだ後今までring.so-netにしていたのだがどうも調子が悪い。ついでに本家に差し替えてしまうことにする。non-USは統合されたということなので大分綺麗に。
## use jp translation package deb http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp ja/sarge main #deb http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp ja/etch main #deb http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp ja/sid main ## stable(sarge) deb http://http1.debian.or.jp/pub/Linux/debian/debian sarge main non-free contrib deb-src http://http1.debian.or.jp/pub/Linux/debian/debian sarge main non-free contrib deb http://http1.debian.or.jp/pub/Linux/debian/debian-jp sarge-jp main contrib non-free # stable security and mirror deb http://security.debian.org/ sarge/updates main contrib non-free deb http://ftp.debian.or.jp/debian-security sarge/updates main contrib non-free ## testing(etch) deb http://http1.debian.or.jp/pub/Linux/debian/debian etch main contrib non-free deb-src http://http1.debian.or.jp/pub/Linux/debian/debian etch main contrib non-free #deb http://http1.debian.or.jp/pub/Linux/debian/debian-jp etch main contrib non-free ## unstable(sid) deb http://http1.debian.or.jp/pub/Linux/debian/debian sid main contrib non-free deb-src http://http1.debian.or.jp/pub/Linux/debian/debian sid main contrib non-free #deb http://http1.debian.or.jp/pub/Linux/debian/debian-jp sid-jp main contrib non-free ## clamav deb http://people.debian.org/~sgran/debian sarge main何度かapt-get upgradeしてみて、整備されてなさそうなjp系の行をコメントアウトした。つうかjpはもう半端すぎるのでやめた方がいいのだろうか。
これは後日の話になるが、suして失敗したときに、
$ su Password: su: Authentication failure ごめんなさい。と出て吹いた。
■アップグレード
いきなり、
# apt-get dist-upgradeしてみる。
エラーが出るわ出るわで、
アップグレード: 315 個、新規インストール: 147 個、削除: 11 個、保留: 17 個。 319MB 中 3821kB のアーカイブを取得する必要があります。 展開後に追加で 295MB のディスク容量が消費されます。 続行しますか? [Y/n] y エラー http://http1.debian.or.jp ja/sarge/main gcc-3.0-base 1:3.0.4-16 404 Not Found [IP: 203.178.137.175 80] エラー http://http1.debian.or.jp ja/sarge/main libgimp1.2 1.2.3-2.4 404 Not Found [IP: 203.178.137.175 80] エラー http://http1.debian.or.jp ja/sarge/main libmimelib1 4:3.1.4-1 404 Not Found [IP: 203.178.137.175 80] エラー http://http1.debian.or.jp ja/sarge/main libpanel-applet0 1.4.2-1 404 Not Found [IP: 203.178.137.175 80] エラー http://http1.debian.or.jp ja/sarge/main libpspell4 0.12.2-6 404 Not Found [IP: 203.178.137.175 80] エラー http://http1.debian.or.jp ja/sarge/main libsasl7 1.5.27-3.5 404 Not Found [IP: 203.178.137.175 80] エラー http://http1.debian.or.jp ja/sarge/main libsensors1 2.6.5-4 404 Not Found [IP: 203.178.137.175 80] エラー http://http1.debian.or.jp ja/sarge/main libstdc++3 1:3.0.4-16 404 Not Found [IP: 203.178.137.175 80] エラー http://http1.debian.or.jp ja/sarge/main libtiff3g 3.5.7-2 404 Not Found [IP: 203.178.137.175 80] エラー http://http1.debian.or.jp ja/sarge/main ttf-xtt-wadalab-gothic 0.20010818-9 404 Not Found [IP: 203.178.137.175 80] エラー http://http1.debian.or.jp ja/sarge/main ttf-xtt-watanabe-mincho 0.20010818-9 404 Not Found [IP: 203.178.137.175 80] http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/g/gcc-3.0/gcc-3.0-base_3.0.4-16_i386.deb の取得に失敗しました 404 Not Found [IP: 203.178.137.175 80] http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/g/gimp1.2/libgimp1.2_1.2.3-2.4_i386.deb の取得に失敗しました 404 Not Found [IP: 203.178.137.175 80] http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/k/kdenetwork/libmimelib1_3.1.4-1_i386.deb の取得に失敗しました 404 Not Found [IP: 203.178.137.175 80] http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/g/gnome-core/libpanel-applet0_1.4.2-1_i386.deb の取得に失敗しました 404 Not Found [IP: 203.178.137.175 80] http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/p/pspell/libpspell4_0.12.2-6_i386.deb の取得に失敗しました 404 Not Found [IP: 203.178.137.175 80] http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/c/cyrus-sasl/libsasl7_1.5.27-3.5_i386.deb の取得に失敗しました 404 Not Found [IP: 203.178.137.175 80] http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/l/lm-sensors/libsensors1_2.6.5-4_i386.deb の取得に失敗しました 404 Not Found [IP: 203.178.137.175 80] http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/g/gcc-3.0/libstdc++3_3.0.4-16_i386.deb の取得に失敗しました 404 Not Found [IP: 203.178.137.175 80] http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/t/tiff/libtiff3g_3.5.7-2_i386.deb の取得に失敗しました 404 Not Found [IP: 203.178.137.175 80] http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/t/ttf-xtt/ttf-xtt-wadalab-gothic_0.20010818-9_all.deb の取得に失敗しました 404 Not Found [IP: 203.178.137.175 80] http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/t/ttf-xtt/ttf-xtt-watanabe-mincho_0.20010818-9_all.deb の取得に失敗しました 404 Not Found [IP: 203.178.137.175 80] E: いくつかのアーカイブが取得できません。apt-get update を実行するか --fix-missing オプションを付けて試してみてください。こうなった。パッケージ名にバージョンが入っていて、バージョンに合わせてパッケージ名が変わってしまった物が引っかかったことが想像できる。今回はもう適当なのでぱかぱか削除して必要になったときに入れ直すことにする。
# apt-get remove ***||< *<em></em>をパッケージ名で連打。 gnome-consoleにひっかかったのでそれも削除。 >|| 以下のパッケージの処理中にエラーが発生しました: /var/cache/apt/archives/flex_2.5.31-31_i386.deb E: Sub-process /usr/bin/dpkg returned an error code (1)||< とか出るから、以下のサイトを参考に、 <a href="http://www.ep.sci.hokudai.ac.jp/~morikawa/memo/vmware_upgrade_sarge.htm#label-32" target="_blank">http://www.ep.sci.hokudai.ac.jp/~morikawa/memo/vmware_upgrade_sarge.htm#label-32</a> >|| # apt-get -f installで依存関係を解決していただいて、
# apt-get remove flexやれやれこれでdist-upgradeが通るようになりました。
えいっ。
# apt-get dist-upgrade
■holdが入っているパッケージを入れ直す
# apt-get dist-upgrade パッケージリストを読みこんでいます... 完了 依存関係ツリーを作成しています... 完了 アップグレードパッケージを検出しています... 完了 以下のパッケージは保留されます: clamav (0.87.1-0woody1 => 0.88-4) fetchmail (5.9.11-6.2 => 6.2.5-12sarge4) libclamav1 (0.87.1-0woody1 => 0.88-4) nessus (1.0.10-2 => 2.2.3-3) nessus-plugins (1.0.10-2 => 2.2.3-1) xfree86-common (4.3.0.dfsg.1-10 => 4.3.0.dfsg.1-14sarge1) xutils (4.1.0-16woody5 => 4.3.0.dfsg.1-14sarge1) アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 7 個。おや保留が発生しています。多分いくつかはperl5.6と5.8で大混乱したときの名残で自分でholdしたもの。それはhold解除でいいんじゃないかと思う。
hold属性になっているパッケージをチェック。
# dpkg --get-selections | grep hold xfree86-common hold xutils holdなるほど。xfree86-commonとxutilsだけね。じゃあこの2つは解除してしまいましょう。
# echo xfree86-commons install | dpkg --set-selections # echo xutils install | dpkg --set-selectionsとした。続いて他のパッケージは、
# apt-get install nessus # apt-get install fetchmailで解決したようだ。
clamavが残っているのだが、気力が続かないのでちょっとみなかったことにする。
で、最後に、
# apt-get update # apt-get upgradeで終了。とりあえず動いてるようなので今のところほったらかし。
2005/04/16(土)qmail-scanner(SpamAssassin インストール編)
2005/04/16 5:00
~SpamAssassinインストール編~
SpamAssassinはRBLやBayesを利用する多機能スパムフィルタだ。
今回はこれをqmail-scanner経由でqmailから使えるようにしてみる。
同種のソフトにbogofilterやbsfilterがある。SPamAssassinの良いところはNSに基づいた細かい設定や協調型フィルタリングデータベース(rbl)の利用(その分設定ファイルは異常に長く複雑であるが)が行えるところだろう。その分bogofilterなどに比べると動作速度は遅い(という噂)。単にベイジアンフィルタとして使いたいだけなら、bogofilterの方が早いという情報は良く出てくる。
SpamAssassinをインストールする前に大きなRBLに関しては事前にどれを使うか決めておく必要がある。デフォルトで使えるrblは主に以下3つ。
razor,pyzor,DCC
pyzorは登録が厳しすぎ、DCCは逆に登録が甘すぎるという話で、Razorが一番使い易いらしい。今回はRazorのみ使用する。
[1]Razorのインストール
# apt-get install razor Sorry, but the following packages have unmet dependencies: razor: Depends: libdigest-sha1-perl but it is not going to be installed Depends: libnet-dns-perl but it is not going to be installed Depends: libtime-hires-perl (> 1.20-3) Depends: libmailtools-perl but it is not going to be installed依存関係で怒られて入らない。またもやperl5.6<-->5.8問題? 怪しいところで以下をピックアップしてインストール。
# apt-get install libdigest-sha1-perl/testing
# apt-get install razor/testing今度は入った。
Razor用の設定ファイルを作成するために以下のコマンドを打つ。
# razor-client # razor-admin -d -create -home=/etc/razor[2]SpamAssassinのインストール
ログが大混乱しているので、ハマリは別記事にかいた。これは正当手順(と思われるもの)。
(1)
いつも通りaptで取ってくる。
# apt-get install spamassassin/testingモジュールが足りてないようなので、
# apt-get install libhtml-parser-perl/testing # apt-get install libnet-dns-perl/testing(2)
設定ファイルで、spamassassinを有効にする。
/etc/default/spamassassin
の
注意!:/etc/init.d/spamassassinのENABLEDを書き換えても動かないので注意
/etc/default/spamassassin
OPTIONSに-F 0を追加
(3)
spamdを動かす
# /etc/init.d/spamassassin start(4)
qmail-scannerを生成し直す。qmail-scannerインストールの記事を参照。
# ./configure --lang ja_JP.EUC --admin root --scanners clamdscan,verbose_spamassassin --notify recips,admin --domain dt8.jp --installテスト。
# contrib/test_installation.sh -doitこのテストで通常メール1通と、ウィルス告知メール2通と、スパム判定されてスパム本体が添付に入っているメール1通が送られてくればインストール成功。
[3]SpamAssassin設定
(1)設定調査
SpamAssassinの設定ファイルで日本語もケアしているもので探したところネット上で2つ発見した。
unix-power
http://www.unix-power.jp/linux/local.txt
tlec
http://tlec.linux.or.jp/docs/user_prefs
自分のところに来たメール30通ほどをそれぞれこの設定で処理にかけ、良い方をベースに調整していくことにする。
テストに使用したメールは、ham側(hamは非スパムメールのこと)はDMやMLを中心に誤判定されそうなものをピックアップ、spam側はいくつかは誤判定されそうなものを入れるようにしたが基本的には無作為抽出した。
テスト結果は以下の通り。
--spam-- unix-power tlec 1 22.9 34.5 2 26.8 35.0 3 20.8 23.2 4 13.8 23.9 5 10.6 15.8 6 13.7 19.3 7 28.1 35.4 8 22.7 28.3 9 6.4 9.8 10 9.9 17.0 11 5.6 13.9 12 19.9 28.5 13 15.4 30.3 14 12.4 19.3 15 24.3 27.8 16 7.6 11.9 17 7.8 12.1 18 20.4 25.0 19 15.8 16.0 20 0.2 10.4 --ham-- 1 6.4 10.9 2 5.5 7.6 3 0.5 5.4 4 12.9 12.9 5 5.9 7.8 6 -1.4 2.2 7 6.3 11.2 8 -2.4 2.8 9 6.3 9.2 10 -0.4 3.0 11 3.0 19.1SpamAssassinは各テストの結果をスコアとして加算し最終的にそのメールのスパム/非スパムを判定する。表の数字はスコアだ。
色々考えたが、tlecのものをベースに少し弄ってみることにする。
(2)調整
tlecの出力結果&設定ファイルと延々にらめっこした結果、tlecの設定では
・x-mailerの点は高すぎる。
・SJISNOTXMAILERの点は高すぎる。
・Razor関係の点は低すぎる。
・BLARS関係の点も若干低い。
・URIBL関係の点も若干低い。
・required_hitsは低すぎる。
ということがわかった。このあたりを調整すればいいのだが、下2つ
・BLARS関係
・URIBL関係
はどうやら怪しいRBLだからわざと点が低くしてあるらしい。となると気になるのがRazorの信頼性だが、自分が試した31通では
Spam is Spam 19/20
ham is Spam 0/11
と非常に優秀。
設定ファイルには、「Razor2は間違えることがあるから個別にはあまり点を与えません」と書いてあるのだが、Razorのみに頼っていい気がする。SpamAssassinの評判が悪いのは、Razorの初期点が低いことにあるのではないだろうか(SpamAssassinはDCCやPyzorも使うことを前提としているが、あまりみんなやらない)。
X-MAILERはX-MAILERヘッダをチェックするルールであるが、最近のスパムはあまりつけてこない上にX-MAILERルールには一般的なDM、ML送信ソフトも含まれているようなのでスコア下げ。
SJISNOTXMAILERはXMAILERヘッダが無くbodyがSJISの場合起動するが、普通のbodyがSJISのパターンでも2.0与えているので、ここまで攻撃的にするのはきつすぎると判断しスコア下げ。
hamが全部はいる範囲にrequired_hitsを調整。本当はもう少し点を高くすべきなのだろうが、ham11がspamと判定されても致し方ないような酷いメールなのと、spam19がspam判定されないのはちょっと問題のように思える内容だったので15を採用。
合わせて、auto_learnのthresholdも調整。
結局以下のようにした。
required_hits 8.0 -> 15.0
X_MAILER 7.0 -> 3.0
SJISNOTXMAILER 7.0 -> 2.0
RAZOR2_CF_RANGE_51_100 2.5 -> 7.0
また
error: rule 'GB2312_CHARSETContent-Type' has invalid characters (not Alphanumeric + Underscore) error: rule 'CONTENT_TYPE_PRESENTexists:Content-Type' has invalid characters (not Alphanumeric + Underscore) error: rule 'X_MAILER_PRESENTexists:X-Mailer' has invalid characters (not Alphanumeric + Underscore)とエラーが出るので(単に空白が足りてない)、それも修正した。
添付になるのはいまいちなので、report_safeとrewrite_headerを弄ってsubject書き換えに変更。
3.0と2.0系で指定方法が若干変わっているので注意。
[参考]
http://itc.sfc.keio.ac.jp/announce_open/20050124-spamassassin.html
以下、(元) http://tlec.linux.or.jp/docs/user_prefsと(修正後)/etc/spamassassin/local.cfのdiff。
81c81 < required_hits 8.0 --- > required_hits 15.0 128c128 < header GB2312_CHARSETContent-Type =~ /charset=['"]?GB2312['"]?/i --- > header GB2312_CHARSET Content-Type =~ /charset=['"]?GB2312['"]?/i 180c180 < score X_MAILER 7.0 --- > score X_MAILER 3.0 451,453c451,453 < header CONTENT_TYPE_PRESENTexists:Content-Type < describe CONTENT_TYPE_PRESENTexists:Content-Type < score CONTENT_TYPE_PRESENT-0.1 --- > header CONTENT_TYPE_PRESENT exists:Content-Type > describe CONTENT_TYPE_PRESENT exists:Content-Type > score CONTENT_TYPE_PRESENT -0.1 1243,1245c1243,1245 < header X_MAILER_PRESENTexists:X-Mailer < describe X_MAILER_PRESENTexists:X-Mailer < score X_MAILER_PRESENT0.1 --- > header X_MAILER_PRESENT exists:X-Mailer > describe X_MAILER_PRESENT exists:X-Mailer > score X_MAILER_PRESENT 0.1 1261c1261 < score SJISNOTXMAILER 7.0 --- > score SJISNOTXMAILER 2.0 1323c1323 < score RAZOR2_CF_RANGE_51_100 2.5 --- > score RAZOR2_CF_RANGE_51_100 7.0 2787a2788,2790 > # urara add 05/04/16 > bayes_auto_learn_threshold_nonspam 0.5 > bayes_auto_learn_threshold_spam 30.0 > > report_safe 0 > rewrite_header subject [SPAM(Score=_SCORE_)]この設定で先ほどの31通を再テスト。
--spam-- 1 42.8 2 39.8 3 29.2 4 29.8 5 24.1 6 25.2 7 40.0 8 35.9 9 17.3 10 23.1 11 24.8 12 37.0 13 37.5 14 26.8 15 35.8 16 20.6 17 20.8 18 34.0 19 16.2 20 25.0 --ham-- 1 10.9 2 7.6 3 5.4 4 10.0 5 7.8 6 2.2 7 11.2 8 2.8 9 9.2 10 3.0 11 14.1ギリギリだが全てham is ham, spam is spamになった。
これで当分運用してみる。そのために、メインのメールをこっちに廻さないと行けないのでそれはまた次回。
最後に忘れないように、spamd用に再起動。
# /etc/init.d/spamassassin restart注意)
・spamdは再起動しないとコンフィグを読み込まない。
・spamassassinは/etc/spamassassinの*.cfを全部読み込むようだ。
[参考サイト]
わかりやすいのはここ2つかなあ
http://www.kuri3.net/modules/bwiki/?SecureMail
http://www.unix-power.jp/linux/qmail-scanner.html
http://blog.momo-i.org:81/archives/2004/12/
http://cgipocket.com/newhtml/linux/qmail2.html
http://www.nishnet.ne.jp/anti-spam.html
http://www.aconus.com/~oyaji/suse/spamassassin_suse.htm
http://ssss.jp/~trombik/email/spamassassin.html
http://lab.sakasta.com/unix/spamassassin.html
[設定の出所]
http://tlec.linux.or.jp/topic.html
http://www.unix-power.jp/linux/local.txt
[bogofilterの話とか]
http://uva.jp/dh/mt/archives/000509.html
http://hotwired.goo.ne.jp/webmonkey/2003/09/index2a_page4.html
[日本版のRBL]
http://www.rbl.jp/
[日本語訳]
http://www.fkimura.com/SpamAssassin1.html <-最初にここ知ってればねえ。ちょい古ではありますが
http://ssss.jp/~trombik/eng/
[後付でbayesっぽく使う方法]
http://www.siscom.or.jp/spamassassin.html
2005/03/19(土)qmail-scannerインストール時に遭遇した問題
2005/03/18 25:00
なんか色々あり過ぎて、整理し切れていない。引っかかったところを中心に覚えている限りでメモしておく。作業ログ流れで、通常インストール手順とかぶるところもあり、いい加減なところもあり。
qmail-scannerインストールに関する多くのドキュメントでは、suidperlのパーミッションを変更するように書いているが、debianの場合suidperlはperlへのシンボリックリンクに過ぎない。よってパーミッション設定は不要。弄ると多分perlが動かなくなる。
(×:動かなくなった悪例)
# chmod 4711 /usr/bin/suidperlPerl CGIが全滅した。
# chmod 755 /usr/bin/suidperlで書き戻し。
<qmail-scanner.plの設置等はすでに終わっているとして>
qmail-scannerのsrcフォルダから、
# contrib/test_installation.sh -doit4通のテストメールのうち1通目(通常メール)だけは送られてくるが、2通目でエラーを出して止まってしまう。エラーは以下の通り。
Sending eicar test virus - should be caught by perlscanner module... qmail-inject: fatal: qq temporary problem (#4.3.0) Bad error. qmail-inject diedチェックすべきログは、/var/spool/qmailscan/qmail-queue.logと/var/log/mail.err。
原因としてはclamavが動いていないか、メールデータにアクセス失敗している可能性が高い。
/var/spool/qmailscan/qmail-queue.logを覗くと、
/var/spool/qmailscan/tmp/debian111060900649323497: Access denied. ERRORがたくさん出ている。アクセス権問題であるので、
/etc/clamav/clamd.conf
User clamavを
User qscandに変更。
clamavを再起動しようとすると、
# /etc/init.d/clamav-daemon restartpsで確認しても存在していない。立ち上がっていないようである。
/var/log/clamav/clamav.logを見ると、
Sat Mar 12 18:05:27 2005 -> ERROR: Socket file /var/run/clamav/clamd.ctl could n ot be bound: Permission denied今度はclamavの一時ファイルにアクセスできなくなってしまったようだ。これはパーミッションを弄ってやれば良い。
# chgrp qscand /var/run/clamav # chmod 775 /var/run/clamavclamavの実行ディレクトリグループのみをqscandに変えてパーミッションを775にしてやる。若干荒技になるが、でも777よりはましだろう。
再び再起動
# /etc/init.d/clamav-daemon restart立ち上がった。
# contrib/test_installation.sh -doit4通送信中、2と3(ウイルス入り)が配信されなくなった(1はノーマル、4はスパム。recipsオプションが無かったので配信されなくなった)。しかしこの状態では外部からの通常メールが配信されないことが発覚。以下次項に続く。
(注:この問題はswap再設定によって再現性が無くなった可能性があります)
qmail-scannerインストールの過程で、テスト時に躓いた問題。結論はメモリ問題だが、エラーメッセージが特殊なのでメモ。
<qmail-scanner.plの設置等はすでに終わっているとして>
外部からウイルスなどが含まれない通常のメールを送っても配信されない。QMAILQUEUEの設定を切り替えて、qmail-scanner.plを介さずqmail-queueに渡すように設定する。
QMAILQUEUE="/var/qmail/bin/qmail-queue" export QMAILQUEUEと、きちんと動く(QMAILQUEUEを使っている以外は基本のqmailの挙動と同じ、もちろんウイルスはそのまま)ので、QMAILQUEUEがいけないわけではないらしい。うーん、qmail-scanner-queue.plのどっかで躓いている。
/var/log/mail.errを見ると、
Mar 14 01:38:51 debian X-Qmail-Scanner-1.25: [debian11107319314933436] cannot open /var/spool/qmailscan/quarantine-attachments.db - No such file or directoryもちろん、ファイルは存在している。最初はパーミッション問題かと思ったが、実はメモリ確保が不足している問題。つまずいたところでたまたま出たエラーがNo such~ということのようだ。下記サイトなどを眺めていてやっと分かった。
http://slashdot.jp/journal.pl?op=display&uid=779&id=150799
http://sourceforge.net/mailarchive/message.php?msg_id=6806272
http://qmail-scanner.sourceforge.net/FAQ.php
メモリ確保にはqmailの起動スクリプトのulimit値を上げてやる。
/etc/init.d/qmail
53c53 < ulimit -v 8192 --- > ulimit -v 10240いくつが最適値なのかはちょっと分からない。
#swapが原因だったのか再現性が無くなったようなので、現在ulimitを8192に戻して運用中。
2005/03/15(火)qmail-scanner(qmail-scanner インストール編)
2005/03/15 11:00
~Qmail Scannerインストール編~
Qmail Scannerをインストールしてウイルスチェックが出来るところまで。
●Qmail Scannerには以下のパッケージが必要。
・unzip
zip添付を開くのに必要
・Perl 5.005_03+以上
-PerlのTime::HiResモジュール
ナノセカンド精度のタイマーモジュール
-PerlのDB_Fileモジュール
Berkeley DB によって提供されている機能をPerlプログラムで使えるようにする
-suidperl
ディストリビューションによってパッケージ名が違う。debianではperl-suid
・MailDropのreformime
MIMEの展開・再構成に使うっぽい
・TNEF
MS OEやExchangeがリッチテキスト形式のメールを送る際に添付する、application/ms-tnefタイプの情報を読めるようにする。この時普通の添付もこれに吸収されてしまう?
・qmailqueue-patch
環境変数QMAILQUEUEを使えるようにする。qmailはQMAILQUEUEで設定されたキューにメールを渡すようになる。
[1]unzip確認
$ which unzip /usr/bin/unzip[2]perlバージョン+モジュール確認+perl-suidインストール
(1)Perlバージョンの確認
$ perl -v This is perl, v5.8.3 built for i386-linux-thread-multi(2)モジュールの確認
$ perl -mTime::HiRes $ perl -mDB_File $ perl -mSys::SyslogCan't locateで怒られないのでインストール済み。
(3)suidperlのインストール
aptをtestingにして、
# apt-get install perl-suidチェックしたのに、依存関係でperlのバージョンが5.8.4-7に上がってしまいました。
インストール確認
$ which suidperl /usr/bin/suidperl[3]MailDropのreformimeインストール
reformineだけで良いようだが、素直に全部ぶち込むことにする。
# apt-get install maildropインストール確認
$ which reformime /usr/bin/reformimecourier-maildropはメルサバCourier専用だろうか。普通のmaildropで良いと思う。
[4]TNEFインストール
# apt-get install tnefインストール確認
$ which tnef /usr/bin/tnef[5]qmailqueue-patchインストール
debianパッチにQMAILQUEUEパッチが含まれていたためこの作業は必要無し。
以下、気づかずに進めたときの作業ログ
# cd /usr/src/qmail-src/ # wget <a HREF="http://www.qmail.org/qmailqueue-patch" TARGET=_top>http://www.qmail.org/qmailqueue-patch</a> # tar -xvzf qmail_1.03.orig.tar.gz # cd qmail-1.03/ # patch -p1 <../qmail-date-localtime.patch # patch -p1 <../qmailqueue-patch # zcat ../qmail_1.03-36.diff.gz | patch -p1としたところで、
Reversed (or previously applied) patch detected! Assume -R? [n]と2回ほど注意される。conflictというより、単にdebianのpatchに含まれてるのではないかと思い、grepしたところ、
# zcat ../qmail_1.03-36.diff.gz | grep MAILQUEUE ++ binqqargs[0] = env_get("QMAILQUEUE"); ++ variable QMAILQUEUE. Also known as qmailqueue patch. ++QMAILQUEUE ++ if (env_get("QMAILQUEUE")) { ++ logstring(2,env_get("QMAILQUEUE")); + binqqargs[0] = env_get("QMAILQUEUE");これは含まれているっぽい。debian本家に調べに行くと、 http://packages.debian.org/changelogs/pool/non-free/q/qmail/qmail_1.03-36/changelogに、
qmail (1.03-21) testing unstable; urgency=low * Added QMAIL-QUEUE patchとなっているので、追加済み確定。
[6]qmail-scannerインストール
(1)qscandユーザー追加
# groupadd qscand # useradd -g qscand -s /bin/false qscand(2)ソースダウンロード
最新版は1.25
http://prdownloads.sourceforge.net/qmail-scanner/qmail-scanner-1.25.tgz
からソースをダウンロード(sourceforgeだからwgetじゃダメ)。
(3)インストール
$ tar -xvzf qmail-scanner-1.25.tgz $ cd qmail-scanner-1.25 # ./configure /usr/bin/reformime contains bugs. Please upgrade to a release that post-dates Mar 22 2002 (e.g. 1.3.8)reformimeが古いと怒られた。
# apt-show-versions -a -p maildrop maildrop 1.3.7-2 install ok installed maildrop 1.3.7-2 stable maildrop 1.5.3-1.1 testing maildrop 1.5.3-1.1 unstable maildrop/stable uptodate 1.3.7-2なので、testingを入れることにする。
# apt-get install maildrop/testing # ./configureスクリプト生成プログラムのテストが通ったので、ちゃんと生成し直す。
# ./configure --lang ja_JP.EUC --admin root --notify recips,admin --domain dt8.jp --install
- langは通知メールの言語、--adminと--domainは合わせて管理者メルアドだと思ってよい。--notifyは通知のポリシー決めで、recipsは受信者、adminは管理者へそれぞれ通知する。ウイルスメールの場合詐称があるので、送信元アドレスは当てにならずsenderは使いづらい。Stray Penguinにlsndr(ローカルの送信者)に通知するパッチがあるが、きちんと動くなら不用意にウイルスに感染した自ドメインのユーザへの自動通知が出来る? 今後の課題だろうか。adminの代わりにml宛先を除いたnmladmが使われることも多い。自分にはml宛先ウイルスを通知することによる不利益が今ひとつぴんと来ないので、当面adminで使う。その他の通知先は[参考サイト]を参照。
(4)QMAILQUEUE設定
/etc/init.d/qmail
に以下のdiff2行分を追加。
35a36,38 > QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" > export QMAILQUEUE >qmailの起動スクリプトにQMAILQUEUEの設定をしておく。起動スクリプトは環境によって違うがtcpserver起動の前に設定されるようにしておけば大丈夫だろう。
(5)ulimit修正
同じく、
/etc/init.d/qmail
のulimitの値を変更。
53c53 < ulimit -v 8192 --- > ulimit -v 10240メモリ制限はQMAIL-SCANNERの頻出問題だ。私はこう理解している。デフォルトでqmailは自身の起動にギリギリ程度のメモリ値を設定ファイルに記述する。qmail-scannerを介し使うようにした時に、その設定値を超えてスクリプトがストップすることがある。想定外のストップにスクリプトは止まった箇所によって様々なエラーを吐く。ファイルがないといわれたり、パーミッションが違うと言われることもある。それで数多の管理者を混乱させるのだ。qmail-scannerインストール時には、このメモリ制限問題とパーミッション問題がよく起こる。発生したら適切に切り分ける必要がある。daemontools使用時?はulimitではなく、softlimitの設定値かもしれない。
(6)日本語euc->JIS修正
ウィルス告知メールがeucで飛んでくる。文字化けするメーラーも結構あるのでJISに修正してやる。
1876c1876 < open(SM,"|$qmailinject -h -f ''")||&error_condition("cannot open $qmailinject for sending quarantine report - $!"); --- > open(SM,"|/usb/bin/nkf -j|$qmailinject -h -f ''")||&error_condition("cannot open $qmailinject for sending quarantine report - $!"); 2003c2003 < open(SM,"|$qmailinject -h -f ''")||&error_condition("cannot open $qmailinject for sending quarantine report - $!"); --- > open(SM,"|/usr/bin/nkf -j|$qmailinject -h -f ''")||&error_condition("cannot open $qmailinject for sending quarantine report - $!");要するに、qmailinjectの前にパイプでnkfを挟んでやるだけだ。2箇所修正が必要。
(7)起動とテスト
qmailを再起動
# /etc/init.d/qmail restartテスト
# contrib/test_installation.sh -doit4通のメールのうち2通目と3通目がウィルス告知メールになっていれば成功だ。1通目は通常メールで、4通目はスパムテスト用なので、この段階では配信されるはず。
http://www.eicar.org/anti_virus_test_file.htm
からテストウィルスを落としてプロバイダ経由で送信(注:怒られる危険性があるのであんまりやってはいけません)すると、管理者宛と受信者宛に2通通知が届くことを確認する。
プロバイダ経由で普通のメールの送受信も確認しておく(メモリ制限問題でqmail-scannerが止まる場合、届かないことがある)。
あとは多量のウイルスで検査するも、放っておくも良し。
[参考サイト]
ここがわかりやすい。
http://www.asahi-net.or.jp/~aa4t-nngk/qmail6.html
以下はそれぞれ微妙に情報か解説が不足している。
http://www.atmarkit.co.jp/flinux/rensai/qmail08/qmail08c.html
http://www.itmedia.co.jp/help/howto/security/special6/02.html
http://www.tom.sfc.keio.ac.jp/~torry/ldap/ldap.html#doc10_1122
http://www.unix-power.jp/linux/qmail-scanner.html
http://www.fkimura.com/qmail0.html
関係する情報
http://www.i-ml.jp/cgi-bin/bbs/memo.cgi?m=e
http://moin.qmail.jp/
http://www.planet-green.com/linux/qmail.html
2005/03/15(火)qmail-scanner (clamav インストール編)
2005/03/15 11:00
~clamavインストール編~
今回長いのとトラブル頻出したので、インストール記事3ステップとトラブル記事に分けて書く。
[1]インストール
debianのtestingでも問題が出たので、unstableを入れた。Versionは0.83-3
# apt-get clamav/unstable動作確認。
# ps -e | grep clam 19213 ? 00:00:00 freshclam 24801 ? 00:00:03 clamdウイルス定義ファイル更新daemonのfreshclamとスキャン用のclamdが動いている。clamdはdaemonで動いているが、別にリアルタイムブロックしてくれるわけではない(はず)。daemonで動いているのは単に定義ファイルの読み込みが1回ですむからという理由のようだ。詳しくは[参考サイト]を見るといい。
[2]user権限変更
必ず必要なのが以下2点。他は設定しなくても大丈夫そうだ。
(1)clamdはqmail-scanner用のユーザqscandで動かす。
/etc/clamav/clamd.conf
User clamavを
User qscandに変更。
再起動
# /etc/init.d/clamav-daemon restart(2)clamdがtmpやソケットを作れなくなってしまうので、パーミッションを弄る。
# chgrp qscand /var/run/clamav # chmod 775 /var/run/clamavこのディレクトリ構造はdebianパッケージに強く依存するようなので、ソースからインストールした場合は[参考サイト]を参照した方がよい。
[3]clamのdaemon動作をチェックする
daemontoolsを使えば他のdaemonも含めて管理できるようだが、今回はシェルスクリプトとcronで定期的にプロセスが動いているかどうかを監視することにする。
/etc/cron.daily/check_clamを作成し、以下の内容とする。
#!/bin/sh if [ `ps -ef| grep /usr/bin/freshclam| grep -v grep| wc -l` != 1 ]; then message="freshclam stopped!" echo $message | mail -s "daemon Caution! : freshclam" urara@dt8.jp fi if [ `ps -ef| grep /usr/sbin/clamd| grep -v grep| wc -l` != 1 ]; then message="clamd stopped!" echo $message | mail -s "daemon Caution! : clamd" urara@dt8.jp fi1日おきにclamdとfreshclamが動いているかどうかを調べ、動いていなかったらメールを投げる。
ps -ef でフルパス指定しないと命名によってはこのスクリプト自体がgrepに引っかかる。grep -v grepは出力結果にgrep自体が含まれるので、"grep"が含まれているものを取り除く(反転する)。最初これを忘れていて混乱した。
なんでこんなことをするかというと、止まってすぐ分かるサービスと違って、freshclamは気づきにくくかつセキュリティへの影響が大きいから。ぶっちゃけ、一時サービスが止まってたことがあって心配なのでしばらくチェックさせたいのだ。本当はcronで書いちゃえばすむ話。
[参考サイト]
ここがわかりやすい。
http://www.asahi-net.or.jp/~aa4t-nngk/qmail5.html
clamav本家
http://clamav-jp.sourceforge.jp/jdoc/clamav.html
2004/12/16(木)apache死亡事件顛末 in perl5.8 <-> perl5.6.1
2004/12/16 17:00
一番最悪の殺人方法で、apacheのパッケージを削除してしまった。
原因。なぜ入れたのかは覚えていないが、現在インストールされているのがperl-5.8(unstable)。で、perl-5.6系でないと動かないパッケージを入れようとしたところ、dselectの依存解決に任せていたら、↓こんなことになった。
The following packages will be REMOVED:
aalib1 abiword abiword-common abiword-gtk abiword-plugins apache
apache-common apache-dev apache-utils apel ark asiya24-vfont autoconf
automake css-mode defoma docbook docbook-xml dpkg-dev emacs21 fontconfig
gconf gdk-imlib1 gdm gnome-s gnome-bin gnome-common gnome-core
gnome-libs-data gnome-panel gnome-panel-data gnome-session gnome-terminal
gnome-users-guide gs gs-common gsfonts gsfonts-x11 html-helper-mode
imagemagick imlib-base imlib1 jdk1.1 jvim-canna kab kaffe-pthreads karm kate
kcalc kcharselect kchart kcoloredit kcron kde kdebase kdebase-audiolibs
kdebase-libs kdelibs3 kdelibs3-bin kdepasswd kdepim-libs kdf kdict kdm kedit
kfind kformula kfract kghostview khexedit kiconedit kinput2-canna-wnn kit
kivio kjots kmail knewsticker knode knotes koffice koffice-libs konqueror
konsole kontour korganizer korn koshell kpackage kpaint kpm kpresenter
kruler kscreensaver ksirc ksnapshot kspread ksysv kterm ktimer kugar kuser
kview kword lbxproxy libapache-mod-ruby libarts libdbd-mysql-perl
libdbi-perl libfontconfig1 libgconf11 libgdk-pixbuf-gnome2 libgdk-pixbuf2
libgimp1.2 libglade-gnome0 libglade0 libgnome-vfs-common libgnome-vfs0
libgnome32 libgnomeprint-bin libgnomeprint-data libgnomeprint15
libgnomesupport0 libgnomeui32 libgnorba27 libgtk1.2 libgtkxmhtml1
libimage-size-perl libkdenetwork1 libkmid libkonq3 libmagick5
libnet-daemon-perl libplrpc-perl libqt2 libungif4g libwmf0.2-2 libxaw7
libxft1 libxft2 mc-common mew mozilla mozilla-browser mozilla-mailnews
mozilla-psm mysql-client mysql-server nessus openssl perl perl-modules php4
php4-dev php4-mysql proftpd proftpd-common proxymngr psfontmgr rep-gtk rpm
sawfish scrollkeeper secpolicy sgml-base sgml-data skk skkinput
ttf-xtt-wadalab-gothic ttf-xtt-watanabe-mincho twm vflib2 watanabe-vfont
x-ttcidfont-conf x-window-system x-window-system-core xaw3dg xbase-clients
xdm xemacs21 xemacs21-basesupport xemacs21-bin xemacs21-mule
xemacs21-support xfonts-abi xfwp xlib6g xlibs xnest xterm yc-el
どうもperl(perl-5.8)を削除しようとしたらしい。慌てて止めたが、後の祭り。消えた可能性があるのを全て確認し、入れ直した。もしかすると、動いてないdaemonがあるかもしれない他、apache上でのperl-CGIの実行速度が落ちた気がする。
実行速度が落ちたことに関して考え得る原因:
1.apacheのパッケージが狂った
2.perlのパッケージが狂った
3.apacheでmod_perl,speedycgiかなんかが動いていた
1. 2.は分からないのでとりあえずおいておくとして、3に関してはmod_perl.soやspeedyCGIが入っていた形跡がないので、可能性としてはmod_pelのapacheへの静的コンパイル。記憶あやふや。
とりあえず、トップページのカウンターを入れ替えてごまかす。
e-counterだとcgiを5回呼び出すことになるので、夢カウンターに。……これで前の実行速度の感覚に近づくってことはやっぱりmod_perlがくさいのだがどうだろう。
perl 5.6への巻き戻し方法はよくわからない。日本語ソースもないが、英語ソースもどうも?
2004/10/26(火)tgif format(.obj) -> eps
2004/10/26 16:00
tgifがある環境で、コマンドラインから
$ tgif -print -eps *.obj
で一括変換可能。
しかし、tgifはwindows版無いのな。そろそろcygwin包囲網が狭まっている予感。