プロが教える店舗&オフィスのセキュリティ対策術

 自宅サーバ+sendmail+Dovecotでメールサーバの構築をしようとしています。
http://www.fmmc.or.jp/fm/nwts/rh_linux/ch3/3_2_2 …
 などを見て一通りの設定を行い、特に気になるエラーもなかったのですが、動きません。

 メールソフトからそのドメインのアカウントのメールは受信出来るのですが、送信しようとすると「smtpサーバに接続出来ませんでした」とエラーが出ます。

 また、telnetでそのドメインの25番ポートへの接続も出来ません(110番ポートには接続出来ます)。ドメインをipアドレスに変えても接続出来ません。
 sendmail.mcの
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
 はコメントアウトしております。

 SSHでメールサーバに接続後、sendmailコマンドでテストメールを打った場合は、外部サーバにも、内部サーバにも、メールの送信が出来ます(sendmailはちゃんと動いているということですよね?)。

 プロバイダのメールアカウントから、そのメールアドレスに宛てて送信すると送信出来、エラーメールも返って来ないのですが、サーバ上のユーザーメールボックスにはメールは届いていません(どこに行ったの?)。
 外部からのメールが届かないことから、DNSのMXレコードの設定がおかしいのかな?と思ったのですが、それにしては受信が出来ているのが気になります。また、外部からipアドレスで繋ごうとしても繋がらないのも気になります。

 MXレコードは、ゾーンレコードを管理出来る無料ドメインのサービス(co.cc)で設定していますが、設定フォームの項目が固定の部分もあり、入れれるものを入れた感があり、自信がありません
 Host:ドメイン名(ipアドレスの入力が出来ない)
 Type:MX
 Value:ドメイン名(ipアドレスの入力が出来ない)

 サーバは1台なので、smtpサーバもpopサーバも同じでドメイン名での運用になるので、サーバ内でのDNSレコードは追加しなくて良いという認識でよいでしょうか?(pop.ドメイン などとならないので)
 
 どの項目をどの方法で確認して、問題点の絞込みをしていいかさえ分からず、質問させていただきます。
 お目汚しですが、お気づきの点・確認方法・参考サイトなどあればご教示いただけないでしょうか?

A 回答 (1件)

「また、telnetでそのドメインの25番ポートへの接続も出来ません」が原因だと思います。


DNSはこの段階がクリアできてからです。

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
をコメントにするというのが理解不能です。
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
にして、どのホストからのSMTP接続でも受け付けるようにするというのが正しいのではないでしょうか?

sendmailがTCP 25番で受け付けているかはnetstat -alをして、次のような行が現れるかでわかります。
tcp4 0 0 *.smtp *.* LISTEN
この例では*.smtpとなっており、自分が持っている任意のIPアドレスからのSMTPを受け入れています。ここがたとえば、localhost.smtpのようになっていたら、ローカルホストでしかSMTPを受け付けていないということです。

最後に一言だけ。SMTPサーバーを練習で立てるのはよいと思いますが、第三者中継や不正アクセスなど気にするべき脅威はいくつもあり、攻撃者は容赦してくれません。くれぐれも踏み台サーバーになりませんようお気をつけください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

 hanabutako様の仰るようにnetstatでも確認してみたりして、telnetで繋がるように、なりました。
 有難うございます。
 原因は凡ミスで、ファイヤーウォールの設定でした。

 telnetで繋がるようになってからも、メールソフトで送信エラーが出ていたのですが、これは送信ポートの関係でした。 
 
 あとはご指摘いただいたように、不正アクセス対策の勉強をしていこうと思っています。

※ DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
 は、当初コメントアウトしていなかったのですが、調べていくうちにコメントアウトするよう書かれたページがあったので、試しにしてしまいました。

お礼日時:2010/02/01 21:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!