|
[ qmail ] ダウンロード †# 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-date-localtime.patch は、ヘッダに記録される日付・時間情報をローカルタイムに合わせます。 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分でなくても構いません)。 [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 |