Problemas no acesso com alguns sites HTTPs (e outros que não são).

1. Problemas no acesso com alguns sites HTTPs (e outros que não são).

Ricardo Jurczyk Pinheiro
tenentblueberry

(usa Fedora)

Enviado em 28/05/2014 - 18:05h

Pessoal, tenho tido repetidos problemas na rede do meu trabalho com alguns sites, como p/ autenticar no eBay (HTTPS), o Hotmail (HTTPS) e o sistema de perícia médica q o DP tem q acessar. No caso do eBay, ele fica tentando... Até q volta à tela de login. No sistema de perícia, erro 104 do Squid (Read Error - Connection reset by peer). No Hotmail, eu n sei mesmo, mas ouço reclamações o tempo todo.

Vamos ao meu ambiente: Servidor Linux, firewall feito em iptables c/ Squid 3.3.4. Segue o meu firewall embaixo:

#!/bin/bash
# Script de firewall - ETE Republica - versao 0.4 Ricardo J. Pinheiro
# 10/10/2012 Baseado em http://www.zago.eti.br/firewall/fireaula.sh
##### Variaveis
SERVICO=$(which iptables)
MODULO=$(which modprobe)
WGET=$(which wget)
REDE_DE_DENTRO="10.0.0.0/16"
PLACA_ADSL=eth0
PLACA_FAETEC=eth1
PLACA_DE_DENTRO=eth2
PLACA_DE_FORA=eth+
ROTEADOR_ADSL="192.168.1.254"
PROXY_FAETEC="10.0.0.2"
INETSERV="10.0.0.5"
WEBSERV="10.0.0.4"
PORTAS_ABERTAS_REDIRECIONADAS="80 443 563 4410 5228 7001 8889 31416"
#
#echo "Rota da placa de dentro, e definicao da rota padrao (ADSL)"
#ip route add $REDE_DE_DENTRO via $INETSERV
#ip route add default via $ROTEADOR_ADSL
#route add -host $PROXY_FAETEC dev $PLACA_FAETEC
#route del -host 10.0.0.2 dev eth1

echo "Descendo modulos e zerando regras"
/sbin/depmod -a
$SERVICO -P INPUT ACCEPT
$SERVICO -P OUTPUT ACCEPT
$SERVICO -P FORWARD ACCEPT
$SERVICO -F
$SERVICO -X
#
echo "Subindo modulos"
$MODULO ip_tables
$MODULO iptable_filter
$MODULO ipt_LOG
$MODULO ipt_REJECT
$MODULO ipt_MASQUERADE
$MODULO x_tables
$MODULO xt_limit
$MODULO xt_state
$MODULO xt_multiport
$MODULO nf_nat
$MODULO nf_nat_ftp
$MODULO nf_conntrack
$MODULO nf_conntrack_ftp
$MODULO nf_conntrack_ipv4
#
echo "Recolocando as tabelas"
$SERVICO -t nat -F
$SERVICO -t nat -X
$SERVICO -t mangle -F
$SERVICO -t mangle -X
#
echo "Pacotes establizados passam s/ problemas."
$SERVICO -A INPUT -m state --state INVALID -j DROP
$SERVICO -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#
echo "Libera o loopback."
$SERVICO -A INPUT -i lo -j ACCEPT
#
echo "Libera o acesso interno."
$SERVICO -A INPUT -i $PLACA_DE_DENTRO -s $REDE_DE_DENTRO -j ACCEPT
$SERVICO -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
#
echo "Limita o numero de conexoes por maquina a 50 na porta 80"
$SERVICO -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT --reject-with tcp-reset
#
echo "Bloqueio ao Ultrasurf."
$SERVICO -A FORWARD -d 65.49.14.0/24 -j LOG --log-prefix "=UltraSurf= "
#
echo "Aceita conexoes apenas a partir do usuario proxy (ou seja, do Squid)."
$SERVICO -t filter -A OUTPUT -p tcp -s $REDE_DE_DENTRO -m multiport --dport http,https -m owner ! --uid-owner proxy -j REJECT --reject-with tcp-reset
#
echo "Bloqueio ao traceroute."
$SERVICO -A INPUT -p udp -i $PLACA_DE_FORA --dport 33435:33525 -j DROP
#
echo "Libera acesso interno e externo para SSH e servidor Web."
$SERVICO -A INPUT -p tcp -m multiport -i $PLACA_ADSL --dport 22,53,80,443,3128 --tcp-flags SYN,RST,ACK SYN -j ACCEPT
$SERVICO -A INPUT -p tcp -m multiport -i $PLACA_DE_DENTRO --dport 22,53,80,443,3128 --tcp-flags SYN,RST,ACK SYN -j ACCEPT
$SERVICO -A INPUT -p udp -m multiport -i $PLACA_DE_DENTRO --dport 53 -j ACCEPT
#
echo "Redireciona porta 80 pela placa externa p/ o servidor Web."
$SERVICO -t nat -A PREROUTING -i $PLACA_ADSL -p tcp --dport 80 -j DNAT --to-dest $WEBSERV
$SERVICO -A FORWARD -p tcp -i $PLACA_ADSL --dport 80 -d $WEBSERV -j ACCEPT
#
echo "Mascarando tudo de dentro pela placa de dentro da rede, p/ 3129"
GID=$(id -g proxy)
for PORTAS in $PORTAS_ABERTAS_REDIRECIONADAS
do
$SERVICO -t nat -A OUTPUT -p tcp --dport $PORTAS -m owner --gid-owner $GID -j ACCEPT
$SERVICO -t nat -A OUTPUT -p tcp --dport $PORTAS -j DNAT --to-destination $INETSERV:3129
done
#
echo "NAT para os demais servicos"
$SERVICO -A POSTROUTING -t nat -o $PLACA_ADSL -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward
#
echo "Protecao contra o ping-of-death"
$SERVICO -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#
echo "Protecao contra syn-floods"
$SERVICO -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
#
echo "Protecao contra port-scanners avancados"
$SERVICO -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
#
echo "DROP nos pacotes TCP indesejaveis"
$SERVICO -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-level 6 --log-prefix "FIREWALL: NEW sem syn: "
$SERVICO -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
#
echo "DROP e LOG de port-scanners"
$SERVICO -N SCANNER
$SERVICO -A SCANNER -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "DIVERSOS: port scanner: "
$SERVICO -A SCANNER -j DROP
$SERVICO -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i $PLACA_ADSL -j SCANNER
$SERVICO -A INPUT -p tcp --tcp-flags ALL NONE -i $PLACA_ADSL -j SCANNER
$SERVICO -A INPUT -p tcp --tcp-flags ALL ALL -i $PLACA_ADSL -j SCANNER
$SERVICO -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $PLACA_ADSL -j SCANNER
$SERVICO -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $PLACA_ADSL -j SCANNER
$SERVICO -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $PLACA_ADSL -j SCANNER
$SERVICO -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $PLACA_ADSL -j SCANNER
#
echo "Log de acesso por porta"
$SERVICO -A INPUT -p tcp --dport 21 -i $PLACA_ADSL -j LOG --log-level 6 --log-prefix "FIREWALL: ftp: "
$SERVICO -A INPUT -p tcp --dport 80 -i $PLACA_ADSL -j LOG --log-level 6 --log-prefix "FIREWALL: http: "
$SERVICO -A INPUT -p tcp --dport 3128 -i $PLACA_ADSL -j LOG --log-level 6 --log-prefix "FIREWALL: squid: "
#
echo "DROP no samba"
$SERVICO -A INPUT -p tcp -i $PLACA_ADSL --syn --dport 139 -j DROP
$SERVICO -A INPUT -p tcp -i $PLACA_ADSL --syn --dport 138 -j DROP
$SERVICO -A INPUT -p tcp -i $PLACA_ADSL --syn --dport 137 -j DROP
#
echo "DROP no NFS (portmap)"
$SERVICO -A INPUT -p tcp -i $PLACA_ADSL --syn --dport 111 -j DROP
#
echo "Reinicia o fail2ban"
/etc/init.d/fail2ban restart 2>&1 > /dev/null
#
echo "DROP no resto"
$SERVICO -A FORWARD -p tcp --syn -j DROP
#
echo "Pronto"
# MSX r0x a lot

Vamos ao meu Squid.conf - cortei alguns pedaços, pq n são relevantes, eu tenho ACLs p/ cada setor daqui, e http_access allow ou deny, dependendo do horário - esse squid.conf é reescrito p/ liberar ou bloquear o acesso a esses setores:

# Porta 3128 pro Squid
#
http_port 10.0.0.254:3128
http_port 10.0.0.254:3129 intercept
#
icp_port 0
#
# Define 1024 Mb pro Squid usar
#
cache_mem 1024 MB
cache_swap_low 90
cache_swap_high 95
#
# Mais de 100 Mb, o Squid descarta do cache.
#
maximum_object_size_in_memory 64 KB
maximum_object_size 100 MB
minimum_object_size 0 KB
#
# Politica de atualizacao de cache
#
cache_replacement_policy heap GDSF
memory_replacement_policy heap LFUDA
#
# Define 52 Gb de espaco pro squid, e onde estarao os logs.
#
cache_dir aufs /var/spool/squid/ 52224 4 16
cache_access_log /var/log/squid3/access.log
cache_log /var/log/squid3/cache.log
cache_store_log /var/log/squid3/store.log
#
client_netmask 255.255.255.255
log_mime_hdrs off
pid_filename /var/run/squid.pid
request_header_max_size 128 KB
#
# Mensagens de erro
#
error_default_language pt-br
error_log_languages on
#
# Como o Squid lida com FTP anonimo.
#
ftp_user Squid@
ftp_passive on
ftp_sanitycheck on
#
dns_retransmit_interval 10 seconds
dns_timeout 5 minutes
dns_nameservers 127.0.0.1 10.0.0.5 10.0.0.254 208.67.222.222 208.67.220.220 8.8.8.8 8.8.4.4
#
hosts_file /etc/hosts
#
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
#
quick_abort_min 128 KB
quick_abort_max 1024 KB
quick_abort_pct 95
fqdncache_size 1024
#
negative_ttl 5 minutes
positive_dns_ttl 5 minutes
forward_timeout 5 minutes
negative_dns_ttl 5 minutes
connect_timeout 120 seconds
peer_connect_timeout 90 seconds
read_timeout 10 minutes
request_timeout 5 minutes
persistent_request_timeout 5 minutes
client_lifetime 5 minutes
half_closed_clients off
pconn_timeout 60 seconds
shutdown_lifetime 60 seconds
#
# As regras de acesso
#
acl todos src all
acl ftp proto FTP
acl SSL_ports port 22 443
acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 407 2082 2083 8663 7001 7777 8080 8081 9091
acl PURGE method PURGE
acl CONNECT method CONNECT
acl POST method POST
acl NOCACHE url_regex 10.0.0.0/16 \?

#
# Listas de controle de acesso
#
acl escola src 10.0.0.0/16
acl salarede src 10.0.0.0/24
(...)
acl wifi_funcionarios src 10.0.43.0/24
#
# ACLs de filtragem de acesso
#
# ACL para garantir acesso direto
#
acl passareto dstdom_regex "/etc/squid/blocked/acessodireto.txt"
#
# ACLs para filtragem por palavra (proibidos e liberados)
#
acl palavras_proibidas url_regex "/etc/squid/blocked/proibidos.txt"
acl palavras_liberadas url_regex "/etc/squid/blocked/liberados.txt"
#
# ACLs para filtragem
#
acl downloads_proibidos urlpath_regex "/etc/squid/blocked/downloads_proibidos.txt"
acl downloads_liberados urlpath_regex "/etc/squid/blocked/downloads_liberados.txt"
#
# ACL para filtragem do MSN, bloqueio de navegacao por IP e p/ o TeamViewer
#
acl msn url_regex -i /gateway/gateway.dll
acl Block_IP_Navegacao dstdom_regex ^(([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)|(\[([0-9af]+)?:([0-9af:]+)?:([0-9af]+)?\]))
acl teamviewer browser -i .DynGate.*
#
# cgi-bins nao ficam armazenados.
#
acl extensoesdinamicas urlpath_regex cgi-bin \? scripts \.php$ \.asp$ \.action$ \.css$ \.dll$ \.do$ \.exe$ \.ftl$ \.js$ \.jsp$ \.lzx$ \.vm$\.aspx$
no_cache deny extensoesdinamicas
#
# Bloqueio aos sites relacionados ao TOR.
#
acl tor dst "/etc/squid/blocked/tor.txt"
http_access deny tor
#
# Teste: Bloqueio ao Skype
#
acl Skype_UA browser ^skype
http_access deny Block_IP_Navegacao todos
http_access deny Skype_UA
#
acl validUserAgent browser \S+
http_access deny !validUserAgent
#
# Regras de bloqueio de acesso
#
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow ftp todos
http_access allow palavras_liberadas todos
http_access deny palavras_proibidas todos
http_access allow downloads_proibidos salarede
http_access allow downloads_liberados todos
http_access deny downloads_proibidos todos
http_access deny msn todos
http_access deny teamviewer todos
#
# Requisicoes que facam uso de CONNECT e locais, sao sempre diretas.
#
via off
forwarded_for delete
always_direct allow CONNECT
always_direct allow POST
always_direct allow all
#
# Nao faz cache dos enderecos locais
#
no_cache deny NOCACHE
#
# Redirecionamento para o squidGuard
#
url_rewrite_program /usr/local/bin/squidGuard -c /etc/squid/squidGuard.conf
url_rewrite_children 10
url_rewrite_access deny localhost
#
http_access allow biblioteca
(...)
http_access deny outsiders
#
# ACLs p/ os Delay Pools.
#
acl download url_regex -i ftp \.png \.vpx \.webm \.exe \.mp3 \.mp4 \.tar.gz \.gz \.tar.bz2 \.bz2 \.rpm \.zip \.rar \.7z \.avi \.mpg \.mpeg \.rm \.iso \.ra \.wav \.mov \.dat \.mpe \.mid \.mp4 \.midi \.rmi \.wma \.wmv \.ogg \.ogm \.m1v \.mp2 \.mpa \.wax \.m3u \.asx \.wpl \.wmx \.dvr-ms \.snd \.au \.aif \.asf \.m2v \.m2p \.ts \.tp \.trp \.div \.divx \.mod \.vob \.aob \.dts \.ac3 \.cda \.vro \.deb \.rpm
acl streaming url_regex -i \.fbcdn.net \.youtube\.com\/videoplayback \.youtube\.com/videodownload \.youtube\.com\/get_video \.youtube\.com\/watch \.cache[a-z0-9]?[a-z0-9]?[a-z0-9]?\.googlevideo\.com\/videoplayback \.cache[a-z0-9]?[a-z0-9]?[a-z0-9]?\.googlevideo\.com\/get_video http:\/\/[a-z][a-z]\.youtube\.com proxy\-[0-9][0-9]\.dailymotion\.com\/ [a-z0-9][0-9a-z][0-9a-z]?[0-9a-z]?[0-9a-z]?\.xtube\.com\/(.*)flv bitcast\.vimeo\.com\/vimeo\/videos\/ va\.wrzuta\.pl\/wa[0-9][0-9][0-9][0-9]?
#
acl gulosos src "/etc/squid/blocked/ip.pesado.txt"
acl regime src "/etc/squid/blocked/ip.leve.txt"
#
# 4 Delay Pools
#
delay_pools 4
#
# delay classes - Classe 3
#
delay_class 1 3
delay_class 2 3
delay_class 3 3
delay_class 4 3
#
# delay parameters - classe 3
#
delay_parameters 1 640000/640000 640000/640000 640000/640000
delay_parameters 2 640000/640000 640000/640000 640000/640000
delay_parameters 3 -1/-1 -1/-1 -1/-1
delay_parameters 4 -1/-1 -1/-1 -1/-1
#
# delay access - Redirecionando acesso
#
delay_access 1 allow gulosos download
delay_access 2 allow gulosos streaming
delay_access 3 allow regime download
delay_access 4 allow regime streaming
#
# Refresh Pattern
# 1 ano = 525600 minutos, 1 mês = 43200 minutos, 1 day = 1440 minutos
#
# Diversos
#
refresh_pattern \.(ico|video-stats) 43200 100% 43200
refresh_pattern ^.*(utm\.gif|ads\?|rmxads\.com|ad\.z5x\.net|bh\.contextweb\.com|bstats\.adbrite\.com|a1\.interclick\.com|ad\.trafficmp\.com|ads\.cubics\.com|ad\.xtendmedia\.com|\.googlesyndication\.com|advertising\.com|yieldmanager|game-advertising\.com|pixel\.quantserve\.com|adperium\.com|doubleclick\.net|adserving\.cpxinteractive\.com|syndication\.com|media.fastclick.net).* 43200 20% 43200
refresh_pattern ^.*safebrowsing.*google 43200 100% 43200
refresh_pattern ^http://((cbk|mt|khm|mlt)[0-9]?)\.google\.co(m|\.uk) 43200 100% 43200
refresh_pattern ytimg\.com.*\.jpg 43200 100% 43200
refresh_pattern photobucket.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 43200 100% 43200
refresh_pattern vid\.akm\.dailymotion\.com.*\.on2\? 43200 100% 43200
refresh_pattern mediafire.com\/images.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 43200 100% 43200
refresh_pattern ^http:\/\/images|pics|thumbs[0-9]\. 43200 100% 43200
#
# Antivirus, Adobe.com e Windows Update
#
refresh_pattern avast.com/.*\.(vpu|vpaa|cab|stamp|exe) 43200 100% 43200
refresh_pattern adobe.com/.*\.(msp) 43200 100% 43200
refresh_pattern au.download.windowsupdate.com/.*.(cab|exe|msi) 43200 100% 43200
refresh_pattern download.microsoft.com/.*.(cab|exe|msi) 43200 100% 43200
refresh_pattern msgruser.dlservice.microsoft.com/.*.(cab|exe|msi) 43200 100% 43200
refresh_pattern windowsupdate.com/.*.(cab|exe|msi) 43200 100% 43200
refresh_pattern www.microsoft.com/.*.(cab|exe|msi) 43200 100% 43200
#
#Facebook - imagens
#
refresh_pattern -i \.facebook.com.*\.(jpg|png|gif) 43200 100% 43200
refresh_pattern -i \.fbcdn.net.*\.(jpg|gif|png|swf|mp3) 43200 100% 43200
refresh_pattern static\.ak\.fbcdn\.net*\.(jpg|gif|png) 43200 100% 43200
refresh_pattern ^http:\/\/profile\.ak\.fbcdn.net*\.(jpg|gif|png) 43200 100% 43200
#
# Todos os arquivos
#
refresh_pattern -i \.(3gp|7z|ace|asx|bin|deb|divx|dvr-ms|ram|rpm|exe|inc|cab|qt) 43200 99% 43200
refresh_pattern -i \.(rar|jar|gz|tgz|bz2|iso|m1v|m2(v|p)|mo(d|v)|arj|lha|lzh|zip|tar) 43200 99% 43200
refresh_pattern -i \.(jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|dat|ad|txt|dll) 43200 99% 43200
refresh_pattern -i \.(avi|ac4|mp(e?g|a|e|1|2|3|4)|mk(a|v)|ms(i|u|p)|og(x|v|a|g)|rm|r(a|p)m|snd|vob) 43200 99% 43200
refresh_pattern -i \.(pp(t?x)|s|t)|pdf|rtf|wax|wm(a|v)|wmx|wpl|cb(r|z|t)|xl(s?x)|do(c?x)|flv|x-flv) 43200 99% 43200
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
#
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern . 0 20% 4320
#
# Nao caiu numa das regras de cima, corta o acesso.
#
tcp_outgoing_address 10.10.10.130 DINFO
tcp_outgoing_address 192.168.1.64 ADSL1
tcp_outgoing_address 192.168.1.64 ADSL2
tcp_outgoing_address 192.168.1.64 ADSL3
#
# Acesso cortado para quem escapar da regra anterior.
#
http_access deny todos
icp_access allow todos
#
http_reply_access allow todos
miss_access allow todos
#
cache_mgr Squid's_BAFH
cache_effective_user proxy
cache_effective_group proxy
visible_hostname firewall
#
logfile_rotate 7
#
icon_directory /usr/share/squid3/icons
coredump_dir /tmp
client_persistent_connections on
server_persistent_connections on
pipeline_prefetch off
store_dir_select_algorithm least-load
ie_refresh on
htcp_access deny todos
htcp_clr_access deny todos
ident_lookup_access deny todos
snmp_access deny todos
#
#MSX r0x a lot

Já tentei de tudo, inclusive fazer a conexão direto, s/ proxy e só fazendo o MASQUERADE do iptables. S/ sucesso. Alguma ideia?


  


2. Re: Problemas no acesso com alguns sites HTTPs (e outros que não são).

Buckminster
Buckminster

(usa Debian)

Enviado em 28/05/2014 - 19:23h

Vamos por partes.
Não encontrei no teu script do Iptables a regra de redirecionamento para o Squid.


http_port 10.0.0.254:3128
http_port 10.0.0.254:3129 intercept

E acima tu estás fazendo o Squid escutar em duas portas ao mesmo tempo, na porta padrão 3128 (julgo que seja proxy autenticado) e outra na porta 3129 (proxy transparente). Isso pode fazer o Squid se confundir. E não encontrei as regras de autenticação no teu squid.conf (talvez tu tenha cortado elas).

Tem outro proxy superior ao teu (PROXY_FAETEC)?


"Já tentei de tudo, inclusive fazer a conexão direto, s/ proxy e só fazendo o MASQUERADE do iptables. S/ sucesso. Alguma ideia?"

Quando tu faz a conexão só com o masquerade (sem proxy) o que acontece?


3. Re: Problemas no acesso com alguns sites HTTPs (e outros que não são).

Ricardo Jurczyk Pinheiro
tenentblueberry

(usa Fedora)

Enviado em 29/05/2014 - 09:31h

Buckminster escreveu:

Vamos por partes.
Não encontrei no teu script do Iptables a regra de redirecionamento para o Squid.


http_port 10.0.0.254:3128
http_port 10.0.0.254:3129 intercept

E acima tu estás fazendo o Squid escutar em duas portas ao mesmo tempo, na porta padrão 3128 (julgo que seja proxy autenticado) e outra na porta 3129 (proxy transparente). Isso pode fazer o Squid se confundir. E não encontrei as regras de autenticação no teu squid.conf (talvez tu tenha cortado elas).

Tem outro proxy superior ao teu (PROXY_FAETEC)?


"Já tentei de tudo, inclusive fazer a conexão direto, s/ proxy e só fazendo o MASQUERADE do iptables. S/ sucesso. Alguma ideia?"

Quando tu faz a conexão só com o masquerade (sem proxy) o que acontece?


Vamos lá.

Antes de tudo, obrigado pela ajuda.

Nosso proxy n é autenticado. Como trabalho c/ alguns milhares de adolescentes e funcionários q n querem pensar em usuário e senha, eu coloquei como transparente mesmo. São 250 computadores na rede, 130 só em laboratórios de informática. Aí pesa.

Tenho um PAC c/ a configuração de proxy q todas as máquinas recebem automaticamente via DHCP, redirecionando p/ a porta 3128. Acontece q na rede wifi eu tenho de tudo um pouco, tablets, celulares, videogames portáteis, aquela confusão. E p/ esses, eu mantenho o proxy transparente (ou deveria manter), p/ q eles possam acessar a Internet. Tem aparelho q n pega a configuração de proxy.

No firewall acabei tirando a regra de redirecionamento por descuido meu. Não temos um cache parent pq esse link n passa pela FAETEC, vai pelo projeto Banda Larga nas Escolas.

Na conexão só c/ o MASQUERADE e s/ o proxy, a mesma coisa continua acontecendo. Cheguei a fazer um iptables -F e iptables -X, e colocar a regra de MASQUERADE apenas. O proxy eu deixei do jeito q está, p/ n parar a rede. N tenho como fazer estes testes em horários de não funcionamento da instituição (q está aberta de 07 às 22:30, de 2a a 6a, e aos sábados, de 07 às 18 horas). Mas cheguei a fazer um 2o squid.conf tirando o squidGuard, p/ poder testar. Nada feito.

Alguma ideia? Qualquer ajuda é muito bem-vinda.


4. Re: Problemas no acesso com alguns sites HTTPs (e outros que não são).

Buckminster
Buckminster

(usa Debian)

Enviado em 29/05/2014 - 13:18h

"Vamos lá.

Antes de tudo, obrigado pela ajuda.

Nosso proxy n é autenticado. Como trabalho c/ alguns milhares de adolescentes e funcionários q n querem pensar em usuário e senha, eu coloquei como transparente mesmo. São 250 computadores na rede, 130 só em laboratórios de informática. Aí pesa.

Tenho um PAC c/ a configuração de proxy q todas as máquinas recebem automaticamente via DHCP, redirecionando p/ a porta 3128. Acontece q na rede wifi eu tenho de tudo um pouco, tablets, celulares, videogames portáteis, aquela confusão. E p/ esses, eu mantenho o proxy transparente (ou deveria manter), p/ q eles possam acessar a Internet. Tem aparelho q n pega a configuração de proxy.

No firewall acabei tirando a regra de redirecionamento por descuido meu. Não temos um cache parent pq esse link n passa pela FAETEC, vai pelo projeto Banda Larga nas Escolas.

Na conexão só c/ o MASQUERADE e s/ o proxy, a mesma coisa continua acontecendo. Cheguei a fazer um iptables -F e iptables -X, e colocar a regra de MASQUERADE apenas. O proxy eu deixei do jeito q está, p/ n parar a rede. N tenho como fazer estes testes em horários de não funcionamento da instituição (q está aberta de 07 às 22:30, de 2a a 6a, e aos sábados, de 07 às 18 horas). Mas cheguei a fazer um 2o squid.conf tirando o squidGuard, p/ poder testar. Nada feito.

Alguma ideia? Qualquer ajuda é muito bem-vinda."


Bom, como tu tem Iptables, Squid e SquidGuard, sugiro tu fazer um mutirão em um horário de não funcionamento da instituição (se for possível) e ir testando passo a passo. Primeiro configurando o Iptables e testando, depois configurando o Squid e testando e por último o SquidGuard.
Talve leve um dia fazendo isso, mas no momento que deixar tudo "redondo" esse dia representará um enorme ganho de tempo.
Talvez se tu falar com o responsãvel aí e conseguir um dia para fazer isso.

Quanto ao erro do Squid "(104) Connection reset by peer" enquanto tu não pode fazer o passo a passo sugerido acima, faça o seguinte:

acrescente no teu squid.conf essas duas linhas

via off
forwarded_for delete

A linha VIA geralmente tem informações sobre o servidor proxy;
A linha forwarded_for geralmente contém o endereço IP do host que solicitou o site.

Isso deve resolver o problema do erro 104.

Daí tu monitora o log do Squid

# tail -f /var/log/squid3/access.log

Seguem links com os códigos de status do Squid para te auxiliar:

http://www.savant.com.br/index.php/artigos/tutoriais/34
http://www.kalambau.com.br/codigos-de-status-do-squid-proxy/
http://tudoti.jefersonrc.com.br/2013/12/codigos-do-squid.html#.U4dcrelOUdU
http://www.vivaolinux.com.br/dica/Codigos-do-Squid

E, para garantir, execute do servidor e de uma ou duas estações pings e traceroute (ou tracert) para os sites que estão dando problema a fim de verificar se não é um problema de conexão (DNS, etc). Execute nslookup também.

Quanto aos laboratórios, geralmente eu coloco um servidor simples (DHCP, NAT e iptables) em cada laboratório conectados ao servidor principal, mas não sei se tu tem disponibilidade de máquinas e switchies aí.

Quanto ao teu squid.conf, somente vi de estranho as duas linhas http_port mencionadas antes. Sugiro colocar somente http_port 10.0.0.254:3128 intercept.
Com proxy transparente não se faz necessário o PAC. Geralmente utilizar PAC ou WPAD é para proxy autenticado evitando setar o proxy nos navegadores de cada estação.

Essa linha no teu Iptables

echo "Protecao contra port-scanners avancados"
$SERVICO -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

não se faz necessária, caso houver um ataque, o próprio Iptables pode derrubar o servidor.
Depois te passo algumas proteções que o próprio kernel tem para determinados casos.

Na rede wi-fi tu tem quantos APs ou roteadores wi-fi?

Outra coisa, essa linha

dns_nameservers 127.0.0.1 10.0.0.5 10.0.0.254 208.67.222.222 208.67.220.220 8.8.8.8 8.8.4.4

não é aconselhável, colocar DNSs deixa o Squid lento, além do que, se os DNSs colocados ali não "baterem" com os DNSs da rede (roteador, etc) incorrerrá em sites que não abrirão.


5. Melhorou, mas ainda n resolveu tudo.

Ricardo Jurczyk Pinheiro
tenentblueberry

(usa Fedora)

Enviado em 05/06/2014 - 09:03h

Olha, fiz algumas modificações...

Qto ao Squid, passei a apontar p/ o nosso DNS (o MaraDNS), q é local na máquina (comando cache_dns_program <path>), e o desempenho na resolução de nomes melhorou. Fiz tb o via off e o forwarded_for, realmente n vi + o erro 104. Mas apontei tudo p/ o 3128, fazendo o intercept nele, e tive uma tempestade de TCP_MISS_DENIED no access.log do Squid. Voltei ao antigo.

Tirei aquela linha do iptables, alterei o MTU da placa de rede (1492, era 1500), e alguns sites já liberaram passagem (como o eBay). Ainda tenho problemas c/ alguns outros, como o Hotmail (e uma turba de chatos me perturbando "qdo o Rótimeiu vai funcionar?").

A instituição é um prédio grande (120m de largura), velho (+ de 100 anos) e c/ uns 4000 alunos, fora funcionários e professores. Devo parar a rede na antevéspera da Copa do Mundo p/ manutenção. Preciso de uma conta no Hotmail p/ testar, alguém tem uma q possa me emprestar? :-) Aí verificarei a questão do Squid jogar pela porta 3128 apenas.

Qto aos roteadores, temos 5 ou 6 ativos, mas vamos subir p/ uns 20, p/ cobrir toda a escola (prédio velho tem paredes grossas d+, atenuação de sinal fortíssima). Uso proxy transparente pq tenho equipamentos q entram na rede wireless e q conseguem receber o IP do proxy via WPAD. Outros n recebem (como meu celular), aí teria q setar "na mão". Então, melhor juntar tudo p/ q todos tenham acesso.

Obrigado pela resposta!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts