Squid - Internet lenta para demais usuários

1. Squid - Internet lenta para demais usuários

Fábio de Almeida Duarte
fabioaduarte

(usa Ubuntu)

Enviado em 29/12/2009 - 18:55h

Olá pessoal !
Mais uma vez, contatando com a galera do forum para me ajudar.
Bom ... coloquei um servidor para proxy + firewall de uma pequena rede. O problema começa quando um usuário faz qualquer tipo download ou até mesmo vendo vídeos (por exemplo YouTube) em seguida o restante dos usuários não conseguem nem navegar (Página não pode ser exibida) terminando o download ou vídeo a navegação dos demais usuários volta ao normal. Detalhe, antes do servidor linux o modem era roteado para toda a rede com o próprio modem servindo DHCP e funcionava normalmente.A estrutura é a seguinte: O servidor tem 2 placas de rede (1 no modem e a outra no switch) está com Ubuntu 8.04.3 + Squid + Iptables e um servidor windows server 2003 que server DHCP, a rede está em cima de grupo de trabalho, tanto com Squid transparente ou autenticado o problema acontece. O problema se repete e outras 3 pequenas que rede que montei.

Espero contar com a ajuda de todos,

Abraço,

Fábio


  


2. Re: Squid - Internet lenta para demais usuários

Fernando Cesar Vaini
vaini

(usa Debian)

Enviado em 29/12/2009 - 19:13h

posta seu conf ai pra ficar mais facil...


3. Banda...

Marx
hackingsnake

(usa Slackware)

Enviado em 29/12/2009 - 19:14h

Bom amigo, pelo que percebi me parece que você usa um Ruindows para Servidor DHCP.. só pra isso ? tira ele fora :D e usa o DHCPD para fazer isso, as rotas bem definidas melhoram em muito o funcionamento da rede como um todo pois evitar transbordo de broadcast, precisa verificar se o seu switch é bacana também, evite usar hubs....

Na verdade seria util você postar o seu squid.conf, porém já lhe adianto que não existe nenhuma referencia direta entre o squid e velocidade de download, um teste bacana é usar o www.speedtest.net e verificar a quantas andam seu upstream e seu downstream, e uma saída certa seria você fazer ou 1 balanceamento com 2 internets marcando os pacotes ou usando o CBQ para limitação de banda para cada cliente, pois assim evitaria que todo fluxo fosse apenas para um Node.

Bom na verdade fica dificil lhe dar uma receita de bolo pronta, pois não entendi exatamente o seu problema, pelo menos oude te dar um pequeno mapa que serve para qualquer situação de tráfego com Linux e Squid.

Boa Sorte.


4. Segue confs

Fábio de Almeida Duarte
fabioaduarte

(usa Ubuntu)

Enviado em 30/12/2009 - 09:07h

Vlw ai pelo interesse, segue abaixo os confs
------------
squid.conf

http_port 3128
visible_hostname HOSTNAME

# Config Cache
cache_mem 64 MB
maximum_object_size_in_memory 128 KB
maximum_object_size 512 MB
minimum_object_size 2 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /csquid 7168 16 256
cache_access_log /var/log/squid/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280

error_directory /usr/share/squid/errors/Portuguese

# ACLs padrao
acl all src XXX.XXX.XXX.XXX/XX #REDELOCAL
acl redelocal src XXX.XXX.XXX.XXX/XX #REDELOCAL
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 407 # MSN
acl Safe_ports port 443 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

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

#redirect_program /usr/bin/squidGuard
#redirector_bypass on

http_access deny !redelocal

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
auth_param basic children 5
auth_param basic realm Servidor de Internet
auth_param basic credentialsttl 1 hours
acl autenticados proxy_auth REQUIRED

http_access allow autenticados

http_access allow localhost
http_access deny all

-----------------

script firewall

#!/bin/bash

firewall_start() {
#Limpando regras do firewalll
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# Abre para uma faixa de enderecos da rede local
iptables -A INPUT -p tcp --syn -s XXX.XXX.XXX.XXX/XX -j ACCEPT #REDELOCAL
iptables -A OUTPUT -p tcp --syn -s XXX.XXX.XXX.XXX/XX -j ACCEPT #REDELOCAL

# Abre a porta do Squid para a rede local (eth0=INTERFACEINTERNA)
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT

# Limitando acesso a porta do SSH
iptables -A INPUT -p tcp -s XXX.XXX.XXX.XXX/XX --dport 22 -j ACCEPT #REDELOCAL
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

# Ignorando pings
# echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

#Protege contra synflood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

# Desabilita o suporte a source routed packets
# Este recurso funciona como um NAT ao contrario, que em certas circunstancias pode permitir que alguem da internet envie pacotes para PCs dentro da rede local
echo "0" > /proc/sys/net/ipv4/conf/eth0/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/eth1/accept_source_route

# Protege contra ICMP Broadcasting
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Protecoes diversas contra ping of death
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# Protecao contra Syn-floods
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

# Permiti encaminhar conexoes com status "Estabilizado e Relacionado"
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Protecao contra port scanners ocultos
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

# Protege contra pacotes que podem procurar e obter informacoes da rede interna
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP

# Protecao contra ataques
iptables -A INPUT -m state --state INVALID -j DROP

iptables -N VALID_CHECK
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP

# Abre para a interface de loopback.
#iptables -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
iptables -A OUTPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

# Gerando log de Backdoors
iptables -A INPUT -p tcp --dport 5042 -j LOG --log-prefix "Wincrash"
iptables -A INPUT -p tcp --dport 12345 -j LOG --log-prefix "backOrifice"
iptables -A INPUT -p tcp --dport 12346 -j LOG --log-prefix "backOrifice"

# Bloqueia qualquer conexao que nao tenha sido permitida acima, justamente por isso eh a ultima.
iptables -A INPUT -p tcp --syn -j DROP
#iptables -A OUTPUT -p tcp --syn -j DROP
#iptables -A FORWARD -p tcp --syn -j DROP

# Habilita o mascaramento dos pacotes que saem da rede local para internet
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# Libera IPs Caixa Economica Federal
iptables -t nat -A PREROUTING -p tcp -d 200.201.0.0/16 -j ACCEPT
iptables -A FORWARD -p tcp -d 200.201.0.0/16 -j ACCEPT

# Redireciona todos pacotes vindos da rede local para o Squid
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
}


firewall_stop() {
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
}

case "$1" in
start)
firewall_start
echo "Iniciando Firewall ..."
sleep 2
echo "Firewall iniciado !"
;;
stop)
firewall_stop
echo "Desativando Firewall ..."
sleep 2
echo "Firewall desativado !"
;;
restart)
echo "Reiniciando Firewall ..."
firewall_start
sleep 3
echo "Firewall reiniciado !"
;;
*)
esac




5. Re: Squid - Internet lenta para demais usuários

Luis Eduardo Vilella
luivilella

(usa Debian)

Enviado em 30/12/2009 - 13:36h

Amigo sou totalmente novo na area estou mexendo com o squid a pouco tempo e andei pesquisando algumas coisas alguns metodos ou requisitos para o squid, tbm tive problemas com lentidão nos clientes porem o problema era que eu usava HD IDE, parece que o squid usa o cache de memoria principal e secundaria entao quando ele usava a secundaria caia o desempenho.
Eu resolvi o problema trocando o servidor coloquei um com SATA II e no squid.conf em cache_men coloquei cache_men 1024 MB.
No meu caso resolveu.
Amigo espeto ter ajudado


6. Re: Squid - Internet lenta para demais usuários

Fábio de Almeida Duarte
fabioaduarte

(usa Ubuntu)

Enviado em 30/12/2009 - 14:23h

Vlw luivilella pela dica e interesse ! Mas a lentidão que você passava é semelhamente a que descrevi, ou seja, enquanto um faz download nenhum outro navega ?

Abraço,

Fábio


7. Re: Squid - Internet lenta para demais usuários

Luis Eduardo Vilella
luivilella

(usa Debian)

Enviado em 30/12/2009 - 14:38h

na verdade nao, a minha fica lenta quando por ex: pc1 entro na uol.com.br ai quando um outro pc ia entra na uol.com.br ele buscava no cache e esta busca demorava assim a net ficava mais lenta.
Mas download era normal.
Vo dar uma pesquisada sobre o seu problema qualquer coisa posto novamente, e boa sorte


8. Re: Squid - Internet lenta para demais usuários

Fábio de Almeida Duarte
fabioaduarte

(usa Ubuntu)

Enviado em 30/12/2009 - 14:47h

... então aqui o download também normal. O lance é enquanto um usuário está fazendo um download o outros não conseguem navegar nem em uma simples pagina, acabou o download volta tudo ao normal ... mas o que você disse faz sentido pois outros quando começam a navegar vam primeiro no cache e se a resposta for lenta, fica lento pra todo mundo !

Mas vlw a dica ai ! Pena que não tem como eu testar mas se eu conseguir posto aqui se resolveu !


9. Re: Squid - Internet lenta para demais usuários





Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts