メールサーバを2台(1台はrelay専用)で運用しているのですが、最近、MyDoom の
エラーメールが増えているので、sendmail で運用している中継用メールサーバで、
メールアドレス単位での中継可否を設定できないかと考えています。
現在の状況なのですが、DNSに
example.jp IN MX 10 mail1.example.jp.
example.jp IN MX 100 mail2.example.jp.
と登録してあり、mail1 の方は実際にメールを受け取るサーバで、mail2 の方は
FreeBSD 5.1-RELEASE sendmail 8.12.9 で /etc/mail/relay-domains に
example.jp を入れております。
MyDoom が
From: <存在しないユーザー>@example.jp ←自分とこで管理しているドメイン
To: <存在しないユーザー>@example.com ←これは見知らぬドメイン
というメールを出した場合、example.com のメールサーバから
<存在しないユーザー>@example.jp 宛にエラーメールが来ます。
これが mail1 にやってきた場合は、その場で User unkonwn を返せるので
いいのですが、mail2 にやってきた場合、mail2 が一旦受け取ったあと、
mail1 への中継の段階で User unkonwn になり、mail2 の postmaster 宛に
エラーメールが来ることになります。
mail2 の方の sendmail が、単に exmaple.jp 宛のメールをを全て受け付けるの
ではなく、@example.jp のメールアドレスで有効なものを全て知っていれば、
こういう問題は防げると思うのですが、sendmail でそのような設定を行うことは
出来ないのでしょうか?
あるいは、他になにか良い対策がありましたらお教えください。
よろしくお願いします。
PROJECT TEAM DoGA 高津正道 ta...@doga.jp
TBD0...@nifty.ne.jp
PROJECT TEAM DoGAのホームページ → http://doga.jp/
2月3日(火) 今日のマーフィーの法則 [フォーリーの太めのモデルへのアドバイス]
痩せて見えるポーズをとれ。
Masamichi Takatsu wrote:
> 高津@ドーガです。
> mail2 の方の sendmail が、単に exmaple.jp 宛のメールをを全て受け付けるの
> ではなく、@example.jp のメールアドレスで有効なものを全て知っていれば、
> こういう問題は防げると思うのですが、sendmail でそのような設定を行うことは
> 出来ないのでしょうか?
バーチャルホストに関連してバーチャルユーザ機能があるんで、
ユーザリストを書けば済むと思うんですがね。
cfの使い方を知らないんで、そのためにどうすればいいのかは
わからないけど。
sendmail.cfを直接いぢるのなら、
受け取るユーザリストを適当なファイルに書いておいて、
FU-o /etc/mail/allowed-user
とか宣言して、
R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 us...@host.domain
という1行の直前あたりに
R$=U < @example.com > $* $#esmtp $@ example.com $: $1 < @ example.com
> $2 us...@example.com
R$* < @example.com > $* $#error $@ 5.1.1 $: "551 User unknown"
unk...@eample.com
という2行を入れるのでなんとかならないかな。
これだとユーザリストを変更するとsendmailの再起動が必要に
なるので、ユーザリストをDB形式にするなどしないとより良い。
記事 <bvogfq$o2p$1...@newsserv.ics.es.osaka-u.ac.jp> で
SAITOH akinoriさんは書きました
> バーチャルホストに関連してバーチャルユーザ機能があるんで、
> ユーザリストを書けば済むと思うんですがね。
バーチャルユーザのリストは、受け取る段階でメールアドレスと実ユーザとの
対応を取るもので、MXで上位のサーバに中継させるようにするというような
指定はできないと思っているのですが、実はそういう動作をさせることも
できるのでしょうか?
cf の README の virtusertable の項は読みましたが、そういう指定は
見あたりませんでした。
> sendmail.cfを直接いぢるのなら、
> 受け取るユーザリストを適当なファイルに書いておいて、
sendmail.cf ですか。sendmail を使い始めて10年を超えますが、いまだに
sendmail.cf だけは理解できません。
最近は個々の行単位であればなんとか意味は取れるようになってきたのですが…
うまくできるかどうか分かりませんが、頑張ってみます。
ありがとうございました。
PROJECT TEAM DoGA 高津正道 ta...@doga.jp
TBD0...@nifty.ne.jp
PROJECT TEAM DoGAのホームページ → http://doga.jp/
2月4日(水) 今日のマーフィーの法則 [ジョーンズの法則]
窮地に笑えるものは、責任をなすりつける人をすでに思いついている。
Masamichi Takatsu wrote:
> 高津@ドーガです。
> sendmail.cf ですか。sendmail を使い始めて10年を超えますが、いまだに
> sendmail.cf だけは理解できません。
> 最近は個々の行単位であればなんとか意味は取れるようになってきたのですが…
> うまくできるかどうか分かりませんが、頑張ってみます。
では、効率などの点で劣るかもしれないけど安全確実な方法。
mail2.example.comのsendmail.cfを次のように設定します。
us...@mail1.example.com mail1に転送(あるいはus...@other.domainと
同じようにMXを引いて転送)
us...@mail2.example.com ローカルスプールに落とす
us...@example.com ローカルスプールに落とす
で、aliasesに全ユーザを登録する
user: us...@mail1.example.com
mail1への転送に際してMXを見ずに sendmail.cfに
静的に書いちゃってるのが許せるなら、これでいいのでは?
記事 <bvursm$44c$1...@newsserv.ics.es.osaka-u.ac.jp> で
SAITOH akinoriさんは書きました
> us...@mail1.example.com mail1に転送(あるいはus...@other.domainと
> 同じようにMXを引いて転送)
> us...@mail2.example.com ローカルスプールに落とす
> us...@example.com ローカルスプールに落とす
> で、aliasesに全ユーザを登録する
> user: us...@mail1.example.com
なるほど、目から鱗です。確かに、MXの上位ホストが一つしかないなら、
MXに頼らず直接転送しても実用上の違いは無いですね。
ちょっと手間はかかりそうですが、これなら自分の理解できる範囲内で
設定できそうです。
ありがとうございました。
PROJECT TEAM DoGA 高津正道 ta...@doga.jp
TBD0...@nifty.ne.jp
PROJECT TEAM DoGAのホームページ → http://doga.jp/
2月6日(金) 今日のマーフィーの法則 [オリビエの法則]
経験とは、それを必要としたあとで、得られるものである。