Ubuntuでメールサーバー構築

  • 75
    Like
  • 0
    Comment
More than 1 year has passed since last update.

Ubuntuでメールサーバーを構築した際の手順です。
送信サーバーとしてPostfix、受信サーバーとしてdovecotを使用します。

構築前に知っといたほうがいいメールの知識

メールを送信するにはアドレスを知っている必要があります。
このメールアドレスは下記のように表現されます。

hogehoge@gmail.com

@の前の「hogehoge」はユーザー名で、
@の後の「gmail.com」はサーバーのインターネット上の所在地(ドメイン)になります。
今から構築する送信サーバーから受信サーバーにメールを送る場合、

root@localhost

とすればOKです。(rootユーザーのメールボックスに届きます。)

環境

OS:Ubuntu 14.04 LTS
Postfix:2.11.0 (確認コマンド:\$ postconf | grep mail_version)
Dovecot:2.2.9 (確認コマンド:\$ dovecot --version)

送信サーバー(Postfix)の構築

Postfixのインストール

$ sudo apt-get install -y postfix

下記のような画面が出てきますが、「設定なし」を選択します。
image

インストール後、「main.cf」という設定ファイルを/etc/postfix/ディレクトリにコピーしておきます。

$ sudo cp /usr/lib/postfix/main.cf /etc/postfix/main.cf

postfixの設定を編集

$ sudo vi /etc/postfix/main.cf

下記のように編集します。

# 59行目:コメント解除
mail_owner = postfix
 
# 76行目:コメント解除しホスト名指定★
myhostname = mail.hogefuga.com
 
# 83行目:コメント解除しドメイン名指定
mydomain = hogefuga.com

# 104行目:コメント解除
myorigin = $mydomain

# 118行目:コメント解除
inet_interfaces = all

# 166行目:コメント解除
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

# 209行目:コメント解除
local_recipient_maps = unix:passwd.byname $alias_maps

# 268行目:自ネットワーク追記(ifconfigコマンドでeth0のinetアドレスが10.0.2.15だったので10.0.0.0/24を追記)
mynetworks = 127.0.0.0/8, 10.0.0.0/24

# 388行目:コメント解除
alias_maps = hash:/etc/aliases

# 399行目:コメント解除
alias_database = hash:/etc/aliases

# 421行目:コメント解除 ( Maildir形式へ移行 )
home_mailbox = Maildir/

# 557行目:コメントにしてその下に追記
#smtpd_banner = $myhostname ESMTP $mail_name (@@DISTRO@@)
smtpd_banner = $myhostname ESMTP

# 632行目:追記
sendmail_path = /usr/sbin/postfix

# 637行目:追記
newaliases_path = /usr/bin/newaliases

# 642行目:追記
mailq_path = /usr/bin/mailq

# 648行目:追記
setgid_group = postdrop

# 652行目:コメント化
#html_directory =

# 656行目:コメント化
#manpage_directory =

# 661行目:コメント化
#sample_directory =

# 665行目:コメント化
#readme_directory =

# 最終行へ追記:送受信メールサイズを10Mに制限
message_size_limit = 10485760
# メールボックスサイズを1Gに制限
mailbox_size_limit = 1073741824

# 以下SMTP-Auth用
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

メールエイリアスのデータベースを再構築するために書きコマンドを実行します。

$ newaliases

postfixを再起動

設定を反映させるために、postfixを再起動します。

$ sudo /etc/init.d/postfix restart

送信テスト

postfixがうまく構築できたかどうかを確認するため、テストメールを送信してみます。
と、その前に、mailコマンドを使えるように「mailutils」をインストールしておきます。

$ sudo apt-get install mailutils

メールを送信してみます。
※メールを送信するには、改行後、「.」を入力し[Enter]を押します。

# mail hogehogefugafuga@gmail.com
Cc:
Subject: test
hogehogefugafuga
.

結果、下記のようにGmailに送られます。
image

受信サーバー(dovecot)の構築

Dovecotのインストール

$ sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d

以下のように独自 SSL 証明書を作成されるか問われますが、
必要ならば後でも作成できるので、「いいえ」を選択します。

image

Dovecotの設定を編集

■ /etc/dovecot/dovecot.conf を変更

$ sudo vi /etc/dovecot/dovecot.conf

# 30行目:変更 ( IPv6をリスンしない場合 )
listen = *

■ /etc/dovecot/conf.d/10-auth.conf を変更

$ sudo vi /etc/dovecot/conf.d/10-auth.conf

# 10行目:コメント解除し変更(プレーンテキスト認証も許可する)
disable_plaintext_auth = no

# 100行目:追記
auth_mechanisms = plain login

■ /etc/dovecot/conf.d/10-mail.conf を変更

$ sudo vi /etc/dovecot/conf.d/10-mail.conf

# 30行目:Maildir形式に変更
mail_location = maildir:~/Maildir

■ /etc/dovecot/conf.d/10-master.conf を変更

$ sudo vi /etc/dovecot/conf.d/10-master.conf

# 96-98行目:コメント解除し追記
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
}

■ /etc/dovecot/conf.d/10-ssl.conf を変更

$ sudo vi /etc/dovecot/conf.d/10-ssl.conf

# 6行目:コメント解除して変更(SSLなし)
ssl = no

# 12,13行目:コメントにする
#ssl_cert = </etc/dovecot/dovecot.pem
#ssl_key = </etc/dovecot/private/dovecot.pem

■ Dovecotを起動

$ sudo initctl start dovecot

受信テスト

受信サーバーが正しく動くかどうかを検証します。
送信テスト時と同じようにメールコマンドを使ってメールを送信してみます。
ただし、この時の宛先(@以降)を「localhost」にします。

# mail root@localhost
Cc:
Subject: test
hogehogefugafuga
.

上記実行後、@以前をrootとしたので、
/root/Maildir ディレクトリが作成されているはずですので、
確認して見てください。(下記のようになっていれば受信テストOK)

# ll /root/Maildir/
合計 20
drwx------  5 root root 4096  3月 16 10:39 ./
drwx------ 10 root root 4096  3月 16 10:39 ../
drwx------  2 root root 4096  3月 16 10:39 cur/
drwx------  2 root root 4096  3月 16 10:39 new/
drwx------  2 root root 4096  3月 16 10:39 tmp/

イントラネット外から受信をしたい場合

メールの送信に関しては、イントラネット外へ送信出来ますが、
受信に関しては、ファイアウォールやルーター(モデム含む)の設定が必要です。

受信するために必要なもの

■ ドメイン or グローバルIPアドレス

インターネット上の住所。
※@の後はドメインだけではなくグローバルIPアドレスでも可です。

固定IPやドメイン登録といった作業が必要になります。
ドメイン取得に関しては、
http://qiita.com/mizuki_takahashi/items/b0c5adebea48b9f2f7a6
が参考になると思います。

■ ポート解放

メールの送受信に使用するポートは下記の通りです。

送受信 ポート番号 用途
送信 25 smtp
送信 465 smtp(SSL)
送信 587 Submissionポート
受信 110 POP
受信 995 POP(SSL)
受信 143 IMAP
受信 993 IMAP(SSL)

ただし、上記ポートを開放するための手順は、
モデムやルーターの機種によって設定方法がまちまちなので、下記を参考にしてみてください。
http://27bit.com/router.html

以上です。