メールサーバー間暗号化(Postfix+Dovecot)編 合計:
昨日:
今日:
更新日:2008/5/28
<<ホームへ戻る


自宅メールサーバーとクライアント間を暗号化する。自宅メールサーバーと他のメールサーバー間は、暗号化されるわけではない。各メールサーバー間を暗号化するためには、もっと異なる方法が必要である。ただ、外部で自宅メールサーバーを用いてメールの送受信をする場合のユーザ名やパスワードは暗号化されるので比較的安心できる。


【前提条件】メールサーバーが構築済みであること。
◆サーバー証明書の作成 <<TOP

 

[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]#
     

 

◆postfix設定 <<TOP

 

[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再起動 <<TOP

@、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はオープンしています。

 

◆dovecot設定 <<TOP

 

[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の再起動 <<TOP

@、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はオープンしています。


◆サーバー証明書のインポート <<TOP

ここまでの設定で自宅メールサーバーとメールクライアントソフトの間は、暗号化される。しかし、自宅メールサーバーにアクセスする度に下記のような警告の画面が出てしまう。この対策として、サーバー証明書をクライアントにインポートして、警告画面が出ないようにする。

sslalarm

@、インポート用証明書の作成

クライアントへのインポート用証明書を発行する。

[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)をダブルクリックする。すると次のような画面が表示される。

mail.der1

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

mail.der2

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

mail.der3

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

mail.der4

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

mail.der5

 
 
<<TOP
 
 
◆広告等 <<TOP