作成 2012.03.25
更新 2013.04.28
Ubuntu でメールサーバー
Postfix と dovecot で。
Ubuntu-11.10-server-amd64 で確認。
このトピックは Ubuntu で DNS サーバー Ubuntu で LDAP サーバー の環境で動作するよう構成しています。
目次
構成
LDAP認証
インストールと設定
確認
SMTP
インストール
設定
再起動
動作確認
ローカルからメール送信
IMAP
インストール
設定
サービス起動
dovecot-ldap をインストールした場合
ログ
構成
LDAP サーバーを参照して、SMTP サーバーとIMAP4 サーバーを構成する。
ホスト名 IP アドレス 用途
dns 192.168.0.102 DNS サーバー 構築済み
ldap 192.168.0.103 LDAP サーバー 構築済み
mail 192.168.0.104 SMTP, IMAP4 サーバー
LDAP構成
パラメーター 値 その他
LDAP URI ldap://192.168.0.103/
BaseDN dc=example,dc=com
LDAP version 3
Root DN cn=admin,dc=example,dc=com exadmin
Bind DN cn=proxy,dc=example,dc=com prxpass
サンプルユーザー uid=user0001,ou=people,dc=example,dc=com user0001
サンプルグループ cn=ldapgrp,ou=group,dc=example,dc=com
LDAP認証
今回は LDAP 認証を使用するが、PAM を参照する方式のため Postfix, dovecot の設定に影響しない。
LDAP の環境がない場合は、無視して構わない。
インストールと設定
インストール中に設定画面が現れる。
$ sudo apt-get install ldap-utils ldap-auth-config
今回は以下の構成
パラメーター 値 その他
LDAP URI ldap://192.168.0.103/
BaseDN dc=example,dc=com
LDAP version 3
Make local root Database admin Yes
Does the LDAP database require login? Yes
LDAP account for root cn=admin,dc=example,dc=com exadmin
Unprivileged database user cn=proxy,dc=example,dc=com prxpass
ちなみに、質問中に出てくる ldaps は暗号化認証、ldapi は RPC 経由の認証で、今のところ UNIX Domain Socket しか使用できない。
設定に失敗した場合は、以下のコマンドでやり直せる。
$ sudo dpkg-reconfigure ldap-auth-config
この状態ではまだLDAP認証が設定されただけで、認証に使用するようになっていない。
なので nss テーブルを更新する。
$ sudo auth-client-config -t nss -p lac_ldap
$ sudo pam-auth-update
確認
LDAP のアカウントが引けるか確認する。
LDAP が正常に参照できていたら、LDAP に登録したアカウントを一緒に表示される。
$ getent passwd
ログインできるようにフォルダーを作成して、ログインしてみる。
$ sudo cp -a /etc/skel /home/user0001
$ sudo chown -R user0001:ldapgrp /home/user0001
$ su - user0001
パスワード:
SMTP
インストール
Postfix をインストールする。
$ sudo apt-get install mailutils postfix
インストール中の質問は以下の設定で。説明がひどすぎる上、どの選択肢でも設定ファイルを書き換える必要がある。
項目 設定
メール設定の一般形式 インターネットサイト
システムメール名 example.com
設定
/etc/postfix/main.cf 抜粋
myhostname = mail.example.com
mydestination = example.com, mail.example.com, localhost.localdomain, localhost
mynetworks = 192.168.0.0/24 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
inet_interfaces = all
home_mailbox = Maildir/
再起動
細かい設定は reload で。ポート番号が変わるような変更は restart で。
sudo service postfix restart
動作確認
ローカルからメール送信
メールコマンドを使用
$ mail user0001@example.com
Cc:
Subject: Test From Mail Server
TEST 12:52
(Ctrl+dで終了)
$ su - user0001
user0001 のフォルダの Maildir/new/ 配下にメールデータが配送されていたら成功。
IMAP
インストール
$ sudo apt-get install dovecot-imapd
設定
/etc/dovecot/dovecot.conf 変更部分のみ
#login_trusted_networks =
login_trusted_networks = 192.168.0.0/24
この設定により、192.168.0.0/24 のネットワークのクライアントは平文のパスワードが使用可能になる。
/etc/dovecot/conf.d/10-mail.conf 変更部分のみ
mail_location = maildir:~/Maildir
# mail_location = mbox:~/mail:INBOX=/var/mail/%u
サービス起動
$ sudo service dovecot start
TCP/143 と TCP/993 が起動する。
証明書に関する記述は /etc/dovecot/conf.d/10-ssl.conf を設定する。
一度でもメールが届いたことがないと認証エラーになります。
Postfix は配送しようとしたユーザーディレクトリに Maildir が無いと自動作成します。
Dovecot は ~/Maildir/new, ~/Maildir/cur, ~/Maildir/tmp ディレクトリが無いと認証エラーになります。
結果的に、メールが届いたことがないと IMAP が認証エラーになるというわけです。
dovecot-ldap をインストールした場合
/etc/dovecot/dovecot-ldap.conf.ext を設定しないと起動しなくなる。
hosts = 192.168.0.103:389
dn = cn=proxy,dc=example,dc=com
dnpass = prxpass
sasl_bind = no
auth_bind_userdn = uid=%u,ou=people,dc=example,dc=com
base = dc=example,dc=com
scope = subtree
user_attrs = homeDirectory=home,uidNumber=uid,gidNumber=gid
default_pass_scheme = SSHA
ログ
ログは /var/log/mail.log と /var/log/mail.err へ記録される。

©2004-2017 UPKEN IPv4