• 締切済み

sendmailが使用するNICの指定方法

お世話になります。 MTAはsendmail限定のLinuxサーバという状況で、2枚のNIC(eth0、eth1)に、異なるグローバルIPアドレスを振り、 eth1側のみを指定して使用する方法が判らずつまずいています。 他のツールをインストールしなくても良い方法(できればsendmailの設定だけで何とかなる方法)を知っている方はおりませんか?

みんなの回答

  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.2

> それはsendmailじゃなくて、ルーティングの問題ですよね。 たぶん、このメールサーバがマルチホーム環境につながっていて、eth1側からのみメールを送りたいってことのような気がします No.1のかたが書かれているようにルーティングの設定次第なので、そもそも現在メールサーバがどういうルーティング情報を持っているか、それを変更できるのか、で回答も変わります ぶっちゃけ、eth1側のルータにデフォルトルートを向けてしまえば全ての外部との通信がeth1経由になるので、メールもeth1経由になりSMART_HOSTを設定しなくても今の要件を満たせるのですが、それだとマルチホーム接続している意味がなくなってしまいますよね?

FUJI_KATSU
質問者

補足

ありがとうございます。 又、レスが遅くなってすみません。 マルチホーム環境についてはまさにお察しの通りです。 デフォルトルートをデバイス毎に指定できればというのは 試行中何度も思いました。 実はeth1の情報をサーバに追加し、それに合わせてsendmail.mc を変更すればsendmail側でその情報を基にメールデフォルトルート は自動的に変更してくれるものだと思っていましたが、これは駄目ですね。 現状ですが外部からの受信はMXレコードを調整ることで可能です。 外部への送信ですが、書籍を参考にiptablesでアドレス変換を行ってみましたが、 うまくいきません。。。 状態としてはキューに溜まったまま送信されない状態です。 以下が iptablesでのeth1特有の設定です。 # DNS $IPTABLES -A INPUT -p udp --dport domain -i eth1 -j ACCEPT $IPTABLES -A INPUT -p tcp --dport domain -i eth1 -j ACCEPT $IPTABLES -A INPUT -p udp -m state --state ESTABLISHED --sport domain --dport 1024: -i eth1 -j ACCEPT $IPTABLES -A INPUT -p tcp -m state --state ESTABLISHED --sport domain --dport 1024: -i eth1 -j ACCEPT # SMTP $IPTABLES -A POSTROUTING -t nat -p tcp --dport 25 -j SNAT --to "eth1のIP":25 -o eth1 $IPTABLES -A INPUT -p tcp --dport smtp -i eth1 -j ACCEPT $IPTABLES -A INPUT -p tcp --sport smtp -i eth1 -j ACCEPT ! --syn

回答No.1

それはsendmailじゃなくて、ルーティングの問題ですよね。 それとも、eth0,eth1ともルーティングがきちんとできていて 他の通信はそのままで問題ないが、 SMTPだけは、送信先とのルーティングを無視し 通信の方向を変更したいということでしょうか? それでしたら、eth1側のルーティング上に存在するメールサーバーに向けて 全てのメールを転送するようにsendmailを設定すれば、よいのではと思います。 (sendmail.mcの SMART_HOST かな) もちろん、メールをリレーしてくれるサーバー側でも、 今件のメールサーバーからのリレーを許可してあげる必要があります。 (もしくは、sendmail.mc内に、SMTP-AUTH認証も入れるか) OP25B時の回避策に近いので、 sendmail.mc OP25B で検索すると、ヒントがみつかるかと思います。

FUJI_KATSU
質問者

補足

ありがとうございます。 又、レスが遅くなってすみません。 No2の方が書かれたとおりでマルチホームのサーバです。 元々eth0で全通信を正常に行えており、メールのみeth1に 変更したいと考えております。 実はeth1の情報をサーバに追加し、それに合わせてsendmail.mc を変更すればsendmail側でその情報を基にメールデフォルトルート は自動的に変更してくれるものだと思っていましたが、これは駄目ですね。 現状ですが外部からの受信はMXレコードを調整ることで可能です。 外部への送信ですが、書籍を参考にiptablesでアドレス変換を行ってみましたが、 うまくいきません。。。 状態としてはキューに溜まったまま送信されない状態です。 以下が iptablesでのeth1特有の設定です。 # DNS $IPTABLES -A INPUT -p udp --dport domain -i eth1 -j ACCEPT $IPTABLES -A INPUT -p tcp --dport domain -i eth1 -j ACCEPT $IPTABLES -A INPUT -p udp -m state --state ESTABLISHED --sport domain --dport 1024: -i eth1 -j ACCEPT $IPTABLES -A INPUT -p tcp -m state --state ESTABLISHED --sport domain --dport 1024: -i eth1 -j ACCEPT # SMTP $IPTABLES -A POSTROUTING -t nat -p tcp --dport 25 -j SNAT --to "eth1のIP":25 -o eth1 $IPTABLES -A INPUT -p tcp --dport smtp -i eth1 -j ACCEPT $IPTABLES -A INPUT -p tcp --sport smtp -i eth1 -j ACCEPT ! --syn

関連するQ&A