自宅メールサーバーとクライアント間を暗号化する。自宅メールサーバーと他のメールサーバー間は、暗号化されるわけではない。各メールサーバー間を暗号化するためには、もっと異なる方法が必要である。ただ、外部で自宅メールサーバーを用いてメールの送受信をする場合のユーザ名やパスワードは暗号化されるので比較的安心できる。
【前提条件】メールサーバーが構築済みであること。
|
|
|
[root@server ~]# cd /etc/pki/tls/certs/
[root@server certs]# make mail.pem ← サーバー証明書作成
umask 77 ; \
PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
/usr/bin/openssl req -utf8 -newkey rsa:1024 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 -set_serial 0 ; \
cat $PEM1 > mail.pem ; \
echo "" >> mail.pem ; \
cat $PEM2 >> mail.pem ; \
rm -f $PEM1 $PEM2
Generating a 1024 bit RSA private key
...........++++++
..................................++++++
writing new private key to '/tmp/openssl.nF9748'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:JP ← 国名応答
State or Province Name (full name) [Berkshire]:kanagawa ← 都道府県名応答
Locality Name (eg, city) [Newbury]:kawasaki ← 市区町村名応答
Organization Name (eg, company) [My Company Ltd]:arisonsvr.org ← 適当に
Organizational Unit Name (eg, section) []: ← 空エンター
Common Name (eg, your name or your server's hostname) []:mail.arisonsvr.org ← メールサーバー名応答
Email Address []:postmaster@arisonsvr.org ← 管理者メールアドレス応答
[root@server certs]#
|
|
|
[root@server ~]# vi /etc/postfix/main.cf ← main.cfファイルの変更
↓ 以下を最終行に追加
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:/etc/postfix/smtpd_scache
[root@server ~]# vi /etc/postfix/master.cf ← master.cfファイルの変更
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
#submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
↓ 行頭の#を外して有効にする
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
[root@server ~]# |
|
|
|
@、postfixの再起動
[root@server ~]# /etc/rc.d/init.d/postfix restart ← postfix再起動
postfix を停止中: [ OK ]
postfix を起動中: [ OK ]
[root@server ~]#
|
A、ポート465番のオープン。
当サーバーの場合は、ルーターの設定を参考にしてください。
ポートチェック【外部からポート開放確認】で「host名」にサーバー名(例:arisonsvr.org)、「port番号」に465と入力して「ポートチェック」ボタンをクリックして、「ホスト=arisonsvr.org ポート=465 にアクセスできました。」と表示されることを確認。これで、外部から見てもポート465はオープンしています。
|
|
|
[root@server ~]# vi /etc/dovecot.conf ← dovecot設定ファイル編集
・
・
# Disable SSL/TLS support.
#ssl_disable = no
ssl_disable = no ← ssl/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_file = /etc/pki/dovecot/certs/dovecot.pem
#ssl_key_file = /etc/pki/dovecot/private/dovecot.pem
ssl_cert_file = /etc/pki/tls/certs/mail.pem ← サーバー証明書の場所を指定
ssl_key_file = /etc/pki/tls/certs/mail.pem ← サーバー証明書の場所を指定
[root@server ~]#
|
|
|
@、dovecotの再起動
[root@server ~]# /etc/rc.d/init.d/dovecot restart ← dovecotの再起動
Dovecot Imap を停止中: [ OK ]
Dovecot Imap を起動中: [ OK ]
[root@server ~]#
|
A、ポート995番(POPの場合)または993番(IMAPの場合)のOPEN
当サーバーの場合は、ルーターの設定を参考にしてください。
ポートチェック【外部からポート開放確認】で「host名」にサーバー名(例:arisonsvr.org)、「port番号」に995または、993と入力して「ポートチェック」ボタンをクリックして、「ホスト=arisonsvr.org ポート=995または993 にアクセスできました。」と表示されることを確認。これで、外部から見てもポート995または、993はオープンしています。
|
|
|
ここまでの設定で自宅メールサーバーとメールクライアントソフトの間は、暗号化される。しかし、自宅メールサーバーにアクセスする度に下記のような警告の画面が出てしまう。この対策として、サーバー証明書をクライアントにインポートして、警告画面が出ないようにする。

@、インポート用証明書の作成
クライアントへのインポート用証明書を発行する。
[root@server ~]# cd /etc/pki/tls/certs ← ディレクトリへ移動
[root@server certs]# openssl x509 -in mail.pem -outform DER -out mail.der ← インポート用サーバー証明書作成
[root@server certs]#
|
インポート用サーバー証明書(mail.der)は、/etc/pki/tls/certsディレクトリにあるので、そこから、winscp等のソフトを用いてクライアント側へ持ってくる。その後、下記にあるような方法で、サーバー証明書をインポートする。
A、クライアントへサーバー証明書をインポートする。
サーバーから持ってきたサーバー証明書(mail.der)をダブルクリックする。すると次のような画面が表示される。

証明書のインストールのところをクリックする。すると次の画面が表れる。

次へをクリックする。すると次の画面になる。

次へをクリックする。すると次の画面が表れる。

完了をクリックする。すると次のような画面になり、OKをクリックして、インポートが終了する。

|
|
|
|
|
|
|
|
|
|
 |