トップ «前の日記(2006-10-17) 最新 次の日記(2006-10-19)» 編集

Ussy Diary


2006-10-18

[Debian][Etc]Debian Postfix で SMTP 認証する

よく考えてみたところメールサーバって立てたことありません。

お家の apt-get update apt-get upgrade をひたすら繰り返すのみのマシンに。 ちなみに postfix はインストール済みで、普通にメール送信は行える状態というところから。

正直サーバ管理者でないためひとつひとつのライブラリを追っていられないので、 ググってみながらとりあえず動作まで。細かいことは後で調べます(いつ?

まずはインストールします。

apt-get install postfix-tls
apt-get install sasl2-bin
apt-get install libsasl2-modules

アカウントの管理は UNIX のアカウント管理とは統一しないやり方として あちこちに乗っていた sasldb2 を利用した認証方式でやってみます。

実際に認証させるために、設定を記述していきます。

/etc/postfix/main.cf

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, permit_auth_destination
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

sasldb2 を利用する上で基本的なコマンド一覧として追加・削除・一覧表示があります。

追加

saslpasswd2 -c -u domain username

削除

saslpasswd2 -d -u domain username

一覧

sasldblistusers2

domain には smtpd_sasl_local_domain で指定したドメイン名を入れ、 ユーザを追加します。

所有グループを postfix に変更します。

chgrp postfix /etc/sasldb2

どうやら Debian の postfix はデフォルトで chroot されるため /etc/sasldb2 を見ずに /var/spool/postfix/etc/sasldb2 を見るようです。 ハードリンクできればいいのですが、幸か不幸か /var と / でパーティションを区切っていたためハードリンクできませんでした。 ということでシンボリックリンクします。ただし chroot 側からは参照できません。こちらを参考にさせてもらいました。 なるほど、元を移動させるってのには気づきませんでした。

mv /etc/sasldb2 /var/spool/postfix/etc/sasldb2
ln -s /var/spool/postfix/etc/sasldb2 /etc/sasldb2

postfix を再起動します。

/etc/init.d/postfix restart

ひとまずこれで smtp 認証まで行えました。

ちなみに通信は平文なのでセキュリティの強度を上げるには、暗号化として smtps を用いるようになると思います。

証明書なしでよければ

/etc/postfix/main.cf

smtpd_sasl_security_options = noanonymous, noplaintext

平文を拒否するように修正します。

/etc/postfix/master.cf

#smtps     inet  n   -   n   -   -   smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes

上記コメントを外し、 smtp の行をコメントアウトし再起動します。

うーん、きちんと説明できない箇所がところどころあります。あと色々試しているので何か抜けていたりするかもしれません・・・