Bom pessoal,
Tenho estudado muito essa semana sobre Iptables, tendo em vista que o servidor firewall da empresa perdeu-se e o último analista não fez backup nem explica o procedimento...
Tive que fazer um curso dinâmico de Iptables porém não consegui resolver alguns problemas...
Atualmente tenho dois servidores DNS, um firewall, dentro da rede tenho dois servidores um de dominio onde roda tambem um exchange server e outro servidor onde a pagina da empresa fica.
Já consegui liberar o acesso a internet e dentro da rede eu consigo fazer SMTP e POP de contas externas (IG, Yahoo, etc...) porém quando utilizo o email corporativo, este so manda emails para fora... não recebo nada de fora.
e não consigo fazer a pagina aparecer fora da minha rede de jeito nenhum.... já li que provavelmente tenho q fazer um NAT, porém essa parte esta complicada... já verifiquei nos DNS e aparentemente esta ok.
Segue meu script de firewall para análise, por favor deem dicas de excesso ou faltas nesse script... a base dele foi do foca linux.... o resto é o resto
#!/bin/sh
EXTIP=IP EXTERNO
INTIP=IP INTERNO
REDEEXT=0/0
REDEINT=192.168.0.0/24
iptables -F
iptables -F tudo
iptables -X
iptables -t nat -F
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD DROP
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING DROP
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 >$i
done
echo "8192" > /proc/sys/net/ipv4/ip_conntrack_max
iptables -N tudo
# Aceita todo o trafego vindo/indo pro loopback e rede interna
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s $REDEINT -i eth1 -j ACCEPT
# Conexoes vindas da interface eth0 sao tratadas pelo chain tudo
iptables -A INPUT -i eth0 -j tudo
# Qualquer outra conexao desconhecida e imediatamente derrubada
iptables -A INPUT -j DROP
# Permite redirecionamento entre as interfaces locais
# Qualquer trafego vindo/indo para outras sera bloqueado neste passo
iptables -A FORWARD -d $REDEINT -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -s $REDEINT -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -j DROP
iptables -A tudo -p icmp -m limit --limit 2/s -j ACCEPT
# Primeiro aceitamos o trafego vindo da Internet para o servicos www,POP3 e SMTP
iptables -A tudo -p tcp --dport 80 -j ACCEPT
iptables -A tudo -p tcp --dport 25 -j ACCEPT
iptables -A tudo -p tcp --dport 110 -j ACCEPT
# A tentativa de acesso externo Sera bloqueada pela ultima regra abaixo.
iptables -A tudo -m state --state ! ESTABLISHED,RELATED -j ACCEPT
# Qualquer outro tipo de trafego e aceito
iptables -A tudo -j ACCEPT
# Permite qualquer conexao vinda com destino a lo e rede local para eth1
iptables -t nat -A POSTROUTING -o lo -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source $EXTIP
iptables -t nat -A POSTROUTING -s $REDEINT -o eth1 -j ACCEPT
# Feito masquerading de outros servicos da rede interna indo para a interface
# eth0
iptables -t nat -A POSTROUTING -s $REDEINT -o eth0 -j MASQUERADE
# Qualquer outra origem de trafego desconhecida indo para eth1 (conexoes vindas
# de eth0) são bloqueadas aqui
iptables -t nat -A POSTROUTING -o eth1 -d $REDEINT -j DROP
# O trafego indo para a interface eth0 nao devera ser bloqueado. Os bloqueios serao feitos no
# chain INPUT da tabela filter
iptables -t nat -A POSTROUTING -o eth0 -j ACCEPT
# bloqueia qualquer outro tipo de trafego desconhecido
iptables -t nat -A POSTROUTING -j DROP