メールサーバ構築 2025 AlamaLinux9
メールのサーバの構築において注意すべき項目はいくつもあるが、セキュリティを考慮すると送信時のSMTP認証で利用するパスワードの扱いおよびPOP時に利用する各アカウントのパスワードだ。GmailのようにPOP認証がそのままSMTP認証であるPAM形(LOGIN)形式でも良かったが、企業向けの場合共通のパスワードを設定し1年に一度などポリシーに従って適宜変更しながら運用することが多いだろう。
メールサーバ構築において一般的なプロトコル
別途SMTP配送の仕組みについては別記事を参照してください。「SMTP配送の仕組み Postfix」
名前 | ポート番号 | 暗号化方法 | 概要 |
---|---|---|---|
POP3 | 110 | 平文 or STARTTLS | 古いが一部対応あり |
POP3S | 995 | SSL/TLS(最初から暗号化) | 現在の標準 |
SMTP(通常) | 25 | 平文 or STARTTLS | 中継用・OP25Bで使えないこと多い |
Submission(SMTP-AUTH) | 587 | STARTTLS | 現在の標準(クライアント用) |
SMTPS | 465 | SSL/TLS(最初から暗号化) | 実は「非標準」から復活した方式 |
年々セキュリティは変化しており、メールサーバを構築する上でのセキュリティ対策は異なります。2025年現在、一般的なメールサーバの推奨構成は次のようになります。さらにSPF / DKIM / DMARC といった技術も必ず導入しましょう。
用途 | 推奨ポート | 理由 |
---|---|---|
メール送信 | 587 (SMTP with STARTTLS) | RFC 6409 で標準化、現在の主流 |
または送信 | 465 (SMTPS) | 一部クライアントで安定(Appleなど) |
メール受信 | 995 (POP3S) or 993 (IMAPS) | 最初から暗号化、安全で確実 |
ちなみに、Google の公式情報によればこうなっています。
プロトコル | ポート | 状況 |
---|---|---|
POP3S | 995 | ✅ 利用可(要有効化) |
SMTP(Submission) | 587 + STARTTLS | ✅ 利用可 |
SMTPS | 465 + SSL | ✅ 利用可 |
POP3 (110) | ❌ 利用不可(Gmailでは非対応) | |
SMTP (25) | ❌ 利用不可(OP25B対策のため) |
メールサーバ構築でSMTP認証をどうするか
Dovecot + パスワードファイル方式
✅ Dovecot + パスワードファイル方式特長
sasldb
より扱いやすく、柔軟(複数ユーザー対応、Dovecot 標準)- OSユーザーを作らなくて済む
- 簡単なテキストファイル(
passwd-file
)で管理可能
✅ Dovecot + パスワードファイル方式設定手順(最小構成)
1. 仮想ユーザー用パスワードファイルを作成
mkdir -p /etc/dovecot/users
vi /etc/dovecot/users/passwd
smtpauth:{PLAIN}yourpassword
or
smtpauth:{SHA512-CRYPT}$6$KCxZXST9i3K5aaj9$aiJc0Di6xwnDkByZZ1sQGra6TweewMzi.KqiiiJ9IHAQCIlAJrlqpypbBCx8UwA7.mLwIFUOAib.AehHb60km0
SHAパスワードを作成するコマンド
doveadm pw -s SHA512-CRYPT
中身の例(ID: smtpauth / PW: yourpassword)
2. 10-auth.conf
の passdb
/userdb
を以下のように変更
vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain
!include auth-passwdfile.conf.ext #コメントを外す
useradd -r -u 200 -g mail -d /var/mail -s /sbin/nologin vmail
ここでは、SMTPのためユーザを作成しますが、認証用IDと同じにする必要はありません。vmail固定で良いと思います。
vi /etc/dovecot/conf.d/auth-passwdfile.conf.ext
passdb {
driver = passwd-file
args = /etc/dovecot/users/passwd
}
passdb {
driver = pam
}
userdb {
driver = passwd
}
userdb {
driver = static
args = uid=200 gid=12 home=/var/mail/%d/%n
}
3. パーミッションの設定
chown dovecot:dovecot /etc/dovecot/users/passwd
sudo chmod 600 /etc/dovecot/users/passwd
4. Dovecotの設定と再起動
vi /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = </etc/letsencrypt/live/xxx.youdomain.jp/fullchain.pem
ssl_key = </etc/letsencrypt/live/xxx.youdomain.jp/privkey.pem
vi /etc/dovecot/conf.d/10-mail.con
mail_location = maildir:~/Maildir
vi /etc/dovecot/conf.d/10-master.conf
service imap-login {
inet_listener imap {
port = 0
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
port = 0
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
service submission-login {
inet_listener submission {
#port = 587
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
}
service auth {
#unix_listener auth-userdb {
# mode = 0600
# user = dovecot
# #group =
#}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
service auth-worker {
}
service dict {
unix_listener dict {
#mode = 0600
#user =
#group =
}
}
systemctl restart dovecot
PostfixでSMTP認証をDovecotに行わせる
SMTP認証は送信時に利用するプロトコルですが、それをDovecotに行わせます。よって、POP3sと587ポートでの運用も可能なのです。
/etc/postfix/main.cf
smtpd_sasl_local_domain = $mydomain
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_authenticated_header = yes
smtpd_tls_auth_only = yes
smtputf8_enable = no
smtpd_tls_cert_file = /etc/letsencrypt/live/xxx.youdomain.jp/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/xxx.yourdomain.jp/privkey.pem
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_tls_CApath = /etc/ssl/certs
ここで指定した/etc/ssl/certs/ca-bundle.crt ファイルが無い場合は作成する必要があります。Let's Encrypt の証明書は “自分のサーバー用” なので、Postfixが相手サーバーの証明書を検証するには不十分です。相手のメールサーバーが使っている証明書がどのCA(例えばLet's Encrypt、DigiCert、GlobalSignなど)発行か分からないため、一般的に複数のCA証明書がまとめられた ca-certificates.crt が必要です。つまり、Postfixが外部サーバーの証明書を検証するための “信頼できる認証局リスト” が ca-certificates パッケージによって提供されています。
dnf reinstall ca-certificates
update-ca-trust force-enable
update-ca-trust extrac
/etc/postfix/master.conf
smtp inet n - n - - smtpd
submission inet n - n - - smtpd
-o syslog_name=postfix/submission
smtps inet n - n - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_tls_cert_file=/etc/letsencrypt/live/aq4.aquila.jp/fullchain.pem
-o smtpd_tls_key_file=/etc/letsencrypt/live/aq4.aquila.jp/privkey.pem
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
メーラーの設定
たとえばBecky! Internet Mailを利用したメールの送受信の場合、次のような設定でセキュリティを担保しつつメールの送受信が可能となる。
基本設定:
POP3サーバ(受信):FQDN ・・・ POP3Sにチェック
SMTPサーバ(送信):FQDN ・・・ SMTPSにチェック
ユーザID:UNIXアカウント
パスワード:上記のパスワード
認証方式:標準
詳細:
SMTP:465
POP3:995
IMAP4:143
☑ SMTP認証 ☐ OAuth2を使用
☐ CRAM-MD5 ☐ LOGIN ☑PLAIN
ユーザID: smtpauth
パスワード: youpassword
SS/TLS関連
受信用:デフォルト
送信用:デフォルト
☐ 証明書を検証しない
☑ クライアントの証明書を使用
☐ POP before SMTPを使用
☑ ESMTPを使用
技術的セキュリティ対策
最後に、メールサーバを構築するうえで、メールの送受信におけるセキュリティ対策は、情報漏洩・なりすまし・改ざん・スパム・ウイルスなどのリスクを防ぐために非常に重要です。以下に、技術的対策・運用面・利用者教育の観点から、総合的にまとめます。
1. 通信経路の暗号化
- SMTP over TLS(STARTTLS) / SMTPS(465)
- IMAPS(993) / POP3S(995)
- → メールサーバー間やクライアントとの通信を暗号化し、盗聴や改ざんを防止
2. 認証とアクセス制御
- SMTP認証(SASL)
→ なりすましや不正中継の防止 - 強力なパスワードポリシーの適用
- 二要素認証(2FA)(Webメールや管理画面)
3. 送信ドメイン認証技術(SPF / DKIM / DMARC)
- SPF(Sender Policy Framework)
→ 送信元IPの正当性をチェック - DKIM(DomainKeys Identified Mail)
→ メールに電子署名を付加し改ざん検出 - DMARC(Domain-based Message Authentication, Reporting and Conformance)
→ SPF/DKIMの結果をもとにメールの扱いを定義
4. ウイルス・マルウェア対策
- メールサーバーにアンチウイルス/アンチマルウェアソフトを導入
- 添付ファイルのスキャン
5. スパム対策
- DNSBL(ブラックリスト)/ RBL
- Bayesian フィルタリング
- SPF/DKIM/DMARCの活用
6. 添付ファイルと本文のフィルタリング
- 危険な拡張子(.exe, .js など)のブロック
- 添付ファイルを自動でパスワード付きZipに変換(パスワード通知は別送)
7. ログ監視・アラート
- ログ(送受信ログ、認証ログなど)を記録し、異常があれば即通知