2012-05-20 1 views
12

いくつかのアプリケーションで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 

(EDIT)ANSWER:作業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 

答えて

11

OUTPUTコマンドも--dport、ない--sportを参照する必要があります は、ここで現在の設定です。 NEW発信パケットを許可して、SMTPサーバーへの接続を開始することもできます。あなたが発信パケットの世代を防ぐために必要がある場合を除き、一般的に

は、しかし、 OUTPUTコントロール独自のシステムが生成するパケットのみ以来、あなたは ACCEPTから OUTPUTポリシーを設定することができます。


つ以上のコメント:

1.ジェイD'sの提案は、 "すべてを許可して、特定のトラフィックをブロック開始" する安全ではありません。 しないでくださいiptablesをこのように設定すると、攻撃者がどのポートを使用しているかを事前に知っておき、すべてを個別にブロックする必要があるためです。 いつでもできるだけブラックリストの代わりにホワイトリストを使用してください。トレンチから

2.ヒント:あなたはiptablesをデバッグしているとき、それは多くの場合、各鎖の始めと終わりに-I nsertと-A PPENDログメッセージに便利ですし、カウンタをクリアし、実験を実行します。 (場合によってはmailコマンドを発行してください)。次に、カウンタとログをチェックして、パケットがチェーンを介してどのように移行したのか、どこで削除されたのかを理解してください。

+0

AHはい、ありがとうございます。私はすべてのOUTPUTも許可すると思います。 – Andrew

+0

これには2つの方法があります。1.すべてをブロックしてから、特定のプロトコルトラフィック用の穴を開けるようにします。 2.すべて許可してから、特定のトラフィックをブロックします。私は強く信じています1.より良い戦略です。 –

+3

@JayD:鈍感さを許してください。しかし、#1は#2よりも "より良い戦略"ではありません。 #2は過失の点で安全ではない。学習の練習以外にこの方法を推奨しないでください。 –

関連する問題