このブログを検索

2011/12/28

sendmail

不正アクセスの試みが絶えない。 とりあえずftpdは起動しない。 sshdとsendmailは止めるわけにはいかない。

外部からのmailは転送できてlocalhostがダメってどういうことだ?

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl


これがデフォルトなのですが、ポート番号を変え、さらに外部のメールを転送するために以下の様にしました。

DAEMON_OPTIONS(`Port=587,Name=MTA')dnl


しかしこうすると、外部のメール(つまりパソコンのメールソフトから送信する)は可能なのですが、サーバにsshでログインして

echo aiueo|mail root


とかやると、送信できないのです。 デフォルト設定に戻すとローカルの送信は可能になりますが外部から送信できない。 ローカルでも外部からも送信できる方法はないのだろうか? ローカルでmailコマンドを実行すると port 25になっているのか? mailコマンドでポート番号を指定する方法があるのか・・・? わからない!

とりあえず外部からメールを送る必要はないので、デフォルト設定に戻した。タダ不思議なのは、以前は両方できてたはずだということ。 それがbugzillaをインストールしてbugzillaからメールを送ろうとしたらできず、 あれと思って外部から送信したらそれもできなかった。 メールクライアントで認証設定を追加したら送れるようになった。 何も変えていないはずなのに・・・

/etc/mail/authinfo


を作成する方法が紹介されていた・・・しかしこのファイルはデフォルトでは存在しない・・・587にポートを変更するから特別な設定が必要なのか・・・ メンドクサイ・・・そもそもなんで25を587に変えたんだっけ・・・ たしか25では送信できなかったからだ・・・ 別に25が587に変わったから何だって言うんだ・・・スパマーが587に来たら同じ事じゃないのか・・・わけがわからん・・・

sendmailの設定( sendmail.mc → sendmail.cf )でポートをデフォルト(25)にし、iptablesでも25を開けているのに、 どうしても port 25が開かないのである。 サーバにsshで入って telnet localhost 25 とやればsendmailに接続できるのだが自宅のPCからはできず、nmapしてみると25が開いていない。サーバでnetstatした結果は 25 と 587以外に違いはないようだが・・・sendmailの設定とiptables以外に、ポートを制限する設定があるのだろうか?

25が開かないのはおそらくさくらのVPSの仕様(?)なのでしょう。 正確には「25が開かない」のではない。サーバでは開いているが、その手前でブロックしているのではないでしょうか。ルータかなんかで。本当はブロックしてはいけないはずですが、まあ25を使うのは危険のようだからそれはよしとしましょう。そして 587を使うとローカルからメールが送信できない理由は、どうもmailコマンドを使った場合認証しないからのようです。

echo test|mail root


とやったときに、アクセスするのはローカルのsendmailなのですが、ここで認証をしていないので送れないのです。外部のPCのメールソフトで「送信サーバには認証が必要」を設定しないようなものです。 mailコマンドで認証させる方法をman mailとかネットで検索してみましたがどうもないようで、それをさせるのが authinfoファイルを使うやり方のようです。ここにユーザ名とパスワードを設定するようです。