sendmail
sendmailとdovecotでMaildir形式設定
水曜日, 12 月 24th, 2008デフォルト(?)は
/var/spool/mail/xxxxx
に、メールがたまっていくようになってますが、
これをMaildir形式に変更します。
sendmail自身はMaildir形式に対応していないので、
procmailでMaildirへ配送します。
/etc/procmailrcをこんな感じでつくります。
—–
SHELL=/bin/bash
PATH=/usr/bin:/bin
DROPPRIVS=yes
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
—–
で、ユーザーを追加したときに自動でMaildirが作られるようにします。
mkdir /etc/skel/Maildir
mkdir -p /etc/skel/Maildir/new
mkdir -p /etc/skel/Maildir/cur
mkdir -p /etc/skel/Maildir/tmp
chmod -R 700 /etc/skel/Maildir
/etc/dovecot.confを編集
—–
mail_location = maildir:~/Maildir
—–
sendmailとdovecotを再起動
# /etc/init.d/sendmail restart
# /etc/init.d/dovecot restart
既存ユーザのメールをMaildir形式に移行するときは
ココを参考に。
↓
メールデータ移行
↓役に立ったと思ったら・・・
メールサーバ構築 (sendmail + dovecot + saslauthd)
月曜日, 12 月 22nd, 2008SMTP認証とOB25(Outbound Port25 Blocking)対応するとこまで。
我流なところもあるので、一般的ではないかもしれませんが。
まず、/etc/mail/sendmail.mcを編集
—–
この2行のコメントを外す
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
dnl define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
↓
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
この行を編集
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl
↓
DAEMON_OPTIONS(`Port=smtp, Name=MTA’)
この行のコメントを外す
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea’)dnl
↓
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea’)dnl
—–
/etc/mail/sendmail.cfを生成
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
/etc/mail/sendmail.cfを編集
—–
Cwの行にメールサーバで受信するドメインを記述
複数ある場合は半角スペースをいれて
Cwlocalhost
↓
Cwfunny-k.com xxxxxx.jp yyyyy.net zzzzzzzz.jp
Djの行にメールサーバのホスト名+ドメイン名を記述
#Dj$w.Foo.COM
↓
Djfunny-k.com
—–
SMTP認証のユーザー名・パスワードと
システムのユーザー名・パスワードを別にしたいので
/usr/lib/sasl2/Sendmail.confを編集
—–
pwcheck_method:saslauthd
↓
pwcheck_method:auxprop
—–
各サービスを起動
# /etc/init.d/sendmail start
# /etc/init.d/saslauthd start
# /etc/init.d/dovecot start
自動起動設定
# chkconfig sendmail on
# chkconfig saslauthd on
# chkconfig dovecot on
ファイアウォールで下記ポートをOPENする
TCP 25 [...]
sendmailでバーチャルドメイン
土曜日, 5 月 24th, 20081台のメールサーバで、「xxxxx.com」と「zzzzz.net」のドメインのメールを処理したい。
ユーザー名(アカウント名)が100%かぶらなければ、それほど問題はないけど、
今回、この問題に直面してしまった。
で、いろいろと調べたりした結果、こんな感じで解決。
たとえば、
「user@xxxxx.com」と「user@zzzzz.net」というメールアドレスを使いたいとします。
sendmail.mc(sendmail.cf)は適宜変更。ここは問題ないでしょう。
次にユーザを作成。
通常であれば、
useradd -s /sbin/nologin user
とするところですが、こんな風にしました。
useradd -s /sbin/nologin user.xxxxx.com
useradd -s /sbin/nologin user.zzzzz.net
そして、「/etc/mail/virtusertable」にこのように記述します。
—–
user@xxxxx.com user.xxxxx.com
user@zzzzz.net user.zzzzz.net
—–
で、
makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable
これで、OK!
メーラーでアカウントを設定するときは、ユーザー名のところを
「user.xxxxx.com」または「user.zzzzz.net」とします。
できてみると、結構簡単ですね。
メールのスプール
火曜日, 2 月 5th, 2008何らかの原因で送信されなかったメールは
/var/spool/clientmqueue
にスプールされる。
放っておくとどんどんたまって、ディスクを圧迫する可能性があるので、定期的に削除するなどの対応が必要。
sendmailの不正リレー防止
土曜日, 12 月 22nd, 2007/etc/mail/sendmail.mc の以下の行を有効にします
FEATURE(`access_db”,`hash -o /etc/mail/access.db”)dnl
/etc/mail/access にリレーを許可するIPアドレスを記述します
たとえば、ローカル(192.168.1.0/24)からの送信を許可する場合は、
———-
192.168.1 RELAY
———-
そして、makemapコマンドでaccessファイルをデータベースに変換します
makemap -v hash /etc/mail/access.db < /etc/mail/access
最後に、sendmailを再起動して完了。
service sendmail restart

