よくある質問 (FAQ)

このセクションは, FAQ から移動してきました.

どうして 同じサイトのホストに対して完全な形のドメイン名 (FQDN) を使わなければいけないの?

おそらく, そのホストは実際には違うドメインに属しているのでしょう. 例えば, もしあなたが foo.bar.edu ドメインにいて, bar.edu ドメインの中のmumble というホストに接続したいと します. その場合あなたは, mumbleではなく mumble.bar.edu という完全な形のドメイン名 (FQDN) によっ てそのホストを参照しなければなりません.

伝統的に, これは BSD BIND リゾルバでは許されていました. しかしながら, FreeBSD に付属する現在の BIND の バージョンでは, 自分が属しているドメイン以外では, 完全な形でないドメイン名に対するデフォルトの省略形は 使用できません. ですから, 完全でないホスト名 mumble は, mumble.foo.bar.edu として解決されるか, ルートドメインに検索しにいくでしょう.

これは, mumble.bar.edu, mumble.edu というように検索し続けるような過去の動作とは異なります. なぜこれが悪い慣例, さらにはセキュリティーホールと考えられ るようになった理由については, RFC1535 を参照してください.

この問題を回避するには,

search foo.bar.edu bar.edu
という行を
domain foo.bar.edu
に置き換えます.これを自分のマシン上の /etc/resolv.conf ファイルに 記述してください. しかしながら, 検索順序は, RFC 1535 に 書かれている, ``ローカル管理と公共の管理の間の境界線'' を越えないことを, あらかじめ確認してください.

Sendmail が mail loops back to myself というエラーを出します

これについては, sendmail FAQ の中で, 次のように答えられて います:

* 次のような 「Local configuration error」というメッセージが出ます:

553 relay.domain.net config error: mail loops back to myself
554 <user@domain.net>... Local configuration error

この問題をどうやって解決すればよいでしょうか?

MX レコードを使って, あるドメイン(例: domain.net)宛にメールを
特定のホスト (この場合, relay.domain.net) に転送しようと設定したと
していますが, 中継ホストは自身が domain.net であるとは認識
していません.
(FEATURE(use_cs_file) を使用している場合は)
/etc/sendmail.cw に, domain.net を追加してください.
または, 「Cw domain.net」を /etc/sendmail.cf に追加してください. 

sendmail FAQ は, /usr/src/usr.sbin/sendmail に あります. ``ちょっと凝った''メール設定 をしたい場合は, FAQ を読むことをおすすめします.

ダイアルアップ PPP ホストで電子メールを使うにはどうしたらいいの?

LAN 上にある FreeBSD マシンを, インターネットに接続したいと します. FreeBSD マシンは, その LAN でのメールゲートウェイになります. FreeBSD マシンは専用線接続ではありません (訳注:ダイアルアップ接続など).

これには, 少なくとも二つの方法があります.

一つは UUCP を使うことです.

このとき鍵になるのは, あなたのドメインに対するセカンダリ MX サービス を提供してくれるインターネットサイトをみつけることです.

例:

bigco.com.       MX    10  bigco.com.
                      MX        20      smalliap.com.

最終的なメール受信先としては, 一つのホストだけが定義されるべきです (bigco.com 上の /etc/sendmail.cf ファイルに, Cw bigco.com を追加します).

送信側の sendmail が, メールを配送しようとしている時, モデムの接続を 介してあなたのところに接続しようとします. 大抵の場合, あなたのマシンがオンラインでないために, 接続はタイムアウト してしまうでしょう. sendmail は自動的に, メールをセカンダリの MX サイト に (あなたのインターネットプロバイダ) に配送します. セカンダリ MX サイトは, (/etc/rc.conf ファイル に sendmail_flag = "-bd -q15m"と書かれている場合) 15 分ごとに, プライマリ MX サイトにメールを配送しようと, あなたのホストに接続しに いきます.

ログインスクリプトとして, このようなものを使うとよいでしょう.

#!/bin/sh
# Put me in /usr/local/bin/pppbigco
( sleep 60 ; /usr/sbin/sendmail -q ) &
/usr/sbin/ppp -direct pppbigco

ユーザごとにログインスクリプトを作りたい場合には, 上記 のスクリプトの代わりに, sendmail -qRbigco.com を使用する こともできます. このようにすると, キューの中の bigco.com に対する すべてのメールは, すぐに強制的に処理されます.

さらに, 次のような改良もできます.

以下は, freebsd-isp メイリングリストから抜粋してきたメッセージです.

> 私たちはお客様に対して, セカンダリ MX を提供しています. お客様は一日
> に何回か私たちのサービスに接続し, メールを彼らのプライマリ MX に
> 受け取ります (彼らのドメインに対するメールが到着した時には, 私たちは
> 彼らのサイトを呼び出しません).
> 私たちの sendmail は, 30 分ごとにメールキューに溜っているメールを
> 配送します. ちょうどその時に, すべてのメールがプライマリ MX に送られ
> たかどうかを確かめるためには, 彼らは 30 分は オンラインでいなけれ
> ばなりません.
>
> すべてのメールを今すぐ送るために sendmail を初期化するコマンドはあ
> るでしょうか? もちろん私たちのマシン上には, ユーザはルート (root) 権限
> を持っていません.

sendmail.cf の 「privacy flags」 セクションに,「Opgoaway,restrictqrun」の定義があります.

root 以外のユーザがキューを処理できるようにするには,
restrictqrun を削除してください. また, MX を再調整が必要かもしれません.
あなたがたは, 顧客のサイトに対する一番優先度の高い MX なので,
次のように定義します:

# If we are the best MX for a host, try directly instead of generating
# local config error.
OwTrue

このようにすると, リモートサイトからのメールが, 顧客のマシンと接続し
ようとせず, 直接あなたがたのホストマシンに配送されるようになります.
ホストマシンに配送されたメールは, 続いて顧客のマシンに送られます.
これはホスト名にのみ有効なので, 顧客のメールマシンに,
「host.customer.com」とは別に, 「customer.com」も定義する必要があり
ます. DNS 上で, 「customer.com」に対する A レコードを定義してください.