você está aqui: Home  → Arquivo de Mensagens

Bloqueio de acesso de computadores chineses

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 14 de junho de 2013

Há algumas semanas eu notei um aumento elevado de acesso aos meus sites a partir de computadores oriundos da China. E nos últimos dias, conforme apontado pelo software OSSEC praticamente metade de todos os acessos aos sites se constituiam em tentativas de invasão.

Em vista disto, resolvi tomar uma atitude mais radical, bloqueando todos os acessos a partir das redes da China. Ao tentar localizar os números das redes chinesas, constatei que o problema está se agravando e é muito mais comum do que eu imaginava (ver referências ao fim deste texto).

Criei então um pequeno script para criar as regras de firewall proibindo acessos a partir das redes chinesas.

Este script, reproduzido a seguir, é carregado durante o boot da máquina.

  #!/bin/bash
  
  cd /root/
  BLOCKDB=/root/chinese-iptables-blocklist.txt
  
  if [ -f $BLOCKDB ]
  then
   while read IPS
     do
       iptables -A INPUT  -s $IPS -j DROP
       iptables -A OUTPUT -d $IPS -j DROP
     done < $BLOCKDB
  else
     echo "Arquivo $BLOCKDB não existe"
     exit 1
  fi

A lista de redes da China foi obtida a partir do site Parkanski.com. A relação que utilizo pode ser baixada também a partir do site da Dicas-L.

Além dos endereços das redes da China, alguns autores recomendam também cuidado com as redes da Nigéria e da Rússia. No meu caso em particular, apenas o bloqueio das redes chinesas praticamente eliminou as tentativas de invasão relatadas pelo software OSSEC.

ALERTA IMPORTANTE: como qualquer medida que faz o bloqueio de acesso, tome cuidado para não se excluir, perdendo o contato com o servidor e ficando impossibilitado de realizar os ajustes que se fizerem necessários. Isto aconteceu comigo. Da mesma forma, caso se decida a seguir os procedimentos aqui descritos, a responsabilidade é inteiramente sua, não ofereço nenhum tipo de garantia quanto ao funcionamento deste roteiro. Faça testes exaustivos antes de colocar em produção.

Saiba mais



 

 

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Opinião dos Leitores

Kincaid
25 Out 2013, 18:39
Rubens,

Outro jeito de fazer o bloqueio é criar uma rota para null, isso utiliza menos recursos do servidor do que fazer via iptables.
O único porém é que com iptables é possível logar as tentativas bloqueadas, o que pode ser legal de ver no começo, mas depois acho que é informação e utilização de recursos desnecessários
Paulo Cesar Vaz
22 Out 2013, 14:49
Prezado Rubens, utilizo um script de firewall, mas gostaria de saber se este bloqueio de sites é mais importante para servidores ou é importante também para usuários comuns.
Gostaria também que se fosse possível desse uma olhada nele pois foi baseado no Kurumin. E eu quero abrir as portas para Bittorrent.
Agradeço muito se for possível


segue o mesmo:#!/bin/bash
# tsfirewall-nat v.2
# Script de configuração do iptables alterado do Kurumin de Carlos E. Morimoto
# Regras refeitas por Marcelo V. Tostes - TS
# ALterado em: 01/05/2005

#Coloque os 3 primeiros bytes da rede
NETID=192.168.1

#Coloque o ultimo byte do router
IPRouter=$NETID.255

INTRANET=$NETID.0/24
INTERNET=0.0.0.0/0
IPFree=200.192.112.8

# Para liberar todas as portas para um IP especifico
# IPFree=10.10.10.10/32
#IPFree=143.107.255.184

# Para liberar acesso SSH de entrada e de saida
IPSSHin=10.10.10.10/32
IPSSHout=10.10.10.10/32

#Coloque o ultimo byte da sua maquina
IPEth0=$NETID.29
IPEth00=$NETID.158

firewall_start(){



#BITTORRENT
#iptables -A FORWARD -o eth0 -p tcp --dport 6881:6889 -j ACCEPT

# Abre acesso ao firewall para IP especifico
#iptables -A INPUT -s $IPFree -j ACCEPT
iptables -A INPUT -s $IPFree -j ACCEPT
#200.192.112.8

# Abre acesso ao firewall para uma faixa de endere�os da rede local
# CAPTURAR PACOTES INTRA PARA VER O QUE LIBERAR
iptables -A INPUT -s $INTRANET -j ACCEPT

# Fecha TCP pelo IP 10.0.0.168
iptables -A INPUT -s $INTERNET -d $IPEth00 -j DROP

# Abre ssh originario de ip especifico via Internet para o firewall
iptables -A INPUT -s $IPSSHin -p tcp --dport 22 -j ACCEPT

# Abre ssh originario do firewall para maquina/rede especifica
iptables -A INPUT -s $IPSSHout -p tcp --sport 22 -j ACCEPT

# Abre telnet originario do firewall para o roteador
iptables -A INPUT -s $IPRouter -p tcp --sport 23 -j ACCEPT

# Abre ping e traceroute (11) do firewall para a internet
iptables -A INPUT -s $INTERNET -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -s $INTERNET -p icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT -s $INTERNET -p icmp -j DROP


# Libera acesso dns para FW pesquisar na internet
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT

# Libera acesso para Intranet pesquisar dns
iptables -A INPUT -s $INTRANET -p tcp --dport 53 -j ACCEPT

#-------------------Inicio regras do Kurumin - desativadas, exceto input loopback-------
# Ignora pings
# echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

# Proteções diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A INPUT -m unclean -j DROP

# Abre para a interface de loopback.
# Esta regra e essencial para o KDE e outros programas graficos funcionarem adequadamente.
iptables -A INPUT -p tcp --syn -s 127.0.0.1/8 -j ACCEPT
iptables -A INPUT -s 127.0.0.1/8 -j ACCEPT
#iptables -A INPUT -i lo -j ACCEPT

# Esta regra e o coracaoo do firewall do Kurumin,
# ela bloqueia qualquer conexao que nao tenha sido permitida acima,
# justamente por isso ela � a �ltima da cadeia.
iptables -A INPUT -p tcp --syn -j DROP
iptables -A INPUT -p udp -j DROP
iptables -A OUTPUT -j ACCEPT

#/etc/skel-fix/firewall-msg
# ---------------------- Fim das regras Kurumin -------------------------------
# TS - Bloqueia todo resto - Internet, Intranet e Firewall --------------------
iptables -A FORWARD -j DROP

ifconfig
iptables -L -n

}
firewall_stop(){

ifconfig eth0:0 $NETID.158 netmask 255.255.255.0 down
# desativa placa virtual
echo "Eth0:0 - IP $NETID.158 desativada"

iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

ifconfig
iptables -L -n

}

case "$1" in
"start")
firewall_start
;;
"stop")
firewall_stop
echo "Firewall desativado"
;;
"restart")
echo "Firewall reiniciado"
firewall_stop; firewall_start
;;
*)
esac
iptables -L -n | more
Rubens Queiroz de Almeida
19 Jun 2013, 15:15
Marco, eu peguei esta lista dos sites citados no artigo, eu realmente não fiz consultas em outros lugares. Nos sites indicados me pareceu que a relação era bem completa e as tentativas de ataque praticamente sumiram. Fazendo mais algumas consultas, eu descobri um site que fornece a lista de IPs por país. Parece que está correto e lista mais numeros do que a minha lista. O mais apropriado seria bater esta lista com mais fontes. O endereço é http://goo.gl/hO43a
gidnet
18 Jun 2013, 14:32
Quer dizer que se eu viajar pra China e tentar acessar seu sitio de lá, to "ferrado', não enxergarei nada :(
Marco Bumussi
16 Jun 2013, 21:12
Rubens,

Implementei as regras sugeridas e realmente percebi uma diminuição das tentativas de acesso destes endereços.

Vi que no site www.okean.com existe a lista de bloqueio, mas ela é maior que a aqui publicada. Você pode explicar um pouco a diferença?

Conforme comentado e sugerido eu posso bloquear as redes da Nigéria e da Rússia, pois não tenho acessos destes locais.

Deve utilizar as regras no mesmo formato?

Parabéns pelo excelentes Dicas-L. É ótimo.

[]´s
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script