メール返送処理をテストしています。不良ドメインにテストメールを送信する場合は、次のようになります。[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段階を逃した可能性があります。すぐにこれを行うと、すべてがうまくいくでしょう。非常にスマートになりたいと思い、フォーラムや人や情報を忘れてしまうと、フォーラムよりも早くスマートになります。一晩かかることもありますが、その経験は信じられないほど貴重です。