# Política padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Habilita o roteamento
echo "1" > /proc/sys/net/ipv4/ip_forward
# Regras de entrada
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 563 -j ACCEPT
iptables -A INPUT -i $LAN1 -p tcp --dport $P_PX -j ACCEPT
iptables -A INPUT -i $WAN1 -p tcp --dport $P_PX -j DROP
# Regras de repasse
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -d $REDE -i $WAN1 -o $LAN1 -j ACCEPT
iptables -A FORWARD -s $REDE -i $LAN1 -o $WAN1 -j ACCEPT
iptables -A FORWARD -d $GW -s $REDE -j ACCEPT
iptables -A FORWARD -i $LAN1 -d smtp.terra.com.br -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -i $LAN1 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i $LAN1 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i $LAN1 -d pop.terra.com.br -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -i $LAN1 -p tcp --dport $P_PX -j ACCEPT
iptables -A FORWARD -s $IP_DIRETOR1 -d 0.0.0.0/0 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s $IP_DIRETOR2 -d 0.0.0.0/0 -p tcp --dport 80 -j ACCEPT
# Barro qualquer comunicação com a porta 80
iptables -A FORWARD -i $LAN1 -p tcp --dport 80 -j DROP
# Tudo que for proveniente da rede local e for para
# internet tem seu endereço alterado
iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -s $REDE -j SNAT --to $IP_EXT
# Regras de segurança
# Contra Syn-flood
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
# Contra Ping da Morte
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# Contra nmap
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# iptables -A FORWARD -p tcp -tcp-flags SYN,ACK -j DROP
# Logando os pacotes
# Logando pacotes bloqueados vindo da internet
iptables -A INPUT -p tcp -i $LAN1 -j LOG --log-level DEBUG --log-prefix "Pacote tcp : "
iptables -A INPUT -p icmp -i $LAN1 -j LOG --log-level DEBUG --log-prefix "Pacote icmp : "
iptables -A FORWARD -m unclean -j DROP
Bom, quando eu disse que não haveria comunicador instantâneo, disse que não terá como mesmo, você pode notar que pelas regras do iptables, tudo o que for para porta 80 será barrado, a não ser os IPs dos diretores. Desse modo, para que um comunicador instantâneo tipo o MSN da Microsoft funcione, tem que configurar o mesmo para acessar via proxy, mas vai depender se o endereço de login do passport.net está liberado.
[5] Comentário enviado por venon_dark em 12/07/2006 - 10:36h
criei o arquivo e coloquei um usuário dentro.
agora está apresentando:
2006/07/12 10:32:38| ACL name 'SSL_ports' not defined!
FATAL: Bungled squid.conf line 60: http_access deny CONNECT !SSL_ports
Squid Cache (Version 2.5.STABLE9): Terminated abnormally.
[6] Comentário enviado por venon_dark em 12/07/2006 - 11:01h
tiagonux encontrei o erro e resolvi, foi erro humano...desculpe.
agora ele apresentou o seguinte erro:
2006/07/12 10:53:23| squid.conf line 61: http_access adm rede_interna
2006/07/12 10:53:23| aclParseAccessLine: expecting 'allow' or 'deny', got 'adm'.
2006/07/12 10:53:23| ACL name '#Efetivando' not defined!
FATAL: Bungled squid.conf line 62: http_access allow user1 permit_user1 rede_interna #Efetivando a acl
Squid Cache (Version 2.5.STABLE9): Terminated abnormally.
[8] Comentário enviado por chia em 21/08/2006 - 21:54h
Parabéns, excelente artigo.
Artigo muito bom mesmo e está me ajudando muito, mas estou com um pequeno problema, ao colocar no arquivo rc.local a linha /firewall/rc.firewall, e ao reiniciar meu Slackware 10.2 aparece o erro "cannot execute binary file" e não funciona o firewall, o que devo fazer, podem me ajudar ?
[11] Comentário enviado por caporto em 05/09/2006 - 18:00h
Em primeiro lugar quero lhe parabenizar pelo excente artigo, ficou show mesmo.
Vc conhece alguma ferramenta tipo PHP que me permita criar uma forma gráfica de manipular estes scripts do iptables e etc.
A minha ideia é criar uma forma grafica tipo as configurações dos modens adsl atuais, vc chama por um browse de internet e configura de forma visual.
[12] Comentário enviado por lukian2000 em 17/10/2006 - 12:03h
Cara no meu proxy tá dando a mesma mensagem que o arquivo não existe, mas ele tá lá e tem informações nele, já tentei mudar o caminho e colocálo em outra pasta mas a mensagem é sempre a mesma:
squid -k reconfigure
2006/10/17 11:57:23| strtokFile: /etc/squid/usuarios/master.txt not found
2006/10/17 11:57:23| strtokFile: /etc/squid/liberados/master.txt not found
2006/10/17 11:57:23| aclParseAclLine: WARNING: empty ACL: acl master_liberado url_regex -i "/etc/squid/liberados/master.txt"
Já tô ficando chateado com isso, alguém pode me ajudar???
[13] Comentário enviado por aprendiz_ce em 29/12/2006 - 15:23h
Olá tiagonux,
Parabéns pelo seu artigo. Muito bom mesmo!
Por gentileza me tire as seguintes dúvidas:
1) Tanto o PRIMEIRO como SEGUNDO disco devem utilizar o sistema de arquivos "ReiserFS" ou somente no SEGUNDO disco?
2) Para configurar o RAID 1 (software) não posso utilizar o sistema de arquivos "EXT3"?
3) Caso ocorra PANE em um dos disco, qual a forma correta de se recuparar os DADOS contidos nos DISCOS? O procedimento adotado fale para ambos os DISCOS ou não?
4) Existe queda de performance no servidor com o uso de RAID?
Muito obrigado pela sua atenção e aguardo retorno.
[14] Comentário enviado por tiagonux em 29/12/2006 - 21:14h
Vou responder em ordem:
1) O Sistema de arquivos do PRIMEIRO DISCO no caso pode até ser outro, sendo que isto não tenho certeza, vc poderia testar p/ a gente ai e comentar a experiência depois.
2)Sim vc pode utilizar perfeitamente o EXT3.
3)Bom se ocorrer de uma pane em um disco, vamos supor que seja o PRIMEIRO, só temos que averigar se vai estar tudo ok com a MBR do SEGUNDO e jumpear(configuracão da posição do disco SLAVE,MASTER) de acordo com PRIMEIRO disco e iniciar o mesmo. Isto deve-se ser manual pois é RAID via software, se tivessemos usando o RAID via hardware, poderiamos dependendo do servidor tirar o DISCO quebrado e colocar outro com o servidor em operação. Como utilizamos o RAID via software deveremos desligar o servidor e realizar a mudança manualmente, e colocar outro disco no lugar do quebrado.
4)Não existe não, vc poderará ter queda em servidores que terá muita escrita no DISCO, pois tudo o que é escrito em um é replicado p/ o outro via software. Já com o RAID de hardware a história é diferente, pois o sistema operacional nem sabe se está sob um tipo de RAID.
[20] Comentário enviado por marceloespindola em 07/07/2007 - 15:27h
Pessoal estou escrevendo um artigo aqui para o viva o linux sobre scrippt de firewall, ele está completo pois levei muito tempo para desenvolve-lo e tinha objetivo de reunir as principais soluções e dúvidas sobre firewall para este artigo, mas como quero construir um bom artigo ainda está em fase de construção para o vivaolinux, entretanto estou disponibilizando no endereço
[21] Comentário enviado por lucascatani em 04/05/2012 - 17:15h
Boa tarde Tiago. Fiquei com umas dúvidas no seu tutorial do iptables. Sobre essas variáveis. O que colocar nelas? Não tenho ip fixo minha rede é 192.168.0.0/24
# Variáveis\
GW="200.x.x.1" o que deve ser colocado aqui? se deixar assim da BAD IP
IP_EXT="200.x.x.7" o que deve ser colocado aqui? se deixar assim da BAD IP
REDE="10.0.0.0/32"
e da erro nessa regra tb (BAD ARGUMENT 0.0.0.0/0)
# Tudo que for proveniente da rede local e for para
# internet tem seu endereço alterado
iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -s $REDE -j SNAT --to $IP_EXT