- PR -

sendmailでLAN外に置かれたサーバへの転送

投稿者投稿内容
虎江悶
会議室デビュー日: 2004/02/25
投稿数: 6
投稿日時: 2004-02-26 10:59
こんにちは。
虎江悶と申します。

sendmail初心者なので、実現可能かどうかもわからないのですが…
支社の管理システムで以下の事を行いたいと思っております。

1.ローカルサーバのPHPスクリプトでメール作成
2.サーバ内のSMTPを使って転送処理
3.本社に置かれたメールサーバに配送を行わせる

現在の設定では本社サーバsmtp.xx.co.jpのIPアドレスを[xxx.xxx.xxx.xxx]と認識して
いるのですが、"No route to host"というログメッセージが出てしまい、本社サーバに
処理を行わせることができません。
webで調べてみて以下のファイルを設定しております。

#sendmail.cf# 両方と片方づつ試してみました。
define(`SMART_HOST', `smtp.xx.co.jp')dnl
FEATURE(`nullclient', `smtp.xx.co.jp.')dnl

#access#
smtp.xx.co.jp RELAY
xx.co.jp RELAY
192.168.1 RELAY
127.0.0.1 RELAY

#mailertable#
xx.co.jp smtp:[smtp.xx.co.jp]
.xx.co.jp smtp:[smtp.xx.co.jp]

#resolv.conf#
domain xx.co.jp
nameserver 192.168.1.xxx とりあえず自サーバ
nameserver 192.168.1.xxx プロキシサーバ
nameserver xxx.xxx.xxx.xxx 本社ネームサーバ

かなりハマってますので「おいおい…」って感じの設定をしているかもしれませんが…
アドバイスを頂けます様、宜しくお願い申し上げます。

尚、ログメッセージは
Feb 26 10:11:34 server sendmail[3460]: i1Q1BBa03457: to=Recipient N
ame<name@xx.co.jp>, ctladdr=nobody (99/99), delay=00:00:23, xdelay=00:00:23,mailer=relay, pri=31279, relay=smtp.xx.co.jp. [xxx.xxx.xxx.xxx], dsn=4.0.0, stat=Deferred: smtp.xx.co.jp.: No route to host
です。

以上
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2004-02-26 11:22
こんにちは〜。

「ホスト(本社サーバ)への道のりが分からない」 と言われていますので、gateway の
設定が抜けている…ってことはないと思いますから(苦笑)、firewall でブロックされて
いるのではないか、と。
どうでしょう?
虎江悶
会議室デビュー日: 2004/02/25
投稿数: 6
投稿日時: 2004-02-26 11:43
虎江悶です。

早速のアドバイスありがとうございます。
本社側管理者にはその旨を伝えてあったのですが、こちら側の落ち度ばかり考え
確認はとっておりませんでした。
再度設定を調べてもらっています。
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2004-02-26 12:09
たびたびお邪魔します。

本社側は、メールの受理ができないわけがない(ビジネスが成り立たない)ので、
支社側の問題ではないかと推測するのですが…。
(本社側でメールリレーを制限している可能性もありますが、そのセンは低いかなぁ)

これまで sendmail を動かしていなかったサーバで sendmail 動かそうとするとき、
そのサーバ自体に入っている firewall で 25番ポートを閉じていないか確認しておく
必要がありますが、その点は大丈夫ですか?

SMTP サーバと SMTP サーバ以外の両方から、telnet を使って本社のメールサーバに
アクセスしてみるのも手です。
こちらのスレッドや記事が役に立つと思います。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9485&forum=10&17
http://www.atmarkit.co.jp/fnetwork/rensai/tcp03/01.html
弁天No1
常連さん
会議室デビュー日: 2003/07/06
投稿数: 28
投稿日時: 2004-02-26 15:56
はじめまして

現在sendmailサーバーは外部と遮断しネットワーク番号192.168.xxx.内のみ使用可能となっています。このままではルーターをこえて使用できません。

/etc/mail/sendmail.mcの編集 一部抜粋
# su して
# gedit コマンドを起動し/etc/mail/sendmail.mcを開く

EXPOSED_USER(`root')dnl
dnl #
dnl # The following causes sendmail to only listen on the IPv4 loopback address
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their

84行目の下記をコメントoutする 行頭にdnlを挿入すればよい
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

タイムスタンプの更新を忘れずに
#touch /etc/mail/* でエンターする

accessの編集もわすれずにしてください。

最後にルーターのsmtpポート25番 pop3ポート110:tcpをサーバーに向け穴をあける

よろしく
虎江悶
会議室デビュー日: 2004/02/25
投稿数: 6
投稿日時: 2004-02-26 17:52
お世話様です。

はゆるさん
>そのサーバ自体に入っている firewall で 25番ポートを閉じていないか確認しておく
必要がありますが、その点は大丈夫ですか?

空いています。

弁天No1さん
> 84行目の下記をコメントoutする 行頭にdnlを挿入すればよい
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
となっています。
ルータの設定も問題ないようです。
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2004-02-26 21:32
ん〜では、smtp.xx.co.jp への経路が設定されているかを確認してみましょう。
SMTP サーバにログインし、

% traceroute smtp.xx.co.jp

としてみてください。
ただし、会社さんによっては、このコマンドを通さないようにしているところもありますので、「* * *」 ばかりで終了してしまった場合は、ネットワーク管理者に確認してみて
ください。

ちなみに、参考の記事はこちらです。
http://www.atmarkit.co.jp/fnetwork/netcom/traceroute/traceroute.html
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-02-26 21:45
> 1.ローカルサーバのPHPスクリプトでメール作成
であれば,
> DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
でよろしいのでは?
localhost 宛に送出しているなら,listen するのは 127.0.0.1 だけでよいでしょう.ま,社内でしょうから踏み台の心配はないのでしょうけど.

> 2.サーバ内のSMTPを使って転送処理
> 3.本社に置かれたメールサーバに配送を行わせる

ちなみに受信もするのですか?文面からしないように感じられますが,送信だけなら access.db は不要かと...
名前解決をしないようにして,smarthost に [本社メールサーバの ip address] と指定しては?

firewall については,
localhost から tcp:25 への接続を許可する
localhost から本社メールサーバへの tcp:25 を許可する
というルールが必要です,firewall が有効なら.

はゆる様のご指摘どおり,localhost の MTA が本社への route を見つけられないのでしょう.だとしたら,名前解決が正常であることを確認することが先決では?本当に gateway は設定されていますか?localhost から本社メールサーバへ
# telnet "本社メールサーバ" smtp
とするとどうなりますか?"本社メールサーバ" は ip address / hostname のどちらも試されることをお勧めします.

というか sendmail.mc を見せていただいたほうが良い気がしたりして...
※ちなみに linux の distribution と sendmail の version は?

スキルアップ/キャリアアップ(JOB@IT)