Registro de práctica de ataque DDoS de defensa del servidor de juegos

¡Acostúmbrate a escribir juntos! Este es el primer día de mi participación en el "Nuggets Daily New Plan · April Update Challenge", haz clic para ver los detalles del evento .

Resumen: Alquilé un servidor en HUAWEI CLOUD para crear un servicio público de Minecraft. Después de que el servidor funcionó de manera estable durante 96 días, fui atacado por DDOS por primera vez el 27 de marzo de 2022. El ataque comenzó a las 11:07 y finalizó a las 11:17 cuando el tráfico de Huawei fue bloqueado y encerrado en un agujero negro.

detección anormal

Abrió el grupo QQ al mediodía y descubrió que una gran cantidad de jugadores respondieron que no se podía iniciar sesión en el servidor del juego, e inmediatamente sospechó que el proceso del servidor se había derrumbado, pero en el grupo QQ se descubrió que todavía había jugadores. jugando en el servidor. vista de fondo de inicio de sesión ssh, pero se encontró que el servicio ssh se ha detenido. Esta es una actuación muy extraña Inmediatamente inicié sesión en la consola HUAWEI CLOUD y encontré una gran cantidad de informes y notificaciones de alerta temprana. Así es como sé lo que pasó. El servidor sufrió un ataque DDos y el proveedor de servicios lo encerró en un agujero negro. Desbloquea naturalmente después de 24 horas. foto.pngComo resultado, se prohíbe todo el tráfico entrante y saliente, pero el servicio del juego sigue funcionando, por lo que todavía hay jugadores durante el período de servicio, pero otros no pueden ingresar.

re-investigación

De acuerdo con el análisis de tráfico y los métodos de seguimiento de origen proporcionados por HUAWEI CLOUD, encontré la IP de origen del atacante. Tengo algún conocimiento de DDOS antes, generalmente una gran cantidad de broilers, ataques de tráfico agrupado y la IP a menudo se encuentra en el extranjero. Pero esta vez el ataque a nuestro servidor obviamente no es avanzado. El ataque de tráfico de 5000 Mbps solo proviene de dos IP, ambas ubicadas en Guangdong, China. El método de ataque es único y solo se utiliza inundación UDP.

foto.png

Aunque el ataque es simple, aún golpea nuestro servicio en un agujero negro, lo que hace que el servicio del juego se paralice a corto plazo. Esto nos enseñó una lección de que mientras operamos y expandimos gradualmente la escala de servidores, los problemas de seguridad no deben subestimarse. ¿Cómo evitar ataques de red como ddos? ¿Cómo mejorar la seguridad del servidor? El equipo del proyecto pasó la tarde comunicándose y discutiendo políticas de seguridad, aprendiendo y probando algunas herramientas para tratar de realizar algunas actualizaciones de seguridad.

Armado seguro

A través de este incidente, aprovechamos la oportunidad para mejorar el rendimiento de seguridad del servidor. El punto más simple es que el puerto 22 del servidor siempre está expuesto de forma predeterminada, lo que tiene el riesgo de que se rompa la fuerza bruta de ssh Para mejorar la seguridad, el segmento de IP se divide por grupo de seguridad. El procesamiento de filtros también se realiza para otros puertos.

Para el procesamiento de ddos:

  1. 首先封禁ddos ip,禁止流量再进入。
  2. 使用iptable划分ip白名单,添加协议白名单保护。
  3. 使用iptable的 limit 限制恶意流量进入

iptable配置示例:

# vim /etc/sysconfig/iptables
# 先全部禁用
*filter

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-N whitelist

#再添加白名单

-A whitelist -s 1.2.3.0/24 -j ACCEPT
-A whitelist -s 4.5.6.7 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j whitelist

#设置端口开放,以下端口不受白名单限制

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j whitelist
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j whitelist

#设置icmp协议不使用白名单,如果需要的话就删掉

-A INPUT -p icmp -j ACCEPT

#其他协议的白名单开放情况

-A INPUT -i lo -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

#防止dos流量攻击
-A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

COMMIT

#配置完毕后,运行命令重启防火墙使规则生效
#systemctl restart iptables.service
复制代码

二次攻击

28日11:07,服务器黑洞24小时过后自动解封,自认为已经做好防护的我们如期的开启了服务器,还兴致勃勃的加入了新的插件。万万没想到的是,就在下午3点34分,服务器再次瘫痪,流量无法进出,看到shell的异常连接,不由得倒吸一口冷气。

打开华为云,果然又收到了故障提醒,服务器再次被打进了黑洞,我们的防御手段形同虚设。

经调查溯源,第二次攻击源ip分别来自美国和中国安徽。

反省,我们的防御手段为什么无效?除开购买价格高昂的ddos高防,我们应该如何做防御?

二次布防

由于缺少安全攻防知识,我们自己只会用pentmenu进行压力测试,再结合服务器运营商提供的可视化流量统计查看攻击强度以及防御强度。

foto.png foto.png

测试效果并不理想,根本不能确定防御的有效性。 最后,是在我的催促盘问下,提给华为云的工单有了安全工程师的反馈。 foto.png

foto.png 我们了解到: 对于ddos公网源ip的攻击,无法使用acl 安全组拦截,就算流量走不到服务器,ip还是会被打进黑洞。 同时,我们也了解到cloudflare这个服务提供商,可以免费为站点提供cdn支持,免费提供了防dos的能力。

Cloudflare 如何工作?

Cloudflare 可保护和加速任何线上网站。一旦您的网站加入 Cloudflare,其网络流量就会通过我们的智能全球网络进行路由传输。我们会自动优化您的网页传送,以便您的访问者获得最快的页面加载时间和最佳性能。我们还会阻止威胁并限制滥用机器人和爬网程序浪费您的带宽和服务器资源。

回过头来整理一下我们当前的处境:

  1. 公网源IP已暴露。
  2. 攻击者ip设置了跳板(肉鸡),不能依靠banip来防御。
  3. 服务器安全组和iptable防御策略无效,公网ip一旦被打,依然会进黑洞。

最终得出了如下的布防策略:

foto.png

我认为,整个布防最最重要的一点就是隐藏公网源ip

Efecto de armado

Después del segundo armado, el atacante ddos ​​​​solo puede atacar la máquina proxy o el clúster de cloudflare. Bajo la condición de múltiples agentes, incluso si uno muere, no afectará el funcionamiento normal del servidor del juego. La siguiente figura muestra el gráfico de datos de uno de los agentes resistiendo con éxito el ataque DOS.foto.png

Supongo que te gusta

Origin juejin.im/post/7081518676922335245
Recomendado
Clasificación