HTTPS com problemas com proxy NÃO transparente [RESOLVIDO]

1. HTTPS com problemas com proxy NÃO transparente [RESOLVIDO]

tc forum
tcforum1

(usa CentOS)

Enviado em 04/02/2015 - 09:17h

Boa Tarde, depois de muitas horas de pesquisa, e ainda sem solução, resolvi recorrer a um novo tópico para resolver esse problema.

Tenho firewall iptables junto com proxy squid3. Porem alguns sites como gmail, por exemplo, não abre a area de contatos. hotmail.com não consigo logar, quando logo não entra mais, fica travado em tela branca, o problema esta relacionado á https Acredito que seja alguma configuração do proxy ou firewall, mais não estou encontrando.

O proxy esta configurado como NÃO transparente, eu seto o proxy nas maquinas clientes, e não habilitei a parte de autenticação com usuário e usuário e senha, pra fazer proxy autenticado.

Segue abaixo o firewall + squid3.conf

meu S.O é debian

Fiz um firewall bem enxuto para ficar mais fácil de encontrar o problema
=====================================================
#!/bin/bash
#Interface da Internet:
ifinternet="eth0"
#Interface da rede local
iflocal="eth1"
DIRETORIO_ROOT="/etc/admsrv/fw"

iniciar(){
echo
echo "INICIANDO O FIREWALL..."

iptables -F
iptables -X

iptables -F -t nat
iptables -F -t mangle

iptables -X -t nat
iptables -X -t mangle

#Fechando tudo por padrão

#CARREGA MODULOS PARA CONEXAO IMPORTANTES PARA IPTABLES
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp

#modulos ainda nao documentados
modprobe ip_tables
modprobe iptable_nat
modprobe ipt_MARK
modprobe ipt_limit
modprobe ipt_tcpmss
modprobe ip_conntrack_irc
modprobe ipt_state
modprobe ipt_multiport

#Fim compartilha a conexao

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

echo
echo "COMPARTILHANDO A CONEXAO..."
modprobe iptable_nat #Ativa o modulo do iptables que ativa o nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE

#iptables -A INPUT -i $ifinternet -p icmp --icmp-type echo-request -j DROP #Servidor nao responte a pings
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter #Proteje contra IP spoofing
iptables -A INPUT -m state --state INVALID -j DROP #Proteje contra IP spoofing

iptables -A INPUT -i $iflocal -j ACCEPT

iptables -A FORWARD -p tcp --dport 80 -j DROP

iptables -A INPUT -p tcp --syn -j DROP
echo
echo "FIREWALL ATIVADO"
echo

}
parar(){
echo
echo "PARANDO O FIREWALL..."
iptables -F

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
echo
echo "COMPARTILHANDO A CONEXAO..."
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE

}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâtros start ou stop"
esac

======================================================

SEGUE O SQUID.CONF Bem enxuto também
--------------------------------------------------------------------------
http_port 3128
visible_hostname firewall
error_directory /usr/share/squid3/errors/Portuguese/

cache_mem 128 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 2 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid3 5120 16 256
cache_access_log /var/log/squid3/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl SSL_ports port 443
acl SSL_ports port 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
acl redelocal src 192.168.1.0/24

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

http_access allow localhost

http_access allow redelocal

http_access deny all
======================================================

Galera, se alguem poder me ajudar, pois já estou perdendo o sono... abs


  


2. Re: HTTPS com problemas com proxy NÃO transparente

Alex Silva
l0g1in

(usa FreeBSD)

Enviado em 04/02/2015 - 14:38h

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -t nat -A POSTROUTING -o wan -j MASQUERADE

antes tira o DROP da porta 80 só pra testar, ta estranho esse firewall


3. Re: HTTPS com problemas com proxy NÃO transparente [RESOLVIDO]

tc forum
tcforum1

(usa CentOS)

Enviado em 04/02/2015 - 23:29h

astsilva escreveu:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -t nat -A POSTROUTING -o wan -j MASQUERADE

antes tira o DROP da porta 80 só pra testar, ta estranho esse firewall


Se colocar a regra que você pediu, fica proxy transparente, e eu quero controlar também https. Nesse caso tenho que bloquer a porta 80 no firewall e apontar no navegador para o meu proxy.

O problema é que alguns sites https apresentam problema.





4. Re: HTTPS com problemas com proxy NÃO transparente [RESOLVIDO]

Alex Silva
l0g1in

(usa FreeBSD)

Enviado em 05/02/2015 - 09:48h

tcforum1 escreveu:

astsilva escreveu:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -t nat -A POSTROUTING -o wan -j MASQUERADE

antes tira o DROP da porta 80 só pra testar, ta estranho esse firewall


Se colocar a regra que você pediu, fica proxy transparente, e eu quero controlar também https. Nesse caso tenho que bloquer a porta 80 no firewall e apontar no navegador para o meu proxy.

O problema é que alguns sites https apresentam problema.






Não é bloqueando a 80 que vai resolver o problema do https que a porta 443, você pode fazer um DROP na porta 80 e 443 e fazer um FORWARD liberando o acesso para alguém que precise na rede, outra maneira é pelo squid, lembrando que o squid não filtra o conteúdo https (ssl)
# ACLs Não Deixa o site responder na porta 443
acl fb dstdomain .facebook.com
acl fb dstdomain www.facebook.com
acl fb dstdomain .pt-br.facebook.com
acl fb dstdomain www.pt-br.facebook.com
acl almoco time MTWHFA 12:00-13:00

ttp_reply_access deny fb
http_access deny CONNECT fb almoco









5. Re: HTTPS com problemas com proxy NÃO transparente [RESOLVIDO]

tc forum
tcforum1

(usa CentOS)

Enviado em 05/02/2015 - 18:18h

Se eu bloquear a porta 80 e 443 no firewall, e setar o proxy em meu navegador cliente, e não fazer nenhum bloquei no squid, os sites https deveriam navegar normalmente, correto?

Pois esse é meu problema, considerando esse cenário, alguns sites htts travam, ex. hotmail não faz login.



6. Re: HTTPS com problemas com proxy NÃO transparente [RESOLVIDO]

Alex Silva
l0g1in

(usa FreeBSD)

Enviado em 06/02/2015 - 08:26h

tcforum1 escreveu:

Se eu bloquear a porta 80 e 443 no firewall, e setar o proxy em meu navegador cliente, e não fazer nenhum bloquei no squid, os sites https deveriam navegar normalmente, correto?

Pois esse é meu problema, considerando esse cenário, alguns sites htts travam, ex. hotmail não faz login.


Navega normalmente, só não navega quem não estiver com o proxy no navegador.




7. Re: HTTPS com problemas com proxy NÃO transparente [RESOLVIDO]

tc forum
tcforum1

(usa CentOS)

Enviado em 11/02/2015 - 14:50h

Pois então, se eu não setar o proxy, no navegador, não funciona, se eu setar funciona, inclusive se eu bloquear um site https no squid, ele bloqueia perfeitamente.

Ou seja, aparentemente, esta tudo certo, porem sites como o hotmail.com, não entram.... o que pode ser o problema?


8. Re: HTTPS com problemas com proxy NÃO transparente [RESOLVIDO]

Alex Silva
l0g1in

(usa FreeBSD)

Enviado em 12/02/2015 - 09:32h


Era pra funcionar normal, não tem nenhum regra no proxy ou no iptables para bloquear o hotmail ou msn não?

acontece só com o hotmail ou outros sites?


9. Browser

André Marques de Oliveira
marqandre

(usa Ubuntu)

Enviado em 12/02/2015 - 14:52h


Pessoal eu estou com o mesmo problema, quando abre o email do terra e tento excluir demora demora e aparece a tela que A pagina não responde, No meu caso isso só acontece no Chrome, já testei firefox, Iexplorer e não trava.
Tenho uma maquina Ubuntu 12.04 e squid 3.2, coma mesma configuração funciona normalmente em qualquer navegador, agora no ubuntu 14.04 e squid 3.3.8 não vai nem ferrando.
Se alguem puder ajudar agradeço.


10. Solução para o problema

tc forum
tcforum1

(usa CentOS)

Enviado em 01/06/2016 - 22:31h

A solução encontrada não esta relacionada ao iptables e nem ao squid.

O problema esta no MTU da placa de rede da conexão com a internet não compatível com o MTU do seu modem. Explicação, não a mais técnica necessária mais que ajuda a resolver: Se o MTU da sua placa de rede estiver em 1500, e o seu modem ADSL 1492, o seu modem vai term que quebrar os pacotes para poder ser enviados, se o pacote for http tudo bem, mais se o protocolo for https o pacote não pode ser quebrado, e no caso apresenta os erros informados.

Agora como fazer isso? Segue abaixo um conteúdo que peguei em algum lugar que agora não lembro onde...

###########################################################################################################
Percebeu uma certa lentidão na abertura de páginas ou mesmo erros em sites seguros? O problema pode estar na configuração de sua Unidade Máxima de Transmissão, ou MTU.

Unidade Máxima de Transmissão é o maior tamanho de transmissão em bytes de uma interface de rede. Caso o tamanho do pacote – na verdade datagrama – seja maior que o limite estipulado, o pacote é quebrado, fragmentado.

Veja na coluna Dicas para Linux desta quarta-feira como proceder caso sua conexão não esteja na velocidade que deveria estar.

Qual o meu MTU?

Para saber, basta digitar no Terminal:

ifconfig eth0 | grep -Eo “MTU:[0-9]+”

O “eth0″ é o nome da conexão, que pode ser vista no ícone de gerenciador de redes que fica geralmente na barra perto do relógio do sistema.

Qual valor de MTU usar?

Existe uma tabela simples, que pode ser tomada como parâmetro:

Ethernet (LAN) – 1500 bytes

IEEE 802.3/802.2 (Cabo e DSL) – 1492 bytes

PPPoE (WAN Miniport) – 1480 bytes

X.25 – 576 bytes

Contudo, existe um teste prático para saber o valor exato. No Terminal, digite:

ping -s 1500 -M do facebook.com

Mude o valor de “1500” para testar. Quando não aparecer a mensagem de fragmentação – Frag needed and DF set – o valor será aquele. Aqui nos testes o valor deu 1475.

Para parar o ping, aperte Ctrl + C.

Como mudar o valor?

Digite no Terminal:

ifconfig eth0 mtu 1492 (ou o valor máximo sem fragmentação)


11. Re: HTTPS com problemas com proxy NÃO transparente [RESOLVIDO]

Fernando Santos
fernando182

(usa Debian)

Enviado em 02/06/2016 - 00:50h

Eu estava com o mesmo problema, eu usava o debian 8.2, então fiz de tudo e nada adiantou, ai resolvi atualizar para a versão 8.4 e o problema acabou, sinceramente não descobri o motivo do problema, mas de qualquer forma, compartilho aqui com vocês o meu caso.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts