私は次の規則を書き留めましたiptables
。
-A FORWARD -i eth1 -o eth0 -p icmp -m limit --limit 1/hour --limit-burst 5000 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -p udp -m limit --limit 1/hour --limit-burst 200 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -p tcp -m limit --limit 1/hour --limit-burst 200 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -m limit --limit 1/hour --limit-burst 100 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -p tcp -m tcp --dport 443 -j limitlog
-A FORWARD -i eth1 -o eth0 -p tcp -m tcp --dport 80 -j limitlog
-A FORWARD -i eth1 -o eth0 -p udp -m udp --dport 53 -j limitlog
-A FORWARD -i eth1 -o eth0 -p udp -m udp --dport 123 -j limitlog
-A FORWARD -i eth1 -o eth0 -p tcp -m tcp --dport 21 -j limitlog
-A FORWARD -i eth1 -o eth0 -p tcp -m tcp --dport 20 -j limitlog
-A FORWARD -i eth1 -o eth0 -p tcp -m tcp --dport 22 -j limitlog
-A FORWARD -i eth1 -o eth0 -p tcp -m tcp --dport 5123 -j limitlog
-A FORWARD -i eth1 -o eth0 -p udp -m udp --dport 5123 -j limitlog
-A limitlog -i eth1 -o eth0 -p tcp -m tcp --dport 443 -j LOG --log-prefix "HTTPS z HP: "
-A limitlog -i eth1 -o eth0 -p tcp -m tcp --dport 443 -m limit --limit 1/hour --limit-burst 900 -j ACCEPT
-A limitlog -i eth1 -o eth0 -p tcp -m tcp --dport 80 -j LOG --log-prefix "HTTP z HP: "
-A limitlog -i eth1 -o eth0 -p tcp -m tcp --dport 80 -m limit --limit 1/hour --limit-burst 960 -j ACCEPT
-A limitlog -i eth1 -o eth0 -p udp -m udp --dport 53 -j LOG --log-prefix "DNS z HP: "
-A limitlog -i eth1 -o eth0 -p udp -m udp --dport 53 -m limit --limit 1/hour --limit-burst 360 -j ACCEPT
-A limitlog -i eth1 -o eth0 -p udp -m udp --dport 123 -j LOG --log-prefix "NTP z HP: "
-A limitlog -i eth1 -o eth0 -p udp -m udp --dport 123 -m limit --limit 1/hour --limit-burst 300 -j ACCEPT
-A limitlog -i eth1 -o eth0 -p tcp -m tcp --dport 21 -j LOG --log-prefix "FTP z HP: "
-A limitlog -i eth1 -o eth0 -p tcp -m tcp --dport 21 -m limit --limit 1/hour --limit-burst 900 -j ACCEPT
-A limitlog -i eth1 -o eth0 -p tcp -m tcp --dport 20 -j LOG --log-prefix "FTP DATA z HP: "
-A limitlog -i eth1 -o eth0 -p tcp -m tcp --dport 20 -m limit --limit 1/hour --limit-burst 900 -j ACCEPT
-A limitlog -i eth1 -o eth0 -p tcp -m tcp --dport 22 -j LOG --log-prefix "SSH/SCP z HP: "
-A limitlog -i eth1 -o eth0 -p tcp -m tcp --dport 22 -m limit --limit 1/hour --limit-burst 900 -j ACCEPT
-A limitlog -i eth1 -o eth0 -p tcp -m tcp --dport 5123 -j LOG --log-prefix "5123TCP z HP: "
-A limitlog -i eth1 -o eth0 -p tcp -m tcp --dport 5123 -m limit --limit 1/hour --limit-burst 300 -j ACCEPT
-A limitlog -i eth1 -o eth0 -p udp -m udp --dport 5123 -j LOG --log-prefix "5123UDP z HP: "
-A limitlog -i eth1 -o eth0 -p udp -m udp --dport 5123 -m limit --limit 1/hour --limit-burst 300 -j ACCEPT
eth0
外部ネットワークであり、eth1
内部ネットワークです。うまくいきますが、このルールを追加すると次のようになります。
iptables -A FORWARD -i eth1 -o eth0 -j DROP
前のルールはすべて無視され、最後のルールでトラフィックが終了します。なぜか分からないのですか?このルールを削除してチェーンのルールを変更する場合にも機能しますlimitlog
(例:from ACCEPT
to)。DROP
ベストアンサー1
あなたの制限は少し積極的です。 1時間に1つのパケットのみを許可するルールを作成することは意味がありません。高いバーストを設定している可能性がありますが、バケットは1時間に1回だけ課金され、実際には1時間あたり1パケット未満を受信した場合にのみ課金されます。
最悪の部分は、これらの制限がすべてのパケットに適用されることです。これは、これらの制限が設定/接続されたconntrack状態の一部である場合、これを許可しないためです。
ダンプの統計-L
によると、これは問題ではありませんが、テスト前にダンプを取った可能性があります。 (-S
を追加して統計を含めることができます-v
)。
関連なし:ルールセットを単純化する方法はいくつかあります。limitlog
チェーンが呼び出されるだけで、その中のすべての-i eth1 -o eth0
合計-i
を省略できます-o
。