Pular para o conteúdo

IP-Tables (rc.firewall)

Esta é configuração do meu IP-Tables. Acho ele muito seguro, mas como não tenho grandes conhecimentos com o mesmo, gostaria de algumas sugestões de como melhorá-lo.
Luiz Henrique Rapatão rapatao
Hits: 31.095 Categoria: Segurança
  • Download
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Download rc.firewall
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

#!/bin/bash

#limpando tabelas
iptables -F &&
iptables -X &&
iptables -t nat -F &&
iptables -t nat -X &&

#liberando acesso interno da rede
iptables -A INPUT -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT &&
iptables -A OUTPUT -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT &&
iptables -A FORWARD -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT &&

#liberando loopback
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT
iptables -A FORWARD -s 127.0.0.1 -j ACCEPT

#compartilhando a web na rede interna
#iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth0 -j MASQUERADE &&
echo 1 > /proc/sys/net/ipv4/ip_forward &&

# Protecao contra port scanners ocultos
iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -p icmp -j DROP

# Bloqueando tracertroute
iptables -A INPUT -p udp -s 0/0 -i eth0 --dport 33435:33525 -j DROP

#Protecoes contra ataques
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -p tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP

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

# Porta Wincrash
iptables -A INPUT -p tcp --dport 5042 -j LOG --log-prefix "Serviço: Wincrash"

#Portas NetBus
iptables -A INPUT -p tcp --dport 12345 -j LOG --log-prefix "Serviço: NetBus"

#Proteção contra Syn-floods
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

#Regras de Mascaramento

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -i ppp0 -j ACCEPT
iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT


#Proteção Contra IP Spoofing
iptables -A INPUT -s 10.0.0.0/8 -i eth0 -j DROP
iptables -A INPUT -s 172.16.0.0/16 -i eth0 -j DROP
iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j DROP 


#Carregando iptables
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_MASQUERADE
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Nenhuma configuração encontrada.

iptables (rc.firewall)

Squid (squid.conf)

iptables (firewall.conf)

freeBSD (pf.conf)

Squid (squid.conf)

#1 Comentário enviado por lacierdias em 03/07/2004 - 10:13h
Muito bom mas praque vc coloca ""&&"" no final de algumas regras...
#2 Comentário enviado por rapatao em 03/07/2004 - 11:03h
Ë que eu fui fazendo isso aos poucos e acabou ficando assim!
Mas já estou melhorando todo ele e logo logo estarei postando uma nova versao!

[]'s
#3 Comentário enviado por tarso em 10/07/2004 - 20:47h
Para conhecer melhor sobre iptables recomendo o livro,Firewall Iptables linux mall valo R$ 26,00 muito bom.


Marconi Tarso
#4 Comentário enviado por alexandrec em 12/07/2004 - 10:10h
Pode crer! Esse livro é de primeira. Depois que o li, meu firewall ficou filé e aprendi a criar novas regras utilizando sniffers de pacotes. O conteúdo do livro te dá a idéia e resto vc faz sem traumas.
FLW..
#5 Comentário enviado por ildogojunior em 16/07/2004 - 14:24h
Este script de firewal mais o o livro me deu um ótimo conceito e criei um excelente firewall que esta funcionando em um empresa de câmbio.
#6 Comentário enviado por __FERNANDO__ em 16/07/2004 - 21:41h
Não tem problema deixar para carregar os modulos no final ?
#7 Comentário enviado por rapatao em 17/07/2004 - 00:15h
Não tem problema não. Ao menos nunca deu problema com ninguem que conheco e testou ele pra mim e muitos exemplos de iptables que vejo, carrega os modulos apenas no final.

[]'s
#8 Comentário enviado por __FERNANDO__ em 26/07/2004 - 11:10h
Eu configurei meu firewall em um arquivo na /backup/regras...eu quero passar ele para um script...como que eu faço para que ele seja inicializado no boot ?
#9 Comentário enviado por __FERNANDO__ em 26/07/2004 - 11:18h
Cara, por favor, me responde está pergunta ai acima...de como passar iniciar o script...tem que colocar em /etc/rc.local ? e coloca os comandos também.
Uma outra pergunta que acabei esquecendo...é, porque rc.firewall ? eu já vi este nome em diversos lugares...pensei que fosse um arquivo de configuração do firewall, mas não meu linux não tem este arquivo, utilizo o conectiva 9 e 10.
#10 Comentário enviado por rapatao em 27/07/2004 - 00:20h
Deixa eu ver se entendi, vc criou um shell-script na pasta /backup com o nome regras, bom para inicia-lo, basta editar o arquivo /etc/rc.d/rc.local(é aqui no slackware, nao sei no conectiva, mas deve ser) e adicionar isto: /backup/regras, lembre-se de dar modo +x para o arquivo regras (chmod +x /backup/regras)
Quato a colocar o nome rc.firewall é que eu coloco ele nesta pasta: /etc/rc.d/ e no slackware tudo que tem modo +x é executado, e como tudo lá comeca com "rc." resolvi colocar neste script/firewall tb!.

Espero ter sido claro, qq coisa entre em contato por icq: 59115655 ou msn: luiz_st@msn.com

[]'s
#11 Comentário enviado por __FERNANDO__ em 27/07/2004 - 08:52h
Ótimo...foi clarissicimo..hehehe...valeu mano.

Fernando.
#12 Comentário enviado por removido em 26/03/2005 - 23:37h
Amigo,

Há algumas falhas no seu script:

FALHA 1:
# Porta Wincrash
iptables -A INPUT -p tcp --dport 5042 -j LOG --log-prefix "Serviço: Wincrash"

#Portas NetBus
iptables -A INPUT -p tcp --dport 12345 -j LOG --log-prefix "Serviço: NetBus"

1º - Estas linhas bloqueiam estes trojans no servidor, enquanto estes só podem ser executados nas estações com Windows. O CHAIn deveria ser FORWARD.

2º - Tu fez o LOG, e depois, deixa executar? Tem que "repetir" a rgra, só que ao invés de "-j LOG ..." tens que utilizar -j DROP, para não permitir o tráfego dos pacotes

FALHA 2:
Pela lógica tu carregas o módulo e então o aplicativo que depende deste o executa. Se carregar o módulo depois da função, realmente funciona?
Olha o exemplo:
A chave do carro é teu módulo.
O carro é teu aplicativo.
Para sair andando com o carro (de uma forma conveniconal, nada de ligação direta...) tu não precisa da chave?

FALHA 3:
A estrutura tá meio confusa, tu libera algumas coisas no começo, bloqueia no meio, libera mais um pouco, bloqueia... organize melhor, algo do tipo:

POLICES QUE BLOQUEIAM
REGRAS QUE PERMITEM ALGUMAS COISAS
REGRAS QUE BLOQUEIAM TODO O RESTO


[]'s

Max
#13 Comentário enviado por bfmano em 21/05/2006 - 18:14h
Se quiser Bloquear alguma coisa tente da seguinte forma:

------------------------------------------------------------------------------------
IPT="/sbin/iptables"
PORTS_BLOCK="5042 12345"


for PORTA in ${PORTS_BLOCK};do
$IPT -A FORWARD -p tcp --dport ${PORTA} -j LOG --log-prefix "FIREWALL - TCP/${PORTA} DROP: "
$IPT -A FORWARD -p tcp --dport ${PORTA} -j REJECT
$IPT -A INPUT -p tcp --dport ${PORTA} -j REJECT
$IPT -A INPUT -p tcp --sport ${PORTA} -j REJECT
$IPT -A OUTPUT -p tcp --dport ${PORTA} -j REJECT
$IPT -A OUTPUT -p tcp --sport ${PORTA} -j REJECT
------------------------------------------------------------------------------------
#14 Comentário enviado por turbo2005 em 30/08/2006 - 15:57h
O IPTABLE É SINÔNIIMO DE SEGURANÇA E CONTENÇÃO DE CUSTOS E O MELHOR ELE É LIVRE COMO OS PASSÁROS.
#15 Comentário enviado por franciel_zen em 30/11/2006 - 15:03h
Só tenho uma duvida... isso funciona no suse linux 10.0??? pois tentei de todas as formas para iniciar junto com o boot as regras de iptables e echo 1 > /proc/sys/net/ipv4/ip_forward. nao obtive resultados satisfatórios. se alguém ai puder me ajudar, eu ficaria grato...
#16 Comentário enviado por Sno0Py em 17/03/2007 - 12:41h
Gostei, axei bem simples e facil de entender, e o principal muito util
#17 Comentário enviado por Douglas Santos em 27/03/2007 - 11:21h
Tenho um problema com meu rc.firewall,ele tem vontade própria!!!

Quando libero o acesso total a um usuário, a regra só entra em vigor, quando reinicio a maquina!!

O que será isso????

Me ajudem por favor!!!
#18 Comentário enviado por Douglas Santos em 28/03/2007 - 14:56h
AJUDA!!!!

POR FAVOR!!!!!!!!


Quando libero o acesso total a um usuário, a regra só entra em vigor, quando reinicio a maquina!!

O que será isso????
#19 Comentário enviado por dvdmuro em 28/06/2007 - 01:12h
Douglas, talvez você esteja inserindo a regra só no arquivo de regras do iptables, aí durante o boot ela é carregada... você teria que detalhar melhor esse caso.

[]´s
#20 Comentário enviado por ewerton_d2 em 24/01/2008 - 15:51h
otimo !
fiz apenas alguma alteraçoes e esta tudo perfeito !
vlw !
#21 Comentário enviado por comfaa em 28/10/2008 - 10:43h
muito bom !!

Contribuir com comentário

Entre na sua conta para comentar.