最新更新日 2001.06.12.

本邦初公開。POP サーバを作成しよう;-)。
 まぁ、自宅にはケーブルテレビによる常時接続な環境を手に入れました。takachan@v6.running-dog.net 宛に IPv6 なメール根が届くので、がしがしメールを頂けると嬉しいです;-)。

 と、言う事でこの際、POP サーバを作成しましょう。当然 IPv6 な POP サーバを;-)。尚、僕のページで POP サーバを構築するのは本邦初公開でしょう。ぱちぱちぱち;-)。

 最近は、http://www.imasy.or.jp/~ume/ipv6/ を見て頂けると解ると思いますが、うめさん が精力的に cyrus-IMAPD のパッチを作成しています。「新しいバージョンのパッチ出来たからテストして。」なんてメールが良く飛んでくるのですが・・。cyrus-IMAPD は非常にややこしい・・。しくしく。これがまた大変なんですな。ports を利用するとだいぶ楽になりますがそれでも大変です。

 今回は、qpopper にしましょう。qpopper は現在、4.0.3 ですが、この IPv6 パッチも うめさん が作成しています。クアルコムに「IPv6 パッチをマージしてよ。」とメールを書いたのだが、なかなか取り入れてくれない。と、嘆いていました。きっと EUDORA が IPv6 対応していないので、それで取り入れてくれないのだろう。などとの噂が有ります;-P。

 と、言う事で必要なモノを取りに行きましょう。

ftp://ftp.jp.freebsd.org/pub/network/mail/qpopper/ 辺りにqpopper4.0.3.tar.gz はあります。

http://www.imasy.or.jp/~ume/ipv6/ 辺りに IPv6 パッチはあります。今回は、qpopper4.0.3-ipv6-20010504.diff になります。

 さ、拾って来た所で、インストールです。うめさん のサイトから拾って来たパッチは儀式が必要です。これは、Solaris の所でも書きました。

 IPv6 バッチ自体は、4.0.1 から変更は無いのでそのままです。なので、ディレクトリを symlink してあげます。

----------------
# mv qpopper4.0.3-ipv6-20010504.diff qpopper4.0.3-ipv6-20010504.diff.gz
# gunzip qpopper4.0.3-ipv6-20010504.diff.gz
# tar xvzfp qpopper4.0.3.tar.gz
# ln -s qpopper4.0.3 qpopper4.0.1
# cat qpopper4.0.3-ipv6-20010504.diff | patch 
# cd qpopper4.0.3
# ./configure;make;make install
----------------
 ま、基本的にはそのまま configure して、まけまけいんすとーるですね。これだと、/usr/local/sbin/popper にインストールされます。apop を enable にする場合は、

./configure --enable-apop=/usr/local/etc/popper/pop.auth --with-apopuid=pop

こんな感じでしょうか。ただし、dbm がないと make 出来ないので別途インストールが必要です。他のオプションとしては、ディクスアクセス負荷を軽減する為に一時ファイルを作成しないモードで動作する事の出来るオプションである --enable-servermode があります。また、--enable-shy は、接続した時にバージョンを表示しないオプションです。ま、趣味の範囲で・・。私は、ssh のポートフォワードにする為に --enable-apop にもしませんでした;-)。

 インストールが完了した所で続いて /etc/inetd.conf への記述です。IPv4、IPv6 の両方を記述します。また、ログを吐き出す為にログファイルを指定します。-R は DNS の逆引きを抑制する為に指定します。

----------------
pop3 stream tcp  nowait root /usr/local/sbin/popper popper -s -R -t
/var/log/qpopper.log

pop3 stream tcp6 nowait root /usr/local/sbin/popper popper -s -R -t
/var/log/qpopper.log
----------------
 ログファイルを吐き出す為にファイルを作成して上げます。これは、syslogd とは非同期に動きます。また、inetd 経由にした場合は/etc/hosts.allow でアクセス制限が可能になります。

 さささ、後はアクセスしてみましょう。と、言いつつ・・。アクセスする為のツールとしては、UNIX 上では fetchmail、Windows2000 上では Winbiff があります。Winbiff は オレンジソフトと言う会社のシェアウェアですが、Windows 上のメーラで初めて IPv6 を喋ったソフトです。私もベータ版のテストをしました。テスト環境に qpopper を利用していたのは私だけらしいです;-)。ちょっとは貢献できたみたいです;-)。

 と、言う事で、Windows2000 を使っている人は是非、Winbiff を試してみてください。UNIX の人はと言うと、fetchmail になるわけですが、ssh のポートフォワードと合わせてお話してしまいましょう。尚、fetchmail は、packages/ports からインストールすると既に IPv6 対応になっています。

 fetchmail で必要なのはまずは、.fetchmailrc ですが、ポートフォワードしない場合は以下の設定で OK です。

----------------
# default setup
defaults        proto pop3
                nokeep
#               fetchall

# v6.running-sog.net NO SSH
poll    v6.running-dog.net
        user    "takachan"
	pass	"password" 
----------------
 ssh でポートフォワードする場合は以下の様にします。これを仮に .fetchmailrc_v6 と言う名にしておきます。
----------------
# default setup
defaults        proto pop3
                nokeep
#               fetchall

# v6.running-sog.net SSH prot foard
poll    localhost port 11112
        user    "takachan"
        pass	"password"
        smtp	localhost
----------------
 後は、ssh の起動ですが、以下の様な感じでコマンドラインを叩きます。
----------------
# ssh -l takachan -f -t -x -C -L 11112:v6.running-dog.net:110 v6.running-dog.net /bin/cat
----------------
 簡単に説明すると、ユーザ名 takachan で v6.running-dog.net の 110 に接続に接続するのですが、その時にはローカルホストの 11112 を ssh で利用します。と、言う感じです。-f を付けているのでバックグラウンドで起動します。

 これに fetchmail と組み合わせて以下のスクリプトを作成します。case ごとに .fetchmailrc を作成すれば、一つのコマンドでアッチャコッチャから POP 出来る様になります。

----------------
#!/bin/sh

case $1 in
'v6' )
   if [ -f $HOME/.fetchmailrc_v6 ] ; then
      ssh -l takachan -f -t -x -C -L
 11112:v6.running-dog.net:110 v6.running-dog.net /bin/cat
      /usr/local/bin/fetchmail -s -f $HOME/.fetchmailrc_v6
      pid=`/bin/ps -ax | grep -v grep | awk '{print $1}'`
      /bin/kill -15 $pid
   fi
   ;;
* )
    echo "usage: fmpop.sh {v6|etc}"
    ;;
esac
----------------
 簡単に説明すると、ssh をバックグラウンドで起動して経路を確保します。fetchmail では、-f で .fetchmailrc を指定して起動します。-s は "サイレント" モードです。ssh のプロセスを拾って kill しておしまいです。ずっと繋げっぱなしにしておく必要が有りません。

 とまぁ、こんな感じで、IPv4、IPv6 ともにセキュアに POP 出来る様になったかと思います。良かったですね。ふふふ。今回は、この環境において、自宅の IPv6 な POP サーバから、インタロップの SHOWNET を利用して、IPv6 な環境下でメールの読み書きを行いました。なかなか早くでグーでしたよ;-)。

 皆さんも NotePC を持ち出して、外からアクセスする時には是非使ってみてください。生パスワードを流さない apop はパスワードだけが暗号化されています。会社の極秘のメールなどは ssh のポートフォワードで持ってきた方がより有効的でしょう。



Copyright (c) 1997-2004 takachan@running-dog.net All Rights Reserved.