Ratenbegrenzung und Verwerfen von NATT-Paketen, AUSSER für 5 lokale Netzwerke

Ratenbegrenzung und Verwerfen von NATT-Paketen, AUSSER für 5 lokale Netzwerke

Im Grunde versuche ich, die Rate der Anfragen an einen Mailserver auf Firewall-Ebene zu begrenzen, aber mehrere firmeneigene IP-Bereiche auf die Whitelist zu setzen. Ich kanneinsEs gibt einen IP-Adressbereich, aber nicht mehrere, da die Regel „das erste passende Paket bekommt“ gilt.

Hier ist, was ich derzeit habe ... (Entschuldigung für die Mischung aus -Iund -A)

# Send traffic to rate-limiter before allowing it to continue to the mail server.
iptables -t nat -I PREROUTING -d 20.87.6.71 -p tcp --destination-port 25 -j DNAT --to-destination 192.168.250.71:25
iptables -t nat -I PREROUTING -d 20.87.6.71 -p tcp --destination-port 143 -j DNAT --to-destination 192.168.250.71:143
iptables -t nat -I PREROUTING -d 20.87.6.71 -p tcp --destination-port 993 -j DNAT --to-destination 192.168.250.71:993
iptables -t mangle -I PREROUTING -d 20.87.6.71 -p tcp --destination-port 25 -j rate-limiter
iptables -t mangle -I PREROUTING -d 20.87.6.71 -p tcp --destination-port 143 -j rate-limiter
iptables -t mangle -I PREROUTING -d 20.87.6.71 -p tcp --destination-port 993 -j rate-limiter

# Create a new chain, which logs all traffic then drops it.
# We make sure that localnets are not part of this...
iptables -t mangle -N rate-limiter
iptables -t mangle -A rate-limiter -p tcp --syn -d 20.87.6.71 ! -s 192.168.254.0/24 -m state --state NEW -m recent --set --name MailRateLimiter --rsource
iptables -t mangle -A rate-limiter -p tcp --syn -d 20.87.6.71 ! -s 20.87.6.0/24 -m state --state NEW -m recent --set --name MailRateLimiter --rsource

iptables -t mangle -A rate-limiter -p tcp --syn -d 20.87.6.71 ! -s 192.168.250.0/24 -m state --state NEW -m recent --rcheck --seconds 60 --hitcount 20 --name MailRateLimiter --rsource -j LOG --log-prefix 'RATE EXCEEDED' --log-level 4
iptables -t mangle -A rate-limiter -p tcp --syn -d 20.87.6.71 ! -s 192.168.250.0/24 -m state --state NEW -m recent --rcheck --seconds 60 --hitcount 20 --name MailRateLimiter --rsource -j DROP

iptables -t mangle -A rate-limiter -p tcp --syn -d 20.87.6.71 ! -s 20.87.6.0/24 -m state --state NEW -m recent --rcheck --seconds 60 --hitcount 20 --name MailRateLimiter --rsource -j LOG --log-prefix 'RATE EXCEEDED' --log-level 4
iptables -t mangle -A rate-limiter -p tcp --syn -d 20.87.6.71 ! -s 20.87.6.0/24 -m state --state NEW -m recent --rcheck --seconds 60 --hitcount 20 --name MailRateLimiter --rsource -j DROP

Die erste Regel gleicht das Paket ab und markiert es dann in der Tabelle „Zuletzt verwendet“, sodass ich beim Klicken cat /proc/self/net/xt_recent/MailRateLimiterIPs sehe, die auf die Whitelist gehören:

src=20.87.6.200 ttl: 57 last_seen: 56654988107 oldest_pkt: 8 56654320106, 56654370481, 56654426548, 56654480458, 56654564349, 56654565421, 56654952936, 56654988107
src=20.87.6.5 ttl: 63 last_seen: 56655077970 oldest_pkt: 9 56654962465, 56654962465, 56654978465, 56655024835, 56655031038, 56655037096, 56655048206, 56655059305, 56655077970, 56654768325, 56654777150, 56654802008, 56654807677, 56654816481, 56654842497, 56654846996, 56654855809, 56654886875, 5665489136

Verzeihen Sie mir, wenn es etwas Dummes ist ... Es war ein langer Tag, und ich wurde irgendwie da hineingeworfen ...

Antwort1

Sie können alles, was Sie möchten, auf die Whitelist setzen, indem Sie oben in die KETTE Folgendes schreiben:

iptables -t mangle -A rate-limiter <rule to match whitelisted> -j RETURN

POSTROUTINGPakete, die mit den auf der Whitelist aufgeführten Netzwerken übereinstimmen, werden ohne Änderungen zurückgegeben .

verwandte Informationen