Problema com Redirect + proxy
Pessoal,
estou com um problema e não sei como resolver o mesmo.
Meu iptables está com ip válido exemplo no firewall 200.300.400.500 e o gateway é 10.11.10.1 o meu dns esta em 10.11.10.3. Quando eu deixo como drop o FORWARD não consigo mais navegar.
Como arrumar isso.
Veja bem: Saindo requisicao de 200.300.400.500 com destino a porta 80
sendo que o DNS esta em 10.11.10.3. e o PROXY ?
# Limpando as Regras
$IPT -t filter -F
$IPT -t filter -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
# Politica
$IPT -t filter -P INPUT DROP
$IPT -t filter -P FORWARD DROP
$IPT -t filter -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
# Liberando Loopback
$IPT -t filter -A INPUT -i lo -j ACCEPT
$IPT -t filter -A INPUT -s $LAN_RANGE -j ACCEPT
# Compartilhando a Conexao
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -o $NET_IFACE -j MASQUERADE
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Estabelecidas / Reincidentes / Invalid
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
$IPT -A INPUT -m state --state UNTRACKED -j DROP
$IPT -A FORWARD -m state --state UNTRACKED -j DROP
# Roteia DNS
$IPT -t nat -A PREROUTING -t nat -p tcp -d 200.300.400.500 --dport 53 -j DNAT --to 10.11.10.3
$IPT -t nat -A PREROUTING -t nat -p udp -d 200.300.400.500 --dport 53 -j DNAT --to 10.11.10.3
$IPT -t nat -A PREROUTING -t nat -p tcp -d 200.300.400.500 --dport 953 -j DNAT --to 10.11.10.3
$IPT -t nat -A PREROUTING -t nat -p udp -d 200.300.400.500 --dport 953 -j DNAT --to 10.11.10.3
# Repassando solicitacoes ao Apache
$IPT -t nat -A PREROUTING -p tcp -i eth0 -d 200.300.400.500 --dport 80 -j DNAT --to-destination 10.11.10.3
$IPT -A FORWARD -p udp -i eth0 --dport 80 -d 10.11.10.3 -j ACCEPT
$IPT -A FORWARD -p tcp -i eth0 --dport 80 -d 10.11.10.3 -j ACCEPT
# Ativar o mascaramento (nat).
$IPT -t nat -A POSTROUTING -d 0/0 -j MASQUERADE
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Ativando Proxy
$IPT -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -s $LAN_RANGE -j REDIRECT --to-port 3128
Re: Problema com Redirect + proxy
isso é porque voce nao tem nenhuma regra como:
iptables -A FORWARD -s 10.11.10.0/24 -p tcp --dport 80 -j ACCEPT
é por isso que o transparente nao funciona, voce so ta liberando a conexao na porta 80 tcp/udp (sendo que udp é desnecessario) para o ip do proxy. no transparante ele conecta (ele pensa que...) diretamente na internet ai seu fw nao deixa passar. easy essa :)
ahh gostei do exemplo do ip do fw .. 200.300 .. (maldade com o octeto, "estambalhaste o brinquedo" do octecto hehe)
Re: Problema com Redirect + proxy
Quanto ao octeto é porque um dia eu coloquei como ex. 200.201.202.203 e um cara mi mando uma MP, para não colocar o IP da minha rede kkkkkk.
Bom, mais duvidas.
Eu tinha add antes de ler a sua resposta ao Forum, so que mesmo assim não está navegando.
O que eu fiz
iptables -A FORWARD -s $LAN_RANGE -j ACCEPT
só que assim fica muito aberto. Ou seja, todo mundo vai poder fazer a festa na rede sendo oposto do que o dono quer.
A ordem em que eu deixei as regras está certo ao seu modo de ver ?
De qualquer forma, obrigado pela resposta.
Re: Problema com Redirect + proxy
Sim as regras estao ok :)
bom nao fica aberto nao se voce especificar que so vai deixar passar a 80 nessa parte do FORWARD...e porque nao navega? onde para exatamente? na resolucao de nomes? no request? a ideia de por aberto no forward para a lan era para ver se funciona porque vem ou mal, nao existe muita diferenca entre por:
iptables -P FORWARD ACCEPT
e por
iptables -P FORWARD DROP
iptables -A FORWARD -s $LAN_RANGE -j ACCEPT
Bom entretanto RELENDO suas regras, o seu proxy nao esta na mesma maquina que o firewall né? tem que fazer um DNAT para lá entao. e um REDIRECT na maquina do proxy, sacou?
-j REDIRECT so redireciona as portas internamente, essas eh uma das grandes diferentes entre port forwarding e redirectors.
Verifica isso e da um retorno
Re: Problema com Redirect + proxy
Esta sim,
O firewall está com o proxy ou seja 10.11.10.1
e o Dns + qmail estao na 10.11.10.3
quando eu especifico --dport 80 ele num vai. Fica processando e não vai.
Agora quando eu nao informo a porta so falo que é ACCEPT navega e passa pelo squid, porque o log esta correndo.
Re: Problema com Redirect + proxy - RESOLVIDO
Bom, seguinte.
Depois de insistentes tentativas sem obter exito. Um colega meu mi deu uma luz.
Seguinte.
Estão certas as regras POREM, esta faltando mandar liberar a porta do proxy 3128 na qual ocorre o redirecionamento.
portanto
iptables -A FORWARD -s $LAN_RANGE -i eth1 -o eth0 -p tcp --dport 3128 -j ACCEPT
Só que agora eu li uma coisa.
Não é necessário usar com o IP FIXO o MASQUERADE.
Então quero ver agora as outras opções.
Abraço a -> mistymst e a quem estiver lendo esse tópico.
Re: Problema com Redirect + proxy
Spyder, boa noite. Eu também passei por isso. Quando instalei o meu primeiro servidor para internet na empresa, no nosso ip fixo, e aproveitando as regras de firewall, que foram instalados por terceiros, na época, funcionou legal. Depois adquirimos uma outra ADSL de ip dinâmico e aproveitei o mesmo script de firewall e não funcionou. Aí executei o comando man iptables. Lá fala claramente que em IP Dinâmico o parâmetro MASQUERADE é o correto e não é para IP Fixo. No IP Fixo, tem que fazer um SNAT. Depois disso, graças a Deus sempre deu certo.
Um grande abraço e fique com Deus ..... 8-)
Re: Problema com Redirect + proxy - RESOLVIDO
Citação:
Postado originalmente por spyderlinux
iptables -A FORWARD -s $LAN_RANGE -i eth1 -o eth0 -p tcp --dport 3128 -j ACCEPT
Tipo, essa regra nao era para ser necessaria sabe? porque a tua requisicao nao deveria passar pela 3128, esta rolando so input nela e quem faz o resto é o proxy, inclusive porque tu ta usando o modulo de tracking (state related/established) entao ele liberaria as portas necessarias para o resto da comunicacao, bom entretanto se funcionou nada mal, mas mesmo assim ainda é "estranho", nao tenho essa regra aqui :)
so relendo as regras denovo parece que faltou liberar o input na 3128, mas posso ter passado por ela e nao ter visto... ao inves da tua forward tenta abrir o input para a tua lan:
iptables -A INPUT -s $LAN_REDE -i ethX -p tcp --dport 3128 -j ACCEPT
ai testa :)
quanto ao lance do MASQUERADE / SNAT é verdade isso, no SNAT voce realmente especifica o IP e no MASQUERADE ele vai atras do IP que sera "NATeado" (neologismo eh legal hehe) para voce, mas nao necessariamente que voce precise usar SNAT quando tiver IP estatico e MASQUERADE quanto tiver IP dinamico.
deu para entender +-?