サーバーへのすべてのトラフィックをブロックすることがいかに簡単であるかを知っているので、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
これはあなたの質問に答えません-他の人はそれの素晴らしい仕事をしています-しかしそれはあなたの他の懸念に対処します:あなた自身をあなたのリモートサーバーから締め出すこと。システムで大きなiptables
変更を行うときは常に、atd
が実行されていることを確認し、その後約10分間at
ジョブを実行します。ファイアウォールがダウンしている、
at now + 10 minutes
at> service iptables stop
at> ^D
そうすれば、本当にファウルして自分を締め出せば、10分以内に戻って問題を解決できるようになることがわかります。作業を終了し、ファウルしていない場合は、atq
でそのジョブを見つけ、実行する前にatrm
で削除できます。
動作するはずですが、改善することができます。デフォルトの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
Debian iptablesパッケージには、変更を適用した後にすべて問題がないかどうかを尋ねる「/ usr/sbin/iptables-apply」があります。質問に返信しないと、変更が取り消されます。