web-dev-qa-db-ja.com

iptablesは、特定のポートからの特定のIPのみを許可します

サーバーへのすべてのトラフィックをブロックすることがいかに簡単であるかを知っているので、iptablesを編集するときはいつも緊張します。これは、サーバーがクラウド上にある場合のかなり大きな問題です。

これらは正しい一連のコマンドでしょうか?

iptables -A INPUT -p tcp --dport 123 -s 1.2.3.4 -j ACCEPT 
iptables -A INPUT -p tcp --dport 123 -s 5.6.7.8 -j ACCEPT
iptables -A INPUT -p tcp --dport 123 -j DROP
iptables-save
1

これはあなたの質問に答えません-他の人はそれの素晴らしい仕事をしています-しかしそれはあなたの他の懸念に対処します:あなた自身をあなたのリモートサーバーから締め出すこと。システムで大きなiptables変更を行うときは常に、atdが実行されていることを確認し、その後約10分間atジョブを実行します。ファイアウォールがダウンしている、

at now + 10 minutes
at> service iptables stop
at> ^D

そうすれば、本当にファウルして自分を締め出せば、10分以内に戻って問題を解決できるようになることがわかります。作業を終了し、ファウルしていない場合は、atqでそのジョブを見つけ、実行する前にatrmで削除できます。

5
MadHatter

動作するはずですが、改善することができます。デフォルトのINPUTポリシーが何であるかを投稿していません。 ACCEPTの場合、コマンドは機能するはずですが、最も推奨されるコマンドではありません。 DROPの場合、iptables-saveの前の行は必要ありません。

Iptablesやその他のファイアウォールに最も推奨されるポリシーは、すべてを削除してから、許可するポート/プロトコルを明示的に許可することです。だからあなたはこれから始めます-

iptables -A INPUT -j DROP

次に、ポート123/tcp宛ての着信トラフィックを明示的に許可します

iptables -A INPUT -p tcp --dport 123 -s 1.2.3.4 -j ACCEPT

iptables -A INPUT -p tcp --dport 123 -s 5.6.7.8 -j ACCEPT

2
Daniel t.

Debian iptablesパッケージには、変更を適用した後にすべて問題がないかどうかを尋ねる「/ usr/sbin/iptables-apply」があります。質問に返信しないと、変更が取り消されます。

0
Brigo