/var/spool/mqueueの古いキューを削除

古いキューの削除
find /var/spool/mqueue -type f -a -mtime +30 -print0 | xargs -0 rm -f

外部配送用の起動
sendmail -L sm-mta -bd -q30m

内部配送用の起動
sendmail -L sm-msp-queue -Ac -q30m

 

-bd
Background Daemonで起動します。
-q30m
キューを処理する時間(滞留メールを処理するタイムアウト時間)を指定します。

Clam AntiVirus (ClamAV) のインストール

Clam AntiVirus (ClamAV) のインストール

書きかけー

ClamAVは無料のアンチウィルスソフトです。個人・商用問わずに利用できるオープンソースプロジェクトです。
日本語の非公式ページはhttp://clamav-jp.sourceforge.jp/を参考にしてください。
公式ページは、 http://www.clamav.net/です。

有料のものと比べると認識率が悪いとの結果が出ています。
私の方針としては、
・サーバー上でウィルス対策をしていても、クライアントでウィルス対策をしなければいけない。
・主要なウィルスは、サーバー上で防げれば良い。
・ウィルス対策はメールのみ
です。

なにはともあれ、ClamAVをインストールすることにします。
ちなみに、顧客向けのホスティングサービス用サーバーに導入することにします。

環境:FreeBSD-4.11 ,sendmail 8.13.6 ,

■ソースのダウンロード

ソースはhttp://www.clamav.net/stable.php#pagestartからダウンロードできます。
最新版をダウンロードします。
常に最新版が良いとも限らないので、事前にネットで調べてください。
今回は、clamav 0.88.2 released (Sat, 29 Apr 2006 23:27:41 GMT)
でした。

■ソースの展開

ソースの展開はどこでも良いのですが、私は/usr/local/src/にて行っています。

cd /usr/local/src/
wget ○○○
tar xvfz clamav-0.88.2.tar.gz

■コンパイルの前に

ユーザーとグループを追加します。

vipw
clamav:*:97:97::0:0::/nonexistent:/sbin/nologin

ee /etc/group
clamav:*:97:

を追加しました。

ユーザーを追加しないと、configureが通りません。

■コンパイルとインストール

./configure -enable-milter
make
make install

■準備

所有者の変更など

mkdir /var/log/clamav
chown clamav:clamav /var/log/clamav
mkdir /var/db/clamav
chown clamav:clamav /var/db/clamav
mkdir /var/run/clamav
chown clamav:clamav /var/run/clamav

■sendmailの設定変更

mcを変更します。
通常は、「ホスト名.mc」ってファイルを変更すると思います。

ee hostname.mc

INPUT_MAIL_FILTER(`clmilter’, `S=local:/var/run/clamav/clmilter.sock,F=, T=S:4m;R:4m’)
define(`confINPUT_MAIL_FILTERS’, `clmilter’)

を追加

make cf
make install
make restart

実際は、make cfをした後に、sendmail -bt -C hostname.cf 等としてテストをするのだろうが、このページでは省略。

■ClamAV設定ファイルの編集

/usr/local/etc にある、clamd.conf と freshclam.confを編集する

○clamd.conf
#Example
LogFile /var/log/clamav/clamd.log
PidFile /var/run/clamav/clamd.pid
DatabaseDirectory /var/db/clamav
LocalSocket /var/run/clamav/clamd
User clamav
AllowSupplementaryGroups
ScanMail

○freshclam.conf
#Example
DatabaseDirectory /var/db/clamav
UpdateLogFile /var/log/clamav/freshclam.log
PidFile /var/run/clamav/freshclam.pid
DatabaseOwner clamav
AllowSupplementaryGroups
NotifyClamd

■起動スクリプトの準備

ee /usr/local/etc/rc.d/clamav-milter.sh

#!/bin/sh
/usr/local/bin/freshclam –daemon
/usr/local/sbin/clamd
/usr/local/sbin/clamav-milter –external –local –quiet –noreject (次の行に継続)
/var/run/clamav/clmilter.sock

chmod 755 /usr/local/etc/rc.d/clamav-milter.sh

■clamav の起動

/usr/local/etc/rc.d/clamav-milter.sh

localのroot宛になっていることがわかる。

> 3,0 root@example.net
3                  input: root @ example . net
96                 input: root < @ example . net >
96               returns: root < @ example . net >
3                returns: root < @ example . net >
0                  input: root < @ example . net >
88                 input: < smtp : example . net > . root < @ example . net >
88               returns: $# smtp $@ example . net . $: root < @ example . net >
0                returns: $# smtp $@ example . net . $: root < @ example . net >

同じroot宛だが、smtpを経由してexample.net宛になっている。

テストの終了は ctrl+D

■参考


http://platz.jp/howto/clamav.html

初稿:2006/6/3

sendmail-8.11.1のインストール

sendmail-8.11.1のインストール

このページは古いので、こちらが良いと思う。

最新版はsendmail-8.11.1(2000/11/29)で日本のCFツールも更新されていないようである。
そこで標準添付のcfを使った設定を行う。

ソースの展開

 tar xvfz sendmail.8.11.1.tar.gz

コンパイル

cd sendmail.8.11.1/sendmail
./Buildcd ../makemap
./Build

インストール

まず、オリジナルのファイルを保存しておく。

cp /usr/lib/sendmail /usr/lib/sendmail.org
or
cp /usr/sbin/sendmail /usr/sbin/sendmail.org

cp /usr/sbin/makemap /usr/sbin/makemap.org

インストール

cd ../sendmail
./Build install
cd ../makemap
./Build install

sendmail.cf の作成

WIDE CF は、sendmail-8.9.x 用しかないため、付属の cf ツールを利用する。
CFでは難しい設定でもm4版で出来るそうだ。

cd ../cf/cf
cp generic-bsd4.4.mc config.mc
ee config.mc

config.mcの編集

divert(0)dnl
OSTYPE(bsd4.4)dnl
DOMAIN(generic)dnl
→受信するドメインを/etc/mail/local-host-nameに記述する。(後述)
FEATURE(`virtusertable’)dnl
→/etc/mail/virtusertable で、各ドメイン宛のメールをどのユーザーに集めるか指定できる(後述)

MAILER(local)dnl
MAILER(smtp)dnl

cfの作成

make config.cf

cfの動作確認

cfは本稼動する前に動作確認をすることが出来る。

# sendmail -bt -f ./sendmail.cf
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 root@milkbar.habit.net
3                  input: root @ milkbar . habit . net
96                 input: root < @ milkbar . habit . net >
96               returns: root < @ milkbar . habit . net >
3                returns: root < @ milkbar . habit . net >
0                  input: root < @ milkbar . habit . net >
97                 input: root
3                  input: root
3                returns: root
0                  input: root
0                returns: $# local $: root
97               returns: $# local $: root
0                returns: $# local $: root

localのroot宛になっていることがわかる。

> 3,0 root@habit.net
3                  input: root @ habit . net
96                 input: root < @ habit . net >
96               returns: root < @ habit . net >
3                returns: root < @ habit . net >
0                  input: root < @ habit . net >
88                 input: < smtp : habit . net > . root < @ habit . net >
88               returns: $# smtp $@ habit . net . $: root < @ habit . net >
0                returns: $# smtp $@ habit . net . $: root < @ habit . net >

同じroot宛だが、smtpを経由してhabit.net宛になっている。

テストの終了は ctrl+D

cfの移動

cp config.cf /etc/mail/sendmail.cf

その他の設定

受信するドメインを入れる

ee /etc/mail/local-host-names

aliasesファイルを移動

cp /etc/aliases /etc/mail/aliases
cp /etc/aliases.db /etc/mail/aliases.db

sendmail の起動

/usr/sbin/sendmail -bd -q30m

sendmailの起動確認

# telnet localhost smtp
Trying 127.0.0.1…
Connected to localhost.mk.habit.net.
Escape character is ‘^]’.
220 milkbar.habit.net ESMTP Sendmail 8.11.2/3.7W; Sun, 15 Apr 2001 17:18:21 +0900 (JST)

と出るとOKである。
終了は quit を行なう

 

参考

How to install sendmail-8.11.1

http://akiba.to/note.html

SPAM の現状と対策

sendmailのインストール

sendmailのインストール

sendmailのホームページ
現在、sendmailは8.13.6が最新です。

qmailに移行しようとしましたが、挫折しました。
なにをするにも、パッチパッチって言うのがどうも好きになれません。
速度の点ではやはり遅いようですので、並列処理を出来るように設定ファイルを作りたいと思います。(ここに書けるかは分かりませんが。

FreeBSD4.11への設定です。
今回は、サクラに借りたサーバーに設定を行います。

■ソースのダウンロード

ソースは ftp://ftp.sendmail.org/pub/sendmail/ からダウンロードできます。
でも今回はココをみてミラーサイトからダウンロードしました。

■ソースの展開

ソースの展開はどこでも良いのですが、私は/usr/local/src/にて行っています。

 cd /usr/local/src/
tar xvfz sendmail.8.13.6.tar.gz

■コンパイルの前に

■FreeBSD3.5.1以下の方
m4のインストール(バージョンアップ)
FreeBSD3.5.1標準のm4では途中でエラーになります。
pkgからインストールします。

■FreeBSD 4.4以下の場合
sendmail.8.12.0移行になってからいくつか準備が必要になったようです。

suでsmmspのアカウントを作ります。
vipw
smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin

/etc/group
smmsp:*:25:

■FreeBSD 4.5以降

smmspはすでに標準でアカウントがあります。

■コンパイル

後はいつもと同様です。

cd sendmail.8.13.6/sendmail
./Buildcd ../makemap
./Build

■インストール

まず、オリジナルのファイルを保存しておく。

cp /usr/sbin/sendmail /usr/sbin/sendmail.org
cp /usr/sbin/makemap /usr/sbin/makemap.org

インストール

cd ../sendmail
./Build install
cd ../makemap
./Build install

■mcの準備

標準的なmcファイルを準備します。

cd ../cf/cf
cp generic-bsd4.4.mc /etc/mail/freebsd.mc

■freebsd.mcの編集

必要に応じて追加する。

divert(0)dnl
OSTYPE(bsd4.4)dnl
DOMAIN(generic)dnl

FEATURE(access_db, `hash -o /etc/mail/access’)dnl
# 外部へメールする場合に必要。

define(`ALIAS_FILE’,`/etc/mail/aliases’)dnl
# 特に記述しなくても動作するが、aliasesファイルを複数設置するときに
#
すぐに設定できるように入れています。「,」で区切って複数記述します。

FEATURE(virtusertable, `hash -o /etc/mail/virtusertable’)dnl
# バーチャルドメイン設定。各ドメイン宛のメールをどのユーザーに集めるか
# 指定できる


FEATURE(`nouucp’,`reject’)dnl
# uucp は使わない。

MAILER(local)dnl
MAILER(smtp)dnl

■cfの作成

make sendmail.cf

■cfの動作確認

cfは本稼動する前に動作確認をすることが出来る。
以前書いてたコマンドに間違いがありました。

# sendmail -bt -C ./freebsd.cf
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 root@example.net
3                  input: root @ example . net
96                 input: root < @ example . net >
96               returns: root < @ example . net >
3                returns: root < @ example . net >
0                  input: root < @ example . net >
97                 input: root
3                  input: root
3                returns: root
0                  input: root
0                returns: $# local $: root
97               returns: $# local $: root
0                returns: $# local $: root

localのroot宛になっていることがわかる。

> 3,0 root@example.net
3                  input: root @ example . net
96                 input: root < @ example . net >
96               returns: root < @ example . net >
3                returns: root < @ example . net >
0                  input: root < @ example . net >
88                 input: < smtp : example . net > . root < @ example . net >
88               returns: $# smtp $@ example . net . $: root < @ example . net >
0                returns: $# smtp $@ example . net . $: root < @ example . net >

同じroot宛だが、smtpを経由してexample.net宛になっている。

テストの終了は ctrl+D

■cfインストール

make install-cf

■その他の設定

□受信するドメインを入れる
変更後再起動が必要です。

ee /etc/mail/local-host-names
make restart

□aliasesを変更した場合
再起動は必要ないが、データベースの更新が必要。

ee aliases
newaliases

■sendmail の起動

sendmail -L sm-mta -bd -q30m
sendmail -L sm-msp-queue -Ac -q30m

sendmailは通常起動されていますので、再起動をします。

cd /etc/mail
make restart

もし終了されていたら、

/usr/sbin/sendmail -bd -q30m

として起動する。

■sendmailの起動確認

# telnet localhost smtp
Trying 127.0.0.1…
Connected to localhost.example.net.
Escape character is ‘^]’.
220 example.net ESMTP Sendmail 8.12.0/8.12.0; Fri, 28 Sep 2001 11:19:23 +0900 (JST)

と出るとOKである。
バージョンが正しいかをチェック。
終了は quit を行なう

■参考

□速報sendmail 8.12 (FreeBSD PRESS No.7)
http://www.imasy.or.jp/~ume/published/sendmail-8.12/

初稿:2000/01/20
更新:2003/2/23 sendmail.8.12.7に設定
更新:2006/6/2 sendmail 8.13.6に設定。

sendmail.8.9.3のインストール

sendmail.8.9.3のインストール

・sendmailをインストール
FreeBSD.3.3-RELEASEにインストールした。
マシンはNATboxにもなっている486マシン。

・sendmailとCPを用意する
なるだけ、新しいのを用意する。
今回はsendmail.8.9.3.tar.gzとCF-3.7Wpl2.tar.gzを用意した。(2000/01/20)

sendmailのコンパイル

# cd /usr/local/src
# tar xvzfp sendmail.8.9.3.tar.gz
# cd sendmail-8.9.3/src
# ./makesendmail

・バックアップとインストール

# cp /usr/sbin/sendmail /usr/sbin/sendmail.ORG
# ./makesendmail install

・いよいよCF。

それぞれの環境に合わせ、なおかつセキュリティーを考えて設定しなくてはならない。
大変だが、ドキュメントが標準で日本語が付いているから助かる。

・CFを展開

cd /usr/local/src
tar xvfz CF-3.7Wpl2.tar.gz
mv CF-3.7Wpl2-smtpcheck.patch1 CF-3.7Wpl2/Master
mv CF-3.7Wpl2-smtpcheck.patch2 CF-3.7Wpl2/Master
cd CF-3.7Wpl2/Master
patch < CF-3.7Wpl2-smtpcheck.patch1
patch < CF-3.7Wpl2-smtpcheck.patch2
cd ..
make cleantools
make tools

・不正転送を防止するための速攻
というのが、同梱のantispam.jpnに書いてあるので、とりあえずこれをやってみた。

cd CF-3.7Wpl2
cp Standards/smtpcheck-v8.def ./

必要なところを変更し、

make smtpcheck-v8.cf
mv smtpcheck-v8.cf sendmail.cf

次に、このsendmail.cfが正しく動作するか確認しましょう。以下のように、makoto宛のメールがローカルで処理されれば大丈夫な筈です。

sendmail -bt -f./sendmail.cf

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 0 makoto

rewrite: ruleset 0 returns: $# local $: masao

次に、このsendmail.cfをインストールします。

install -c -o root -g wheel -m 644 sendmail.cf /etc
/usr/sbin/sendmail -bd -q30m

・参考物
POP before SMTP (Shoo@rr.iij4u.or.jp)

次はPOP3かな?