|
久しぶりに qmail をインストールしたので、そのメモです。 qmail・tcpserver・daemontools を入れています。 また、relay-ctrl を使った POP before SMTP を設定しました。 リプレイス前の旧サーバで使っていた環境を再現するため、 生POP3を使っているのは△なところ。OS は Fedora Core 5 です。 注記のない作業(コンパイル以外)は、root権限で行っています。 sendmailをアンインストールする★yumでsendmailをアンインストールする yum remove sendmail⇒qmailとsendmailが混在していると、いろいろと面倒もあるので Fedoraデフォルトのsendmailは安全のために削除しておきます。 一緒にいくつかのパッケージが削除されますが、気にしない。 qmailをインストールする★qmail・tcpserver・daemontools等のソース一式をダウンロードしてくる ftp://ring.ocn.ad.jp/pub/net/djbtools/qmail-1.03.tar.gz ★qmailユーザの作成(uid・gid番号は↓の限りでなくてOK) mkdir /var/qmail ★qmail のコンパイル〜インストール ※一般ユーザ権限 tar xfz qmail-1.03.tar.gz<パッチ補足> ※qmail-limit-bounce-size.patch qmail-send.cにパッチをあてる /var/qmail/crontrol/bouncemaxbytes で エラーメールに添付する最大サイズを制限できるパッチ デフォルト:50KB(小さすぎるかな) ⇒2007/03/07現在、入手できない模様…。 ※qmail-date-localtime.patch date822fmt.cにパッチをあてる Received: 行等を GMT じゃなくて JST で書いてくれるパッチ 日本国内で運用するサーバには必須のパッチ ※qmail-1.03-reread-concurrency.2.patch -HUP 時に concurrencylocal/remote ファイルを再読み込みする ※qmail-1.03-mfcheck.4.patch メール着信時に差出人アドレスの @ の右側で DNS 検索を行って、 存在しないドメインからのメールは、着信拒否できるパッチ 553 sorry, your envelope sender domain must exist (#5.7.1) ※conf-cc conf-cc の内容がデフォルトでは「cc -O2」となっているのを 「gcc -O2 --include /usr/include/errno.h」に変更する 「#include <errno.h>」していることになる(のかな多分) ★各ホストごとの設定 ./config-fast foo.example.jp⇒第1引数にホスト名を指定する ★sendmailクローンでメール送信の互換性を保つ ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail ★各種初期値の設定を行う ls -l /var/qmail/control/<設定ファイル補足> /var/qmail/control/concurrencyremote リモート配送を同時に行える最大の数を指定します(qmail-send) /var/qmail/crontrol/databytes 受信メッセージに許される最大バイト数を指定します(qmail-smtpd) 20MBを指定しています /var/qmail/control/bouncehost メールを返送するホストを指定します(qmail-send) MAILER-DAEMON@example.jp になるように設定しています /var/qmail/control/queuelifetime メッセージがキュー内に留まることができる期間を、秒数で指定します(qmail-send) 5日間に設定しています /var/qmail/control/mfcheck メール着信時に差出人アドレスの @ の右側で DNS 検索を行って、 存在しないドメインからのメールは、着信拒否します (外部から着信するメールサーバのみで指定。社内サーバでは使用しない) ★最低限のエイリアス設定 echo "bar@example.jp" > /var/qmail/alias/.qmail-postmaster ★double bounce エラー通知メールを発生させない設定 echo "#" > /var/qmail/alias/.qmail-doublebounce ★tcpserverのインストール(SMTPの受付に利用) ※一般ユーザ権限 tar zxf ucspi-tcp-0.88.tar.gz ★daemontoolsのインストール(プロセス監視に利用) mkdir /package※この時点で /etc/inittab に svscanboot が記載されるので、 OS を再起動すれば、svc が稼動する。 ただし、qmail の自動起動は設定されていない状態。 ★daemontoolsを用いたqmailの起動準備 mkdir /var/qmail/supervise⇒設定用ディレクトリを作成する ★/var/qmail/supervise/qmail-smtpd/run を作成する #!/bin/sh⇒HOSTの行にマシン名を指定する ⇒tcpserver options host port program -H リモートホスト名を調べない。 -v すべてのメッセージを出力する -R IDENTを行わない。 -c limit 最大同時接続数の設定。デフォルトは40 -x rules.cdb 接続制御を行うときの接続制御データベースのファイル名 -l localname ローカルホスト名を調べるのをやめて、localname を TCPLOCALHOST にセットする -u uid ユーザIDを uid に切り替える -g gid グループIDを gid に切り替える host が 0 の場合、サーバを起動するIPアドレスを特定しない ★/var/qmail/supervise/qmail-send/runを作成する #!/bin/sh⇒/var/log/maillog にログが溜まる設定です ★run スクリプトに実行権限を付与 chmod 755 /var/qmail/supervise/qmail-send/run⇒これで準備は終わったが、まだ自動起動はしません ★tcp.smtpの設定 /etc/tcp.smtp 127.:allow,RELAYCLIENT=""⇒自ホストと特定ホストからのメール送信を全て許可する その他のホストから送信されたメールは、rcpthosts に登録してある ドメイン宛のメールのみ許可して、それ以外は拒否する ★tcp.smtp の 変更箇所は tcp.smtp.cdb に反映させる tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp ★qmail-send・qmail-smtpd の開始 ln -s /var/qmail/supervise/qmail-send /service/qmail-send⇒/service/配下にシンボリックリンクを作成すると、 svc によって自動的(5秒以内)に両runプログラムが起動される POPサーバも稼動させる場合以上は、SMTPサーバとしてメール送信ができるようにする設定でした。 ローカルサーバのMaildirに溜まったメールをPOP受信するには、 qmail-popupとqmail-pop3dを利用します。 ★POPパスワード認証用の checkpassword をインストールする ※一般ユーザ権限 tar zxvf checkpassword-0.90.tar.gz ★/var/qmail/supervise/qmail-pop3d/run #!/bin/sh ★qmail-pop3d の開始 chmod 755 /var/qmail/supervise/qmail-pop3d/run⇒/service/配下にシンボリックリンクを作成すると、 svc によって自動的(5秒以内)にrunプログラムが起動される POP-before-SMTP を利用する場合qmail 標準の POP サーバでは、POP before SMTP が利用できません。 relay-ctrl を追加インストールすることで、利用可能になります。 ★relay-ctrlをインストールする(POP before SMTP用) tar zxvf relay-ctrl-3.1.1.tar.gz⇒Fedora Core 5デフォルトでは/usr/local/manが存在しないんですね ★relay-ctrlの初期設定 mkdir /var/spool/relay-ctrl⇒POP before SMTPの有効期間を600秒(10分間)に設定しています ★rootのcrontabに追加する(crontab -e) */5 * * * * /usr/local/bin/envdir /etc/relay-ctrl /usr/local/bin/relay-ctrl-age⇒5分おきに有効期間のチェックを行います (そのため、実際の有効期間は10〜15分間になります) ★/var/qmail/supervise/qmail-pop3d/runを書き換える #!/bin/sh ★/var/qmail/supervise/qmail-smtpd/run を書き換える #!/bin/sh⇒qmail-smtpdもrelay-ctrlを参照するようにします ★qmail-smtpd/qmail-pop3dの再起動 svc -t /service/qmail-smtpd iptablesの設定iptablesが有効になっているので、ホスト外部からはアクセスできません。 SMTP(25番ポート)とPOP(110番ポート)に穴を開けます。 ★/etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT ★iptablesを再起動する(root権限) service iptables restart |
| << 前記事(2006/03/31) | トップへ | 後記事(2006/04/04)>> |
| タイトル (本文) | ブログ名/日時 |
|---|
| 内 容 | ニックネーム/日時 |
|---|---|
メールアドレスとか、ちょっと修正した。 |
ゆうすけ 2006/04/10 18:29 |
| << 前記事(2006/03/31) | トップへ | 後記事(2006/04/04)>> |