#!/bin/sh
### Carrega módulos de connection tracking
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat_ftp
### Define políticas de acesso padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
### Limpa regras e cadeias de usuário prévias
iptables -X
iptables -F
iptables -t nat -F
### Habilita repasse de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
### Interface externa
EXT_IF=eth0
### Interface Interna
INT_IF=eth1
### Rede interna
INT_NET=192.168.0.0/24
### Habilita comunicação interna entre processos locais
iptables -A INPUT -i lo -j ACCEPT
### Habilita acesso pela rede interna a esse host
iptables -A INPUT -i $INT_IF -j ACCEPT
iptables -A FORWARD -i $INT_IF -j ACCEPT
### Habilita SSH externo - use isso se for acessar o servidor externamente
iptables -A INPUT -i $EXT_IF -m tcp -p tcp --dport 22 -j ACCEPT
### Habilita todas a conexões previamente aceitas (estados Estabelicida e Relacionada)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
### Liberar acesso externo às portas de Mail(25), Pop-3(110), Dns(53(tcp e udp)), Https(443), Gmail(465,955)
iptables -t nat -A POSTROUTING -o $EXT_IF -m multiport -p tcp --dports 20,21,22,25,53,110,443,465,995 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $EXT_IF -m multiport -p udp --dports 20,21,53,443 -j MASQUERADE
### Proxy transparente
iptables -t nat -A PREROUTING -p tcp --dport 80 -i $INT_IF -s $INT_NET -j REDIRECT --to-port 3128