Portal SAMP
[Tutorial] Medidas para evitar ataques DDoS - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Guias e Tutoriais (https://portalsamp.com/forumdisplay.php?fid=7)
+--- Tópico: [Tutorial] Medidas para evitar ataques DDoS (/showthread.php?tid=809)



Medidas para evitar ataques DDoS - Levi.M - 23/02/2021

Olá esse tutorial foi recuperado do antigo Fórum SA-MP, estou postando aqui com o intuito de ajudar pessoas que queiram saber sobre o assunto. Créditos ao Koplan.

Medidas para evitar ataques DDoS

Introdução:

Os ataques DoS/DDoS tem vindo a aumentar bastante nos últimos meses, e com isso é preciso implementar medidas para evitar que seu servidor seja atacado. Se você é daqueles caras que prefere ter um servidor hospedado no seu computador para evitar gastar dinheiro e está aguardando algum milagre, então já pode fechar este tutorial.

Não há nenhuma forma de evitar um ataque DDoS a 100% e muito menos num servidor online cujo o protocolo é 17 (UDP), o que podemos fazer é implementar medidas para reduzir a probabilidade disto acontecer.


Ingredientes:

. Virtual Private Server (VPS) Linux.
. Cérebro.


Procedimentos:

Em primeiro lugar devemos proteger a máquina de ataques RANDOM que são feitos através de portas aleatórias que estejam abertas, é muito frequente atacarem a porta 22. Este tipo de ataque atualmente é muito perigoso, principalmente nos servidores da OVH, em que a proteção dos servidores dedicados em Layer 4 é quase perfeita, mas quando se trata de VPS a história é outra, há vários métodos RANDOM que fazem bypass aos planos básicos da OVH.


Solução:

Configuramos algumas regras no iptables para permitir somente o seu IP a estabelecer uma conexão à porta 22.

Código PHP:
iptables -F
iptables 
-A INPUT -s SEUIP -p tcp --dport 22 -j ACCEPT
iptables 
-A INPUT -p tcp --dport 22 -j DROP 


Em "SEUIP" deve modificar pelo seu IP público, se você não sabe o seu IP pode verifica-lo neste site.
Se utilizar um servidor mysql, deverá fazer o mesmo procedimento para a porta 3306.


Código PHP:
iptables -A INPUT -s SEUIP -p tcp --dport 3306 -j ACCEPT
iptables 
-A INPUT -p tcp --dport 22 -j DROP 

Se você utilizar alguma conexão remota para o mysql, por exemplo, um UCP terá de permitir o IP da máquina em que está hospedado o mesmo.

Em segundo temos de proteger contra os ataques ICMP que já são velhos mas continuam a funcionar e bastantes empresas Hosting continuam vulneráveis. Este tipo de ataque são os mais perturbadores, na minha opinião. Eu já explorei esta vulnerabilidade muito a fundo, desenvolvi um script em linguagem C em que mandava milhares de requisições a um servidor e o mesmo deixava de responder. Vou deixar abaixo um método de proteção.


Código PHP:
iptables -A INPUT -p ICMP --icmp-type echo-request -m length --length 60:65535 -j ACCEPT
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/-j ACCEPT
iptables 
-A INPUT -p ICMP --j DROP 

Em terceiro, há os ataques UDP Flood que a maioria das empresas de hospedagem games oferece uma mitigação. Vou deixar abaixo algumas regras.


Código PHP:
iptables -N UDP-FLOOD 
iptables 
-A INPUT -p udp --dport 7777 -m ttl --ttl-eq=128 -j UDP-FLOOD
iptables 
-A UDP-FLOOD -p udp --dport 7777 -m length --length 17:604 -j DROP 

Quarto e terminando, não façam igual muitas pessoas que estou vendo... Muitos colocam o servidor e o UCP na mesma máquina, isso é um erro extremo. Ao fazerem isto, a probabilidade de receberem ataques triplica e não é recomendável ter um servidor web e game na mesma máquina.


Há outros métodos para derrubar um servidor, tal como exploits e também falhas nos gamemodes. Este tutorial o foco é somente DoS e DDoS.