2016-06-20 18 views
7

私は現在、これらのルールを持っている:iptablesのレート制限IPおよびポート

iptables -I FORWARD -p udp -d {IPDST} --dport {PORTDST} -m u32 --u32 '0>>22&[email protected]=0xFFFFFFFF' -j SRCDS-TRF 
iptables -I SRCDS-TRF -p udp -d {IPDST} --dport {PORTDST} -m u32 --u32 '0>>22&[email protected]&0xFFFF=0x5453' -m limit --limit 45/second --limit-burst 150 -j ACCEPT 
iptables -I SRCDS-TRF -p udp -d {IPDST} --dport {PORTDST} -m u32 --u32 '0>>22&[email protected]&0xFF=0x55' -m limit --limit 3/second --limit-burst 20 -j ACCEPT 
iptables -I SRCDS-TRF -p udp -d {IPDST} --dport {PORTDST} -m u32 --u32 '0>>22&[email protected]&0xFF=0x56' -m limit --limit 3/second --limit-burst 15 -j ACCEPT 
iptables -I SRCDS-TRF -p udp -d {IPDST} --dport {PORTDST} --sport 27005 -m u32 --u32 '0>>22&[email protected]&0xFF=0x71' -m limit --limit 20/second --limit-burst 70 -j ACCEPT 
iptables -I SRCDS-TRF -p udp -d {IPDST} --dport {PORTDST} ! --sport 27005 -m u32 --u32 '0>>22&[email protected]&0xFF=0x71' -m limit --limit 2/second --limit-burst 17 -j ACCEPT 
iptables -I SRCDS-TRF -p udp -d {IPDST} --dport {PORTDST} --sport 27005 -m u32 --u32 '0>>22&[email protected]&0xFF=0x6b' -m limit --limit 20/second --limit-burst 70 -j ACCEPT 
iptables -I SRCDS-TRF -p udp -d {IPDST} --dport {PORTDST} ! --sport 27005 -m u32 --u32 '0>>22&[email protected]&0xFF=0x6b' -m limit --limit 2/second --limit-burst 17 -j ACCEPT 

これは動作しますが、しかし、私はIPとポートあたりのこれらのルールの多くを作成するために抱えています。 IP宛先とポート宛先を指定しないと、IP単位ではなく全体的なパケット制限として機能します。これにより、1つのアプリケーションがトラフィックを急増させ、残りの部分がレート制限される場合に問題が発生します。

潜在的に何百もあるのではなく、ただ1組のルールを作成する簡単な方法はありますか?

答えて

1

1)iptablesのカーネル拡張であるIP setsを使用して、レート制限ルールを一連のIPアドレスに適用します。

2)Use Shorewalliptablesルールの設定に役立ちます。

関連する問題