一部のアプリケーションでmail
コマンド(サーバー:CentOS 6.2)を使用しているのに、httpポートとsshポートのみが開いているように、サーバーを(iptablesで)保護しています。 iptablesがすべてをブロックしているおかげです。
どのポートへのアクセスを許可しますか?
メールの使用法:echo "{{message}}" | mail -s "{{subject}}" [email protected]
標準のメールポート25を試しましたが、うまくいきませんでした。現在の設定は次のとおりです。
iptables --flush
iptables -P INPUT DROP
iptables -P OUTPUT DROP
# incoming ssh
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# outgoing ssh
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
#HTTP
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# mail (does not work)
iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
(編集)回答:動作するiptablesルール:
iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
OUTPUT
コマンドは、--dport
ではなく--sport
も参照する必要があります。 SMTPサーバーへの接続を開始するために、NEW
送信パケットを許可することもできます。
ただし、一般に、OUTPUT
は独自のシステムが生成するパケットのみを制御するため、を防ぐ必要がない限り、OUTPUT
ポリシーをACCEPT
に設定できます。生成発信パケットの。
さらに2つのコメント:
1。「すべてを許可してから特定のトラフィックのブロックを開始する」というJayDの提案は安全ではありません。 Neveriptables
をこのように構成します。これは、攻撃者が使用する可能性のあるポートを事前に把握し、それらをすべて個別にブロックする必要があるためです。 常に可能であれば、ブラックリストの代わりにホワイトリストを使用してください。
2。塹壕からのヒント:iptables
をデバッグするときは、ログメッセージの最初と最後に-I
nsertと-A
ppendを付けると役立つことがよくあります。各チェーン、次にカウンターをクリアし、実験を実行します。 (この場合、mail
コマンドを発行します。)次に、カウンタとログをチェックして、パケットがチェーンを介してどのように移行され、どこでドロップされたかを理解します。