Conexão lenta!

1. Conexão lenta!

Jonathan Christian Costa Martins
jonathanch

(usa Debian)

Enviado em 27/02/2020 - 12:42h

Ola, estou com um problema na minha empresa e espero que alguém possa me ajudar.
Tenho um Debian com squid para gerenciar minha rede o problema e que a navegação esta muito lenta em sites que utilizam http e os que utilizam https as vezes nem abre.
Segue meu squid:

### ARQUIVO DE CONFIGURACAO DO SQUID ###

http_port 3128

## CACHE ##
maximum_object_size 4096 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 64 KB
cache_mem 512 MB

## AJUSTA A PERFORMANCE EM CONEXOES PIPELINE ##
pipeline_prefetch on

## CACHE DE FQDN ##
fqdncache_size 1024

## OPCOES DE REFRESH PATTERN ##
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

## DEFINE A PORCENTAGEM DO USO DO CACHE ##
cache_swap_low 90
cache_swap_high 95

## ARQUIVO DE LOGS DO SQUID ##
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log

## DEFINE O LOCAL DO CACHE ##
cache_dir ufs /var/spool/squid 1600 16 256

## CONTROLE DE ROTACAO DOS ARQUIVOS DE LOGS ##
logfile_rotate 10

## ARQUIVO ONDE CONTEM OS ENDERECOS LOCAIS DA REDE ##
hosts_file /etc/hosts

## ACLS - PORTAS PADROES LIBERADAS ##
acl SSL_ports port 80 #HTTP
acl SSL_ports port 443 #HTTPS
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
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 5222 # teste_Spark
acl Safe_ports port 9090 # teste_Spark open_fire
acl Safe_ports port 9091 # teste_Spark open_fire
acl CONNECT method CONNECT

### DEFININDO MODO DE AUTENTICACAO
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/usuarios
auth_param basic children 5
auth_param basic realm "===== ACESSO RESTRITO ======= DIGITE SEU USUARIO E SENHA PARA ACESSO A INTERNET:"
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

### ACL PARA GARANTIR A AUTENTICACAO DO USUARIO NOS SITES ###
acl autenticados proxy_auth REQUIRED

## BLOQUEIA O ACESSO UNSAFE PORTS ##
#http_access deny !Safe_ports

## Deny CONNECT to other than secure SSL port ##
#http_access deny CONNECT !SSL_ports

### IP's liberados ####
acl ip_liberados src "/etc/squid/regras/ip_liberados"

## SITES LIBERADOS SEM AUTENTICACAO PARA ACESSO ##
acl sites-sem-autent url_regex -i "/etc/squid/regras/sites_liberados_sem_autent"

## SITES BLOQUEADOS PARA ACESSO ##
acl sites-bloqueados url_regex -i "/etc/squid/regras/sites_bloqueados"

## SITES LIBERADOS PARA ACESSO ##
acl sites-liberados url_regex -i "/etc/squid/regras/sites_liberados"

## LIBERACAO PARA GRUPO TI - SUPORTE ##
acl acesso_suporte proxy_auth "/etc/squid/regras/suporte"

## LIBERACAO PARA GRUPO MARKETING ##
acl acesso_marketing proxy_auth "/etc/squid/regras/marketing"

acl coordena proxy_auth "/etc/squid/regras/coordena"


acl secre_uno proxy_auth "/etc/squid/regras/secre_uno" #secretaria#
acl coord_uno proxy_auth "/etc/squid/regras/coord_uno" #coordenacao#


acl proibido_secre_uno url_regex "/etc/squid/regras/secre_uno" #secretaria#
acl proibido_coord_uno url_regex "/etc/squid/regras/coord_uno" #coordenacao#

## DEFININDO A ORDEM DAS REGRAS - ACLS ##
http_access allow sites-sem-autent


http_access allow autenticados

http_access allow secre_uno
http_access allow coord_uno
http_access deny proibido_secre_uno
http_access deny proibido_coord_uno


http_access allow coordena
http_access allow acesso_suporte
http_access allow ip_liberados
http_access allow acesso_marketing
http_access deny sites-bloqueados
#http_access allow autenticados
http_access allow sites-liberados
http_access deny all
http_reply_access allow all
icp_access allow all
miss_access allow all

## NOME QUE IRA APARECER NA TELA DE ERRO OU BLOQUEIO DO SQUID ##
visible_hostname FENIX

## DIRETORIO DAS PAGINAS DE ERROS ##
error_directory /usr/share/squid/errors/pt-br

## OUTRAS OPCOES DE CACHE ##
#cache_effective_user proxy
#coredump_dir /var/spool/squid



  


2. Re: Conexão lenta!

Leandro Silva
LSSilva

(usa Outra)

Enviado em 27/02/2020 - 18:44h

Prezado, boa noite!

Como está seu script de firewall? Já tive este problema e estava relacionado à Masquerading (SNAT). Se não me engano, ao fazer o masquerading, tive que determinar rede de origem e interface de saída. Com isto, houve melhora.


3. Conexão lenta!

Jonathan Christian Costa Martins
jonathanch

(usa Debian)

Enviado em 28/02/2020 - 13:15h

Boa tarde!

Vou fazer isso para ver se melhora. Obrigado
segue meu firewall:

#!/bin/bash
iniciar(){
#Compratilhar a conex?o ADSL em modo bridge (PPPOE) Via Iptables
modprobe iptable_nat

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

echo 1 > /proc/sys/net/ipv4/ip_forward

# Liberando acesso EXTERNO para o APACHE
# HTTP/HTTPS - Apache e outros webservers
#iptables -t mangle -I PREROUTING -i enp2s0 -p tcp --dport 80 -m state --state ! INVALID -j ACCEPT
#iptables -t filter -I INPUT -i enp2s0 -p tcp --dport 80 -m state --state ! INVALID -j ACCEPT

# --------------------------- #
# PROXY #
# --------------------------- #

#iptables -t nat -A PREROUTING -i $ADM -p tcp -dport 80 -j REDIRECT -to-port 3128
#iptables -t nat -A PREROUTING -i $ADM -p tcp -dport 8080 -j REDIRECT -to-port 3128

#iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT


# IP's Liberados

iptables -t nat -A POSTROUTING -s 192.168.10.252 -o eth1 -j MASQUERADE #print-server

# proxy transparente

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

iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

#Liberando porta webmin
iptables -A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT
iptables -A INPUT -p tcp --dport 10000 -j ACCEPT

###spark
iptables -A INPUT -p tcp -m tcp --dport 5222 -j ACCEPT
iptables -A INPUT -p tcp --dport 5222 -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 9090 -j ACCEPT
iptables -A INPUT -p tcp --dport 9090 -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 9091 -j ACCEPT
iptables -A INPUT -p tcp --dport 9091 -j ACCEPT


#Redirecionando para 3130
#iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 443 -j REDIRECT --to-port 3128

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

#Redirecionar porta 80 para 3128

iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 5060 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 8080 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 443 -j REDIRECT --to-port 3128

# Garante conexoes ja iniciadas continuem estaveis
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "REGRAS DE FIREWAL ATIVADAS"
sleep 3
}
parar(){
#Limpa todas as REGRAS DO IPTABLES
iptables -F
iptables -t nat -F

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
echo "REGRAS DE FIREWAL E COMPARTILHAMENTO DESATIVADAS"
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "USE START OU STOP"
sleep 3
esac








4. Re: Conexão lenta!

Leandro Silva
LSSilva

(usa Outra)

Enviado em 01/03/2020 - 23:16h

Deu certo?

Se pegarmos seu firewall sem comentários, ele ficaria assim:

#!/bin/bash
iniciar(){
modprobe iptable_nat

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

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 192.168.10.252 -o eth1 -j MASQUERADE #print-server

iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT
iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 5222 -j ACCEPT
iptables -A INPUT -p tcp --dport 5222 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 9090 -j ACCEPT
iptables -A INPUT -p tcp --dport 9090 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 9091 -j ACCEPT
iptables -A INPUT -p tcp --dport 9091 -j ACCEPT

iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 5060 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 8080 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 443 -j REDIRECT --to-port 3128

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "REGRAS DE FIREWAL ATIVADAS"
sleep 3

}
parar(){
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
echo "REGRAS DE FIREWAL E COMPARTILHAMENTO DESATIVADAS"
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "USE START OU STOP"
sleep 3
esac


Como você não definiu política padrão no "iniciar", ele poderia ficar assim e ter o mesmo efeito que tem hoje:

#!/bin/bash
iniciar(){
modprobe iptable_nat
iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 192.168.10.252 -o eth1 -j MASQUERADE #print-server

iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 5060 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 8080 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 443 -j REDIRECT --to-port 3128

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "REGRAS DE FIREWAL ATIVADAS"
sleep 3

}
parar(){
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
echo "REGRAS DE FIREWAL E COMPARTILHAMENTO DESATIVADAS"
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "USE START OU STOP"
sleep 3
esac


Posso estar errado, mas vejo que direciona as 3 portas para o squid:

iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 5060 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 8080 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 443 -j REDIRECT --to-port 3128

Porta SIP (5060) TCP, além de não ser comumente usada (usa-se mais UDP), não vejo relação com SQUID (posso estar errado).
Porta 8080, tem que ser visto mais detalhadamente, mas creio que seja dispensável também.
Porta 443, creio não haver necessidade. É tráfego protegido. Por meios comuns (sem MITM), creio que não irá surtir efeito e deve, talvez, atrapalhar.

Então, para começar, tentaria o seguinte:
#!/bin/bash
iniciar(){
modprobe iptable_nat

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -i enp4s1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -s 192.168.10.252 -o eth1 -j MASQUERADE #print-server
iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE

echo "REGRAS DE FIREWAL ATIVADAS"

}
parar(){
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
echo "REGRAS DE FIREWAL E COMPARTILHAMENTO DESATIVADAS"
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "USE START OU STOP"
esac


É válido lembrar que seu firewall está completamente permissivo e quaisquer serviços vulneráveis que seu servidor esteja rodando, estarão disponíveis para ataque. Seria melhor rever este firewall.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts