Debian の場合、authdaemon に頼るようになっているので、そこで結構とまどった。というわけでメモ。
/etc/courier/imapd のIMAP_CAPABILITY に AUTH=CRAM-MD5 を足す。このファイルの AUTHMODULES に追加しても仕方ないので注意。
IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT AUTH=CRAM-MD5"
/etc/courier/authdaemonrc を書き換える。
ディフォルトは pam でしか認証しないようになっているので、authmodulelist に authcram を足しておく。
authmodulelist="authpam authcram"
の様な感じ。ここで daemon の設定は終わりなので、
/etc/init.d/courier-imap restart
/etc/init.d/courier-authdaemon restart
次に /etc/courier/userdb に IMAP 用のパスワードを書く。このファイルがないなら 600 root.root で作っておくこと。まず、
sugi home=/home/sugi|mail=/home/sugi/Maildir|uid=2002|gid=2002
と、基本的なユーザ情報を書いておいてから、
userdbpw -hmac-md5 | userdb sugi set imap-hmac-md5pw
としてパスワードを追記する。その後、
makeuserdb
で db に変換する。
(2005/03/12追記: proxy.c が消滅したので ucspi-proxy に変更。 コンバータの関係でフォーマットがずたずただったのを訂正。 少し説明を追加。)
サーバ管理やらデバッグやらしていると、たまにあるマシンのポートを他の マシンのポートへそのまま中継したくなることがある。 ここではいくつかの方法を紹介……というかメモしておく。
ucspi-tcp と言うのは、DJB 作のコンパクトな inetd みたいなものだ。 inetd と違って 1 つのポートしか listen 出来ないが、セキュリティへのの配慮や 環境変数を使った情報の受渡しなどの機能が有る。実際に qmail や djbdns を 動かすために使われているのはこれだったりする。
能書きはいいとして、以下のようなコマンドを実行すればOK.
tcpserver -RHl0 <bindaddress> <listenport> \ tcpclient -RHl0 <targethost> <targetport> ucspi-proxy
ログが取りたい時は同じく ucspi-tcp パッケージに含まれる recordio が便利。
tcpserver -RHl0 <bindaddress> <listenport> \ tcpclient -RHl0 <targethost> <targetport> recordio ucspi-proxy
として間に挟むと全部 stderr に dump してくれる。
netcat は元々 @stake という会社で開発されていたのだけれど、 最近 GNU netcat という名前で継続しているみたい。 telnet のかわりになったり、ポートスキャナとして使えたり 簡易 inetd になったりする汎用ソフトウェア。 @stake 在りし日は "network knife" と紹介されていたりした。
ただ、ucspi-tcp と違って UDP が扱えるというメリットがあるけれど、 listen モードにしても fork してくれないので、1回接続を処理すると終わってしまう。 ともあれブリッジの仕方。
新しいバージョンの GNU Netcat では tunnel オプションが追加されたのでお手軽に出来る。
nc -p <listenport> -L <targethost>:<targetport>
古い netcat の場合は named pipe を作れば出来る。
mknod ncloop p nc -l -p <listenport> < ncloop | nc <targethost> <targetport> > ncloop
こちらはログ取りたいなら tee を挟むとか(ほんとか?)。
iptables -t nat -A PREROUTING -j DNAT -p tcp -i <interface> \ --dport <port> --to <target-addr> iptables -I FORWARD -j ACCEPT -p tcp -i <in-interface> \ -o <out-interface> --dport <port>
ipmasqadm portfw -a -P tcp -L <bindaddress> <listenport> \ -R <targetaddres> <targetport>
何にでもタブ。画面の狭い Windows では使えそう。
うー。巧く動かない……
FAQ が日本語で読める。他にも色々。
かなり良くなってます。メニューの背景や AI グラフの背景はざっと見たところ完璧。その上、嬉しいことに SSTP サーバも今までが嘘のように動く! (somberlain が電波を弾くのは仕様じゃなかったのですね……)
しかしッ
fixme:bitblt:X11DRV_BitBlt potential optimization - client-side DIB copy
fixme:bitblt:X11DRV_BitBlt potential optimization - client-side DIB copy
fixme:bitblt:X11DRV_BitBlt potential optimization - client-side DIB copy
一文字を書く度に上のようなエラーが出て、メッセージの出力がもの凄く遅くなってしまった。描画方法変えたのだろうか?
うぅー。どちらを使うべきか……
このエラーが出ている間、全ての画面描画が遅くなる。厳しいな。
この話題が出るたびごたごたするなぁ。今から使う人が入りやすいようにはなっていないし、仕方のないことなのだろうけど。特に「虚のさくら」は初めて使うひとには辛すぎるだろう……
おお! 新しいネタだ。
「全力を尽くす」といっていただけはありますね。