![Necesita reglas de tablas de IP para bloquear ataques DoS/DDoS (suplantación de IP y ataque de inundación SYN)](https://rvso.com/image/191798/Necesita%20reglas%20de%20tablas%20de%20IP%20para%20bloquear%20ataques%20DoS%2FDDoS%20(suplantaci%C3%B3n%20de%20IP%20y%20ataque%20de%20inundaci%C3%B3n%20SYN).png)
Tengo un conmutador de red donde intento instalar las reglas de tablas de IP para evitar diferentes tipos de ataques DOS/DDOS. A continuación se muestra el diseño de la red.
Laptop-1 ------- router ---- Network switch ---- customer devices
|
Laptop-2 -----------
Estoy intentando atacar el conmutador desde la computadora portátil-1 y el conmutador está colgado.
A continuación se muestran los ataques DoS/DDoS que intento evitar.
IP spoofing
Attack command: hping3 -a 192.168.1.1 -S -p 80 --flood 192.168.22.140
Result: System hangs
SYN flood - half handshake
Attack command: hping3 -V -c 1000 -d 10 -S -p 80 --flood 192.168.22.140
Result: System hangs
ICMP flood
Attack command: hping3 -1 --flood -a 192.168.22.140 192.168.22.140
Attack command: hping3 -1 --flood -a 192.168.22.15 192.168.22.140
Result: System hangs
Para la inundación ICMP, ya tengo una regla implementada, pero necesito ayuda para encontrar la regla deseada para la suplantación de IP y el ataque de inundación SYN. La regla debe instalarse de tal manera que bloquee al atacante desde cualquier subred.
Estoy usando la siguiente versión de iptables:iptables-1.8.5 (legacy build)
Respuesta1
#!/bin/bash
# Variables
IPTABLES="/sbin/iptables"
RLIMIT="-m limit --limit 10/s --limit-burst 10"
#---------------------------------------------------------------------------
# Drop invalid packets
$IPTABLES -t mangle -A PREROUTING -m conntrack --ctstate INVALID -j DROP
#----------------------------------------------------------------------------
# Drop TCP packets that are new and are not SYN
$IPTABLES -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j DROP
#---------------------------------------------------------------------------------------
# Drop SYN packets with suspicious MSS value
$IPTABLES -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP
#-------------------------------------------------------------------------------------------------------
# Block packets with bogus TCP flags
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags FIN,ACK FIN -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP
$IPTABLES -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
#---------------------------------------------------------------------------------------
# Limit TCP connections per source IP
$IPTABLES -A INPUT -p tcp -m connlimit --connlimit-above 20 -j REJECT --reject-with tcp-reset
#-----------------------------------------------------------------------------------------
# Protection against SYN FLOOD
$IPTABLES -N SYN_FLOOD
$IPTABLES -A INPUT -p tcp --syn -j SYN_FLOOD
$IPTABLES -A SYN_FLOOD $RLIMIT -j RETURN
$IPTABLES -A SYN_FLOOD -j DROP
#-------------------------------------------------------------------------------------------
# Save the rules
/sbin/iptables-save