| ●シンプルスパムメール対策 SpamAssassin + Qmail-Scanner 
 必要なパッケージ
 
 
                    
                      
| Qmail-Scanner | qmailからアンチウイルスソフトを起動させるモジュールみたいなもの ※以下Qmail-Scannerインストールに必要なパッケージ
 ・maildrop(apt)
 ・daemontools(source)
 |  
| qmailqueue-patch | 環境変数QMAILQUEUEを使えるようにするパッチ |  
| SpamAssassin | spamチェックソフトウェア |  
| razor | Spam判定強化 |  
                        | perl-suid | スキャン時に必要とされる (あんまりよろしくないみたいだけど・・・。デビアンではこんな感じ。)
 |  
| unzip | スキャン時に必要とされる(aptで適当にいれてね) |  今回はvpopmailに対応した方法です。qmail + vpopmailはインストール済みという前提です。
 
 ・SpamAssassinのインストール
 Debianはaptにパッケージが存在するので、aptでひょいっといれます。
 
 
 
                    
                      
                        | # apt-get install spamassassin |  その後設定ファイルを変更します。local.cfファイルは、こちらを参考に。
 
 
 
                    
                      
                        | # vi /etc/spamassassin/local.cf ※ 必要がある場合は、chownでvpopmailのユーザーに変更
 |  さらに起動/etc/default/spamassassinの以下の部分を修正
 
 
 
                    
                      
                        | # ENABLED=1 # OPTIONS="-d -m5 -x -v -u vpopmail
 --virtual-config-dir=/home/vpopmail/domains/%d/%l -s /var/log/spamd.log"
 ※OPTIONSは一文で表示
 
 |  
                    
                      
                        | ※補足 このままでは、各ユーザーディレクトリーに、「bayes_toks」「bayes_seen」「auto_whitelist」ができてしまうので、以下の文で無効にできます。
 use_bayes 0
 bayes_auto_learn 0
 use_auto_whitelist 0 ※デフォルトでは有効(1)になってるっぽい
 |  これでspamassassinを起動します。
 ※ここでspamassassinを起動しないと、後でqmail-scannerをコンパイルするときに正常にspamassassinとの連動ができませんでした。
 
 ・Qmailにqmailqueue-patchのパッチあて
 QMAILQUEUEパッチがあたってない場合は、以下の手順で再コンパイル
 /var/qmail/controlに入ってるファイルが初期状態にもどっちゃうかも知れないので、要注意。
 
 
 
                    
                      
                        | # cd qmail-1.03/ 
 # patch -p1 <../qmailqueue-patch# make setup
 # make check
 # ./config
 |  
                    
                      
                        | ※補足 一度インストールしている場合は、./configは必要ないみたいです。こいつを実行すると、/var/qmail/controlに入ってるファイルが初期状態に戻るようです。(未検証)
 |  ・Qmail-Scannerのインストール
 まずはdaemontoolsをソースからコンパイルします。aptでdaemontools-installerなるものがあったんですが、うまく動作しなかったので、ソースからやりました。
 インストール関係上ルートにpackageフォルダを作る必要があるそうです。/packageディレクトリに対して適切なパーミションを設定します。スティッキービットも付加します。
 
 
 
                    
                      
                        | # mkdir -p /package 
 # chmod 755 /package//スティッキービット# chmod +t /package
 |  本体をwgetでとってきて、コンパイル、インストールします。
 
 
 
                    
                      
                        | # cd /package# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
 # tar zxvf daemontools-0.76.tar.gz
 # cd admin/daemontools-0.76/
 # ./package/install
 
 
 |  以上の作業で、以下のディレクトリとファイルが作成されます。
 
 新たに作成されるディレクトリ
 /service
 /command
 
 作成されるファイルおよびそのシンボリックリンク
 /package/admin/daemontools/command/下に実行ファイル
 /command/下にそのシンボリックリンク
 /usr/local/bin/下にさらにシンボリックリンク
 
 また、/etc/inittabファイルの末尾に次の1行が追加されます。
 
 
 
                    
                      
                        | # SV:123456:respawn:/command/svscanboot 
 |  次は、Qmail-Scannerがメールを解析するのに必要なreformimeが含まれている、maildropをインストールします。これはaptでちょいちょいっと。
 
 
 
                    
                      
                        | # apt-get install maildrop 
 |  上手くインストールができたら、Qmail-Scannerのソースをとってきて、インストールします。インストールに必要な、qscandユーザーを追加しますが、ホームディレクトリは任意の場所でOKです。
 
 
 
                    
                      
                        | # tar zxvf qmail-scanner-2.02.gz # cd qmail-scanner-2.02
 # groupadd qscand
 # useradd -g qscand -s /bin/false -d /var/qmail/ qscand
 # ./configure --domain connan.jp --scanners verbose_spamassassin
 --notify admin --install
 〜 全てYESでOK 〜
 
 |  ※オプション
 
 
                    
                      
| --scanners "verbose_spamassassin"
 | spamassassinの指定 |  
| --domain | サーバドメイン |  
| --notify | ウイルス検知メールの送り先。[none]は無し・[admin]は管理者・[recips]は受信者・[sender]は送信者
                        ウイルス、スパムは送信者が偽装の場合がほとんどなので[sender]は指定しない方が吉 |  
| --install | 文字通り |  
 
                    
                      
                        | ※補足 SpamAssassin3.x以上の注意点
 デフォルトだと、fast_spamassassinでインストールされるんですが、これだと件名に追記ができないため、--scanners
                        verbose_spamassassinとして認識させないと駄目っぽいです。
 ちなみに、local.cfの記述も、
 rewrite_header Subject [SPAM]
 こんな感じで。
 
 ※補足2
 デフォルトの状態だと、/var/spool/qscan/qmail-queue.logに膨大にlogが蓄積されるので、
 /var/qmail/bin/qmail-scanner-queue.pl にある$DEBUG = '1'を'0'に変更しておきます。
 
 ※補足3
 Debianの設定ファイルは、「/var/spool/qscan/quarantine-events.txt」ここになります。
 ちなみに、ドットが2個入り(例:hoge.xls.exe)のファイルをOKにする場合は、
 is-set Policy-FILEDOUBLEBARRELED: Double-barreled extensions disallowed
 ここをコメントアウトして、
 /var/qmail/bin/qmail-scanner-queue.pl -g
 検索用データベースの再構築で適応されます。
 |  
 問題なくインストールが完了したら、/etc/init.d/qmail 起動スクリプトに以下の文を追加しておきます。
 
 # vi /etc/init.d/qmail
 
 #!/bin/sh
 #
 # qmail This shell script takes care
 # of starting and stopping qmail.
 #
 # chkconfig: 2345 80 30
 # description: Starts and stops qmail.
 # See how we were called.
 
 QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
 export QMAILQUEUE
 
 case "$1" in
 start)
 ・
 ・
 ・
 
 再起動後チェックコマンドでテストします。
 
 
 
                    
                      
                        | # /etc/init.d/qmail stop # /etc/init.d/qmail start
 # ./contrib/test_installation.sh -doit
 
 |  ・perl-suidのインストール
 Debianはaptにパッケージが存在するので、aptでひょいっといれます。これをいれとかないと、メール送信時に、「451
                  qq temporary problem」のエラーがでるはず。
 
 
 
                    
                      
                        | # apt-get install perl-suid |  ・razorのインストール
 
 
 
                    
                      
                        | # apt-get install razor # razor-client
 # razor-admin -d -create -home=/etc/razor
 
 |  これで、受信したメールのヘッダーに、
 X-Spam-Status: Yes, score=13.2 required=13.0
 こんな感じで付いてればOKだと思います。
 
 参考サイト http://nos-takamatsu.ddo.jp/linux/qmail-scanner.html
 
 | 
                
                  |  | 
                
                  | ●シンプルスパムメール対策 パッチあて
 ユーザー名に%、!、複数の@を含む中継はリレーされてしまう穴があったので、それを埋めてくれるパッチをあてましょう。
 
 http://www.qmail.org/qmail-smtpd-relay-reject パッチの場所
 
 wgetでおとして、パッチをあてて、qmailを再コンパイルです。
 
 
                    
                      
                        | # wget http://www.qmail.org/qmail-smtpd-relay-reject # cd qmail-1.03
 # patch -p1 < ../qmail-smtpd-relay-reject
 # /etc/init.d/qmail stop
 ※ここで止めておかないと、コンパイルの時に「bin/qmail-lspawn: text busy」などと怒られる
 # make setup
 # make check
 # ./config
 
 |  ここでもqmailを再コンパイルするので、内容が分かるように/var/qmail/controlの中身はバックアップしておきましょう。
 
 | 
                
                  |  | 
                
                  | ●IP制限でSMTP接続を禁止する
 
 vpopmailを導入している場合、以下のファイルにdenyしたいIPアドレスを追記し、tcp.smtp.cdbを再度作り直します。
 
 
                    
                      
                        | # cd /home/vpopmail/etc/ # vi tcp.smtp
 
 ***.***.***.***:deny
 
 # /usr/local/bin/tcprules ./tcp.smtp.cdb ./tcp.smtp.tmp < ./tcp.smtp
 
 
 |  これでtelnetなどでのSMTP接続を拒否することができます。
 
 | 
                
                  |  | 
                
                  | ●バウンスメールの禁止(vpopmailの場合)
 
 vpopmailを導入している場合、/home/vpopmail/domains/hoge.jp/.qmail-defaultファイルに、
 | /home/vpopmail/bin/vdelivermail '' delete
 の一文を追加。unknowメールも届くなるので、注意してください。
 |