【緊急!!!】 カニが大安売り!!!!

おすすめ! レンタルサーバ

VPSサーバ 最強!!!!!

Webショップ開くならここかな!

おすすめ!スタンダードなレンタルサーバ

ここもお勧め!費用×仕様 最高!

女の子でも簡単!初心者向けレンタルサーバ

企業向け 堅い&しっかりレンタルサーバ

Recent Comment

Recent Trackback

スポンサーサイト

一定期間更新がないため広告を表示しています

  • 2010.10.20 Wednesday
  • -
  • -
  • -
  • -
  • -
  • by スポンサードリンク

Redhat9以降、FedoraCoreなどの対応

glibcのバージョンが 2.3.1 以降の場合にはエラーが発生するため
コンパイル前に多少手入れが必要

error.h を書き換える

vi qmail-1.03/error.h
----------------------------
extern int errno;
----------------------------

この行を

----------------------------
#include <errno.h> ←<>は半角
----------------------------

に書き換える

同様に ucspi-tcp、checkpassword にある error.h も修正する

tcpserver起動スクリプト例

tcpserver起動スクリプト例
赤字はFQDNを入れる)

----------------------------------------------------------------
#!/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 -H -R -D -l0 -u 502 -g 501 -x ¥
/var/qmal/relay-ctrl/tcp.smtp.cdb 0 smtp ¥
/var/qmail/bin/qmail-smtp 2>&1 | ¥
/var/qmail/bin/splogger smtpd 3 &
tcpserver -v -H -R -D -l0 0 pop3
/var/qmail/bin/qmail-popup ns.hogehoge.co.jp ¥
/usr/local/bin/checkpassword ¥
/usr/sbin/relay-ctrl-allow ¥
/var/qmail/bin/qmail-pop3d Maildir 2>&1 | ¥
/var/qmail/bin/splogger pop3d &
echo
touch /var/lock/qmail
;;
stop)
# Stop daemons.
echo "Shutting down qmail."
PID=`/bin/ps -aef | grep qmail | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
echo
rm -f /var/lock/qmail
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: S99qmail {start|stop|restart}"
exit 1
esac

exit 0

----------------------------------------------------------------

popの導入

POP3デーモン自体はすでにqmailのインストールと同時に
/var/qmail/bin/以下にqmail-pop3dとしてインストールされている
しかし、このデーモン自体には認証を行う機能がないため
POP3の認証にcheckpasswordをインストールし設定する必要がある

展開
# tar xvfz checkpassword-0.90.tar.gz
# cd checkpassword-0.90

インストール先変更
# vi conf-home
----------
/usr/local
----------

コンパイル、インストール
# make setup check

外部からメールの送受信をするため
POP Before SMTP(Relay-Ctrl)を導入する

展開、コンパイル、インストール
# tar xvfz .relay-ctrl-2.5.tar.gz
# cd relay-ctrl-2.5/
# make
# make root-install

必要なディレクトリと設定ファイルを作成
# mkdir /etc/relay-ctrl
# mkdir /var/qmail/relay-ctrl
# mkdir /var/qmail/relay-ctrl/spool
# cd /etc/relay-ctrl/
# echo '900' > expiry
# echo ":allow,RELAYCLIENT=''" > rule
# echo '/etc' > rulesdir
# echo 'tcp.smtp.cdb' > smtpcdb
# echo 'tcp.smtp' > smtprules
# echo '/var/qmail/relay-ctrl/spool' > spooldir
# echo '/usr/local/bin/tcprules' > tcprules

【/etc/relay-ctrl下に作るファイル】
-------------------------------------------------------------
expiry
RealyをオープンにしたIPアドレスを記録したファイルの寿命
デフォルトは900秒

rule
POPで接続してきたIPアドレスに付加するルール
Relayを許可しなくてはいけないので「:allow,RELAYCLIENT=''」となります

rulesdir
cdbファイルとその基になるテキストファイルが収められているディレクトリ
デフォルトは /etc/tcpcontrol

smtpcdb
更新するcdbファイル名  デフォルトは smtp.cdb

smtprules
cdbの基になるテキストファイル
tcpserverの時に使用したtcp.smtpに当たる デフォルトは smtp.rules

spooldir
Relayを許可したIPアドレスを記録しておくスプール
デフォルトは /var/spool/relay-ctrl

tcprules
tcprulesコマンドのパス デフォルトは /usr/bin/tcprules 
-------------------------------------------------------------

spoolにたまったIPアドレスの記録を定期的に削除する指示をcrontabに追加
# crontab -e
----------
* * * * * /usr/sbin/relay-ctrl-age
----------

relay-ctrl-allow起動の専用ユーザーを作る
# adduser -d /var/qmail/relay-ctrl -s /bin/false relay-ctrl
# chown -R relay-ctrl /var/qmail/relay-ctrl

relay-ctrl-allowコマンドの所有者を変更しsetuidする
# chown relay-ctrl /usr/sbin/relay-ctrl-allow
# chmod u+s /usr/sbin/relay-ctrl-allow

cdbファイルもユーザー「relay-ctrl」によって上書きできる必要があるため
/etc/tcp.cdbから書き込み可能な/var/qmail/relay-ctrl/tcp.smtp.cdbに変更する
# cp /etc/tcp.smtp /var/qmail/relay-ctrl/.
# echo '/var/qmail/relay-ctrl' > /etc/relay-ctrl/rulesdir

tcpserverから全てのデーモンを自動起動させるため
起動スクリプトを作成する
<起動スクリプト例>

3、4、5のランレベルで起動されるように、起動スクリプトとリンクを張る
# 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/rc4.d/S99qmail
# ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc5.d/S99qmail

tcpserverのインストールと設定

展開&コンパイル
# tar xvfz ../ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88/
# make setup check

リレーを許可するデータベース作成
# vi /etc/tcp.smtp
----------
192.168.0.:allow,RELAYCLIENT="" 
# 192.168.0のネットワークは受信許可&リレー許可

127.:allow,RELAYCLIENT="" 
# 自身のネットワークは接続許可&リレー許可

:allow
# 全てのネットワークは接続許可(外部受付用)

192.168.0.1-31:allow,RELAYCLIENT=""
# ネットワークの範囲を指定して接続許可&リレー許可

192.168.3.1:deny
# 192.168.3.1は許可しない
----------


cdbファイルの作成(1行で!)
# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

qmailをtcpserverで起動させる
まずqmaildのUIDとGIDを確認
# id qmaild

tcpserverを経由してのqmail起動コマンド(1行で!)
# tcpserver -v -H -R -l0 -u 502 -g 501 -x /etc/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
(ここではUID:502、GID:501)

空メールで確認
# echo to: ユーザー名@hogehoge.co.jp | /var/qmail/bin/qmail-inject


tcpserverの代表的な起動オプション
------------------------------------------------------
-v すべてのメッセージを出す
-u uid ユーザーIDをuidに切り替える
-g gid グループIDをgidに切り替える
-H 逆引きをしない(リモートホスト名を調べない)
-R ident(接続したサーバのユーザー情報について、付加的な情報を返す)しない
-l0(エル・ゼロ) ローカルホストの検索をしない 
-x /etc/tcp.cdb cdbデータベース(/etc/tcp.cdb)で制御する
-c 最大同時接続数の設定する(デフォルトは40)
-P 逆引き、正引きで相手の正当性を調査する
------------------------------------------------------


qmail 初期設定

/var/qmail/controlのファイル

[defaultdomain]
hoge.com

[locals]
localhost
localhost.hoge.com
name.hoge.com
hoge.com

[me]
name.hoge.com

[plusdomain]
hoge.com

[rcpthosts]
localhost
hoge.com
.hoge.com


qmail インストール

展開
# tar xvfz qmail-1.03.tar.gz
# cd qmail-1.03/

パッチ
# patch -p1 < ../qmail-date-localtime.patch

qmailユーザー準備
# 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

コンパイル
# make setup
# make check

設定ファイル配置
# ./config-fast host.example.jp

管理用アカウント設定
# cd /var/qmail/alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 .qmail*

起動スクリプトコピー
# cp /var/qmail/boot/home /var/qmail/rc

MailboxからMaildirへ
# vi /var/qmail/rc
----------
qmail-start ./Mailbox splogger qmail
          ↓
qmail-start ./Maildir/ splogger qmail
----------

ユーザーアカウントのMaildir作成
# /var/qmail/bin/maildirmake /var/qmail/alias/Maildir
# chown -R alias /var/qmail/alias/Maildir

利用ユーザーテンプレ
# /var/qmail/bin/maildirmake /etc/skel/Maildir

sendmail置き換え
# mv /usr/sbin/sendmail sendmail.bak
# chmod 0 sendmail.bak
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

空メールで起動確認
# echo to: ユーザー名@hogehoge.com | /var/qmail/bin/qmail-inject

宛先ユーザーのMaildir/new/ に空メールが届いていればOK

qmail 準備

【拾い所】
qmail-1.03
ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz

qmail-date-localtime.patch
ftp://ftp.sg.freebsd.org/pub/FreeBSD/ports/local-distfiles/sada/

tcpserver
ftp://ftp.jp.qmail.org/qmail/ucspi-tcp-0.88.tar.gz

checkpassword
http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz

【インストール作業環境】
解凍 (tar)
Cコンパイラ (gccなど)
パッチ (patch)

| 1/1PAGES |