SendmailのOP25B対策についての質問です。

独自ドメインをレンタルサーバ上で運用していますが、OP25Bの影響を受けて、自宅からのメール送信ができないケースが発生しています。自宅からメール送信をする際には、自宅で利用しているISP業者のSMTPサーバ名を入力するようにしてもらっていますが、(確認はしていませんが)それでも送信ができないというケースもあるようです。
そこで、様々なISP業者が行っているように、25番と587番の両方を使用可能にする設定をSendmailに行いたいのですが、ネットで検索すると様々な情報が飛び交っていてどれが自分のケースに当てはまるのかが選別できずにいます。正しい設定方法をご教授ください。
※もしも情報が足りなければ足りない情報の指摘をお願いします。

回答の条件
  • 1人3回まで
  • 登録:2008/01/17 15:54:04
  • 終了:2008/01/18 10:34:53

ベストアンサー

id:JULY No.1

JULY回答回数966ベストアンサー獲得回数2472008/01/17 18:27:11

ポイント200pt

sendmail で Submission ポートを有効にする

上記ページにあるように Submission に関する DAEMON_OPTIONS を有効にします。多分、sendmail.mc でコメントアウトされた状態になっていると思います。

sendmail.mc を変更したら、make(sendmail.cf の生成)と sendmail の再起動をお忘れなく。

id:hate_na_com

ありがとうございます。非常に分かりやすくて助かります。

ただ、一通り実行したのですが、試しに587ポートでアクセスをしようとすると「メッセージを送信できません」となります。パスワード等を設定した場合も、未設定の場合も同様です。

# make -C /etc/mail 実行後のメッセージは、

--

make: Entering directory `/etc/mail'

make: Nothing to be done for `all'.

make: Leaving directory `/etc/mail'

--

# service sendmail restart は実行しましたが、sendmailはxinetdで管理されているようでした。反映されていると思うのですが…。

何かが足りないようでしょうか?

2008/01/17 19:56:54
  • id:JULY
    > # service sendmail restart は実行しましたが、sendmailはxinetdで管理されているようでした。

    えっ、そんなぁ...

    もし、それが本当だとすると /etc/xinetd.d 以下で、sendmail に対する設定ファイルをコピーして、ポート番号を変更するとか...。

    例えば、pstree コマンドで sendmail のプロセスを見つけて、その親のプロセスが本当に xinetd になっているか確認できますか?

    あと、ちょっと疑問なのが、

    > make: Entering directory `/etc/mail'
    > make: Nothing to be done for `all'.
    > make: Leaving directory `/etc/mail'

    ということだと、「何も更新されなかった」ということになりますが、sendmail.mc と sendmail.cf のタイムスタンプはどうなってますか?
  • id:hate_na_com
    hate_na_com 2008/01/17 20:39:57
    早速ありがとうございます。
    pstreeコマンドでは、

    init-+-crond
    |-httpd---5*[httpd]
    |-2*[miniserv.pl]
    |-mysqld_safe---mysqld
    |-saslauthd
    |-sshd---sshd---bash---pstree
    |-syslogd
    `-xinetd---sendmail

    となっていました。
    これはレンタルサーバ業者が設定したものです。
    あ、あとタイムスタンプは今日の日付になっていました。
    はてなにコピペするために再度コマンドを実行したのが原因ですね…。
    すみません。
  • id:JULY
    > `-xinetd---sendmail

    わっ、本当だ!

    となると、/etc/xinetd.d 配下に sendmail 用の設定ファイルがあると思うので、それをコピーして、ポート番号を 587 にしたものを作る必要がありますね。

    ただ、sendmail の設定はどうするかは微妙です。

    本来の Submission は SMTP-AUTH が必須になるのですが、SMTP-AUTH をせずに、単に 587 で SMTP として受けるのであれば、先の sendmail の設定変更は必要なく、xinetd の設定ファイルだけで済みます。

    もし、587 番で SMTP-AUTH をする必要があるとなると、SMTP-AUTH を必要とするための sendmail.cf ファイルを別途用意して、Port 25 の xinetd の設定は今まで通りの sendmail.cf を読み込み、Port 587 の xinetd の設定は SMTP-AUTH を必須とする方の設定ファイルを読み込むようにしてやる必要があります。

    ....と、原理的なところは分かるのですが、xinetd 経由で SMTP-AUTH を必須にする、という具体的な設定までは、ちょっと分かりません。そもそも xinetd 経由だと、多分、DAEMON_OPTIONS 自体が意味を持たないような気が...。
  • id:hate_na_com
    hate_na_com 2008/01/17 22:09:02
    SMTP-AUTH はしなくても済むならそれでも…。

    /etc/xinetd.d/sendmail は非常にシンプルな内容でしたが、どこをどういじって良いのかが…。以下がその内容ですが、もう少しお付き合い頂くことは可能でしょうか…?

    service smtp
    {
    socket_type = stream
    protocol = tcp
    wait = no
    user = root
    group = root
    server = /usr/sbin/sendmail
    server_args = -bs -Am
    nice = 5
    instances = 10
    disable = no
    }
  • id:JULY
    # cd /etc/xinetd.d
    # cp sendmail submission

    として、

     service smtp → service submission

    とすれば多分 OK なはず。もし、/etc/services に submission が定義されていなければ、

     port = 587

    という行を書き加えます。

    SMTP-AUTH を必須にしなければ、これで OK だと思いますが、もし SMTP-AUTH を使おうとなると、server_args あたりで、SMTP-AUTH を使うように設定した sendmail.cf ファイルを指定することになると思います。
  • id:hate_na_com
    hate_na_com 2008/01/18 10:33:54
    デキマシタ!

    service smtp → service submission
    は、当然ですが、submission に対する設定ですよね。
    # /etc/rc.d/init.d/xinetd restart
    で xinetd を再起動して送信テストをしてみたところ、
    25番でも、587番でも送信可能になりました。
    感動です!ありがとうございました〜。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません