====== メールサーバ構築 ====== exim4 / dovecot によるメールサーバ構築。 メールサーバは、postfix による構築の情報が多く、 exim4 かつ smtp-auth の構築方法は、あまり情報がなくて、かなり悩んだ。 ===== 準備 ===== exim4 / dovecot をインストール sudo apt install exim4 sudo apt install dovecot-imapd dovecot-pop3d ---- ===== 設定 (exim4) ===== 再設定したい場合 dpkg-reconfigure exim4-config ---- === 設定事項: === - IP-addresses to listen on for incoming SMTP connections: → empty - 設定ファイルの分割はしない - 方式 → Maildir # dovecot を使用するため - ローカル(自身のホスト) からの中継を許可する # smtp-auth のため(悩みポイント) 設定ファイルが分割していないかの確認 grep dc_use_split_config /etc/exim4/update-exim4.conf.conf -> false であればよい ---- ==== SPF / DKIM ==== 鍵の作成 openssl genrsa -out /etc/exim4/dkim.private 1024 chown root:Debian-exim /etc/exim4/dkim.private chmod 640 /etc/exim4/dkim.private openssl rsa -in /etc/exim4/dkim.private -out /etc/exim4/dkim.public -pubout -outform PEM ---- DKIM_SELECTOR = 2026021401 # 適当な番号 DKIM_PRIVATE_KEY=/etc/exim4/dkim.private DKIM_CANON=relaxed DKIM_DOMAIN=ownDomainName # ドメイン名 MAIN_TLS_ENABLE = true ---- === DNS への登録 === == 登録 1 == /etc/exim4/dkim.public の 文字列を登録する。 ---- host名: 2026021401._domainkey.ownDomainName 種別: TXT 内容: v=DKIM1; t=y; k=rsa; p="dkim.publicの文字列" ---- == 登録 2 == host名の "TXT エントリーに以下を追加 v=spf1 ip4:xxx.xxx.xxx.xxx ip6:aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh ~all ここで、"ip4:xxx.xxx.xxx.xxx" "ip6:aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh" は 構築しているメールサーバのアドレス。 ** ip6 のアドレスが用いられていることがあるので、両方登録するのがよい**(悩みポイント)。 google で確認できる。 ---- ==== DMARC ==== === DNS への登録 === host名: _dmarc.ownDomainName 種別: TXT 内容: v=DMARC1; p=none ===== 設定 (dovecot) ===== 以下の記載を自分の環境にあわせて確認、もしくは修正・追加する。 listen = * ---- disable_plaintext_auth = yes ---- mail_location = maildir:~/Maildir ---- inet_listener imaps { port = 993 ssl = yes } inet_listener pop3s { port = 995 ssl = yes } unix_listener /var/spool/exim4/private/auth { mode = 0660 user = Debian-exim group = Debian-exim } ---- SSL の設定 ssl = yes ssl_cert = <"fullchain.pem file of ownDomain" ssl_key = <"privkey.pem file of ownDomain" ---- ログファイルの設定 log_path = /var/log/dovecot/dovecot.log ---- ディレクトリの作成、所有権の設定 mkdir /var/log/dovecot chown dovecot:dovecot /var/log/dovecot mkdir -p /var/spool/exim4/private chown Debian-exim:Debian-exim /var/spool/exim4/private ---- 確認 ls -F /var/spool/exim4/private/auth # /var/spool/exim4/private/auth= となっていれば OK ---- ===== Firewall の許可 ===== sudo ufw allow pop3s sudo ufw allow imaps sudo ufw allow 587/tcp ---- ===== テスト ===== ==== SSL 接続 ==== openssl s_client -connect slightknowledge.com:587 -starttls smtp ==== メールサーバーからの送信 ==== echo "Test mail from exim4" | mail -s "Test" your-email@example.com