- PR -

qmail 認証とqmailadmin

1
投稿者投稿内容
Seichan
会議室デビュー日: 2006/08/09
投稿数: 2
投稿日時: 2006-08-09 23:52
はじめまして。

@itや、別の参考サイトを探して、下記のようなセットアップコマンドをまとめてみました。
が、実際にやってみると、エラーとなりできません。

エラー内容:pop3で、認証できず、受信すらできない。
      qmailadminにて、cgiが動作する領域に設置しているが、文字化け?っぽい感じで何もできない。

3週間ほど悩み、なんども確認していますが、できません。

あいまいな表現しかできず、もうしわけないですが、よろしければお力をお貸しください。
また、後日qmailでサーバを建てる人の道しるべになればと思います。

#############################################################################################
# qmail メール鯖
# tcpserver アクセス制限
# vpopmail バーチャルドメインでメール鯖
# checkpassword pop3認証
# pbs4q pop before smtp
# ezmlm ML
# autoresponse ML自動返信
# qmailadmin ML管理ツール
#############################################################################################


#############################################################################################
●パッチとqmail本体wget。

動かすグループ作成
mkdir /var/qmail
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
useradd -g nofiles -d /var/qmail -s /bin/false qmaild
useradd -g nofiles -d /var/qmail -s /bin/false qmaill
useradd -g nofiles -d /var/qmail -s /bin/false qmailp
groupadd qmail
useradd -g qmail -d /var/qmail -s /bin/false qmailq
useradd -g qmail -d /var/qmail -s /bin/false qmailr
useradd -g qmail -d /var/qmail -s /bin/false qmails

wget http://cr.yp.to/software/qmail-1.03.tar.gz (本体)
wget http://cyberam.dip.jp/linux_server/mail/qmail-date-localtime.patch (qmailの生成するヘッダー内の日付をローカルタイムに修正するためのパッチ)
wget http://www.ckdhr.com/ckd/qmail-103.patch (DNSに関するUDPパケットが512バイトを超えると処理できなくなるためのパッチ)
wget http://qmail.org/qmail-smtpd-relay-reject (不正中継対策のパッチ)

パッチ当て、インストール
tar xvfz qmail-1.03.tar.gz
cd qmail-1.03/
patch -p1 < ../qmail-date-localtime.patch
patch -p1 < ../qmail-103.patch
patch -p1 < ../qmail-smtpd-relay-reject
make setup
make check
./config-fast exsample.com

コントロールファイル
/var/qmail/control
・defaultdomain
exsample.com
・locals
localhost
exsample.com /*ホスト名をDNSにて設定いないため、この二つのみ。
・rcpthosts
localhost
exsample.com
.exsample.com
・me
exsample.com
・plusdomain
exsample.com /*vpopで2ドメインする場合はここにもうひとつexsample2.com の設定が必要・・・?

セキュリティホール対策(ある攻撃が行なわれるとqmail-smtpdがOSのリソースを使いきってしまうというもの)
cd /var/qmail/bin
mv qmail-smtpd qmail-smtpd2
vi qmail-smtpd
#/bin/sh
ulimit -d 1024
exec /var/qmail/bin/qmail-smtpd2 ${1+"$@"}
chown root qmail-smtpd
chgrp qmail qmail-smtpd
chmod 755 qmail-smtpd

sendmail停止
/etc/rc.d/init.d/sendmail stop

サーバ起動時に起動しないようにする。
mv /etc/rc.d/rc2.d/S80sendmail /etc/rc.d/rc2.d/_S80sendmail
mv /etc/rc.d/rc3.d/S80sendmail /etc/rc.d/rc3.d/_S80sendmail
mv /etc/rc.d/rc5.d/S80sendmail /etc/rc.d/rc5.d/_S80sendmail

sendmailラッパーで置き換え
cd /usr/sbin
mv sendmail sendmail.dist
chmod 0 sendmail.dist
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

qmail起動スクリプdをコピー、実行、Maildir形式に書き換え。
cp /var/qmail/boot/home /var/qmail/rc
/var/qmail/rc &
vi /var/qmail/rc
    qmail-start ./Maildir/ splogger qmail

ユーザ追加時にMaildir形式になるようひな形追加。
/var/qmail/bin/maildirmake /etc/skel/Maildir

psで/var/qmail/rc をkillして
ps -aef | grep qmail
/var/qmail/rc &


#############################################################################################
●tcpserverをインストール
wget ftp://ftp.jp.qmail.org/qmail/ucspi-tcp-0.88.tar.gz

tar xvfz ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
make setup check


#############################################################################################
●vpopmailをwget
wget http://inter7.com/vpopmail/vpopmail-5.2.1.tar.gz

vpopmailを動かすユーザ、グループを作成。
groupadd -g 89 vchkpw
useradd -g vchkpw -u 89 vpopmail

インストール
tar zxvf vpopmail-5.2.1.tar.gz
cd vpopmail-5.2.1
./configure --enable-default-domain=exsample.com --enable-admin-email=root@exsample.com --enable-roaming-users=y --enable-relay-clear-minutes=10
   --enable-default-domain=areas.homelinux.net 初期値となるドメインを指定、これを指定するとこのドメインはユーザ名のみでPOPできる
(VirtualDomainは通常user@areas.homelinux.netがPOPアカウントになる)
   --enable-roaming-users=y このオプションでPOP Before SMTPが有効になる
   --enable-relay-clear-minutes=10 このオプションにより10分間POPで取得したIPを保持しSMTP接続を許可する
make
make install-strip

アクセス制限の設定
cd /home/vpopmail/etc
vi tcp.smtp
   192.168.1.1-100:allow,RELAYCLIENT="" # ←リレーを許可するIPを記述。

DBを作成
/usr/local/bin/tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp

crontab -eで1分おきにDBを更新する。
   1 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null


#############################################################################################
●checkpasswordをwget
wget http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz

解凍
# tar xvfz checkpassword-0.90.tar.gz
# cd checkpassword-0.90

インストール先を/usr/local/binに変更する。
# vi conf-home
   /usr/local
# make
# make setup check


#############################################################################################
●pbs4qをwget
wget http://mambo.kuhp.kyoto-u.ac.jp/~masahiro/pbs4q/pbs4q-0.2.1.tar.gz

解凍
tar xvfz pbs4q-0.2.1.tar.gz
cd pbs4q
make
make install

ここでqmaildのidを確認。
id qmaild

tcpserver経由のqmail起動ファイルを作成。
/etc/rc.d/init.d/qmail に新規ファイルで作るのが普通です。

#!/bin/sh
#
# qmail: /var/qmail
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin

[ -f /var/qmail/rc ] || exit 0

case "$1" in
start)
# Start daemons.
echo "Starting qmail."
csh -cf '/var/qmail/rc &'
tcpserver -v -u 511 -g 501 -x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp /usr/local/bin/pbs4q2_smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &

tcpserver -v 0 pop3 /var/qmail/bin/qmail-popup exsample.com /usr/local/bin/checkpassword /usr/local/bin/pbs4q1 /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 3 &

echo
touch /var/lock/qmail
;;
stop)
# Stop daemons.
echo "Shutting down qmail."
PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
echo
rm -f /var/lock/qmail
;;
*)
echo "Usage: S99qmail {start|stop}"
exit 1
esac

exit 0


qmailに実行属性をつける。
chmod 755 /etc/rc.d/init.d/qmail
それぞれのランレベルで起動されるように、起動スクリプトとリンクを張る。
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc2.d/S99qmail
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc3.d/S99qmail
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc5.d/S99qmail


#############################################################################################
●メーリングリスト用プログラムezmlmとパッチをwget。
wget http://cr.yp.to/software/ezmlm-0.53.tar.gz
wget http://www.ezmlm.org/archive/0.40/ezmlm-idx-0.40.tar.gz

パッチあてとインストール
tar xvzf ezmlm-0.53.tar.gz
tar xvzf ezmlm-idx-0.40.tar.gz

ezmlm-idxをezmlmディレクトリに移してパッチを当て、makeします。
移動の際に同じファイル名のものがでますが全部上書きして構わないようです。
mv ezmlm-idx-0.40/* ezmlm-0.53/
cd ezmlm-0.53
patch < idx.patch
make clean
make

自動応答メッセージなどのファイルを日本語のものにしてインストール。
cp ezmlmrc.jp ezmlmrc
make setup


#############################################################################################
●自動応答用プログラムautoresponseをwget。
wget http://inter7.com/devel/autorespond-2.0.2.tar.gz

解凍、インストール、設定。
tar zxvf autorespond-2.0.2.tar.gz
cd autorespond-2.0.2
gcc -O2 -o autorespond autorespond.c
strip autorespond
cp autorespond /usr/local/bin/
chown root.root /usr/local/bin/autorespond
chmod 555 /usr/local/bin/autorespond


#############################################################################################
●管理ツールのqmailadminをwget
wget http://inter7.com/qmailadmin/qmailadmin-1.0.6.tar.gz

tar zxvf qmailadmin-1.0.6.tar.gz
cd qmailadmin-1.0.6
./configure --enable-htmldir=/home/vpopmail/public_html --enable-cgibindir=/home/vpopmail/public_html/cgi-bin --enable-cgipath=/cgi-bin/qmailadmin

enable-htmldir でApacheのDocumentRootと同じ場所を指定(例:/home/wwwroot)
enable-cgibindir でApacheのcgi-binの場所を指定(例:usr/local/apache/cgi-bin)
enable-cgipath は/cgi-bin/qmailadminのままで普通は問題が無い
ApacheでExecCGIを忘れずに、そうしないとCGIが稼動しません。

make
make install-strip

#############################################################################################
●WebMailソフトSqWebMail

./configure --enable-mimecharset=iso-2022-jp --enable-unicode=iso-2022-jp --enable-imagedir=/home/image --enable-cgibindir=/home --enable-imageurl=/image --enable-draftname=Draft --disable-autorenamesent
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2006-08-10 00:04
何をしたくて以下の手順、環境を構築したのか分からないと何が正しくて
何が抜けているのか、が他人にはわからないとおもいますが、どうでしょう。

また、目的が違えば手段も異なりますので、そちらが明確にならないと、
他の人の参考、というのは難しいと思われます。
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2006-08-10 00:07
引用:

また、後日qmailでサーバを建てる人の道しるべになればと思います。



qmailはもう人に勧められるようなものではありませんし、新規にインストールすべきではないと思います。

参考: http://ya.maya.st/d/200602c.html#s20060225_1
Seichan
会議室デビュー日: 2006/08/09
投稿数: 2
投稿日時: 2006-08-10 00:27
せん様、スフレ様 返信ありがとうございます。

メールサーバ構築が目標です。
構築する際に、MLと複数ドメイン管理とGUIで簡単に管理、不正中継防止ができればと思います。

qmailの参考記事、ありがとうございます。
一読してみました。
qmailは構築参考サイトを見る限りですと、堅牢だという評価?が多数あったため、今回qmailで構築しようと思っていました。

MLと複数ドメイン管理とGUIで簡単に管理、不正中継防止 ができ、お勧めの物がありましたら、ご教授いただければと思います。(ソフト名など)
(構築方法は調べて、試して、できなかったらその時質問しにきます><;;

以上、よろしくお願いします。
あるかな
大ベテラン
会議室デビュー日: 2003/11/04
投稿数: 245
投稿日時: 2006-08-10 09:14
おはようございます。

いろんなことをいっぺんにやろうとして、結果的に出来ない、
ということになっている方を、よくみかけます。

1つずつ構築していったらどうでしょう?
まずは UNIX アカウントでのシンプルな qmail 環境の構築まで出来ているか、など。

提示されている内容をみると、ミドルウェアの構築だけで、
どうやってドメイン追加しているかなどがわからないので、
そこら辺で手順間違えているとか?設定ファイル足りない?
という、曖昧な回答しか出来ないような。。。

# 今からだと qmail よりも postfix だったりなんでしょうね。
# 私も qmail 卒業したいなぁ。。。
anights
ぬし
会議室デビュー日: 2003/05/22
投稿数: 277
お住まい・勤務地: 東京
投稿日時: 2006-08-10 10:18
引用:

Seichanさんの書き込み (2006-08-09 23:52) より:
エラー内容:pop3で、認証できず、受信すらできない。
      qmailadminにて、cgiが動作する領域に設置しているが、
文字化け?っぽい感じで何もできない。


pop3ですけどこの内容から判断するのは難しいでしょうねぇ。
ログとか見てます?
どうやってテストしました?
POP before SMTP使わない場合は試しました?
まず、切り分けしないとどうにもならないのでは?
apache?の設定とかも全然分かりませんからcgiの動作がうんぬんって言われても
書いてある内容からじゃ分かりませんよ。

あとは感想など。。。

ざっと見ましたけどこれは古いRedHat前提ですか?
最近のディストリビューションであればこのままやってもまずコンパイルすら通らないので
今の時期にまとめたものとしてはう〜んって感じなんですが。
有名なerrnoがらみもそうですが、ezmlmなんてlog関数がlibm(math.h)の
log(3)とぶつかったりしますけど。

あとは、デーモン用のユーザとか作るときはuseraddに-Mオプションは使いませんか?

内容的にはchkconfigありきのシステムっぽいですがsendmail止めるなら
# chkconfig sendmail off
が一般的であってシンボリックリンクをmvするってのはスマートではないのでは?
なので制御スクリプトもchkconfigの作法に則って作成して
# chkconfig --add qmail
とかするのがスマートかと思いますが如何でしょう?
http://blog.unknown.jp/mt/archives/000243.html

ちなみに所々example.com以外のドメインが記載されていますがそれは分かってて書いているんですよね?
_________________
桃李不言 下自成蹊
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2006-08-10 12:56
vpopmail使うのに何でcheckpasswordを入れたのかがよく判らないのですが。

imap使うとか、その他何かしら特別な理由が無い限り、通常vpopmailを
使う際のPOPの認証はvchkpwで行なうものだと思いますよ。
POP before SMTPもvpopmailで対応してますし。

いろいろなサイトを参考にしすぎて、余計に混乱してるような気がします。
あれもこれも全部取り入れれば良いという訳でもありませんので、
もう一度自分が必要な機能の洗い出しと、それを満たすソフトの選定を
やり直してみてはいかがでしょう?
1

スキルアップ/キャリアアップ(JOB@IT)