Iptablesルールが適用されるまでにはどのくらい時間がかかりますか?
ホストをブロックするために以下のコードを含むスクリプトを使用しましたが、すぐに実行されないようです。遅延はありますか、iptablesが機能していないのですか、それともコードがまったく間違っているのですか?
#!/bin/sh
echo $1 >> /etc/dropped_hosts
iptables -A INPUT -s $1 -j DROP
iptables -A OUTPUT -d $1 -j DROP
iptables
ルールはすぐに有効になります。
このスクリプトは追加するので、これより前に、ブロックしようとしているホストを自動的に許可するというルールがある可能性があります。 iptablesはルールを上から下に読み取り、一致が見つかるとすぐに中断します(したがって、「allow badhostx」を許可していて、次の行が「drop badhostx」だった場合、ルールはすでに一致しているため、ドロップすることはありません。ホスト。
スクリプトで-Aを使用している場合は、前にテーブルをフラッシュして(iptables --flush)、ルールがスクリプトで適用したとおりであることを確認してください(ただし、すべてのルールがあることを確認してください)そのスクリプトで)。
このスクリプトを実行する代わりの別のオプションは、機能するルールを取得してから、「service iptables save」または「/etc/init.d/iptables save」を実行することです。お役に立てれば。
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
フィルターテーブルの先頭にルールを追加する必要があります。したがって、-A(追加)の代わりに-I(挿入)を使用する必要があります。