adam napisał(a):

iptables -t nat -A PREROUTING -p tcp -s 192.168.1.4 --dport www \
                               -m limit --limit 4/day --limit-burst 1 \
                               -j DNAT --to-destination 192.168.1.1:8000
Czyli musze najpierw
IPT -t nat -p tcp -A PREROUTING -s 192.168.1.3 --dport 80 -m limit --limit
1/hour --limit-burst 1 -j DNAT --to 192.168.1.1:8000
Żeby te reguły były na górze a dopiero później cała reszta dotycząca tego
usera
Możesz po prostu zamiast -A PREROUTING robić -I PREROUTING 1 - wtedy zawsze regółka wpadnie na pierwsze miejsce w tablicy.

Ale myślę, że regółka jest poprawna, tylko z jakichś powodów pakiety kolejne są gdzieś indziej odfiltrowywane. Najlepiej sprawdź (jeżeli generujesz te regółki automatycznie), czy faktycznie po pierwszym wyświetleniu warninga o niezapłaceniu odpowiednie regóły są dalej w tabeli.

Poza tym dla każdego usera co to nie zapłacił musisz mieć oczywiście osobną regółkę, żeby każdemu osobno liczył --limit. Jak masz 3 co nie zapłaciło to musisz mieć regółki DNAT dla każdego z ich IP.

$IPT -A INPUT -p udp -m mac --mac-source 00:0c:6e:1c:13:5e --dport 67
--sport 68 -j ACCEPT
$IPT -A FORWARD -m mac --mac-source 00:0c:6e:1c:13:5e -s 192.168.1.4 -j
ACCEPT
$IPT -A INPUT -m mac --mac-source 00:0c:6e:1c:13:5e -s 192.168.1.4 -p tcp -m
state --state NEW -m multiport --dport
20,21,25,53,80,110,137,138,139,8000,8080 -j ACCEPT
$IPT -A INPUT -m mac --mac-source 00:0c:6e:1c:13:5e -s 192.168.1.4 -p udp -m
state --state NEW -m multiport --dport 53,137,138,139 -j ACCEPT
A jeżeli idzie o te regóły to trafiają do innej tabeli więc ich kolejność ma się nijak do tych z tabeli NAT.

--
Pozdrawiam
Romek Kalukiewicz

Odpowiedź listem elektroniczym