FreeBSD 9.3 RELEASE - qmail - 初期設定

 クラウディア
1. ports
2. コントロールファイルの作成
3. alias の設定
4. Maildir の作成
5. 不正中継させないための設定

1. ports

 qmail および qmail 関連の ports を手に入れます。
qmail         → /usr/ports/mail/qmail/
procmail      → /usr/ports/mail/procmail/
checkpassword → /usr/ports/security/checkpassword/
tcpserver     → /usr/ports/sysutils/ucspi-tcp/
envdir        → /usr/ports/sysutils/daemontools/
 以前の設定で relay-ctrl というものを使用していましたが、ports から削除されましたので、使用しないようにします。  「qmail」のインストールでは多くのオプションが用意されています。実際の画面は以下のように出ます。
「FreeBSD 9.3 RELEASE」-「/usr/ports/mail/qmail」「make config」

 オプションは以前に比べてずいぶん様変わりしました。
 デフォルトの設定に加えて、以下のオプションにチェックをいれておけばよいでしょう。

    ・DISCBOUNCES_PATCH ダブルバウンスメールの扱いを他の MTA と同様にする
    ・LOCALTIME_PATCH   日本時間で処理できるようにする

 逆に

    ・RCDLINK           起動スクリプトのシンボリックリンクを生成

は、特にシンボリックリンクにする必要性もありませんのではずします。

 インストールが成功すれば /var/qmail/ 以下に qmail 用のディレクトリは自動的に作られていますし、ユーザ群、グループ群も作成されます。インストール後に vipw コマンドでのぞいてみると


alias:*:81:81::0:0:QMail user:/var/qmail/alias:/nonexistent
qmaild:*:82:81::0:0:QMail user:/var/qmail:/nonexistent
qmaill:*:83:81::0:0:QMail user:/var/qmail:/nonexistent
qmailp:*:84:81::0:0:QMail user:/var/qmail:/nonexistent
qmailq:*:85:82::0:0:QMail user:/var/qmail:/nonexistent
qmailr:*:86:82::0:0:QMail user:/var/qmail:/nonexistent
qmails:*:87:82::0:0:QMail user:/var/qmail:/nonexistent
 という具合に出来上がっているはずです。  以前は sendmail の置き換えについて、くどくど書いていましたが、現在は、qmail インストール後に /var/qmail/scripts/enable-qmail という qmail に置き換えるためのスクリプトが用意されていますので、これを実行します。

> /var/qmail/scripts/enable-qmail

2. コントロールファイルの作成

 自分のホスト情報その他を qmail に教えるために、いくつかのファイルを作成します。  /var/qmail/control/に、以下のファイルを作成します。既に出来ているファイルがあるかもしれませんが、それについても編集しなおします。
defaultdomain
locals
me
plusdomain
rcphosts
 defaultdomain は以下のように記述します。

hogehoge.ne.jp
 locals は以下のように記述します。

localhost.hogehoge.ne.jp
local.hogehoge.ne.jp
hogehoge.ne.jp
 me は以下のように記述します。

hogehoge.ne.jp
 plusdmain は以下のように記述します。

ne.jp
 ここの例題が、ネットワーク組織なので、ne.jp にしてますが、あなたの設定するサーバが法人組織のものであれば、co.jp になります。他のところも全部、同様なので間違いのないように御願いします。  rcphosts は以下のように記述します。

localhost.hogehoge.ne.jp
ns.local.hogehoge.ne.jp
hogehoge.ne.jp

3. alias の設定

 qmail では個々のユーザが user-foo という形式の拡張アドレスを管理できます。  user-foo 宛のメールは ~user/.qmail-foo に処理方法を書けます。  ユーザ名で始まっていないアドレスは疑似ユーザ alias により管理されます。 例えば、foo 宛のメールは /var/qmail/alias/.qmail-foo に処理方法を書きます。  sendmailでは、/etc/aliases に転送先を記述しますが、qmail では、/etc/aliases をそのままサポートする機能はありません。  通常のログインユーザ以外のユーザで、メールを受信する可能性のあるものは、/var/qmail/alias/.qmail-foo にその転送先を記述しておきましょう。  最低限、設定しておくべき alias の一覧
postmaster      メール管理者のメールアドレスです
mailer-daemon   宛先不明のメールの差出先です
                宛先不明のメールを受信することにより、
                メールアドレスをパンチミスしてしまったメールを受け取ることができます
root            FreeBSD では、daemon がこのアドレスに
                daily、weekly、monthly にログを送ってきます
これらのファイルは、qmail をインストールした時点で作成されています。 それぞれのファイルに、受取るべきメールアドレスを記述します。もしあなたがサーバの管理人であり、これらのすべてのメールを受取るべきであるとします。あなたのメールアドレスを仮に、foo@hogehoge.ne.jp であるとすれば作ったすべてのファイルに

foo@hogehoge.ne.jp
 と記述してください。それで、これらのメールアドレス宛のメールはすべて受取れるようになるはずです。  もちろん、それぞれが別管理であれば、管理人のメールアドレスを記述すればよいわけです。

4. Maildir の作成

 sendmail では、メールは、/var/spool/mail/user というディレクトリにためられますが、qmail では、~user/Maildir/ というユーザ個々のディレクトリにためられます。  ~user/Maildir を作成するには、それぞれのユーザでログインし、次のコマンドを使います。

> /var/qmail/bin/maildirmake $HOME/Maildir
 さらに、.qmail と .procmailrc というファイルを作成してデフォルトで次のように記述します。  .qmail は

| /var/qmail/bin/preline /usr/local/bin/procmail ./.procmailrc
 .procmailrc は

PATH=/usr/bin:/usr/local/bin
MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR
 すべてのユーザに対して、これを行わなければなりません。  既に作ってしまっているユーザに対しては、これをやらなければ仕方ありませんがこれから、新しいユーザを作るたびにこれをやらなければならないとするとたまりませんね。  そこで、adduser のたびに自動的に ~user/Maildir、.qmail、.procmailrc を作成するようにしましょう。

> cd /usr/share/skel
> /var/qmail/bin/maildirmake Maildir
 とやってまず、ユーザ用の Maildir ディレクトリを作っておきます。  それから、同じ /usr/share/skel のディレクトリ内に、さきほどと同じ内容を記述した、dot.qmail、dot.procmailrc というファイルを作っておきます。  こうしておけば、~user/Maildir、.qmail、.procmailrc の雛型が作成され、その後 adduser する毎に自動的に、個々の qmail 用の設定を行ってくれます。

5. 不正中継させないための設定

 不正中継させないためには以下のような設定を行います。  不正中継されると SPAM メールの中継地点として利用され、多くの人々に迷惑をかけてしまいます。その上、MAPS RBL/ORB UK という2つの SPAM メールデータベースに登録されてしまうと、こちらから送信するメールを誰も受取ってくれなくなる恐れがあります。  tcpserver は、もうインストールしていますね。  通常は /etc/ ディレクトリに tcp.smtp というファイルを作成しますが、わたしは、もう一段階、ネストを下げています。

> mkdir /etc/tcp
 /etc ディレクトリに、tcp.smtp というファイルを作って次のように編集します。あなたのグローバルネットワークアドレスを仮に xxx.yyy.zzz.0/29 とします。

127.:allow,RELAYCLIENT=""
192.168.0.:allow,RELAYCLIENT=""
xxx.yyy.zzz.0-8:allow,RELAYCLIENT=""
 1行目は、ループバックアドレスです。127.*.*.* のアドレスから、メール中継させるという意味です。  2行目は、ローカルアドレスです。192.168.0.* のアドレスから、メール中継させるという意味です。  3行目は、グローバルアドレスです。xxx.yyy.zzz.0 から xxx.yyy.zzz.8 までのアドレスからメール中継させるという意味です。  他にも、安全が確認できて、どうしても中継させたいアドレスがあれば、上記の表記方法を応用して、記述してください。  先頭行に # を使うとコメント行として使えますので、中継アドレスが多ければ、忘れないように、コメントしておきましょう。もし、中継させないようになったらすぐ消せるようなコメントを書いておきましょう。  tcp.smtp の編集が終わったら、次のコマンドでデータベースを作成します。

> tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
 /etc/tcp.smtp を編集しなおす機会があったら、毎回このコマンドを実行してください。  ただし、次節で説明するブートスクリプトを使用するのであれば、起動時に毎回このコマンドを実行しますので、tcp.smtp の編集だけで問題ありません。  qmail-queue の設定を後で行います。このとき /etc/tcp.smtp を更新しますので注意してください。
ハイスピードプランStar Naming Gift世界最大級のオンライン英会話EF English Live