[FUG-BR] Bloquear ataques
Marcelo Gondim
gondim em bsdinfo.com.br
Quarta Março 28 11:52:42 BRT 2012
Em 28/03/2012 10:24, Marco Aurélio V. da Silva escreveu:
> Caros,
>
> É o seguinte, tenho sofrido ataques a um servidor meu dns que tem variado o ip de origem. Segue log feito utilizando tcpdump:
>
> IP (tos 0x0, ttl 64, id 49078, offset 0, flags [none], proto UDP (17), length 29, bad cksum 0 (->261c)!) xxx.xxx.xxx.xxx.59663> 91.204.161.226.46325: [bad udp cksum c007!] UDP, length 1
> IP (tos 0x0, ttl 64, id 49079, offset 0, flags [none], proto UDP (17), length 29, bad cksum 0 (->261b)!) xxx.xxx.xxx.xxx.59663> 91.204.161.226.46325: [bad udp cksum c007!] UDP, length 1
> IP (tos 0x0, ttl 64, id 49080, offset 0, flags [none], proto UDP (17), length 29, bad cksum 0 (->261a)!) xxx.xxx.xxx.xxx.59663> 91.204.161.226.46325: [bad udp cksum c007!] UDP, length 1
> IP (tos 0x0, ttl 64, id 49081, offset 0, flags [none], proto UDP (17), length 29, bad cksum 0 (->2619)!) xxx.xxx.xxx.xxx.59663> 91.204.161.226.46325: [bad udp cksum c007!] UDP, length 1
> IP (tos 0x0, ttl 64, id 49082, offset 0, flags [none], proto UDP (17), length 29, bad cksum 0 (->2618)!) xxx.xxx.xxx.xxx.59663> 91.204.161.226.46325: [bad udp cksum c007!] UDP, length 1
> IP (tos 0x0, ttl 64, id 49083, offset 0, flags [none], proto UDP (17), length 29, bad cksum 0 (->2617)!) xxx.xxx.xxx.xxx.59663> 91.204.161.226.46325: [bad udp cksum c007!] UDP, length 1
> IP (tos 0x0, ttl 64, id 49084, offset 0, flags [none], proto UDP (17), length 29, bad cksum 0 (->2616)!) xxx.xxx.xxx.xxx.59663> 91.204.161.226.46325: [bad udp cksum c007!] UDP, length 1
> IP (tos 0x0, ttl 64, id 49085, offset 0, flags [none], proto UDP (17), length 29, bad cksum 0 (->2615)!) xxx.xxx.xxx.xxx.59663> 91.204.161.226.46325: [bad udp cksum c007!] UDP, length 1
> IP (tos 0x0, ttl 64, id 49086, offset 0, flags [none], proto UDP (17), length 29, bad cksum 0 (->2614)!) xxx.xxx.xxx.xxx.59663> 91.204.161.226.46325: [bad udp cksum c007!] UDP, length 1
> IP (tos 0x0, ttl 64, id 49087, offset 0, flags [none], proto UDP (17), length 29, bad cksum 0 (->2613)!) xxx.xxx.xxx.xxx.59663> 91.204.161.226.46325: [bad udp cksum c007!] UDP, length 1
>
> Poderiam me dar uma dica de como bloquear estes ataques ? Inicialmente eu tenho adicionado regras do ipfw para bloquear os ips, mas a cada ataque o ip muda.
>
> Desde já agradeço a atenção recebida.
Bem você poderia tentar algumas coisas:
1) Setar política default no ipfw como drop adicionando como últimas linhas:
ipfw add allow tcp from me to any out setup keep-state
ipfw add allow all from me to any out keep-state
ipfw add 65534 deny log all from any to any
As regras acima libera as saídas do seu servidor de dns e bloqueia o
restante. Logicamente que você vai ter que ter as regras antes liberando
suas portas de entrada.
2) liberar apenas pacotes que sejam: arp, rarp e ipv4:
# So passa IPv4
# habilitar net.link.ether.ipfw=1
# ip 0x0800
# ipv4 0x0800
# ipv6 0x86dd
# arp 0x0806
# rarp 0x8035
# vlan 0x8100
# loop 0x9000
# trail 0x1000
# at 0x809b
# atalk 0x809b
# aarp 0x80f3
# pppoe_disc 0x8863
# pppoe_sess 0x8864
# ipx_8022 0x00E0
# ipx_8023 0x0000
# ipx_ii 0x8137
# ipx_snap 0x8137
# ipx 0x8137
# ns 0x0600
ipfw add allow all from any to any layer2 mac-type ipv4,arp,rarp
Para usar esse recurso precisa habilitar net.link.ether.ipfw=1 no
/etc/sysctl.conf e ativar ele.
IMPORTANTE!!! Lembrando que se a última linha do seu firewall for DROP
pra tudo e habilitar net.link.ether.ipfw=1... se não houver a regra
acima e outras regras liberando suas portas de acesso ao servidor, vai
travar o acesso remoto à essa máquina. :)
Aqui no meu caso descobri uns pacotes estranhos vindos da minha
operadora e comecei à barrar eles e informei a operadora. Chegava
pacotes de outras empresas na minha vlan.
Pode não ser seu caso mas é bom filtrar. Se você tiver trânsito IPv6 não
esquecer de habilitar na regra o ipv6 também.
3) Nas liberações dos serviços se for udp coloca um "limit src-addr 1",
por exemplo, mas vai depender da sua necessidade. Com essa regra você
limitaria até 1 conexão vinda do mesmo IP para o seu serviço.
Exemplo: ipfw add allow tcp from any to me 22 setup limit src-addr
1 nesse caso estou limitando apenas 1 conexão vinda de um mesmo IP
na porta do ssh. É uma boa proteção para DoS.
O "setup" você só usa em conexões TCP porque ele obriga a conexão fazer
o 3 way hadshake.
Mais uns carinhas legais no sysctl.conf:
net.inet.ip.redirect=0
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.icmp.maskrepl=0
net.inet.icmp.log_redirect=0
net.inet.icmp.drop_redirect=1
net.inet.tcp.drop_synfin=1
Bem essas são algumas dicas mas vale muito de como você configurou seu
sistema e suas regras.
> Marco Aurélio V. da Silva
> marco em prodatanet.com.br
> marcoprodata em gmail.com
> msn: marco em prodatanet.com.br
> Prodata Inf. e Cadastros LTDA
> (33) 3322-4444
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
Mais detalhes sobre a lista de discussão freebsd