sendmail サーバーからメールを送信するときに、送信者アドレスを [email protected] に偽装するように sendmail サーバーを構成したいと考えています。
解決策
通常、ドメインをマスカレードするには、「MASQUERADE_AS 」および「MASQUERADE_DOMAIN」 」は /etc/mail/sendmail.mc で使用されます .しかし、それではユーザーは変更されません。 sendmail では、genericstable 機能を使用して、ケースバイケースでドメインとユーザー名の両方を変更できます。
1. 「MASQUERADE」 」項目は /etc/mail/sendmail.mc でコメントアウトされています . 「dnl」で始まる行に注意してください
# grep 'MASQUERADE' /etc/mail/sendmail.mc dnl # MASQUERADE_AS(`target-domain.net')dnl dnl MASQUERADE_DOMAIN(localhost)dnl dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl dnl MASQUERADE_DOMAIN(domain-to-masquerade.net)dnl
2. ドメインテーブル機能を有効にします:
# grep domaintable sendmail.mc FEATURE(domaintable)
# cat domaintable domain-to-masquerade.net target-domain.net
3.「genericstable」を構成します 」 /etc/mail/sendmail.mc 内 その中に次の行を追加してください。
FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl
4. /etc/mail/generics-domains に入力します .
target-domain.net
5. /etc/mail/genericstable に入力します .
root [email protected] other-user1 [email protected] other-user2 [email protected]
6. /etc/sendmail.mc を再コンパイルします :
# cd /etc/mail # make
実行中に次のエラーが発生する場合があります:
# make WARNING: 'sendmail.mc' is modified. Please install package sendmail-cf to update your configuration.
これは sendmail-cf パッケージが見つからないためです。インストールして続行してください。
# yum install sendmail-cf
# cd /etc/mail # make
7. sendmail サービスを再起動します。
# service sendmail restart Shutting down sm-client: [ OK ] Shutting down sendmail: [ OK ] Starting sendmail: [ OK ] Starting sm-client: [ OK ]
8. テストと検証。
# hostname domain-to-masquerade.net
# echo "This is a test mail to verify the sendmail sender masquerade." | mailx -s "Test Sender Masquerade" [email protected]
「target-domain.net」が完全修飾ドメイン名 (FQDN) であることを確認します。つまり、権限のある DNS サーバーからターゲット メール サーバーがドメイン名を解決できる必要があります。そうしないと、メールが拒否される可能性が高くなります。