qmail

POP/POP Before SMTP

一応完成したサーバではあるが、家からメールを研究室のサーバで送りたいと考えると、問題が発生する。アクセスルールの上ではSPAMを送ろうとしている輩と同じとみなされるのである。解決法としてはpop before SMTP か 認証ありのSMTPサーバ を使うことになるが、クライアントの対応が不要な前者を使うことにする。

「POPが成功した場合、クライアントのIPアドレスを記憶しておき、一定時間SMTPによる送信を許可する。」

と言う考えがpop before smtp である。たまたまクライアントがPOPした後一定時間内に、たまたま同じIPをSPAMerが取得し、 たまたまこのサーバのアドレスを知っていた場合においてのみセキュリティホールとなるが、通常利用では問題ないと考えられる.

	
	まず
	pop5smtp.tar.gz をとってきてインストール
	解凍し
	make
	make install
	起動設定のところで
	qmail-smtpdの前に /var/qmail/bin/pop5smtp を追加する。
	qmail-pop3dの前に /var/qmail/bin/pop5smtp を追加する。
	前段にこれをかませると言った表現の方がいいかも
	以下のコマンドで初期設定する。
	touch /var/qmail/pop5smtp.db 
	chown qmaild /var/qmail/pop5smtp.db 
	chgrp nofiles /var/qmail/pop5smtp.db 
	chmod 664 /var/qmail/pop5smtp.db 
	chgrp nofiles /var/qmail/bin/pop5smtp 
	chmod 2711 /var/qmail/bin/pop5smtp 
	これで設定完了パーミッション注意!はまった.
	
	/var/qmail/bin/pop5smtp -l
	で、アクセス一覧が見える。

6.APOP化

	POPは仕様上パスワードが平文で流れるので、悪意を持った者にパスワードをとられる
	おそれがある。
	また、UNIXのログインパスワードとpop3のパスワードを変えておくとセキュリティ的にも
	よりよい設定となる。
	今回はAPOP before SMTP 化する事にした。
	今回使ったソースは checkpw-0.50.tar.gz
	である。
	作者が言うにはpop3 とAPOP の切り替えもできるらしい
	さらにパスワードがログインパスワードと別に設定できるらしい。
	解凍する
	
	make
	make setup
	make check
	を行った後、
	両用させる場合はqmail に対し、パッチをあてる必要がある。
	/tmp/qmail-1.03/で
	patch < ../checkpw-0.51/qmail-popup-auth.patch
	とした後、コンパイルする。もちろん変更されたプログラムをコピーする。
	make installでいけるかも
	パッチを本体に当てると障害時に原因の切り分けが難しくなる.
	また、qmailにパッチをあてない方法もあるようだが今回はやめる。
	
	起動設定内で /bin/checkpassword の代わりに この中の selectcheckpw.shを書き込む。
	これで設定は完了。
	ユーザー側では
	~/Maildir/.password 
	と言うファイルを作って、中にパスワードを書く。また、chmodでパーミッションを 600にあわせる。
	これで、pop3 APOP ともに 使え、パスワードも専用のものが使える。

6.1 APOPその後

	再インストール時に checkpw-0.70.tar.gzへ バージョンアップした.
	この機会を利用してマルチアドレス対応をはかる.
	説明によると起動スクリプトを
	tcpserver -vRH 0 110 /var/qmail/bin/qmail-popup `cat /var/qmail/control/me` \
	/bin/checkpw sh -c '
	if [ -n "$EXT" ]; then DASH="-"; fi
	exec /var/qmail/bin/qmail-pop3d Maildir"$DASH""$EXT"
	'
	とすればよいとあるが,動かない.
	改良して
	### any-Maildir APOP & POP without loginpass 
       /usr/local/bin/tcpserver -v 0 pop3 /var/qmail/bin/qmail-popup pisces.sys.cs.tuat.ac.jp \
       /etc/selectcheckpw.sh /etc/pop.sh 2>&1|/var/qmail/bin/splogger pop3d  &
       echo -n ' TCPSERVER(pop3-anymaildir)'
	
	で起動し,/etc/pop.shを
	
	#!/bin/sh
	if [ -n "$EXT" ]; then DASH="-"; fi
	exec /var/qmail/bin/pop5smtp /var/qmail/bin/qmail-pop3d Maildir"$DASH""$EXT"
	とした.シェルの構文の問題らしい.

9.tips

  拡張アドレス

	 qmail上ではユーザーは複数のアドレスを持つことができる。
	 ユーザー名 fooは
	  foo-XXX@ と言うメールアドレスを自由に使うことができる。(XXXは任意) 
	  使用する場合には、ホームディレクトリ内に .qmail-XXX と言うファイルを作成し、
	  中に転送アドレスか、格納するディレクトリ名を書き込む。
   
   個人的なメーリングリストを作る場合
	 ユーザーhogeが作る場合
	 アドレスは以下の構文とする。XXXは任意
	   hoge-XXX@foo.ac.jp
	  ホームディレクトリ内で.qmail-XXX というファイルを作り
	  中に、 メンバーのアドレスの頭に & を付けて1行ごとに書く。
	  qmailは hoge-XXX宛てのメールを受け取った場合
	  ユーザーhogeのホームディレクトリ内の .qmail-XXXを見て配送する。 
	  &で始まる行は転送なので、メンバーに対しての転送となる。 

  不正転送チェック

	 実は一部の不正転送チェックに引っかかることが判明
	 telnet mail-abuse.org
	 とやると、%付きアドレスの部分でひっかっかる。
	 これは、qmailが最後の@の後ろを見て、拒絶する理由がない場合は
	 次の処理へ送り、OKを返すためである。
	 ちなみに、次の段階ではしっかり拒絶するので不正転送は行われない。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Sat, 11 Jun 2005 10:51:29 JST (4850d)