sendmailが未知のターゲットドメインに自分のホスト名を追加するのはなぜですか?

sendmailが未知のターゲットドメインに自分のホスト名を追加するのはなぜですか?

メール返送処理をテストしています。不良ドメインにテストメールを送信する場合は、次のようになります。[Eメール保護]、ログに次のエラーが表示されます。

SYSERR(ルート):blahblahfail.org.mydomain.org。設定エラー:メールが私に繰り返されます(MXの問題?)

ターゲットドメインのDNSが失敗した場合、sendmailは私のドメインを間違ったドメインに追加するようです。

なぜこれが起こるのですか?ドメインが悪い場合は、メールが返送されると予想する必要がありますか?未知のuser@gooddomainタイプのバウンスメールが私にとって効果的です。

可能な関連 sendmail 構成ライン:

FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl

注:Always_add_domain機能を削除してみました。私のドメイン名は/etc/mail/local_host/namesにリストされています。

答え1

この質問を見ました。

これはSendmailの問題ではありません。これは私のDNS Aレコードのワイルドカード(*)によって引き起こされます。

理由はわかりませんが、名前が解決されない場合は、自分のドメイン名が名前に追加され、ワイルドカードのため、DNSルックアップは私のIPアドレスで解決されます。

これはメール、カール、SSHに影響します。

badbadfailfail.comでSSH経由で接続すると、私のIPでSSHに戻ります。

DNSレコードからワイルドカードを削除しています。

これを/etc/resolv.confに追加しても機能します。

search .

答え2

BSD / SYSTEM 5システムで20年間これをやってきました。

/etc/nsswitch.conf 編集

hosts:          files myhostname dns
networks:       files

/etc/ホスト名の編集

#your hostname.domainname
127.0.0.1 ns1.local localhost.local ns1 localhost

それはすべてです。ここで創造力を発揮しないでください。また、localhostのループバックを127.0.0.1に保ちます。それ以外の場合は、「nix」に応じてここで問題が発生します。

192.168.0.200 ns1.local localhost.local ns1 localhost

sendmail.cfを編集してください。はい、内容はわかりますが、私は正しいです。続けてください。

/etc/mail/sendmail.cf
Fw/etc/mail/local-host-names %[^\#]
Cwns1 # your hostname alone
Dj$w.local # your domainname alone

sendmailが使用されるリレーまたはホストを確認するようにsendmailに指示するようにファイルを編集します。 cfに一致する限り、必要に応じて名前を付けます(例:/etc/mail/local-host-names)。これが最新の sendmail のデフォルト値であると考えられます。

localhost  # Depending on your flavour of 'nix, BSD/SYSTEM 5, you NEED  
#this or you'll break something trying to fix a "small" problem
ns1.local
localhost.local # Same as above, I compile code all the time that calls 
#the loopback or 127.0.0.1

iptablesにはここで扱うには多すぎますが、フロントエンドもありますが、多くはありません。私は作者の知識に基づいてコードを書いています。他の重要なサービスを中断したくない場合は、ループバックにポート25、ローカルネットワーク、53 UDP IF DNSキャッシュサーバー、および931を許可しましょう。

ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
DROP       all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ACCEPT     all  --  192.168.0.0/24       0.0.0.0/0           
DROP       icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8 ctstate NEW
LOG        icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8 ctstate NEW LOG flags 0 level 4
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:123
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:931
DROP       udp  --  0.0.0.0/0            0.0.0.0/0           
LOG        udp  --  0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 4
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           
LOG        tcp  --  0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 4
DROP       all  --  0.0.0.0/0            0.0.0.0/0           
LOG        all  --  0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 4

上記の例は、あなたの構成、ネットワーク(鉱山は192.168.0.0/24)によって大きく異なります。これは「対価」ではないので、自分で調べてください。私の前にはPIXがあり、ネットワークには別の「もの」があります。 localhost.localまたはループバックを削除する責任はユーザーにあります。多くのOSユーザーがそれを必要なサービスとしてハードコードしており、それを削除するように指示する他の答えを見ていますが、そうしないでください。

# /etc/hosts
192.168.0.200 ns1.local localhost.local localhost
127.0.0.1 ns1.local localhost.local  ns1 localhost

さて、みんな再起動しましょう。再起動せずに 'nix sysadmins'で動作しない唯一のことは、コマンドラインで実行できないカーネルを再ロードするまでuname -aです。必要に応じてルートまたはsudoになります。新しく来た人々は、自分の利益のためにsudoを使用する必要があると主張します。

service hostname restart
ifdown eth0
/etc/init.d/sendmail stop
iptables -F
iptables -nL # should be clean, no rulez
ifup eth0
iptables-restore "file" # wherever you told iptables to 
#iptables-save > "file" to write. Me, well 
#iptables-save > /etc/fw/iptables.rulez
iptables-restore /etc/fw/iptables.rulez # Thats me, pay attention 
#here or get whacked, firewalls are important and why we use 'nix
service hostname stop
service hostname start
/etc/init.d/sendmail start
hostname # should be hostname alone i.e. ns1
hostname -f # full host.domainname i.e. host.domainname for me it's ns1.local
service hostname status
/etc/init.d/sendmail start # tail -f /var/log/syslog or /var/log/messages
iptables-restore /etc/fw/iptables.rulez
tail -f /var/log/syslog or /var/log/messages # Again, depends on your 'nix

最後に、1〜2段階を逃した可能性があります。すぐにこれを行うと、すべてがうまくいくでしょう。非常にスマートになりたいと思い、フォーラムや人や情報を忘れてしまうと、フォーラムよりも早くスマートになります。一晩かかることもありますが、その経験は信じられないほど貴重です。

関連情報