ITメモ
CentOS / セントオーエス




メールサーバー間の暗号化(OpenSSL+Postfix+Dovecot)

メールサーバー間の暗号化(OpenSSL+Postfix+Dovecot)




この設定を行う前に、メールサーバーを通常のメール通信が出きるようにしておく必要がある。

外部からのメールの送受信は、ユーザ名やパスワードが盗聴される恐れがある。
セキュリティのため、メールサーバー間の通信内容を暗号化する。
暗号化の範囲は、メールサーバーとクライアント間のみ。
メールサーバーと送信先メールサーバー間は暗号化されない。
メール本文が宛先まで完全に暗号化されるわけではない。



サーバー証明書作成


# cd /etc/pki/tls/certs/ ← ディレクトリ移動

# make mail.pem ← サーバー証明書作成
Country Name (2 letter code) [GB]:JP ← 国名応答
State or Province Name (full name) [Berkshire]:Tokyo ← 都道府県名応答
Locality Name (eg, city) [Newbury]:Minato-ku ← 市区町村名応答
Organization Name (eg, company) [My Company Ltd]:xxxxx.com ← サイト名応答(なんでもいい)
Organizational Unit Name (eg, section) []: ← 空ENTER
Common Name (eg, your name or your server's hostname) []:mail.xxxxx.com ← メールサーバー名応答※
Email Address []:xxxxxx@xxxxxxx.com ← 管理者メールアドレス応答


Postfix設定


# vi /etc/postfix/main.cf ← postfix設定ファイル(main)編集
以下を最終行へ追加
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.pem
smtpd_tls_key_file = /etc/pki/tls/certs/mail.pem
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache



# vi /etc/postfix/master.cf ← postfix設定ファイル(master)編集
smtp inet n - n - - smtpd
#smtps inet n - n - - smtpd ← 行頭の「#」を削除(コメント解除)
# -o smtpd_tls_wrappermode=yes ← 行頭の「#」を削除(コメント解除)
# -o smtpd_sasl_auth_enable=yes ← 行頭の「#」を削除(コメント解除)


#tlsmgr unix - - n 300 1 tlsmgr ← 行頭の#を削除


Postfix再起動


# /etc/rc.d/init.d/postfix restart ← Postfix再起動
postfix を停止中: [ OK ]
postfix を起動中: [ OK ]


ポート465番のOPEN


465番をOPENする。
サーバーのIPテーブルを編集(vi /etc/sysconfig/iptables)するのと、ルーターのポートを開く作業が必要。



Dovecot設定


# vi /etc/dovecot/conf.d/10-ssl.conf  ← DovecotSSL設定ファイル編集
# SSL/TLS support: yes, no, required.
#ssl = yes
ssl = yes ← TLS通信の有効化

# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
ssl_cert = </etc/pki/tls/certs/mail.pem ← サーバー証明書を指定
ssl_key = </etc/pki/tls/certs/mail.pem ← サーバー証明書を指定


Dovecot再起動


# /etc/rc.d/init.d/dovecot restart ← dovecot再起動
Dovecot Imap を停止中: [ OK ]
Dovecot Imap を起動中: [ OK ]


995番(POPの場合)または993番(IMAPの場合)のOPEN


995番(POPの場合)または993番(IMAPの場合)をOPENする。
サーバーのIPテーブルを編集(vi /etc/sysconfig/iptables)するのと、ルーターのポートを開く作業が必要。




サーバー証明書のインポート


警告ウィンドウなどを回避する方法に、サーバー証明書のインポートがある。


クライアントへのインポート用サーバー証明書を作成する
# cd /etc/pki/tls/certs ← ディレクトリ移動
# openssl x509 -in mail.pem -outform DER -out mail.der ← インポート用サーバー証明書作成

mail.derというファイル名でインポート用サーバー証明書が作成される。
クライアント側へコピーをして、クライアントサーバー証明書をインポートする。

クライアント側へは、メールやUSB、Web上への公開などで渡すことになる。

クライアントへサーバー証明書をインポートするには、インポート用サーバー証明書(mail.der)をダブルクリックすると、サーバー証明書のインストール画面が始まる。