POPは、パスワードがネットワーク上を暗号化されずに平文で流れるため、パケットキャプチャソフトなどでスニッファリングを行えば、パスワードはいとも簡単に盗むことができてしまいます。そこで、パスワードを暗号化してくれるプロトコルとしてAPOPがあり、qpopperをAPOP対応にすることで、安全性が向上させることができます。
|
|
◎Ethereal でのパケットキャプチャ状況
Ethereal というネットワーク監視ソフトで、メールを受信した際のネットワーク上の流れをキャプチャリングしたものです。解析してみると、ユーザー名やパスワードは暗号化されずにそのまま平分で流れていることが確認できます。まさに、marumie
です(笑)。
■qpopperのダウンロード
まず、qpopperを
QUALCOMMのFTPサイトからダウンロードしてきてください。執筆時点での最新バージョンは、qpopper4.0.5です。ここでは、qpopper4.0.5.tar.gzをダウンロードしてインストールしていくことにします。APOP対応でインストールしていきます。
$ cd /usr/local/src
$ tar xzvf /usr/local/src/qpopper4.0.5.tar.gz
$ cd qpopper4.0.5
$ ./configure --enable-apop=/etc/pop.auth
--with-popuid=pop
$ make |
|
/qpopper4.0.5/popper下にバイナリファイルであるpopperが生成されるのでこれを、適当なディレクトリにコピーします。ここでは、/usr/local/sbinにコピーします。
$ cd poper
# cp popper popauth /usr/local/sbin/ |
|
APOPの管理者アカウント"pop"を作成します。
popauthのユーザとSUIDを変更します。
# cd /usr/local/sbin
# chown pop popauth
# chmod u+s popauth |
|
/etc/pop.authを作成し、APOP データベースの初期化を行います。
■スーパーサーバーとして起動させる
qpopperは、デーモンとして常に動かしておくほどレスポンスを重視しないため、一般的にはinetd、もしくはxinetd経由で起動するように設定することで、接続要求がある度に対応するようにします。これによってたましか実行されないサービスによって無駄な資源を有効に確保することができます。RedHatLinuxでは、xinetdをデフォルトで採用しているので、xinetd経由でqpopperを起動させるようにします。まず、/etc/xinetd.d
以下にpopperというファイルを作成し、編集を行っていきます。
# touch /etc/xinetd.d/popper
# vi /etc/xinetd.d/popper |
|
/etc/xinetd.d/popperを以下のように編集します。赤字で記した箇所のみ、各自、制限を許可するネットワークを記述してください。-R
はDNSの逆引きを行わないオプションです。-s は詳細なログを記録します。
service pop3
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/popper
server_args = -s -R
only_from = 172.16.50.0/27
172.16.51.0/28 127.0.0.1
} |
|
■popauthコマンド
それでは、実際にpopauth コマンドを使ってユーザーの作成、削除、パスワードの変更などの設定を行っていきます。以下のコマンドを実行し、存在するユーザー名とAPOP用のパスワードを入力します。
# popauth -user kororo
Adding only APOP password for kororo.
New password:
Retype new password: |
|
kororoでログインし直して、popauth -list でAPOPユーザーであるかどうかを確認します。
$ /usr/local/sbin/popauth
-list
kororo : APOP |
|
◎popauthコマンド
|
popauth -user <user> |
ユーザーを作成します。 |
|
popauth -delete
<user> |
ユーザーを削除します。 |
|
popauth |
単にパスワードを変更します。各ユーザーでログインした後、popauthコマンドを実行し、パスワードを変更できます。
|
|
popauth -list |
自分がAPOP認証ユーザーであるかどうかを確認できます。 |
|
popauth -init |
APOPのデータベースを初期化します。このコマンドを実行すると、APOPユーザーは全て削除されます。 |
|
最後に、xinetd を再起動し、設定変更を有効にします。
# /etc/init.d/xinetd
restart
xinetdを停止中: [ OK ]
xinetdを起動中: [ OK ] |
|
■メールの受信確認
締めくくりとして、メールの受信確認を行います。ここでは、Windowsクライアントで受信することを前提としますが、残念ながら、Microsoft
Outlook 及び Outlook ExpressはAPOPに対応していません。なので、APOPに対応したメールクライアントソフトを使用する必要があります。現段階でAPOPに対応しているもので有名なメーラーとしては、AL-Mail32、Becky!
Internet Mail Ver1、Becky! Internet Mail Ver2、Eudra、Shuriken
Pro3、PostPet 2001、nPOP、電信八号などです。ここでは、Becky!2の試用版をインストールして実際に確認を行ってみました。設定は以下図のようにAPOPのラジオボタンにチェックをいれるだけです。設定を終えたらメールを受信してみてください。なお、どうしてもOutlookじゃなきゃ嫌だ!という方は、
Outlook
ExpressでAPOPを使いたい(ZDnet)というのもあるので試してみてかいかがでしょうか。
◎Becky!2のメールボックス設定
■パスワードが暗号化されているか確認する
さて、ここまでやった以上、実際にパスワードが暗号化されたのか興味がありますよね。先ほど使用したツールと同様にEthereal
を使用して、パケットキャプチャリングを行ってみます。結果は以下図のようにきちんとパスワードが暗号化されていればOKです。どうですか?きちんと暗号化されていましたか?
◎暗号化されたパスワードの例