#!/bin/bash 
echo 
echo "==========================================" 
echo "| :: SETTING IPTABLES'S CONFIGURATION :: |" 
echo "==========================================" 
### Passo 1: Limpando as regras ### 
iptables -F INPUT 
iptables -F OUTPUT 
iptables -F FORWARD 
echo "Cleaning all rules .................[ OK ]" 
# Definindo a Politica Default das Cadeias 
##fecha todas as entradas
iptables -P INPUT DROP  
##fecha todos os pacotes que passam pelo fire
iptables -P FORWARD DROP 
##deixa aberto os pacotes que sai do fire
iptables -P OUTPUT ACCEPT 
echo "Setting default rules ..............[ OK ]" 
### Passo 2: Desabilitar o trafego IP entre as placas de rede ### 
echo "0" > /proc/sys/net/ipv4/ip_forward 
echo "Setting ip_forward: OFF ............[ OK ]" 
# Configurando a Protecao anti-spoofing 
for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do 
        echo "1" > $spoofing 
done 
echo "Setting anti-spoofing protection ...[ OK ]" 
# Impedimos que um atacante possa maliciosamente alterar alguma rota 
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects 
echo "Setting anti-redirects .............[ OK ]" 
# Utilizado em diversos ataques, isso possibilita que o atacante determine o "caminho" que seu 
# pacote vai percorrer (roteadores) ate seu destino. Junto com spoof, isso se torna muito perigoso. 
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route 
echo "Setting anti-source_route ..........[ OK ]" 
# Protecao contra responses bogus 
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 
echo "Setting anti-bugus_response ........[ OK ]" 
# Protecao contra ataques de syn flood (inicio da conexao TCP). Tenta conter ataques de DoS. 
echo 1 > /proc/sys/net/ipv4/tcp_syncookies 
echo "Setting anti-synflood protection ...[ OK ]" 
### Passo 3: Carregando os modulos do iptables ### 
modprobe ip_tables 
modprobe iptable_filter 
modprobe iptable_mangle 
modprobe iptable_nat 
modprobe ipt_MASQUERADE 
echo "Loading iptables's modules .........[ OK ]" 
### Passo 4: Agora, vamos definir o que pode passar e o que nao ### 
#################### 
# Cadeia de Entrada 
# LOCALHOST - ACEITA TODOS OS PACOTES 
iptables -A INPUT -i lo -j ACCEPT 
# PORTA 80 - ACEITA PARA A REDE LOCAL 
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT 
# PORTA 22 - ACEITA PARA A REDE LOCAL 
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT 
# No iptables, temos de dizer quais sockets sao validos em uma conexao 
iptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT 
echo "Setting rules for INPUT ............[ OK ]" 
################################ 
# Cadeia de Reenvio (FORWARD). 
# Primeiro, ativar o mascaramento (nat). 
iptables -t nat -F POSTROUTING 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
echo "Activating IP Mask .................[ OK ]" 
# Agora dizemos quem e o que podem acessar externamente 
# No iptables, o controle do acesso a rede externa e feito na cadeia "FORWARD" 
# COMPUTADOR DO CHEFE - ACEITA TODOS OS PACOTES 
iptables -A FORWARD -s 192.168.3.50 -j ACCEPT 
# PORTA 3128 - ACEITA PARA A REDE LOCAL 
iptables -A FORWARD -i eth1 -p tcp --dport 3128 -j ACCEPT 
# Redireciona porta 80 para 3128 (squid) 
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 
# PORTA 53 - ACEITA PARA A REDE LOCAL 
iptables -A FORWARD -i eth1 -p udp --dport 53 -j ACCEPT 
# PORTA 110 - ACEITA PARA A REDE LOCAL 
iptables -A FORWARD -i eth1 -p tcp --dport 110 -j ACCEPT 
# PORTA 25 - ACEITA PARA A REDE LOCAL 
iptables -A FORWARD -i eth1 -p tcp --dport 25 -j ACCEPT 
# PORTA 443 - ACEITA PARA A REDE LOCAL 
iptables -A FORWARD -i eth1 -p tcp --dport 443 -j ACCEPT 
# PORTA 21 - ACEITA PARA A REDE LOCAL 
iptables -A FORWARD -i eth1 -p tcp --dport 21 -j ACCEPT 
# No iptables, temos de dizer quais sockets sao validos em uma conexao 
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT 
echo "Setting rules for FORWARD ..........[ OK ]" 
# Finalmente: Habilitando o trafego IP, entre as Interfaces de rede 
echo "1" > /proc/sys/net/ipv4/ip_forward 
echo "Setting ip_forward: ON .............[ OK ]" 
echo "Finished!! Firewall: OK! ...........[ OK ]" 
echo "==========================================" 
echo