Esta vai para quem administra firewall
iptables e proxy
Squid.
Com freqüência vemos administradores se debatendo para liberar
acesso de uma máquina da rede local para acessar sites que utilizam
criptografia (bancos; .gov; etc) em portas específicas, o que deixa
o "Squid maluco"...
Para dificultar ainda mais, nem sempre podemos contar com a cooperação
dos administradores destes sites, especialmente quando informamos que
estamos com a rede atrás de um FW/Proxy que não seja $$...
Então aí vai uma dica que irá ajudar!
Antes de fazer o que está abaixo, verifique o seguinte:
- Acrescente o IP interno do seu proxy no gateway da máquina estação que fará este acesso.
- Acrescente o IP do DNS que você utiliza para o proxy navegar, entre os DNS da máquina estação (normalmente o IP do modem).
- Estou considerando que você já tenha um script de firewall configurado, pelo menos com a regra abaixo:
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
1 - No início do script FW, coloque uma variável e defina o IP da estação:
SITE=IP_da_máquina_que_fará_este_acesso
2 - Antes da regra que permite o acesso ao Squid, principalmente se for transparente.
3 - Crie as seguintes regras no iptables:
iptables -A FORWARD -p UDP -s $SITE --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -s $SITE -j LOG --log-prefix "SITE"
iptables -A FORWARD -p tcp -s $SITE -d 0/0 -j ACCEPT
Estamos liberando a máquina da rede para resolver DNS; logando
todos os acessos que serão feitos por esta máquina; e a seguir
liberando esta máquina para navegar livremente.
4 - A navegação acima precisa de NAT, então acrescente no script FW:
iptables -t nat -A POSTROUTING -p UDP -s $SITE --dport 53 -j SNAT --to IP_placa_FWProxy_ligada_ao_modem
iptables -t nat -A POSTROUTING -p tcp -s $SITE -d 0/0 -j SNAT --to IP_placa_FWProxy_ligada_ao_modem
OBS: Caso ela esteja sendo levantada via DHCP, utilize -j MASQUERADE nas duas linhas acima.
Agora vá até a estação, desmarque a caixa para utilização de proxy nas configurações do navegador (se não for transparente) e peça ao usuário para fazer todo o
procedimento previsto para acessar o site.
Voltemos ao nosso FW e então filtramos as mensagens de 'logs' relativas aos acessos da máquina da rede com o seguinte comando:
# grep SITE /var/log/messages >> /home/site.txt
Entre no diretório /home e veja o arquivo site.txt. Ali terá todos os IPs e portas que foram utilizadas para esta conexão.
Voltamos a editar o FW, tirando o 0/0 e colocamos em seu lugar o IP e
acrescentamos a porta de destino utilizada. Faça isto para todos os
IPs listados em site.txt.
Faça as mesmas alterações nas regras de NAT.
Do modo acima, liberamos a máquina mencionada para navegar sem proxy apenas para fazer este serviço, outros tipos de navegação terão que ser utilizando proxy.
Dá um "pouquinho" de trabalho, mas é mais seguro.
Qualquer dúvida, utilizem o meu e-mail.
Xxoin