qm-pop3d-pw ------------ qmailのPOP3認証用のパスワードチェックプログラムです。 特徴 pop3/apopの認証が可能です。 別途用意されているパッケージを利用することでPOP before SMTPに対応することが出来ます。 個人が複数のPOP3/APOP対応のメールボックスの設定をすることが出来ます。 users/assignは使用されません。(qmail-getpwを利用します) 設定 $qmail_getpw はqmail-getpwのファイル(フルパス)で書いて下さい。 $syslog_type はsyslogがunixドメインソケットを利用しているかudpを利用しているかでそれぞれ'unix'か'inet'に変更して下さい。 $syslog_facility はsyslogに出力する場合のfacilityを指定します。 $syslog_ident はsyslogに出力する場合のidentを指定します $qmpop_prefix は設定ファイルのプレフィックスを指定します。(.qmpopで普通は問題ないと思います) コンパイル・インストール方法: perlスクリプトですので、適当にコピーして実行権限を付けて下さい。 # cp qm-pop3d-pw.pl インストール先Directory APOPでDigest::MD5を使用します。 syslogにログを出力する場合は、Sys::Syslogが使用できる環境でなければいけません。 起動オプション 基本的には tcpserver 0 pop3 /var/qmail/bin/qmail-popup YOURHOST \ /usr/sbin/qm-pop3d-pw.pl /var/qmail/bin/qmail-pop3d& 等と、checkpasswordの変わりに使用できます。(inetd経由でも利用できますが、) 以下のオプションを利用することが出来ます。(/usr/sbin/qm-pop3d-pwと/var/qmail/bin/qmail-pop3dとの間に書いて下さい) -l シスログに認証ログを書き出します。 -r uid gid command 認証が成功したら、commandをuid/gid権限で実行します。 -s uid gid qmail-getpwをsetuid uid;setgid gidして実行します。 また、環境変数としてPOP3USER_NAME=setuid/gidしたユーザー名 POP3USER_ACCOUNTNAME=利用者アカウント名 POP3USER_UID=setuid/gidしたユーザー名 POP3USER_GID=setuid/gidしたユーザー名 POP3USER_HOME=利用者ホームディレクトリー POP3USER_DASH=ほとんどの場合-(qmail-getpwのdash) POP3USER_EXT=-の後の部分(qmail-getpwのext) POP3USER_REMOTEIP=アクセス元IPアドレス(環境変数TCPREMOTEIPの値) POP3USER_REMOTEHOST=アクセス元ホスト名(環境変数TCPREMOTEHOSTの値) POP3USER_CONFFILE=参照した設定ファイル POP3USER_AUTH=認証方法 POP3USER_MAILDIR=利用者メールディレクトリー POP3USER_MAILADDR=利用者メールアドレス POP3USER_SMTPAUTH=利用者認証方法(基本的にはPOP-before-SMTPないしはno-auth) を設定します。 設定ファイル .qmailを.qmpop($qmpop_prefixで指定された物)に置き換えた物になります。(存在しなかった場合のdefaultのサーチは行われません) 例 1) POPユーザー名 ituki ユーザーitukiが存在 : ~ituki/.qmpop ユーザーitukiが存在しない : ~alias/.qmpop 2) POPユーザー名 ituki-ext ユーザーitukiが存在 : ~ituki/.qmpop-ext ユーザーitukiが存在しない : ~alias/.qmpop-ext .qmpopファイルは、オーナー以外に読み込み・書き込み・実行権限があってはいけません。 .qmpopファイルは、オーナーに読み込み権限があり、実行権限があってはいけません。 .qmpopファイルは複数行からなり、行数によって内容が決まっています。(4行目の終わりに改行を含めてはいけません) 1: 認証方法(POP3/APOP/POP3-APOP/APOP-POP3):パスワード暗号化方法(RAWのみ):パスワードコード:メールボックス(相対指定可能) ※:区切りです POP3 POP3認証のみを行います。 APOP APOP認証のみを行います。 POP3-APOP POP3認証を行い、失敗したらAPOP認証を行います。 APOP-POP3 APOP認証を行い、失敗したらPOP3認証を行います。 RAW パスワードコードをそのまま使用します。 2: 利用者メールアドレス 3: 利用者認証方法 例 APOPで認証し、パスワードはpassメールディレクトリーは~/Maildir/ メールアドレスがituki@fc.toでPOP-before-SMTP(別途プログラムが必要)を行う 1: APOP:RAW:pass:Maildir 2: ituki@fc.to 3: POP-before-SMTP 転載について このプログラム・テキスト等の転記・転載・再配布等は一切禁止します。 どうしても転載・転記・再配布等行いたい場合 ituki@fc.to までメールでご相談下さい。 著作権について TimePlant/Ituki Kirihara/NIはこのプログラムを使った事によって生じた一切の責任を負いません。 各自の責任で使用して下さい。 使用に関して、特に金銭的請求をすることはありません。 これらのプログラムの著作権は、TimePlant/Ituki Kirihara/NIが保有しています。 このプログラムにパッチを当てた物を公開する場合、パッチファイルとして公開して下さい。 (オリジナルの部分はなるべく公開しないで下さい) サポート メール ituki@fc.to にて受け付けております。バグ・意見等ありましたらどうぞ。 ただ、時間がないため、対応できるかはあやしいです(^_^; 以下の場所で関連情報等を公開しています http://fc.to/ituki/ このホームページは Ituki Kiriharaの趣味のページです(^_^; バージョン履歴 version 0.0.1 2002/05/05 公開。 (c) Copyright 2002 TimePlant/Ituki Kirihara/NI All rights reserved. おまけ perlでSys::Syslogモジュールを使うのはちょっと面倒です。 うまく設定できていないと、-lオプションを付けると認証できなくなります。 # cd /usr/include # h2ph * # cd /usr/include/sys # h2ph * を行って、syslog.phを作成しておいてください。 また、Syslog.pmの一部のバージョンではうまく動かないことがありますが、 そのような場合、connect関数内にある、my $syslog = &_PATH_LOGをmy $syslog = &_PATH_LOG()とすると動くことがあります。