Olá galera primeiramente, eu venho falar que andei pesquisando muito ,e vi varias regras e resolvi fazer uma compilação, uma coisa eu ja digo de cara, nunca ta 100% a regra iptables, sempre fica uma brecha ou outra , um ataque bem planejado nao a dedicado que aguente,sim ate softlayer cai,servidores de tibia global etc,bom enfim nao vo ensinar como derrubar servidores, mais vo mostrar como se prevenir internamente,(externamente) algumas regras e so no roteador com gateway isso é avançado quem tem que oferecer e o seu servidor dedicado.
bom enfim vamos as regras iptables.
primeiro vo comentar sobre um ataque muito chato de conter, o tal syn flood eu posso falar 1001 maneiras de como esse ataque pode ser feito,e como seu firewall jamais vai se defender dele,porem vo apenas por uma linha abaixo que não é solução mais ameniza o problema,e vo falar a vantagem e desvantagem de usar ela.
por um dellay no seu servidor exemplo aceitar 1 conexão por segundo.
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT iptables -A FORWARD -p udp -m limit --limit 1/s -j ACCEPT
qual a vantagem de usar essa regra?
se protege até de ip spoof e grandes inundação.
qual a desvantagem?
se alguem realizar o ataque quem ta online no seu servidor(jogo) vai permanecer
mais quem for tentar fazer login nao vai conseguir, pode até conseguir mais vai ser mais dificil
e o site provavelmente fica fora do ar quando o cara realizar o ataque, porem ao usar essa regra e bom ter o site em hospedagem.
não importa se você tem muita memoria ou processador banda entre outros,os recursos nao são infinitos,uma hora vai acabar e seu computador vai travar, quanto mais banda sua rede tiver OTIMO mais dados entra pra travar seu processador/memoria, e quanto mais memoria/processador mais connections seu servidor vai aceitar ou seja é uma questão que nunca ta 100% seguro.
regras arp spoof/ip spoof são bem planejada se baseia em clonar ips falsos por tanto nao adianta limitar numero de conexão por ip,
pois ela gera milhares de ips falsos e envia a connection a maquina acredite 1 so maquina atacando um servidor dedicado com tecnica arp spoof/ip spoofing bem planejado derruba um softlayer.
a então como resolver?
e como eu falei nunca ta 100%, mais existe servidores gateway e regras a ser aplicadas abaixo vo por algumas regras iptables compiladas por eu mesmo.
regra recomendada por min
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT iptables -A FORWARD -p udp -m limit --limit 1/s -j ACCEPT echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all echo 1 > /proc/sys/net/ipv4/tcp_syncookies iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 7 -j REJECT for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $i; done iptables -A FORWARD -p tcp --syn --dport 22 -m limit --limit 1/s -j ACCEPT iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 1 -j REJECT end
regra bruta iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT iptables -A FORWARD -p udp -m limit --limit 1/s -j ACCEPT echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all echo 1 > /proc/sys/net/ipv4/tcp_syncookies iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 3 -j REJECT end
regra forte iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST -m limit --limit 1/s -j ACCEPT echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all echo 1 > /proc/sys/net/ipv4/tcp_syncookies iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 7 -j REJECT end
regra itermediaria echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP iptables -A INPUT -m state --state INVALID -j DROP iptables -A OUTPUT -m state --state INVALID -j DROP iptables -A FORWARD -m state --state INVALID -j DROP iptables -A conn-flood -m limit --limit 7/s --limit-burst 20 -j RETURN iptables -N syn_flood iptables -A INPUT -p tcp --syn -j syn_flood iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN iptables -A syn_flood -j DROP iptables -A INPUT -p tcp -m multiport --dports 135,137,138,139,445,1433,1434 -j DROP iptables -A INPUT -p udp -m multiport --dports 135,137,138,139,445,1433,1434 -j DROP for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $i; done echo 1 > /proc/sys/net/ipv4/tcp_syncookies iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 7 -j REJECT end
(essa regra abaixo e pra bloquear ip spoofing no momento por tanto nao adianta aplicar ela,
por exemplo se tu sabe que o cara ta usando a classe ips que começa com 60 ou 50
se bloqueia essa classe e o ataque para,eu recomendo bloquear as seguintes classes
assim seu servidor nao vai ser atacado por outro servidor.
pois hackers de verdade geralmente usa servidor pra atacar servidor com scripts e as vezes varios servidor e as classes abaixo e de servidores mais pode bloquear algumas redes privadas tambem.
iptables -A ext-int -s 127.0.0.0/8 -j DROP iptables -A ext-int -s 172.16.0.0/16 -j DROP iptables -A ext-int -s 192.168.0.0/24 -j DROP iptables -A INPUT -s 0.0.0.0/7 -j DROP iptables -A INPUT -s 2.0.0.0/8 -j DROP iptables -A INPUT -s 5.0.0.0/8 -j DROP iptables -A INPUT -s 7.0.0.0/8 -j DROP iptables -A INPUT -s 10.0.0.0/8 -j DROP iptables -A INPUT -s 23.0.0.0/8 -j DROP iptables -A INPUT -s 27.0.0.0/8 -j DROP iptables -A INPUT -s 31.0.0.0/8 -j DROP iptables -A INPUT -s 36.0.0.0/7 -j DROP iptables -A INPUT -s 39.0.0.0/8 -j DROP iptables -A INPUT -s 42.0.0.0/8 -j DROP iptables -A INPUT -s 49.0.0.0/8 -j DROP iptables -A INPUT -s 50.0.0.0/8 -j DROP iptables -A INPUT -s 77.0.0.0/8 -j DROP iptables -A INPUT -s 78.0.0.0/7 -j DROP
regra bloquear classes ips
iptables -A ext-int -s 10.0.0.0/8 -j DROP iptables -A ext-int -s 127.0.0.0/8 -j DROP iptables -A ext-int -s 172.16.0.0/16 -j DROP iptables -A ext-int -s 192.168.0.0/24 -j DROP iptables -A INPUT -s 0.0.0.0/7 -j DROP iptables -A INPUT -s 2.0.0.0/8 -j DROP iptables -A INPUT -s 5.0.0.0/8 -j DROP iptables -A INPUT -s 7.0.0.0/8 -j DROP iptables -A INPUT -s 10.0.0.0/8 -j DROP iptables -A INPUT -s 23.0.0.0/8 -j DROP iptables -A INPUT -s 27.0.0.0/8 -j DROP iptables -A INPUT -s 31.0.0.0/8 -j DROP iptables -A INPUT -s 36.0.0.0/7 -j DROP iptables -A INPUT -s 39.0.0.0/8 -j DROP iptables -A INPUT -s 42.0.0.0/8 -j DROP iptables -A INPUT -s 49.0.0.0/8 -j DROP iptables -A INPUT -s 50.0.0.0/8 -j DROP iptables -A INPUT -s 77.0.0.0/8 -j DROP iptables -A INPUT -s 78.0.0.0/7 -j DROP iptables -A INPUT -s 92.0.0.0/6 -j DROP iptables -A INPUT -s 96.0.0.0/4 -j DROP iptables -A INPUT -s 112.0.0.0/5 -j DROP iptables -A INPUT -s 120.0.0.0/8 -j DROP iptables -A INPUT -s 169.254.0.0/16 -j DROP iptables -A INPUT -s 172.16.0.0/12 -j DROP iptables -A INPUT -s 173.0.0.0/8 -j DROP iptables -A INPUT -s 174.0.0.0/7 -j DROP iptables -A INPUT -s 176.0.0.0/5 -j DROP iptables -A INPUT -s 184.0.0.0/6 -j DROP iptables -A INPUT -s 192.0.2.0/24 -j DROP iptables -A INPUT -s 197.0.0.0/8 -j DROP iptables -A INPUT -s 198.18.0.0/15 -j DROP iptables -A INPUT -s 223.0.0.0/8 -j DROP iptables -A INPUT -s 224.0.0.0/3 -j DROP iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 7 -j REJECT end
regra media iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 7 -j REJECT echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all echo 1 > /proc/sys/net/ipv4/tcp_syncookies end
regra anti-brute force no ssh iptables -A FORWARD -p tcp --syn --dport 22 -m limit --limit 1/s -j ACCEPT iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 2 -j REJECT end
regra disconnect invalid iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN -j DROP iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP iptables -A INPUT -m conntrack --ctstate INVALID -p tcp --tcp-flags ! SYN,RST,ACK,FIN,URG,PSH SYN,RST,ACK,FIN,URG,PSH -j DROP iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP end
regra simples iptables -N conn-flood iptables -I INPUT 1 -p tcp --syn -j conn-flood iptables -A conn-flood -m limit --limit 7/s --limit-burst 20 -j RETURN iptables -A conn-flood -j DROP iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 1 -j ACCEPT iptables -A INPUT -p icmp -j DROP end
Proteção contra ip spoofing # iptables -A INPUT -s 10.0.0.0/8 -i Interface da NET -j DROP # iptables -A INPUT -s 172.16.0.0/16 -i Interface da NET -j DROP # iptables -A INPUT -s 192.168.0.0/24 -i Interface da NET -j DROP
Bom créditos 70% meu(renansmith/kpdo) pelas pesquisas e 30% ao google claro, muitas pesquisas.
Vale ressaltar que um ataque bem planejado DDOS, não a nada que segura, o que vai te proteger e os recursos de hardware,e configuração no roteador(gateways) hubs entre outros adicionais de reredicionamentos,e isso é caro acho raro ter servidor de open tibia que tenha isso,e boa parte por ae ta vulneravel e continua sendo vulneravel.