2016-06-20 27 views
7

Obecnie mam zasad:IPTables stawka za granica docelowego adresu IP i portu

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 

To działa, jednak mam stworzyć wiele z tych zasad na IP i port. Jeśli nie dostarczę adresu docelowego IP i portu docelowego, to działa on raczej jako limit pakietów, a nie na IP, powoduje to problemy, gdy jedna aplikacja dostaje skok ruchu, a reszta z nich również ma ograniczoną stawkę.

Czy istnieje łatwiejszy sposób tworzenia tylko jednego zestawu reguł, zamiast potencjalnie posiadania setek?

Odpowiedz

1

1) Użyj IP sets, rozszerzenia jądra dla iptables, aby zastosować reguły ograniczające szybkość do zestawu adresów IP i/lub;

2) Use Shorewall, aby pomóc w konfiguracji reguł iptables.