web-dev-qa-db-ja.com

iptablesルールが適用されるまでにはどのくらい時間がかかりますか?

Iptablesルールが適用されるまでにはどのくらい時間がかかりますか?

ホストをブロックするために以下のコードを含むスクリプトを使用しましたが、すぐに実行されないようです。遅延はありますか、iptablesが機能していないのですか、それともコードがまったく間違っているのですか?

#!/bin/sh
echo $1 >> /etc/dropped_hosts
iptables -A INPUT -s $1 -j DROP
iptables -A OUTPUT -d $1 -j DROP
6
vfclists

iptablesルールはすぐに有効になります。

このスクリプトは追加するので、これより前に、ブロックしようとしているホストを自動的に許可するというルールがある可能性があります。 iptablesはルールを上から下に読み取り、一致が見つかるとすぐに中断します(したがって、「allow badhostx」を許可していて、次の行が「drop badhostx」だった場合、ルールはすでに一致しているため、ドロップすることはありません。ホスト。

スクリプトで-Aを使用している場合は、前にテーブルをフラッシュして(iptables --flush)、ルールがスクリプトで適用したとおりであることを確認してください(ただし、すべてのルールがあることを確認してください)そのスクリプトで)。

このスクリプトを実行する代わりの別のオプションは、機能するルールを取得してから、「service iptables save」または「/etc/init.d/iptables save」を実行することです。お役に立てれば。

6
Marm0t

iptablesルールはすぐに有効になります。スクリプトはINPUTチェーンとOUTPUTチェーンに追加(-A)しているため、ルールはこれらのチェーンの最後に追加されます。これらのルールに先行する他の終了ルールがある場合、それらは有効になります(以降のルールは有効になりません)。

たとえば、-m state --state ESTABLISHED,RELATED -j ACCEPTルールはINPUT/OUTPUTチェーンの初期にあり、そのルールはその後に続くルールよりも優先して有効になります。このルールにより、スクリプトを使用してファイアウォールに追加したIPアドレスとの間の接続であっても、確立された接続の継続が許可されます。

INPUT/OUTPUTチェーンにESTABLISHED、RELATEDルール(または、後のルールを上書きする他のルール)がある場合は、新しいルールの多くがすぐに有効にならないことを受け入れるか、またはスクリプトは、ESTABLISHED、RELATEDルールの前にIPアドレスDROPルールを挿入します。これを行うには、スクリプトをIPアドレスのDROPルールを追加(-A)ではなく挿入(-I)に変更します。

iptables -I INPUT -s $1 -j DROP
iptables -I OUTPUT -d $1 -j DROP
13
Steven Monday

フィルターテーブルの先頭にルールを追加する必要があります。したがって、-A(追加)の代わりに-I(挿入)を使用する必要があります。

1
ocunev