作成 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