先日は、ミニPCでWordpressサーバーを構築しましたが、今回はメールサーバーを構築します。
移行前は、Synology NASに構築していましたが、ミニPCに移行します。
移行前

移行後

以下のサイトを参考にさせていただきました。


使用ポートとTSL暗号化
今回は、非暗号化→TSL暗号化の手順で構築すると手順が増えてしまうので、TSL暗号化前提として記述したいと思います。証明書はLet’s Encryptで取得済み。
また、使用するポートは以下の通りです。あらかじめポート開放しておいてください。
プロトコル | ポート番号 |
SMTP | 25 |
SMTP(SSL) | 465 |
Submissionポート | 587 |
IMAP(SSL) | 993 |
Postfixのインストールと設定
メール送信用のソフトはPostfixを使用します。
インストール
sudo apt install postfix
ダイアログが表示されるので「設定なし」を選択します。
/etc/postfix/main.cf の作成
myhostname | ホスト名(今回はドメイン名と同じ) | evening-network.server-on.net |
mydomain | ドメイン名 | evening-network.server-on.net |
mynetworks | ネットワークセグメント(LAN環境により異なる) | 192.168.0.0/24 127.0.0.0/8 |
smtpd_tls_cert_file | Let’s Encryptで取得した証明書+中間証明書 | /etc/letsencrypt/live/evening-network.server-on.net/fullchain.pem |
smtpd_tls_key_file | Let’s Encryptで取得した秘密鍵 | /etc/letsencrypt/live/evening-network.server-on.net/privkey.pem |
compatibility_level = 3.6
myhostname = evening-network.server-on.net
mydomain = evening-network.server-on.net
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.0.0/24 127.0.0.0/8
home_mailbox = Maildir/
smtp_tls_security_level = may
smtp_tls_loglevel = 1
smtp_tls_note_starttls_offer = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_tls_cert_file = /etc/letsencrypt/live/evening-network.server-on.net/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/evening-network.server-on.net/privkey.pem
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_loglevel = 1
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
mua_client_restrictions =
mua_helo_restrictions =
mua_sender_restrictions =
/etc/postfix/master.cf の変更。以下を追加。
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=$mua_client_restrictions
-o smtpd_helo_restrictions=$mua_helo_restrictions
-o smtpd_sender_restrictions=$mua_sender_restrictions
-o smtpd_recipient_restrictions=
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=$mua_client_restrictions
-o smtpd_helo_restrictions=$mua_helo_restrictions
-o smtpd_sender_restrictions=$mua_sender_restrictions
-o smtpd_recipient_restrictions=
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
設定チェック。エラーが出たら再確認して適宜修正する。
sudo postfix check
Postfixの再起動
sudo systemctl restart postfix.service
Postfixの再起動時の自動実行設定
sudo systemctl enable postfix
確認
sudo systemctl is-enabled postfix
Dovecotのインストールと設定
メール送信用のソフトはDovecotを使用します。
インストール
sudo apt install dovecot-core dovecot-imapd dovecot-pop3d
とりあえず、IMAPとPOP3をインストールしておきます。
/etc/dovecot/conf.d/10-master.conf の変更(3か所)
imap portを143→0
imaps portとsslの「#」削除
service imap-login {
inet_listener imap {
#port = 143
port = 0
}
inet_listener imaps {
port = 993
ssl = yes
}
pop3 portを110→0
pop3sの「#」を削除。
service pop3-login {
inet_listener pop3 {
#port = 110
port = 0
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
smtp-authを修正する。
「#」をはずして、user、groupを追加。
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
/etc/dovecot/conf.d/10-auth.conf の変更(2か所)
disable_plaintext_authをyes→noにする
#disable_plaintext_auth = yes
disable_plaintext_auth = no
auth_mechanismsにloginを追加。
auth_mechanisms = plain login
/etc/dovecot/dovecot.conf の変更(1か所)
listenの「#」をはずす。
listen = *, ::
/etc/dovecot/conf.d/10-mail.conf の変更(1か所)
mail_location の「mbox:~/mail:INBOX=/var/mail/%u」→「maildir:~/Maildir」に修正。
#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:~/Maildir
/etc/dovecot/conf.d/10-ssl.conf の変更(2か所)
ssl_cert、ssl_key をLet’s Encryptで取得した証明書に書き換える。
evening-network.server-on.netはドメイン名
#ssl_cert = </etc/dovecot/private/dovecot.pem
#ssl_key = </etc/dovecot/private/dovecot.key
ssl_cert = </etc/letsencrypt/live/evening-network.server-on.net/fullchain.pem
ssl_key = </etc/letsencrypt/live/evening-network.server-on.net/privkey.pem
再起動。
sudo systemctl restart dovecot
Dovecotの再起動時の自動実行設定
sudo systemctl enable dovecot
確認
sudo systemctl is-enabled dovecot
新規ユーザーが作成時にメール用のディレクトリが生成されるように設定する。
sudo mkdir -p /etc/skel/Maildir/{new,cur,tmp}
sudo chmod -R 700 /etc/skel/Maildir/
メーラーを使用して送受信できるか試してみてください。
412は在庫切れ、N150が販売中です。
コメント