|
概要
Qmailの本体、SMTP、POP3ようの制御スクリプト(qmail, qmail-smtpd, qmail-pop3d)を準備します。smtpdとpop3dはtcpserverを経由して起動します。起動スクリプトは全て/etc/rc.d/init.d/に配置します。
qmail-smtpd用の設定ファイルの準備
メールサーバが踏み台にされないように、tcpserverのsmtpd用ルールファイルを作成します。テキストファイルにルールを記述したルールをtcpserverが使用するcdb形式に変換します。ファイル名はそれぞれ、
元テキスト: /etc/service/tcp.smtp
CDBファイル: /etc/service/tcp.smtp.cdb
|
とします。
tcp.smtpの作成
# mkdir /etc/service
# vi /etc/service/tcp.smtp
|
ループバックからのみ環境変数RELAYCLIENTをセットしてallow、それ以外の場合は単にallowに設定します。
127.0.0.1:allow,RELAYCLIENT=""
:allow
|
これでローカルからは認証無しでメールの送信可能、外部からはこのサーバへのメールは常に受付、送信は認証が必要になります。
メールサーバだけでなくローカルネットワーク全体(192.168.0.0./24とします)を認証不要にしたい場合は次のように設定します。
127.0.0.1:allow,RELAYCLIENT=""
192.168.0.:allow,RELAYCLIENT=""
:allow
|
tcp.smtp.cdbの作成
tcp.smtpからtcp.smtp.cdbを作成します。
# tcprules /etc/service/tcp.smtp.cdb\
> /etc/service/tcp.smtp.tmp < /etc/service/tcp.smtp
|
書式は次の通りです。
tcprules 生成するcdbファイル 一時ファイル < ルールファイル
|
qmailの作成
Qmail本体の起動スクリプト/etc/rc.d/init.d/qmailを作成します。Qmail本体のデーモンはqmail-startで起動します。書式は次の通りです。
起動書式:qmail-start デフォルト配送先 splogger log_prefix [log_facility]
デフォルト配送先はMaildirなら./Maildir/
log_prefix はログに付ける接頭辞
log_facility(省略可能)にはsyslogファシリティを数字で指定
log_facility を省略した場合のデフォルトは、「2 :mail」になる
例)qmail-start ./Maildir/ splogger qmail &
|
作成済みのqmailの制御スクリプト:/etc/rc.d/init.d/qmail
tcpserverの説明
前述の通りsmtpdとpop3dはtcpserver経由で起動します。tcpserverの書式は次の通りです。
tcpserver options host port program [ arg ... ]
opetions
-v すべてのメッセージを出力
-u uid uidのユーザで実行
-g gid gidのグループで実行
-P パラノイドを行わない(default)
-H DNSを逆引きをしない
-R identしない
-x cdb cdbデータベースで制御する
-c limit 最大同時接続数をlimitに設定する(default:40)
-P 逆引き、正引きで相手の正当性を調査する
大文字のオプションは小文字にすると逆の意味になります
host
指定しない場合は0
port
ポートまたはサービス名
|
qmail-smtpdの作成
Qmail Smtpdの起動スクリプト/etc/rc.d/init.d/qmail-smtpdを作成します。Qmail Smtpdのデーモンはqmail-smtpdで起動します。書式は次の通りです。
起動書式:qmail-smtpd サーバ名 パスワードチェックプログラム trueを返すプログラム
tcpserverを使用して起動する例:
tcpserver -H -R -u $QMAILDUID -g $QMAILDGID \
-x /etc/service/tcp.smtp.cdb 0 smtp \
qmail-smtpd $MYSVNAME /bin/selectcheckpw /bin/true \
2>&1 | /var/qmail/bin/splogger qmail-smtpd &
|
selectcheckpwは必要に応じて別の認証プログラムに変更出来ます。最後の行は標準出力、エラー出力をsploggerを使ってsyslogに出力しています。
作成済みのqmail-smtpdの制御スクリプト:/etc/rc.d/init.d/qmail
qmail-pop3dの作成
Qmail POP3Dの起動スクリプト/etc/rc.d/init.d/qmail-pop3dを作成します。Qmail POP3Dのデーモンは、POPユーザ名とパスワードを待つqmail-popup、実際のPOPセッションを司るqmail-pop3dから成ります。それぞれの書式は次の通りです。
起動書式:qmail-popup サーバ名 パスワードチェックプログラム
起動書式:qmail-pop3d Maildir名
Maildir名は通常は単に "Maildir"
tcpserverを使用して起動する例:
tcpserver -H -R -v 0 pop3 \
qmail-popup $MYSVNAME /bin/selectcheckpw \
qmail-pop3d Maildir \
2>&1 | splogger qmail-pop3d &
|
$MYSVNAME はメールサーバ公開名です。
作成済みのqmailの制御スクリプト:/etc/rc.d/init.d/qmail-pop3d
制御スクリプトの登録
作成した、qmail, qmail-smtpd, qmail-pop3dは/etc/rc.d/init.d/に配置してあるとします。アクセス権を755に設定して、サーバの起動時に自動的に起動するように設定します。
# chmod 755 qmail*
# chkconfig --add qmail
# chkconfig --add qmail-smtpd
# chkconfig --add qmail-pop3d
|
|
|