一般的に、メールで使われているPOPやSMTPは、平文がそのままネットワークに流れます。
ログイン時のIDやパスワードまで平文で流れるので、パケットモニタリングすると覗き見されてしまいます。
Web(HTTP)についてはSSLを使って暗号化通信を実現していますが、SSLはPOPやSMTPにも利用可能です。
このSSLを使ったメールの暗号化通信は、実はThunderbird等のメーラーでも対応しているため、サーバー側が対応すればすぐ利用可能、と言うことも多いと思います。
ここでは、POPをSSL越しに利用する「POP over SSL」をFreeBSDサーバーにセットアップする方法を解説します。
まず、FreeBSD標準のpopperではなく、qpopperを新たにインストールします。
# cd /usr/ports/mail/qpopper/
# make install
オプションは、基本的にデフォルト(SSLはenable)でインストールします。
次に、/etc/serviceの内容を確認します。もし下記のエントリーがなければ登録します。
最近のFreeBSDであればデフォルトで入っていると思うので大丈夫です。
pop3s 995/tcp spop3 # pop3 protocol over TLS/SSL
pop3s 995/udp spop3
このように、POP over SSLでは995番ポートを使用します。
そして、qpopperの設定を変更します。
portsによってインストールされた、/usr/local/etc/qpopper.config.sampleファイルをqpopper.configにコピーし、下記の部分を編集します。
set clear-text-password = tls
set reverse-lookup = false
set tls-support = alternate-port
set tls-private-key-file = /usr/local/etc/qpopper/ssl/server.key
set tls-server-cert-file = /usr/local/etc/qpopper/ssl/server.crt
set log-facility = mail
秘密鍵(set tls-private-key-file)と証明書(set tls-server-cert-file)の場所については、サーバーのポリシーに合わせて適宜変えてください。
FreeBSDではデフォルトでpopperが起動するようになっているので、/etc/inetd.confを編集して、qpopperが起動するようにします。
加えて、SSL越しでも利用できるように、下記の部分を修正もしくは追加します。
# pop3 stream tcp nowait root /usr/local/sbin/popper popper
pop3 stream tcp nowait root /usr/local/libexec/qpopper qpopper -s
pop3s stream tcp nowait root /usr/local/libexec/qpopper qpopper -s -f /usr/local/etc/qpopper.config
それから、ApacheのSSL鍵・証明書と同じように、鍵と証明書を作成し、qpopper.configで設定した場所に置きます。
公式のものでしたらVerisignなどから証明書を取得したほうがいいとは思いますが、個人利用程度であれば自作証明書で十分です(アラートは出ます)。
この簡単な作り方もおいおい公開しますね。
最後にinetdを再起動します。inetdへHUPシグナルを送って終了です。
# kill -HUP `cat /var/run/inetd.pid`
ThunderbirdなどのPOP over SSL対応メーラーで、実際にSSL接続できるか試してみてください。
Thunderbirdでは、「アカウント設定」の「サーバー設定」にある「セキュリティ設定」のところで「SSLを使用する」を選択するだけで大丈夫です。

ちなみに、自宅サーバーとかで設定したときは、外部からアクセスする前にルーター等の995番ポートを空けるのを忘れないようにしてください。
また、メールの受信には25番ポートが空いている必要があります。空いていないとメールが届かないのでご注意を。
SMTP over SSLについては、SMTP Authと組み合わせると効果的なので、また次回説明しますね。
コメントする