dshimizu/blog

アルファ版

Ubuntu 14.04でPostfixとDovecotとCyrus SASLを使ったメールサーバ構築

はじめに

Ubuntu 14.04 LTSにPostfixDovecotを使ったメールサーバを構築しましたのでその手順をメモします。 SMTPの認証にはCyrus SASLを使います。 認証にはpamで行うこととします。

環境

OS、利用するソフトウェアは以下の通りです。

OS Ubuntu 14.04.3 LTS(3.13.0-66-generic)
SMTPソフトウェア Postfix Version 2.11.0
POP/IMAPソフト dovecot (dovecot-imapd,dovecot-pop3d) Version 2.2.9
認証用ソフトウェア sasl2(sasl2-bin) Version 2.1.25

構築手順

必要パッケージのインストール

必要なパッケージをインストールします。

# apt install postfix dovecot-imap dovecot-pop3 sasl2-bin

Postfixの設定

Postfixの設定を行います。 まず、 /etc/postfix/main.cf を編集します。

### myhostnameメールサーバのホスト名を指定
### メールサーバを外部公開している場合はインターネット上で名前解決できるホスト名
myhostname = メールサーバのホスト名

### mydomainにメール送信時に使う@より右のドメイン名を指定
mydomain = メールドメイン名
myorigin = $mydomain

### inet_interfacesにメールを受信するネットワークインタフェースを指定(allで0.0.0.0:25がLISTEN状態になる)
inet_interfaces = all

### 自ホストが最終目的地であるドメイン名の指定。
### メールアドレスの「@」の右側が mydestination の指定に一致すると、そのメールは他のサーバには配送せず、自ホスト内で処理しようとする。 
mydestination = $myhostname, $mydomain, localhost

### メールのリレーを許可するサーバのアドレス、またはネットワークを環境に合わせて指定 (以下は例)
mynetworks = 127.0.0.0/8, 168.100.XXX.0/24

### メールボックスをユーザのホームディレクトリに変更
home_mailbox = Maildir/

### TLSを使う場合の証明書と鍵ファイルの指定
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

### SMTP認証に使うSASLの設定
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes

続いて /etc/postfix/master.conf を編集します。

### Submission ポート (ポート番号 587) でも SMTP を受けるようにする
### sasl認証を有効にする
submission inet n       -       -       -       -       smtpd
  -o smtpd_sasl_auth_enable=yes

### smtpsを有効にする
### TLSのラッパーモードを有効にする
smtps     inet  n       -       -       -       -       smtpd
  -o smtpd_tls_wrappermode=yes

dovecotの設定

dovecotの設定を行います。 /etc/dovecot/dovecot.confを編集します。

### 利用するプロトコルを記載
### dovecot-imapdとdovecot-pop3dをインストールしたので imap pop3 を記載
protocols = imap pop3

### LISTENするアドレスを指定
listen = *

/etc/dovecot/conf.d/10-mail.confを編集します。

### Postfixの設定に合わせてMaildir形式を指定
mail_location = maildir:~/Maildir

### dovecotプロセスが chroot することができるディレクトリの指定
valid_chroot_dirs = /home

### UIDLのフォーマットを指定
pop3_uidl_format = %08Xu%08Xv

/etc/dovecot/conf.d/10-auth.confを編集します。

### SSL/TLS接続のみ有効にする場合はyes
disable_plaintext_auth = yes

### 認証時のパスフレーズ送信方式の指定
### 通信が暗号化されているので以下
auth_mechanisms = plain login

/etc/dovecot/conf.d/10-master.confを編集します。

### imapでの接続ポートの指定
### SSL/TLSのみ使う場合はimapsのみで良い
service imap-login {
  inet_listener imap {
    #port = 143
    port = 0
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}

### imapでの接続ポートの指定
### SSL/TLSのみ使う場合はimapsのみで良い
service pop3-login {
  inet_listener pop3 {
    #port = 110
    port = 0
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}

### 認証用ソケットファイルへのアクセス権設定
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }

/etc/dovecot/conf.d/10-ssl.conf を編集します。

### SSL/TLSを有効化
ssl = yes

### SSL/TLSで利用する証明書の設定
### (別途作成の必要あり)
ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key

sasl2の設定

/etc/default/saslauthdを編集します。

### 自動起動の設定
START=yes

### 認証メカニズムの設定
MECHANISMS="pam"

おわりに

以上、メールサーバの構築メモです。