Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 12603|Respuesta: 2

[Linux] Mira cómo mi Linux protege contra ataques SYN

[Copiar enlace]
Publicado en 12/12/2015 0:04:58 | | | |

Cuando llegué a la empresa esta mañana, me sentí bastante lento al iniciar sesión en la web oficial de la empresa, iniciar sesión en el servidor para comprobar el estado de acceso de la web oficial:

[root@web ~]# netstat -anp |awk '{print $6}'|sort|uniq -c |sort -rn

     ESTABLECIDO EN 172

     59 CONECTADOS

    589 SYN_RECV

     15 STREAM

El SYN es en realidad tan alto, sigue rastreando el SYN enviado por esas IPs:

[root@tweb ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{imprimir $1}' | Ordenar | uniq -c | ordenar -nr | más

570 x.x.x.x   

(La IP no está escrita, es una IP de Shandong Zaozhuang Unicom), pero esta IP ha enviado tantas conexiones de petición SYN, y la concurrencia de nuestro servidor web no es muy alta, por lo que las solicitudes normales de los usuarios no pueden corresponderse y la página no puede abrirse. Como el firewall de hardware está gestionado por el departamento de TI del grupo, no tengo autoridad, así que solo puedo tomar algunas medidas en el servidor local para mitigar parcialmente el ataque SYN.

En primer lugar, hablemos del principio de ataque de SYN:

En el protocolo TCP/IP, el protocolo TCP proporciona servicios de conexión fiables mediante un handshake de tres vías para establecer una conexión.

Primer apretón de manos: Al establecer una conexión, el cliente envía un paquete syn (syn=j) al servidor y entra en el estado SYN_SEND, esperando a que el servidor lo confirme.

El segundo handshake: Cuando el servidor recibe el paquete SYN, debe confirmar el SYN del cliente (ack=j+1) y también enviar un paquete SYN (syn=k), es decir, paquete SYN+ACK, momento en el que el servidor entra en el estado SYN_RECV.

Tercer apretón de manos: El cliente recibe el paquete SYN+ACK del servidor y envía el paquete de confirmación ACK (ack=k+1) al servidor. Tras tres apretones de mano, el cliente y el servidor comienzan a transmitir datos.


Si el usuario inicia una solicitud de conexión con el servidor solo para estrechar la mano por segunda vez y no responde al servidor, este seguirá esperando la confirmación del usuario. Así que realizamos los siguientes cambios directamente desde la conexión SYN:

Comprueba la configuración predeterminada de SYN en Linux:

[root@web ~]# sysctl -a | GREP _syn

net.ipv4.tcp_max_syn_backlog = 1024

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_synack_retries = 5

net.ipv4.tcp_syn_retries = 5

tcp_max_syn_backlog es la longitud de la cola SYN, y aumentar la longitud de la cola SYN puede acomodar más conexiones de red esperando a ser conectadas. tcp_syncookies es un interruptor para activar la función de cookies SYN, que puede prevenir ataques parciales de SYN. tcp_synack_retries y tcp_syn_retries definen el número de conexiones de reintento para el SYN y reducen los parámetros por defecto para controlar el número de conexiones SYN tanto como sea posible.

Los siguientes son los parámetros que he modificado, que pueden modificarse según la situación real de mi servidor:

[root@web ~]# más /etc/rc.d/rc.local

#!/bin/sh

# Este scrip{filter}t se ejecutará *después* de todos los demás scrip{filter}ts de init.

# Puedes poner tus propias inicializaciones aquí si no lo haces

# quiero hacer todo el estilo Sys V de iniciación.

táctil /var/lock/subsys/local

ulimit -HSn 65535

/usr/local/apache2/bin/apachectl start

#####

sysctl -w net.ipv4.tcp_max_syn_backlog=2048

sysctl -w net.ipv4.tcp_syncookies=1

sysctl -w net.ipv4.tcp_synack_retries=3

sysctl -w net.ipv4.tcp_syn_retries=3

Para que la configuración entre en vigor inmediatamente sin reiniciar el servidor, se puede realizar

#sysctl -w net.ipv4.tcp_max_syn_backlog=2048

#sysctl -w net.ipv4.tcp_syncookies=1

#sysctl -w net.ipv4.tcp_synack_retries=3

#sysctl -w net.ipv4.tcp_syn_retries=3

Algunas personas prefieren usar listas de control de acceso para prevenir ataques SYN, lo que ralentiza los ataques SYN hasta cierto punto:

Ataque de inundación syn

#iptables -A ENTRADA -p tcp --syn -m límite --límite 1/s -j ACEPTAR

--límite 1/s limita el número de concurrencias sinéticas a 1 vez por segundo

Escaneo antipuerto

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -límite --límite 1/s -j ACEPTAR

Ping de muerte

# iptables -A FORWARD -p icmp --icmp-tipo echo-request -m límite --límite 1/s -j ACEPTAR

#>iptables-save >/etc/sysconfig/iptables

Para ver, #iptables -L

ACEPTAR tcp -- en cualquier lugar y en cualquier lugar banderas de tcp: FIN, SYN, RST, ACK/SYN límite: ráfaga media de 1/seg 5

ACEPTAR tcp -- en cualquier lugar y en cualquier lugar banderas de tcp: FIN, SYN, RST, ACK/RST límite: ráfaga media de 1/s 5

ACCEPT icmp -- en cualquier lugar del límite de petición de eco ICMP: ráfaga media de 1/seg 5

Revisa de nuevo la conexión syn:

[root@web ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{imprimir $1}' | Ordenar | uniq -c | ordenar -nr | más

     20 10.92.10.220

      1 125.43.36.199

Obviamente, el número de conexiones SYN ha disminuido.






Anterior:"Lo siento, no estás instalando una app genuina, el instalador no puede seguir realizando discuz" solución
Próximo:SC Create crea un servicio de sistema Windows
Publicado en 13/12/2015 10:53:04 |
Qué mirada tan poderosa
Publicado en 14/12/2015 15:55:43 |
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com