ダウンロード
# wget ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz ←■ qmailダウンロード
※wgetが固まってダウンロードできない場合は下記手順でダウンロード
# wget --no-passive-ftp ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz ←■ qmailダウンロード
# wget http://www.itheart.com/phpgw/qmail-date-localtime.patch ←■ 日本標準時間対応パッチダウンロード
# wget http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31.tar.gz ←■ SMTP-Auth対応パッチダウンロード
# wget http://qmail.mirrors.summersault.com/qmail-smtpd-relay-reject ←■ 不正中継拒否対応パッチダウンロード
- qmail-1.03
- qmail-1.03.errno.patch
- qmail-date-localtime.patch
- qmail-smtpd-auth
- qmail-smtpd-relay-reject
- checkpassword-0.90
- checkpassword-0.90.errno.patch
- ucspi-tcp-0.88.tar.gz
- ucspi-tcp-0.88.errno.patch
- qmail-remote-auth.patch
qmail-date-localtime.patch は、ヘッダに記録される日付・時間情報をローカルタイムに合わせます。
対策が施されたqmailサーバから配信されたメールには、日本標準時を意味する「+0900」が付加されます。
qmailインストールに必要なユーザ、グループを作成する
# mkdir /var/qmail ←■ qmailインストールディレクトリ作成
# groupadd nofiles ←■ nofilesグループ作成
# useradd -g nofiles -s /sbin/nologin -u 490 alias -m -d /var/qmail/alias -k /dev/null ←■ aliasユーザ作成
# useradd -g nofiles -d /var/qmail -s /sbin/nologin -u 491 -M qmaild ←■ qmaildユーザ作成
# useradd -g nofiles -d /var/qmail -s /sbin/nologin -u 492 -M qmaill ←■ qmaillユーザ作成
# useradd -g nofiles -d /var/qmail -s /sbin/nologin -u 493 -M qmailp ←■ qmailpユーザ作成
# groupadd qmail ←■ qmailグループ作成
# useradd -g qmail -d /var/qmail -s /sbin/nologin -u 494 -M qmailq ←■ qmailqユーザ作成
# useradd -g qmail -d /var/qmail -s /sbin/nologin -u 495 -M qmailr ←■ qmailrユーザ作成
# useradd -g qmail -d /var/qmail -s /sbin/nologin -u 496 -M qmails ←■ qmailsユーザ作成
qmail インストール
[user@linux qmail]$ wget ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz ←■ qmailダウンロード
[user@linux qmail]$ wget http://www.itheart.com/phpgw/qmail-date-localtime.patch ←■ 日本標準時間対応パッチダウンロード
[user@linux qmail]$ wget http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31.tar.gz ←■ SMTP-Auth対応パッチダウンロード
[user@linux qmail]$ wget http://qmail.mirrors.summersault.com/qmail-smtpd-relay-reject ←■ 不正中継拒否対応パッチダウンロード
[user@linux qmail]$ wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/qmail-1.03.errno.patch ←■ エラー対策patchダウンロード
[user@linux qmail]$ wget http://tomclegg.net/qmail/qmail-remote-auth.patch ←■ 外部SMTP-Auth対応パッチダウンロード
[user@linux qmail]$ tar zxvf qmail-1.03.tar.gz ←■ qmail展開
[user@linux qmail]$ tar zxvf qmail-smtpd-auth-0.31.tar.gz ←■ SMTP-Auth対応パッチ展開
[user@linux qmail]$ /bin/mv qmail-smtpd-auth-0.31/* ./qmail-1.03/ ←■ SMTP-Auth対応パッチをqmail展開先ディレクトリへ移動
[user@linux]$ cd qmail-1.03 ←■ qmail展開先ディレクトリへ移動
[user@linux qmail-1.03]$ patch -p1 < ../qmail-date-localtime.patch ←■ 日本標準時間対応パッチ施行
[user@linux qmail-1.03]$ patch < auth.patch ←■ SMTP-Auth対応パッチ施行
patching file Makefile
patching file TARGETS
patching file qmail-smtpd.8
patching file qmail-smtpd.c
[user@linux qmail-1.03]$ patch < ../qmail-remote-auth.patch ←■ 外部SMTP-Auth対応パッチ施行
patching file qmail-remote.c
patching file Makefile
Hunk #1 succeeded at 1441 (offset -4 lines).
[user@linux qmail-1.03]$ patch < ../qmail-smtpd-relay-reject ←■ 不正中継拒否対応パッチ施行
patching file qmail-smtpd.c
Hunk #1 succeeded at 56 (offset 3 lines).
Hunk #2 succeeded at 226 (offset 9 lines).
Hunk #3 succeeded at 277 (offset 11 lines).
[user@linux qmail-1.03]$ patch < ../qmail-1.03.errno.patch ←■ エラー発生対策 error.h をパッチ施行
[root@linux qmail-1.03]# su - ←■ root権限になる
[root@linux qmail-1.03]# cd /home/user/qmail/qmail-1.03 ←■ ディレクトリ移動
[root@linux qmail-1.03]# make setup check ←■ qmailインストール
~ 中略 ~
./install
./instcheck
[root@linux qmail-1.03]#
error.h ファイルを直接編集する場合
[user@linux qmail-1.03]$ vi error.h ←■ error.h直接編集する場合
extern int errno;
↓■ 変更(書き換える)
#include<errno.h>
[user@linux qmail-1.03]$
外部SMTP-Auth対応パッチ インストール
qmail-remotet のみを後からインストールする場合
[root@linux qmail-1.03]# ls /var/qmail/bin/qmail-remote ←■ qmail-remotetの存在確認
[root@linux qmail-1.03]# patch < ../qmail-remote-auth.patch ←■ 外部SMTP-Auth対応パッチ施行
patching file qmail-remote.c
patching file Makefile
Hunk #1 succeeded at 1441 (offset -4 lines).
[root@linux qmail-1.03]# make qmail-remote ←■ qmail-remoteのみコンパイル
[root@linux qmail-1.03]# install -m 711 qmail-remote /var/qmail/bin/qmail-remote ←■ qmail-remoteのみインストール
qmail 初期設定
■ /var/qmail にqmailの動作に必要なファイルやディレクトリが作成されます。
[root@linux qmail-1.03]# ./config-fast `hostname -d`
Your fully qualified host name is example.com.
Putting hitsujigumi into control/me...
Putting hitsujigumi into control/defaultdomain...
Putting hitsujigumi into control/plusdomain...
Putting hitsujigumi into control/locals...
Putting hitsujigumi into control/rcpthosts...
Now qmail will refuse to accept SMTP messages except to example.com.
Make sure to change rcpthosts if you add hosts to locals or virtualdomains!
[root@linux qmail-1.03]#
コントロールファイルの編集
/var/qmail/control/ 内defaultdomain
toヘッダなどにドメイン名が省略された場合、補完されるドメイン名
example.jp
locals
受信するホスト名・ドメイン名:qmail-sendが利用
localhost
localhost.example.jp
host.example.jp
example.jp
rcpthosts
受信するホスト名・ドメイン名:qmail-smtpdが利用
localhost
example.jp
.example.jp
me
自サーバのFQDN
host.example.jp
plusdomain
ドメイン部が+で終わっている場合に付加されるドメイン。
user@host+」なら「user@host.example.jp」と置換される(qmal-injectが利用)
example.jp
マニュアルを参照できるようにする
[root@linux qmail-1.03]# cd ←■ qmail展開先ディレクトリを抜ける
[root@linux]# echo "MANPATH /var/qmail/man" >> /etc/man.config ←■ manコマンドでqmailコマンドのマニュアルを参照できるようにする
root宛のメールを転送する
[root@linux ~]# echo "&root@`hostname`" > /var/qmail/alias/.qmail-postmaster
[root@linux ~]# echo "&root@`hostname`" > /var/qmail/alias/.qmail-mailer-daemon
[root@linux ~]# echo "&root@`hostname`" > /var/qmail/alias/.qmail-root
[root@linux ~]# chmod 644 .qmail*
checkpassword インストール
SMTP認証、POP認証に使用するcheckpasswordをインストールする
[user@linux qmail]$ wget http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz ←■ checkpasswordダウンロード
[user@linux qmail]$ wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/checkpassword-0.90.errno.patch ←■ エラー対策patchダウンロード
[user@linux qmail]$ tar zxvf checkpassword-0.90.tar.gz ←■ checkpassword展開
[user@linux qmail]$ cd checkpassword-0.90 ←■ checkpassword展開先ディレクトリへ移動
※ エラー対策
[user@linux checkpassword-0.90]$ patch < ../checkpassword-0.90.errno.patch ←■ error.h パッチファイル施行
[root@linux checkpassword-0.90]# su - ←■ root権限になる
[root@linux checkpassword-0.90]# cd /home/user/qmail/checkpassword-0.90
[root@linux checkpassword-0.90]# make && make setup check ←■ コンパイルとインストールを実行する
~ 中略 ~
./install
./instcheck
[root@linux ~]#
[root@linux ~]# chown root:nofiles /bin/checkpassword ←■ checkpasswordの所有者、所有グループ変更
[root@linux ~]# chmod 4750 /bin/checkpassword ←■ checkpasswordが所有者権限で動作するように設定
■ checkpassword のパス → /bin/checkpassword
tcpserver のインストールとcdbの作成
[user@linux qmail]$ wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz ←■ tcpserverダウンロード
[user@linux qmail]$ wget http://www.qmail.org/rpms/patches/ucspi-tcp-0.88.errno.patch ←■ エラー対策patchダウンロード
[user@linux qmail]$ tar zxvf ucspi-tcp-0.88.tar.gz ←■ 展開する
[user@linux qmail]$ cd ucspi-tcp-0.88/
※ エラー対策
[user@linux ucspi-tcp-0.88]$ patch < ../ucspi-tcp-0.88.errno.patch ←■ error.h パッチファイル施行
[user@linux qmail]$ su - ←■ root権限になる
[root@linux qmail]# make setup check
~ 中略 ~
./install
./instcheck
[root@linux qmail]#
■ tcpserver のパス → /usr/local/bin/tcpserver /usr/local/bin/tcprules
中継許可ホストの登録
cdbの基になるファイルを準備します。ここでは/etc/tcp.smtpファイルとして作成。
[root@linux |]# vi /etc/tcp.smtp
127.:allow,RELAYCLIENT=""
192.168.0.:allow,RELAYCLIENT="" ←■ 192.168.0.* からの接続は環境変数RELAYCLIENTに設定し、接続を許可する
[root@linux ~]#
[root@linux ~]# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp ←■ cdbファイルを作成
接続許可例
192.168.0.0-31:allow,RELAYCLIENT="" ←■ 192.168.0.0から192.168.0.31まで接続許可
192.168.0.:deny ←■ 192.168.0.* を接続拒否
POP Before SMTP の導入
relay-ctrl-3.1.1 インストール
[root@linux]$ wget http://untroubled.org/relay-ctrl/relay-ctrl-3.1.1.tar.gz
[root@linux]$ tar xvfz relay-ctrl-3.1.1.tar.gz
[root@linux]$ cd relay-ctrl-3.1.1/
[root@linux]# これより root権限で作業する
[root@linux]# mkdir /usr/local/man
[root@linux]# make
[root@linux]# ./installer
■ relay-ctrl のパス → /usr/local/bin/relay-ctrl-check /usr/local/bin/relay-ctrl-allow /usr/local/bin/relay-ctrl-chdir /usr/local/bin/relay-ctrl-age
設定ファイルとディレクトリを作成
[root@linux]# mkdir /var/spool/relay-ctrl
[root@linux]# mkdir /var/spool/relay-ctrl/allow
[root@linux]# chmod 700 /var/spool/relay-ctrl
[root@linux]# chmod 777 /var/spool/relay-ctrl/allow
[root@linux]# mkdir /etc/relay-ctrl
[root@linux]# echo "/var/spool/relay-ctrl/allow" > /etc/relay-ctrl/RELAY_CTRL_DIR ←■ RelayオープンしたIPを保存するファイルパスを登録
Relay の設定
RelayをオープンにしたIPアドレスを記録したファイルの寿命を設定する場合は、/etc/relay-ctrl/RELAY_CTRL_EXPIRYファイルに、秒単位で記入します。
[root@linux]# echo '600' > /etc/relay-ctrl/RELAY_CTRL_EXPIRY ←■ 10分間で設定
[root@linux]#
有効期限切れ消去
RelayをオープンにしたIPアドレスの記録を整理するプログラムを5分ごとに起動するようにします(5分でなくても構いません)。relay-ctrl-ageプログラムにより、RELAY_CTRL_EXPIRYで指定した保存期間を過ぎた記録を消去できます。
[root@linux]# crontab -e
*/5 * * * * /usr/local/bin/envdir /etc/relay-ctrl /usr/local/bin/relay-ctrl-age
qmail 起動
旧SMTP の停止
現在、起動しているSMTPサーバーの動作を停止させる。sendmail の場合
[root@linux ~]# /etc/rc.d/init.d/sendmail stop ←■ sendmail停止
[root@linux ~]# chkconfig --list sendmail ←■ 自動起動を確認
sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@linux ~]# chkconfig sendmail off ←■ 自動起動解除
[root@linux ~]# chkconfig --list sendmail ←■ 自動起動設定を確認
sendmail 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Postfix の場合
[root@linux ~]# /etc/rc.d/init.d/postfix stop ←■ Postfix停止
Shutting down postfix: [ OK ]
[root@linux ~]# chkconfig postfix off ←■ Postfix自動起動解除
[root@linux ~]# chkconfig --list postfix ←■ Postfix自動起動設定確認
postfix 0:off 1:off 2:off 3:off 4:off 5:off 6:off ←■ 全ランレベルのoffを確認
sendmail コマンド置換え
[root@linux ~]# chmod 0 /usr/lib/sendmail ←■ 旧sendmailコマンド無効化
[root@linux ~]# chmod 0 /usr/sbin/sendmail ←■ 旧sendmailコマンド無効化
[root@linux ~]# mv /usr/lib/sendmail /usr/lib/sendmail.org ←■ 旧sendmailコマンドをリネーム
[root@linux ~]# mv /usr/sbin/sendmail /usr/sbin/sendmail.org ←■ 旧sendmailコマンドをリネーム
[root@linux ~]# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail ←■ sendmailコマンドをqmailに置換え
[root@linux ~]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail ←■ sendmailコマンドをqmailに置換え
qmail 起動スクリプト作成
起動スクリプトを用意する
[root@linux ~]# cp /var/qmail/boot/home /var/qmail/rc ←■ qmail起動コマンドサンプルを所定の場所へコピー※dot-forward利用しない場合
[root@linux ~]# cp /var/qmail/boot/home+df /var/qmail/rc ←■ qmail起動コマンドサンプルを所定の場所へコピー
※dot-forward利用する場合
Maildirへの移行
[root@linux ~]# sed -i 's/Mailbox/Maildir\//g' /var/qmail/rc
[root@linux ~]# vi /var/qmail/rc ←■ /var/qmail/rc を直接編集する場合
qmail-start ./Mailbox splogger qmail ※ コメントアウトにしないこと
↓ 変更する
qmail-start ./Maildir/ splogger qmail
Maildirディレクトリの手動生成
vpopmail をインストールする場合は必要無いユーザーアカウントになってから、各ユーザーディレクトリを作成する
[root@linux]$ /var/qmail/bin/maildirmake ~/Maildir
Maildirディレクトリの自動生成
vpopmail をインストールする場合は必要無い
[root@linux]# /var/qmail/bin/maildirmake /etc/skel/Maildir
tcsh インストール
[root@linux ~]# yum list | grep tcsh ←■ インストール確認
** Message: sqlite cache needs updating, reading in metadata
tcsh.i386 6.14-12.el5 installed ←■ インストール済
[root@linux ~]#
[root@linux ~]# yum -y install tcsh ←■ cシェルインストール
起動スクリプト作成・起動
[ 起動スクリプト ]
[root@linux ~]# vi /etc/rc.d/init.d/qmail ←■ qmail起動スクリプト作成
[root@linux ~]# ※ 内容をコピーして保存する
[root@linux ~]# chmod +x /etc/rc.d/init.d/qmail ←■ qmail起動スクリプトへ実行権限付加
[root@linux ~]# /etc/rc.d/init.d/qmail start ←■ qmail起動
Starting qmail
[root@linux ~]# chkconfig qmail --add ←■ qmailをchkconfigへ追加
[root@linux ~]# chkconfig qmail on ←■ qmail自動起動設定
[root@linux ~]# chkconfig --list qmail ←■ qmail自動起動設定確認
qmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off ←■ ランレベル2~5のonを確認
OP25B(Outbound Port 25 Blocking)対策
[root@linux ~]# echo :SMTPサーバー名:587 ユーザー名 パスワード > /var/qmail/control/smtproutes ←■ SMTP認証情報設定
SMTPサーバー名 = プロバイダのSMTPサーバー名
ユーザー名 = プロバイダのメールアカウント名
パスワード = プロバイダのメールパスワード
※ 直接編集する場合
[root@linux ~]# vi /var/qmail/control/smtproutes
:SMTPサーバー名:587 ユーザー名 パスワード
:smtp.nifty.com:587 user@nifty.com Password ←■ 例
[root@linux ~]# 保存する
ポート:587の設定確認
[root@linux ~]# less /etc/services
submission 587/tcp msa # mail message submission
submission 587/udp msa # mail message submission
0 件のコメント:
コメントを投稿