Site dentro da rede não aparece fora dela...
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
Site dentro da rede não aparece fora dela...
Pelo que eu entendi, voce tem um Webserver ai e um DNS, e as pessoas acessam de fora o site interno.
Nesse caso voce tem que fazer NATs estaticos para os servidores:
# Uma regra pra Webserver
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to <ip_webserver:80>
Voce deve fazer uma semelhante para o DNS, so que o protocolo sera o UDP e a porta a 53
Site dentro da rede não aparece fora dela...
mas e com relacao ao recebimento de emails externos ?
Site dentro da rede não aparece fora dela...
seu DNS deve estar recebendo conexoes externas primeiro, porque outros SMTPs vao querer achar o seu servidor mas isso so eh possivel atravez de consulta DNS, o seu DNS vai dizer o IP do servidor de e-mail
Site dentro da rede não aparece fora dela...
dando um ping no mail.DOMINIO.com.br ele esta direcionando para meu roteador da rede como deveria ser realmente...
O problema deve ser a forma de dar um forward do roteador para o meu servidor interno... lembrando que meu exchange server estar em uma maquina dentro da rede que nao é enxergada por fora dela.
Site dentro da rede não aparece fora dela...
Foi oque eu falei, voce tem que fazer regras no PREROUTING usando DNAT,
acho que pra essas portas:
TCP 25,80,110
UDP 53
Site dentro da rede não aparece fora dela...
Por exemplo...
# Caso uma Conexao nova seja feita no Firewall com destino na porta
# 80(Webserver) redirecione para o IP 192.168.0.10 na mesma porta
Código :
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.0.10:80
Entendeu? Voce vai precisar de regras pra outras portas tambem, que disse no post acima.
Site dentro da rede não aparece fora dela...
Vou testar
:D
Com relação ao script em si... Acha que tem algo estranho ?
Ainda sou muito novo em Iptables... e tive que pegar uma base e começar a aplicar as regras... só que não dá para aprender da noite para o dia
:toim: