検索条件
全20件
(1/2ページ)
4413c4414 < next if( ($Message !~ /$SerchWord/) && ($Title !~ /$SerchWord/) ); --- > next if( ($Message !~ /$SerchWord/i) && ($Title !~ /$SerchWord/i) );KShiki.cgi
532c532 < if($line4Search =~ /\Q$theWord[$n]\E/){ --- > if($line4Search =~ /\Q$theWord[$n]\E/i){iオプションを足しただけです。
# perl -MCPAN -e shellインストール手順は盲目的に http://www.kuri3.net/modules/bwiki/?SecureMailに従うことにする。
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は動いてくれないのだった。
19a20,21 > export FTP_PASSIVE=1 >CPANの起動時に設定したいなら、
# perl -MCPAN -e '$ENV{FTP_PASSIVE} = 1; shell'その他、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> o conf ftp /usr/bin/pftp[3]qmail-scannerに必要なモジュールをインストール
# : ./not_there/__db_lock.share: そのようなファイルやディレクトリはありません t/env..........FAILED test 10と思ったら、後日やり直したところIP::Country::Fast,Pod::Usageに関してはきちんと入った。
# chmod 4711 /usr/bin/suidperlPerl CGIが全滅した。
# chmod 755 /usr/bin/suidperlで書き戻し。
# 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。
/var/spool/qmailscan/tmp/debian111060900649323497: Access denied. ERRORがたくさん出ている。アクセス権問題であるので、
User clamavを
User qscandに変更。
# /etc/init.d/clamav-daemon restartpsで確認しても存在していない。立ち上がっていないようである。
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オプションが無かったので配信されなくなった)。しかしこの状態では外部からの通常メールが配信されないことが発覚。以下次項に続く。
QMAILQUEUE="/var/qmail/bin/qmail-queue" export QMAILQUEUEと、きちんと動く(QMAILQUEUEを使っている以外は基本のqmailの挙動と同じ、もちろんウイルスはそのまま)ので、QMAILQUEUEがいけないわけではないらしい。うーん、qmail-scanner-queue.plのどっかで躓いている。
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~ということのようだ。下記サイトなどを眺めていてやっと分かった。
53c53 < ulimit -v 8192 --- > ulimit -v 10240いくつが最適値なのかはちょっと分からない。
# apt-get install/testingした。動くようになったのでとりあえず良し。
$ ps -e | grep qmail-send
$ cd /proc/<proc_number>/environ # cat environ | tr '\00' '\n' | grep MAILQUEUEで、ちゃんと設定されていればOK。trを使っているのは、environに記載される環境変数は\00で区切られているから。
# free total used free shared buffers cached Mem: 124552 110944 13608 0 3608 20852 -/+ buffers/cache: 86484 38068 Swap: 0 0 0おいおいおいおい!
# cat /proc/meminfo MemTotal: 124552 kB MemFree: 13584 kB Buffers: 3636 kB Cached: 20856 kB SwapCached: 0 kB Active: 45332 kB Inactive: 4764 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 124552 kB LowFree: 13584 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 4 kB Writeback: 0 kB Mapped: 31944 kB Slab: 50476 kB Committed_AS: 115528 kB PageTables: 1096 kB VmallocTotal: 909276 kB VmallocUsed: 724 kB VmallocChunk: 908552 kB # cat /proc/swaps #やっぱり動いていない。
# cat /etc/fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> /dev/hda1 / ext2 errors=remount-ro 0 1 /dev/hda2 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto user,noauto 0 0 /dev/cdrom /cdrom iso9660 ro,user,noauto 0 0おかしいな。やはり起動設定(fstab)には書かれているし、インストール後にswapの確認をした記憶がある。HDDを入れ替えたときになんかやっちゃったか。
# fdisk /dev/hda コマンド (m でヘルプ): p ディスク /dev/hda: ヘッド 16, セクタ 63, シリンダ 77520 ユニット = シリンダ数 of 1008 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム /dev/hda1 * 1 73504 37045858+ 83 Linux 領域 1 はシリンダ境界で終わっていません: 物理=(1023, 254, 63) (1023, 15, 63) であるべきです /dev/hda2 73504 75592 1052257+ 83 Linux 領域 2 はシリンダ境界で終わっていません: 物理=(1023, 254, 63) (1023, 15, 63) であるべきです /dev/hda3 75592 77520 971932+ 82 Linux スワップ 領域 3 はシリンダ境界で終わっていません: 物理=(1023, 254, 63) (1023, 15, 63) であるべきですビンゴ。パーティションがおかしいっつね。うちは色々な理由(ウソ)があってswap以外パーティション切らないでやっているが、hda2は切った記憶がない。サイズも中途半端だし、こいつはなんだろう。
# mount /dev/hda1 on / type ext2 (rw,errors=remount-ro) proc on /proc type proc (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) sysfs on /sys type sysfs (rw) usbfs on /proc/bus/usb type usbfs (rw)マウントされてない。
# mkdir /mnt/hda2 # mount -r -t ext2 /dev/hda2 /mnt/hda2 # ls -alF /mnt/hda2/ 合計 56 drwxr-xr-x 3 root root 4096 4月 19 2003 ./ drwxr-xr-x 3 root root 4096 3月 17 20:45 ../ drwxr-xr-x 2 root root 49152 4月 19 2003 lost+found/ debian:/mnt/hda2/lost+found# ls -alF 合計 52 drwxr-xr-x 2 root root 49152 4月 19 2003 ./ drwxr-xr-x 3 root root 4096 4月 19 2003 ../使われていないよう。hda2パーティション消そう。Linux上でhda3->hda2への差し替え方法が無いか調べてみたけど、なんか怖いことが書いてある情報しか出てこなかったのと今回は時間がないのでPartitionExpertで強引に切り直す。fdiskもようわからんし。
# free total used free shared buffers cached Mem: 124552 115604 8948 0 2668 40500 -/+ buffers/cache: 72436 52116 Swap: 971924 0 971924いよし。
$ which unzip /usr/bin/unzip[2]perlバージョン+モジュール確認+perl-suidインストール
$ 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で怒られないのでインストール済み。
# apt-get install perl-suidチェックしたのに、依存関係でperlのバージョンが5.8.4-7に上がってしまいました。
$ which suidperl /usr/bin/suidperl[3]MailDropのreformimeインストール
# apt-get install maildropインストール確認
$ which reformime /usr/bin/reformimecourier-maildropはメルサバCourier専用だろうか。普通のmaildropで良いと思う。
# apt-get install tnefインストール確認
$ which tnef /usr/bin/tnef[5]qmailqueue-patchインストール
# 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となっているので、追加済み確定。
# groupadd qscand # useradd -g qscand -s /bin/false qscand(2)ソースダウンロード
$ 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
35a36,38 > QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" > export QMAILQUEUE >qmailの起動スクリプトにQMAILQUEUEの設定をしておく。起動スクリプトは環境によって違うがtcpserver起動の前に設定されるようにしておけば大丈夫だろう。
53c53 < ulimit -v 8192 --- > ulimit -v 10240メモリ制限はQMAIL-SCANNERの頻出問題だ。私はこう理解している。デフォルトでqmailは自身の起動にギリギリ程度のメモリ値を設定ファイルに記述する。qmail-scannerを介し使うようにした時に、その設定値を超えてスクリプトがストップすることがある。想定外のストップにスクリプトは止まった箇所によって様々なエラーを吐く。ファイルがないといわれたり、パーミッションが違うと言われることもある。それで数多の管理者を混乱させるのだ。qmail-scannerインストール時には、このメモリ制限問題とパーミッション問題がよく起こる。発生したら適切に切り分ける必要がある。daemontools使用時?はulimitではなく、softlimitの設定値かもしれない。
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箇所修正が必要。
# /etc/init.d/qmail restartテスト
# contrib/test_installation.sh -doit4通のメールのうち2通目と3通目がウィルス告知メールになっていれば成功だ。1通目は通常メールで、4通目はスパムテスト用なので、この段階では配信されるはず。
# 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回ですむからという理由のようだ。詳しくは[参考サイト]を見るといい。
User clamavを
User qscandに変更。
# /etc/init.d/clamav-daemon restart(2)clamdがtmpやソケットを作れなくなってしまうので、パーミッションを弄る。
# chgrp qscand /var/run/clamav # chmod 775 /var/run/clamavこのディレクトリ構造はdebianパッケージに強く依存するようなので、ソースからインストールした場合は[参考サイト]を参照した方がよい。
#!/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が動いているかどうかを調べ、動いていなかったらメールを投げる。