sendmailで外部への送信不能
こんばんは。
どうにもsendmailの動作が分からなかったので、質問させていただきます。
閉じたネットワークの中でsendmailを使ってメールサーバを構築しています。
受信にはdovecotを利用してます。(ちなみにOSはCentOS5.1です)
同一ドメイン内ですと送受信可能。
他ドメインに対しては受信のみ可能。
送信が不可能な状態にあります。
メールサーバのメールログは以下のとおりになっています。
/var/log/maillog
----------------------------------
Jun 23 18:57:00 host10 sendmail[3262]: p5N9uoUR003262: ruleset=check_rcpt, arg1=<xxx@dom100.com>, relay=host11.dom10.com [192.168.10.11], reject=550 5.7.1 <xxx@dom100.com>... Relaying denied
Jun 23 18:57:00 host10 sendmail[3262]: p5N9uoUR003262: from=<xxx@dom10.com>, size=0, class=0, nrcpts=0, proto=ESMTP, daemon=MTA, relay=host11.dom10.com [192.168.10.11]
----------------------------------
上記のエラーをネット等で調べると、
「/etc/mail/accessファイルでのリレーができていない」
という原因にしかたどり着けません。
accessファイルにはきちんとリレーの設定をし、
access.dbへの更新もした上で、サービスの再起動を行いましたが、動作は変わりません。
ちなみにaccessファイルの記述は下記の通りです。
/etc/mail/access
----------------------------------
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Connect:192.168.100 RELAY
----------------------------------
また、現在のメールサーバの設定(/etc/mail/sendmail.mc)は下記の通りとなっております。
/etc/mail/sendmail.mc ※先頭がdnlの行は省いてあります。
----------------------------------
divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl
define(`confDEF_USER_ID', ``8:12'')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
define(`confTO_IDENT', `0')dnl
FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=192.168.10.10, Name=MTA')dnl
FEATURE(`accept_unresolvable_domains')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
----------------------------------
※host11.dom10.com(192.168.10.11/24) から
メールサーバhost10.dom10.com(192.168.10.10/24)を経由し、
host10.dom100.com(192.168.100.10/24) へのメール送信をして失敗している状態です。
※pingは通ります。
※DNSはbindで構成しており、MXレコードは問題なく取得できています。
長々と目を通していただき恐縮です。
accessファイル以外の原因はなにかありますでしょうか?
お礼
sendmailのマニュアルに次のような記述がありました。 「通常、マスカレード出来るのは、自分の機械から発信されたアドレス (つまり、まだ @domain が付いていない名前か、ローカルドメイン名のリストにある名前) だけです。 マスカレードされるマシンの名前は、次の方法で増やすことも出来ます。 MASQUERADE_DOMAIN(`otherhost.domain')」 …ということは、特に、そのサーバーマシン自体からメールを発送しない場合は、MASQUERADE_AS、MASQUERADE_DOMAINの設定は、しなくてもいいということでしょうか?(でも、CGIなどから発送する場合はどうなるのでしょう???疑問だらけです。) バーチャルドメインをsendmailで使用する場合は、MASQUERADEを使うと難しくなるという話も聞きますが、今は、そのバーチャルドメインが求められているのです。 もし、わかりましたら、どなたかご教示をお願いします。 バーチャルドメインを行う場合の、sendmail.mcの雛形など見つかると良いのですが…。
補足
ありがとうございます。 …ということは、MASQUERADE_ASが指定されて、 From:hogehoge@####.com となるのは、 (1)主に、そのサーバーマシン自体からのメール発送に限定されると思って良いでしょうか?? (2)そして、/etc/mail/accessで中継する設定にしてある、ローカルLAN内から送信するメールはxxxxx.comやyyyyy.netのままで、これが、MASQUERADE_ASで指定した####.comに変換されてしまうわけではないのですね??? (3)それで、もちろん、外部から来るメールも、そのままのアドレスで到着するということですね?