Segurança no Iptables

Publicado por Diego Silva em 16/09/2004

[ Hits: 18.759 ]

Blog: http://www.diegosilva.net

 


Segurança no Iptables



Olá galera VOL!

Após ver várias e várias dicas de como deixar seu Linux mais seguro, resolvi mandar essa dica para vocês, que é um pouquinho mais completa que as outra que vemos por aí. Isso não vai garantir 100% de segurança, mas com certeza será muito útil, afinal, segurança nunca é demais.

Vamos bloquear pessoas que tentarem enviar qualquer pacotes com IPs locais, como se fossem de uma rede interna.

iptables -A INPUT -s 10.0.0.0/255.0.0.0 -j DROP
iptables -A INPUT -s 172.0.0.0/255.0.0.0 -j DROP
iptables -A INPUT -s 192.0.0.0/255.0.0.0 -j DROP

(Esse código não é recomendado para pessoas que utilizem rede local)

Vamos anular agora os famosos pacotes ICMP (Ping):

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

Proteção contra ICMP Broadcasting:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

Protege contra synflood:

echo "1" > /proc/sys/net/ipv4/tcp_syncookies

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 FORWARD -m unclean -j DROP

Algumas boas idéias retiradas do Arno's iptables firewall:

iptables -N VALID_CHECK
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP

Bem amigos, por enquanto é só, essas são algumas proteções muito úteis e funcionais para nosso Linux, assim que descobrir mais postarei aqui para vocês.

Um forte abraço e boa segurança ;)

Outras dicas deste autor

Mantendo sua data e hora sempre corretas

Hora certa no Debian

Recuperar senha de root do MySQL

O comando uname

BIND seguro

Leitura recomendada

Wireless no KUbuntu com Realtek 8185

Resolvendo o vídeo rosa no Youtube

Delegação de subzonas no Bind 9

Fique por dentro do VOL

Jogos gratuitos e legais!

  

Comentários
[1] Comentário enviado por naoexistemais em 18/09/2004 - 23:02h

Outros exemplos de regra:

#iptables -A INPUT -P icmp -j DROP

Acima, um exemplo que cria uma regra que nega todos os pacotes ICMP vindos do servidor, em que se encontra o firewall

#iptables -D INPUT -p icmp -j DROP

Isto apaga a regra setada acima

#iptables -A INPUT -s 200.204.120.0/24 -j DROP

A regra acima faz com que todos os pacotes vindos de qualquer endereço da classe de ip 200.204.120.0

#iptables -A OUTPUT -p icmp -d ! 200.201.120.0/ 24 -j ACCEPT

Esta regra só permitirá pacotes icmp para máquinas que estejam em qualquer endereço ip, menos no citado acima.

Configurando o firewall contra ataques

Abaixo, um exemplo de configuração de um firewall contra os ataques mais constantes realizados pelos hackers em servidores da Web. Setando essas configurações, o servidor configurado dificilmente será atacado, veja:

Proteção contra Syn-floods:

Ataques do tipo DoS - um usuário envia um grande número de pacotes SYN ao servidor, que não suportará a grande carga de pacotes enviados e cairá. Setando a configuração abaixo, isso poderá ser evitado:

# iptables -A FORWARD -p tcp -syn -m limit - limit 1/s -j ACCEPT

Port scanners ocultos

Os famosos port scanners estão à solta. A configuração abaixo impede conexões executadas pelos port scanners:

# iptables -A FORWARD -p tcp -tcp-flags SYN,ACK,FIN,RST RST -m zlimit -limit 1/s -j ACCEPT Pings

Evita alguns tipos maliciosos de pacotes que podem ser enviados ao seu servidor:

# iptables -A FORWARD -p icmp -icmp-type echo-request -m limit -limit 1/s -j ACCEPT

[2] Comentário enviado por pools em 18/10/2004 - 22:29h

No meu iptables, quando tento executar a linha:
iptables -A FORWARD -m unclean -j DROP

Dá esse problema:
iptables: No chain/target/match by that name

Uso o slackware, iptables versão v1.2.11

Alguem teve esse problema também?
É importante salientar que em algumas versões pode não funcionar.

[3] Comentário enviado por flipe em 25/02/2005 - 10:07h

quando coloco o '-m unclean'.. aq da o mesmo erro!!!

naum ta faltano nada na regra naum?

[4] Comentário enviado por spikey em 09/10/2005 - 14:59h

amigo, você precisa especificar uma chain.

[5] Comentário enviado por spikey em 09/10/2005 - 15:01h

Veja esse exemplo para bloquear pings.
iptables -t filter -N ping-chain
iptables -t filter -A ping-chain -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

a chain especificada é ping chain, esse no caso é o exemplo postado neste artigo.

[6] Comentário enviado por Ecator em 27/03/2006 - 22:36h

pessoal, eu sou iniciante no linux.. uso o Fedora Core 4 com o "iptables v1.3.0"... para eu setar estas confs no iptables existe algum comando previo, ou posterior do tiso "save" ou algo assim ou basta eu digitar os comandos acima ?

[7] Comentário enviado por thiagoanselmo em 05/07/2006 - 21:31h

Olha amigo eu tbm sou um iniciante e uso a distribuicao slackware e ppara salvar basta vc por em uma pasta que seje inicializavel.

/etc/rc.d/rc.local seria esta no slackware.

Espero te ajudado.

[8] Comentário enviado por mudblur em 16/02/2007 - 02:06h

Caro amigo,

No Slackware se você criar um script chamado "rc.firewall" dentro de "/etc/rc.d/" e dar a permissão de execução, o Slackware executará o script. Recomendo por ser mais "profissional" do que simplismente encher o rc.local com regras do iptables.

Abraços.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts