LinuxParty
Los firewalls de juniper vienen con una plantilla de configuración contra determinados ataques conocida como screening que previene contra diferentes tipos de ataques.
El objetivo de este artículo es hacer un compendio de directivas que puedan cubrir un espectro de reglas útiles que puedan añadirse a iptables a modo del screening de juniper, siempre con precaución y no haciéndolas permanentes (no grabándolas a fichero), hasta que se compruebe que no se bloquea ningún servicio que no se debiera.
Una de los primeros problemas que nos enfrentaremos con iptables es intentar parar ataques de denegación de servicio, bien sea distribuido bien sea desde un único origen:
ANTIDoS/ANTIDDoS:
Bloqueamos paquetes con determinada longitud:
iptables -A INPUT -p tcp -d IP -m length –length 40:48 -j DROP
Bloqueamos paquetes con determinado ttl:
iptables -A INPUT -p tcp -s 0.0.0.0/0 -d IP -m ttl –ttl 111 -j DROP
SYN FLOOD PREVENTION:
$IPT -N syn-flood
$IPT -A INPUT -i eth+ -p tcp –tcp-flags SYN,ACK,FIN,RST RST -j syn-flood
$IPT -A FORWARD -i eth+ -p tcp –tcp-flags SYN,ACK,FIN,RST RST -j syn-flood
$IPT -A syn-flood -m limit –limit 4/s –limit-burst 16 -j RETURN
$IPT -A syn-flood -m limit –limit 75/s –limit-burst 100 -j RETURN -A syn-flood -j LOG –log-prefix “SYN FLOOD ” –log-tcp-sequence –log-tcp-options –log-ip-options -m limit –limit 1/second
$IPT -A syn-flood -j DROP
UDP FLOOD PREVENTION:
$IPT -A OUTPUT -p udp -m state –state NEW -j ACCEPT
$IPT -A OUTPUT -p udp -m limit –limit 100/s -j ACCEPT
$IPT -A OUTPUT -p udp -j DROP
Limitando el máximo de conexiones al puerto 80 (o otro puerto, en general defensa en capa 7):
$IPT -A INPUT -p tcp –dport 80 -m hashlimit –hashlimit-upto 50/min –hashlimit-burst 80 –hashlimit-mode srcip –hashlimit-name http -j ACCEPT
$IPT -A INPUT -p tcp –dport 80 -j DROP
Limita el máximo número de conexiones por minuto contra apache:
iptables -A INPUT -p tcp –dport 80 -m state –state NEW -m limit –limit 50/minute –limit-burst 200 -j ACCEPT
ICMP FLOOD:
Permite ping, pero a 1 paquete por segundo, evitar ataques ICMP Flood
$IPT -A INPUT -p icmp -m state –state NEW –icmp-type echo-request -m limit –limit 1/s –limit-burst 1 -j ACCEPT
$IPT -A INPUT -p icmp -j DROP
RECENT TABLE:
Por por cada ip en la tabla de recent si hace mas de x hits en x segundos, se descarta.
$IPT -I INPUT -p tcp –syn -m recent –set
$IPT -I INPUT -p tcp –syn -m recent –update –seconds 10 –hitcount 30 -j DROP
Nota: Algunas de las siguientes reglas de bloqueo DDOS (más bien mitigación), utilizan un parámetro como iplimit-above que quizás no venga con iptables que tengas instalado (con un man, deberías de poder ver si viene en la ayuda de iptables). Si es así, quizás te toque compilar el kernel con plugins para iptables/netfilter.
echo “Block DOS – Ping of Death” Bloquea por tamaño de paquetes icmp.
iptables -A INPUT -p ICMP –icmp-type echo-request -m length –length 60:65535 -j ACCEPT
echo “Block DOS – Teardrop” Bloque tráfico de entrada udp fragmentado
iptables -A INPUT -p UDP -f -j DROP
echo “Block DDOS – SYN-flood”
iptables -A INPUT -p TCP –syn -m iplimit –iplimit-above 9 -j DROP
echo “Block DDOS – Smurf”
iptables -A INPUT -m pkttype –pkt-type broadcast -j DROP
iptables -A INPUT -p ICMP –icmp-type echo-request -m pkttype –pkttype broadcast -j DROP
iptables -A INPUT -p ICMP –icmp-type echo-request -m limit –limit 3/s -j ACCEPT
echo “Block DDOS – Connection-flood”
iptables -A INPUT -p TCP –syn -m iplimit –iplimit-above 3 -j DROP
echo “Block DDOS – Fraggle” Bloquea tráfico udp de entrada broadcast y limitándolo a 3 paquetes por segundo
iptables -A INPUT -p UDP -m pkttype –pkt-type broadcast -j DROP
iptables -A INPUT -p UDP -m limit –limit 3/s -j ACCEPT
echo “Block DDOS – Jolt” Bloquea paquetes fragmentados ICMP:
iptables -A INPUT -p ICMP -f -j DROP
echo “Block DDOS – SMBnuke” Esta regla más que para parar un ataque DDOS es para bloquear el acceso al troyano SMBnuke
iptables -A INPUT -p UDP –dport 135:139 -j DROP
iptables -A INPUT -p TCP –dport 135:139 -j DROP
En este artículo, tenemos una explicación más extensa. Te gustará.
Filtrado de paquetes en Linux con IPTABLES
-
Seguridad
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
- Consejos de Seguridad para Pagos Móviles en España: Protege tus Transacciones con Estos Consejos Prácticos
- Snort para Windows, detección de Intrusos y seguridad.
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023
- 8 hábitos que deben tomar los teletrabajadores altamente seguros
- 7 cosas que incluso los nuevos usuarios de Linux pueden hacer para proteger mejor el sistema operativo
- Recuperar contraseñas de archivos comprimidos en 3 pasos
- Administración: Glances - herramienta de monitoreo y supervisión para Linux
- Cómo monitorear sistemas Linux remotos con Glances
- Los 5 mejores VPN del momento
- Cómo bloquear ataques de fuerza bruta SSH usando SSHGUARD en Linux
- Cómo purgar y limpiar tus discos y borrar archivos en forma segura
- Generar password aletorios en Linux