2005/04/16(土)cron.dに入れたファイルが実行されなかった理由
2005/04/16 22:00
なんと行末に改行が無かった所為だった。行末には必ず改行を入れること!
その他、debian限定? ファイル名は[a-zA-Z_0-9\-]+以外読んでくれないという噂。
確認。cron.d/内のファイルは編集後自動的に読み込んでくれるので、cronの再起動等の必要は無し。チェックは1分おき。
syslogを見るとloadはされているのに、何で動かないのか分からなかった……
2005/04/16(土)cronのメール投げを止める
2005/04/16 18:00
/var/spool/cron/crontabs/root
/etc/crontab
のそれぞれに
MAILTO=""の1行を追加。
止まったようです。
2005/04/16(土)fetchmailインストール
2005/04/16 17:00
[1]fetchmailのインストール
いつも通りaptで済ます。
# apt-get install fetchmail[2]qmailの調整
fetchmailはデフォルトではローカルホスト(localhost)に投げる。今の設定ではlocalhostが自アドレスだと認識させていなかった。あとでmdaの設定もしたので無くても良いかもしれないが、qmailの設定に追加しておく。
/var/qmail/controlに
localhost
の1行を追加
忘れちゃいけないqmail再起動。
# /etc/init.d/qmail restart[3].fetchmailrcで設定。
あとで/etcに移すが、今は間に合わせで/rootに置いておく。
/root/.fetchmailrcを作成し、以下の内容とする。
set postmaster urara set nobouncemail defaults protocol pop3 keep no mimedecode smtphost localhost poll dd.iij4u.or.jp user urara password ******** is urara here mda "env QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue.pl /var/qmail/bin/qmail-inject urara" poll mail.big.or.jp user urara password ******** is urara here mda "env QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue.pl /var/qmail/bin/qmail-inject urara"パーミッションを600に変更。
基本的に下のサイトの設定まんまだが、mdaに注意。
envでQMAILQUEUEを設定しないと、qmail-scannerを通らない。
[参考サイト]
http://www.aconus.com/~oyaji/mail2/fetchmail.htm
[4]テスト
iij4u,big-netアドレスにメールを送り、fetchmailを手動起動して
# fetchmailメールがurara@dt8.jpに送信されることを確認。X-Spamヘッダが付いているかどうかなどqmail-scannerを通っていることを確認。
問題なし!
[5]cron設定
当面spamassassinがちゃんと動いているかどうかを知りたいのがメインなので色々考えたが、cronに5分おきでチェックさせクライアントのメーラーなどの自動ダウンロードは切っておくことにする。
で、/etc/cron.dで設定しようとしたのだが、どこをどうやっても動いてくれない。どうやらcron.d/は根本動いてないようである。こいつは保留して、しゃあないので、
/var/spool/cron/crontabs/rootに
0-59/5 * * * * /usr/bin/fetchmailと書いたところ、ちゃんとチェックしてくれるようになった。
なお、debianの場合cronは/var/log/syslogにlogを吐く。
さあて、欲しいときにスパムが来ないな……
2005/04/16(土)SpamAssassinインストール(ハマリ編)
2005/04/16 5:00
[1]ハマリ1
SpamAssassin's spamd daemon is incorrectly installed. You need to run it as: spamd -F 0 .... Please try again.qmail-scannerを./configureしたときにでたエラーメッセージ。-Fオプションを指定していなかった。
[2]ハマリ2
(didn't include a "X-Spam-Status: Yes" line in output) - ignoring...
モジュールが足りていないので、
spamassassin -t < sample-spam.txtとテスト起動して、足りないモジュールをチェック。
Can't locate HTML/Parser.pm in @INC (@INC contains: lib ../lib /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /usr/bin/lib /usr/bin/site_perl) at lib/Mail/SpamAssassin/HTML.pm line 32. BEGIN failed--compilation aborted at lib/Mail/SpamAssassin/HTML.pm line 32. Compilation failed in require at lib/Mail/SpamAssassin/Message/Node.pm line 42. BEGIN failed--compilation aborted at lib/Mail/SpamAssassin/Message/Node.pm line 42. Compilation failed in require at lib/Mail/SpamAssassin/Message.pm line 49. BEGIN failed--compilation aborted at lib/Mail/SpamAssassin/Message.pm line 49. Compilation failed in require at /usr/share/perl5/Mail/SpamAssassin/NoMailAudit.pm line 18. BEGIN failed--compilation aborted at /usr/share/perl5/Mail/SpamAssassin/NoMailAudit.pm line 18. Compilation failed in require at /usr/bin/spamassassin line 134. BEGIN failed--compilation aborted at /usr/bin/spamassassin line 134.HTML/Parserで怒られてるので、足りてないのは多分これ。
# apt-get install libhtml-parser-perl/testing
なお、sample-spam.txtはspamassassinのソースから取ってきた。これ以外にソースは使わなかったので、今にして思えばわざわざaptで取ってこなくてもという感じ。取ってくるときには例のごとく、
# apt-get source spamassassin(注:カレントに放り込まれます)
[3]ハマリ3
これが一番きつかった。
# spamassassin -t < sample-spam.txt error: rule 'GB2312_CHARSETContent-Type' has invalid characters (not Alphanumeric + Underscore) error: rule 'X_MACKY_ID_PRESENTexists:X-Macky-ID' has invalid characters (not Alphanumeric + Underscore) error: rule 'X_MACKYCATCODE_PRESENTexists:X-MackyCatCode' has invalid characters (not Alphanumeric + Underscore) error: rule 'X_MACKYMEDIA_PRESENTexists:X-MackyMedia' has invalid characters (not Alphanumeric + Underscore) error: rule 'X_MAILER_PRESENTexists:X-Mailer' has invalid characters (not Alphanumeric + Underscore) Net::DNS version is 0.19, but need 0.34dnsavailable-1 at lib/Mail/SpamAssassin/Dns.pm line 1230. Failed to run ROUND_THE_WORLD SpamAssassin test, skipping: (Can't locate object method "check_for_round_the_world_received" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run DIFFERENT_REPLY_TO SpamAssassin test, skipping: (Can't locate object method "check_for_spam_reply_to" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run CTYPE_JUST_HTML SpamAssassin test, skipping: (Can't locate object method "check_for_content_type_just_html" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run LOTS_OF_CC_LINES SpamAssassin test, skipping: (Can't locate object method "check_lots_of_cc_lines" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run FROM_NAME_EQ_FROM_ADDR SpamAssassin test, skipping: (Can't locate object method "check_from_name_eq_from_address" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run BAD_HELO_WARNING SpamAssassin test, skipping: (Can't locate object method "check_for_bad_helo" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run FROM_AND_TO_SAME SpamAssassin test, skipping: (Can't locate object method "check_for_from_to_equivalence" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run KNOWN_BAD_DIALUPS SpamAssassin test, skipping: (Can't locate object method "check_for_bad_dialup_ips" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run NO_MX_FOR_FROM SpamAssassin test, skipping: (Can't locate object method "check_for_from_mx" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run SUBJ_MISSING SpamAssassin test, skipping: (Can't locate object method "subject_missing" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run DATE_IN_FUTURE SpamAssassin test, skipping: (Can't locate object method "check_for_forward_date" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to compile URI SpamAssassin tests, skipping: (Illegal declaration of anonymous subroutine at /etc/spamassassin/20_uri_tests.cf, rule MAILTO_TO_SPAM_ADDR, line 10. ) Failed to run LINES_OF_YELLING_3 SpamAssassin test, skipping: (Can't locate object method "check_for_num_yelling_lines" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run BALANCE_FOR_LONG SpamAssassin test, skipping: (Can't locate object method "check_for_very_long_text" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run LINES_OF_YELLING SpamAssassin test, skipping: (Can't locate object method "check_for_yelling" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run LINES_OF_YELLING_2 SpamAssassin test, skipping: (Can't locate object method "check_for_num_yelling_lines" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run BASE64_ENC_TEXT SpamAssassin test, skipping: (Can't locate object method "check_for_base64_enc_text" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Failed to run RAZOR_CHECK SpamAssassin test, skipping: (Can't locate object method "check_razor" via package "Mail::SpamAssassin::PerMsgStatus" at lib/Mail/SpamAssassin/PerMsgStatus.pm line 2312. ) Can't locate object method "handle_auto_report" via package "Mail::SpamAssassin::PerMsgStatus" at /usr/bin/spamassassin line 231.またモジュール不足かと思ってあれこれやってみたのだが、
# apt-get install libnet-dns-perl/testingとか、全く解決しない。
で、"Can't locate object method"と"PerMsgStatus"で海外のサイト調べたところ、設定ファイル等含めて全部消してインストールし直せと言う。あれこれやってるうちにどうも以前のバージョンのと色々混ざったらしい。
# dpkg --purge spamassassin # rm -r /etc/spamassassin # apt-get install spamassassin/testingあ、うごいた。
[参考サイト]
http://article.gmane.org/gmane.mail.spam.spamassassin.devel/15172
http://article.gmane.org/gmane.mail.spam.spamassassin.general/60241/m
atch=+usr+share+perl5+mail+spamassassin+permsgstatus+
[4]ハマリ4
# ./configure Hit RETURN to create initial directory structure under /var/spool/qmailscan, and install qmail-scanner-queue.pl under /var/qmail/bin: perlscanner: generate new DB file from /var/spool/qmailscan/quarantine-attachments.txt perlscanner: total of 9 entries.で、行ったまま帰ってこない。暴走。
qmailのulimitの値を12288まで上げると。
# ./configureうーん、今度はインストールは完了。テストをすると……?
# contrib/test_installation.sh -doit Sending standard test message - no viruses... done! Sending eicar test virus - should be caught by perlscanner module... qmail-inject: fatal: qq temporary problem (#4.3.0) Bad error. qmail-inject died途中で落ちてしまいます。メモリ不足??
その後swapを弄ったらいつの間にか解決してしまいました。多分、swapが設定されていなかった事による単なるメモリ不足であったのでしょう。
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/04/05(火)SpamAssassin仮メモ
2005/04/05 9:00
予想としては、メーリングリストやスパムほどではないDMがフォールスポジティブに引っかかる可能性が高いので、それ10通とスパム20通を入れて黙々テスト。
$spamassassin <mail> | grep X-[1]SpamAssassin初期設定では、
フォールスポジティブ .. 0
フォールスネガティブ .. 10~25%くらい
日本語で、個別返信を当て込んだようなのはやはりきついか。作業中に誤ってクリックしてしまったりして鬱。
[2]次、TLEC設定( http://tlec.linux.or.jp/docs/user_prefs)で確認。
フォールスポジティブ .. 8/10
フォールスネガティブ .. 0
これで両方0だったら何も考えずにTLEC設定に…… 安易に転ばなくて良かった!
DM系がきついよう。特に鬼門なのが121wareのメルマガとMovableTypeからの認証キーメールで、それぞれ得点が12~14と19.1。この設定ファイルのデフォルトrequired hitsは8.0だったから、これだとまるでスパム扱い。一方スパム側の最低得点は11.8だったのでrequired_hitsの調整次第で何とかなるというわけでもない。もう少し詳細に何がヒットして何がヒットしていないのか確認する必要がある。
今時間がないのでYes/Noの結果だけ眺めてしまったけど、得点もうちょっとちゃんとリストアップしよう。
TLEC設定時のエラーメッセージ
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)
2005/04/01(金)ドメインについて考察
2005/04/01 3:00
http://www.xwd.jp/jp8.php
普通に考える移転では無料ということで良いようだ。が、21-domainに\2000超分ポイントが残っているので今年1年は少なくとも21-domainのままで確定。
さて、dt8.jpのままでいくか、dt8.orgに移行するかが微妙なところ。
2006年度と2007年度のプーはほぼ確定であり、2008年度では業界か一般か生きてないかのどれか。業界にいる場合の収入が10万~200万で不定なのが難しい。その場合でも年3,980くらいはそんなに重くないのではないかと思う。いやわかんないけど。
仮に21-domainのままでorgへ移行した場合とjpのままの比較、
org jp 2005年度 2000 3980 <--orgは新規登録費用(\1000)がかかる 2006年度 3000 7960 2007年度 4000 11940 2008年度 5000 16920 <--収入発生?21-domainより安いレジストラもあることにはあるが、それぞれ仕入れ値が6$,\3500であることを考えると大幅に安いところはないだろう(value-domainは\990,\3690)。
多少稼げるようになったらdt8.jp取り返したいと思うのでその場合だとまたぞろ新規登録費用がかかる。3年で1万円差がでないことを考えると、dt8.jpのままでいい気がしてきた。
もう少し他の人に意見を聞いてみる。
2005/03/19(土)CPANを使ってみる
2005/03/19 5:00
[1]CPANの基本設定
CPANをインストール
# perl -MCPAN -e shellインストール手順は盲目的に http://www.kuri3.net/modules/bwiki/?SecureMailに従うことにする。
初回起動なので設定を聞かれので、全部yes,Enter連発で通すが以下2箇所だけ変更。
Parameters for the 'make install' command? Typical frequently used setting: UNINST=1 to always uninstall potentially conflicting files Your choice: [] UNINST=1
(1) <a HREF="ftp://ftp.dti.ad.jp/pub/lang/CPAN/">ftp://ftp.dti.ad.jp/pub/lang/CPAN/</a> (2) <a HREF="ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/">ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/</a> (3) <a HREF="ftp://ftp.kddilabs.jp/CPAN/">ftp://ftp.kddilabs.jp/CPAN/</a> (4) <a HREF="ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/">ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/</a> (5) <a HREF="ftp://ftp.u-aizu.ac.jp/pub/CPAN">ftp://ftp.u-aizu.ac.jp/pub/CPAN</a> (6) <a HREF="http://ftp.cpan.jp/" TARGET=_top>http://ftp.cpan.jp/</a> Select as many URLs as you like (by number), put them on one line, separated by blanks, e.g. '1 4 5' [] 2 4 5 6む、ftpにアクセスできない。そういえば、このマシンだとPassive FTPに設定しないとFTPは動いてくれないのだった。
[2]passive FTPに設定する
CPAN上で動く、LWPやNet::FTPでpassive FTPを動かすようにするには環境変数FTP_PASSIVEの設定が必要。
環境変数FTP_PASSIVE=1をセット。とりあえず、/home/urara/.bash_profileに書くことにする。
19a20,21 > export FTP_PASSIVE=1 >CPANの起動時に設定したいなら、
# perl -MCPAN -e '$ENV{FTP_PASSIVE} = 1; shell'その他、passive FTP関係の設定を詰めておく。
wgetをpassive FTPで使うために、/etc/wgetrcのpassive_ftpオプション変更
42c42 < #passive_ftp = off --- > passive_ftp = onlynxをpassive FTPで使うために、/etc/lynx.cfgのFTP_PASSIVEオプション変更
3154c3154 < #FTP_PASSIVE:FALSE --- > FTP_PASSIVE:TRUEftpコマンドは-pオプションをつけるか、pftpコマンドで起動すればpassive FTPになるようだ。
今のところ必要ではないが、CPAN上でconfをいじってやる。
cpan> o conf ftp /usr/bin/pftp[3]qmail-scannerに必要なモジュールをインストール
さて、 http://www.kuri3.net/modules/bwiki/?SecureMailに従って必要なモジュールを全部つっこむことにする。で、あれこれインストール。
ところが、
BerkeleyDB,IP::Country::Fast,Pod::Usage
がうまく入らない…… うーん、
BerkeleyDBインストール時のエラー
# : ./not_there/__db_lock.share: そのようなファイルやディレクトリはありません t/env..........FAILED test 10と思ったら、後日やり直したところIP::Country::Fast,Pod::Usageに関してはきちんと入った。
ちゃんと入らない原因は、
(1)perl本体もCPANで入れなければいけない
(2)少なくともモジュール類はCPANで全部入れ直さなきゃいけない
(3)単に一部パッケージの依存関係が解決していない
どれだろうか。
CPANだと、/usr/local/以下に入ってしまうのでその関係だろうか(debianだとデフォルトは/usr/bin/perlなどになる)。時間もないのでここで断念。Perlは考えどこだなあ。あっちこっちのディレクトリに分散しちゃってるよ……
[参考サイト]
http://www.fuji.sakura.ne.jp/~yada/talk2000/perl.shtml
http://homepage3.nifty.com/hippo2000/perltips/CPAN.htm
http://tech.bayashi.net/svr/doc/wget.html
http://x68000.q-e-d.net/~68user/net/ext-module.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/18(金)インストールメモ
2005/03/18 23:00
# apt-get install/testingした。動くようになったのでとりあえず良し。