web-dev-qa-db-ja.com

ローカルホストの外部からのSMTP接続を防止する

注文を確認し、サブスクライブしたユーザーに特定のイベントを警告するために電子メールを送信する必要があるWebサイトがあります。私はnot他の理由でサーバーを介して電子メールを送信する必要があるので、ローカルホストの外部の誰かがSMTPのポート25に接続することさえ防止したいと思います。私はこれを次のようにしようとしました:

Sudo iptables -A INPUT -p tcp -s 0.0.0.0 --dport 25 -j DROP

ただし、ポート25にtelnetで接続し、別のコンピューターからSMTPコマンドを入力することはできます。私は何が間違っているのですか?また、私が望むことを達成するためのより良い方法はありますか?明確にするために:私が欲しいのは(SMTP経由で)電子メールを送信できるマシンですが、マシン上で実行されているスクリプトから発信されたものだけです。また、構成はすべて、再起動を通じて「有効」である必要があります。

Ubuntu(Hardy)でPostfixを使用しています。

3
Alex Reisner

外部からの電子メールを受信できないようにする場合は、master.cfファイルで次のように置き換えることをpostfixに正確に伝えることをお勧めします:

smtp      inet  n       -       n       -       -       smtpd

これは通常、最初の非コメント行ですが、使用している接尾辞がベンダーによって変更されているかどうかによって、マイレージが異なる場合があります。

127.0.0.1:smtp      inet  n       -       n       -       -       smtpd
10
mat

-s 0.0.0.0句は必要ないと思います。 0.0.0.0アドレスからのアクセスのみを拒否しています。

おそらく次のようなものが必要です。

Sudo iptables -A INPUT -p tcp -s 127.0.0.0/8 --dport 25 -j ACCEPT
Sudo iptables -A INPUT -p tcp --dport 25 -j DROP

これにより、ローカルホストからの着信接続(つまり、ループバック範囲-127.0.0.1-127.255.255.255)が受け入れられ、他のすべての接続がドロップされます。

1
Grhm