Pedro Pereira

Linux, Cisco, *BSD's, um pouco de Windows e o que mais eu achar interessante :)

Visualizando acessos dos usuários em tempo real no Squid


WP Greet Box icon
Olá! Se você gostou do blog, assine o feed RSS para não perder as próximas atualizações!

O link na empresa em que trabalho é um pouco limitado e sempre algum usuário acaba abusando um pouco e acaba deixando o acesso mais lento para todos os outros.

Sempre tive dificuldades em conseguir rastrear quem está abusando do link (com o iptraf é possível, mas é um pouco complicado e não é muito exato). Buscando no Google, encontrei o SQStat (http://samm.kiev.ua/sqstat/).

Este script mostra em uma página PHP todos os acessos que estão acontecendo em tempo real e também permite que você configure um tempo para atualização automática da página.

A instalação dele é absurdamente simples:

  • Primeiro, faça o download da versão mais recente no site. Quando escrevi essa dica, o link é http://samm.kiev.ua/sqstat/sqstat-1.20.tar.gz
  • Coloque este arquivo no root do servidor web da máquina com o proxy e extraia o arquivo:
    # tar xzvf sqstat-1.20.tar.gz
  • Mude o nome do diretório para sqstat (apenas para facilitar o acesso no navegador, isto é opcional);
  • Renomeie o arquivo config.inc.php.defaults para config.inc.php;
  • Edite o arquivo config.inc.php:
    • em “$squidhost[0]=” coloque 127.0.0.1 (se o host que você for monitorar for o host onde você instalou o SQStat);
    • em “$squidport[0]=” coloque a porta onde o Squid está escutando no host;
    • em “$resolveip[0]=” coloque true para que o SQStat resolva os nomes dos hosts;
    • em “$group_by[0]=” você pode colocar “host” se você não utilizar autenticação no Squid, o que irá mostrar os IP’s dos clientes; você também pode colocar “username” se utilizar autenticação, assim todas as conexões mostradas na página serão agrupadas por nome de usuário ao invés de host.
  • Agora, é necessário configurar o Squid para que o SQStat consiga analisar os dados. Faça o seguinte no seu Squid.conf:acl manager proto cache_object
    acl webserver src 10.0.0.1/255.255.255.255
    http_access allow manager webserver
    http_access deny managerNa linha “acl webserver … ” substitua “10.0.0.1″ pelo IP do servidor web que irá exibir a página do SQStat.
  • Reinicie o Squid

Pronto! O SQStat já está instalado e configurado. Para acessá-lo abra seu navegador e digite http://ip-do-servidor-web/sqstat/sqstat.php.

Você também pode monitorar mais de um proxy utilizando o mesmo servidor web. Copie o bloco de configuração do host que configuramos acima e substitua os “[0]” por “[1]” para outro host. Para um terceiro, você deveria colocar “[2]” e assim por diante.

Compartilhe o post! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Webnews
  • Digg
  • del.icio.us
  • StumbleUpon
  • Reddit
  • Ask
  • Bloglines
  • email
  • Facebook
  • Furl
  • Google Bookmarks
  • LinkedIn
  • Live-MSN
  • Pownce
  • Print
  • Rec6
  • Slashdot
  • Technorati
  • TwitThis

Posts relacionados:

  • Como matar conexões que aparecem no netstat O netstat é um comando utilizado para obter informações sobre...



  • 23 Comentários

    1. I-consultores» I-consultores Consultoria em TI,linux e Windows

      16|Jun|2009 1
    2. Alexander

      16|Jun|2009 2

      Muito boa essa dica, vou tentar implementar…

      tankx man!

    3. Paulo Colen

      17|Jun|2009 3

      Ola Pedro, fiz esse procedimento.
      E deixei o arquivo /etc/apache2/sites-available/default assim..
      DocumentRoot /var/www/sqstat

      Options FollowSymLinks
      AllowOverride None

      Ai ele encherga o arquivo sqstat.php mas ele abre como se fosse fazer o download desse arquivo. o que pode ser?

    4. Wallisson Narciso

      17|Jun|2009 4

      Cara, valeu pelo post.
      Testei aqui na empresa onde trabalho e é show de bola. Dá para integrar com outras ferramentas.
      Bem simples e funciona.

    5. diego aquino

      17|Jun|2009 5

      bela dica, Pedro.

      valeu.

      []‘s

    6. Paulo Roberto Ruela

      17|Jun|2009 6

      Grande dica. Li e implementei em menos de 3 minutos. Parabéns!

    7. Pedro Pereira

      17|Jun|2009 7

      Paulo,

      O que pode estar acontecendo é que o seu Apache não está interpretando PHP. Talvez este link possa ajudá-lo: http://virtual01.lncc.br/~licht/linux/servidores.apache.php3.html

      []‘s

      Pedro

    8. Andrew

      18|Jun|2009 8

      Muito bom!
      Obrigado pela dica!!!

    9. Lucas Tavares Soares

      19|Jun|2009 9

      Amigo, aqui ocorre o um erro e não consegui resolver até o momento, pode ajudar ?

      Erro:

      Not Found

      The requested URL /sqlstat/sqstat.php was not found on this server.
      Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch mod_perl/2.0.4 Perl/v5.10.0 Server at 192.168.1.1 Port 80

    10. Pedro Pereira

      30|Jun|2009 10

      Lucas,

      Qual o caminho onde você instalou o SQStat?

      []‘s

      Pedro

    11. Wakky

      30|Jun|2009 11

      Galera,

      Tou recebendo o seguinte erro:

      SqStat error

      Error (110): Connection timed out

      Valew,

    12. Darlan Sales

      15|Jul|2009 12

      estou com o seguinte erro

      SqStat error
      Error (1): Cannot get data. Server answered: HTTP/1.0 403 Forbidden

      o que pode ser?

      Desde ja agradeço.

    13. Visualizando acessos dos usuários em tempo real no Squid | I-consultores

      16|Jul|2009 13

      [...] automática da página.”O texto completo pode ser encontrado no link a seguir.” [referência: pedropereira.net]Fonte: BR-Linux.org – Linux levado a sério desde 1996 Enviado por Pedro Pereira [...]

    14. Pedro Pereira

      16|Jul|2009 14

      Darlan,

      Isso parece algum erro na configuração que você precisa fazer no Squid, considerando que o seu Apache esteja configurado corretamente.

      Para testar o Apache, faça uma página em HTML bem simples para ver se ele consegue exibí-la.

      []‘s

      Pedro

    15. Wakky

      17|Jul|2009 15

      Pedro,

      Tem alguma solução para o meu caso?
      SqStat error
      Error (110): Connection timed out

      O sarg ta funcionando.

      []‘s

      Wakky

    16. Pedro Pereira

      17|Jul|2009 16

      Wakky,

      Manda o seu squid.conf para augusto.pedro arroba gmail.com para eu ver se há algum erro na configuração que você fez no arquivo!

      []‘s

      Pedro

    17. Luiz

      24|Feb|2010 17

      Olá Pedro

      Gostei bastante desse seu tutorial, porém devo estar cometendo alguma bobagem, pois quando tento acessar o sqstat no navegar me apresenta o seguinte erro:

      SqStat error
      Error (111): Connection refused

      Alguma idéia do que possa ser….

      Grato

      Luiz

    18. Pedro Pereira

      14|Mar|2010 18

      Luiz,

      Geralmente isso é algum erro nas regras relacionadas ao host que poderá se conectar ao SQStat. Você conferiu o IP que você colocou no arquivo de configuração?

      []‘s
      Pedro

    19. Grégy

      31|Mar|2010 19

      ótimo!

    20. Dantiele

      16|Jun|2010 20

      Olá Pedro

      Quando utilizo o Sqstat para monitorar máquinas com NTLM ele aparece o seguinte erro: “SqStat error

      Error (1): Cannot get data. Server answered: HTTP/1.0 407 Proxy Authentication Required”

      Sabe alguma maneira de inserirmos algum login default no config.inc.php? (Caso este seja o problema, rs)
      Se possível me responde por favor no meu email: dantiele arroba gmail.com

      Desde já te agradeço.

      Danti.

    21. Pedro Pereira

      01|Jul|2010 21

      Dantiele,

      Infelizmente nunca usei o SQStat em um Squid com NTLM. Dê uma olhada no site oficial para ver se ele possui alguma documentação a respeito!

      []‘s
      Pedro Pereira

    22. Rafael M.

      11|Aug|2010 22

      estou com a seguinte msg de erro:
      Notice: Undefined index: con in /var/www/sqstat/sqstat.class.php on line 176

      Warning: Invalid argument supplied for foreach() in /var/www/sqstat/sqstat.class.php on line 176
      o q poderia ser, segue meu squid.conf
      #———————————-
      http_port 3128 transparent
      hierarchy_stoplist cgi-bin ?
      acl QUERY urlpath_regex cgi-bin \?
      cache deny QUERY
      cache_mem 512 MB
      cache_dir aufs /var/spool/squid 6000 128 256

      # nao faz cache para os sites no arquivo txt
      #acl NOCACHE url_regex “/etc/squid/nocache.txt”
      #no_cache deny NOCACHE

      acl apache rep_header Server ^Apache
      broken_vary_encoding allow apache
      access_log /var/log/squid/access.log squid
      hosts_file /etc/hosts
      error_directory /usr/share/squid/errors/Portuguese

      refresh_pattern ^ftp: 1440 20% 10080
      refresh_pattern ^gopher: 1440 0% 1440
      refresh_pattern . 0 20% 4320

      acl all src 192.168.0.0/255.255.255.0
      acl manager proto cache_object
      acl webserver src 192.168.0.2/255.255.255.255
      http_access allow manager webserver
      http_access deny manager

      acl localhost src 127.0.0.1/255.255.255.255
      acl to_localhost dst 127.0.0.0/8

      # referente ao HAVP
      cache_peer localhost parent 8080 0 no-query no-digest no-netdb-exchange default
      cache_peer_access localhost allow all

      acl SSL_ports port 443 # https
      acl SSL_ports port 563 # snews
      acl SSL_ports port 873 # rsync
      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 631 # cups
      acl Safe_ports port 873 # rsync
      acl Safe_ports port 901 # SWAT
      acl Safe_ports port 8017 # gia governo
      acl purge method PURGE
      acl CONNECT method CONNECT

      #LISTA DE MALWARES
      #acl malware url_regex “/etc/squid/malwareList.txt”
      #http_access deny malware
      #deny_info http://192.168.0.254/erros/malware.html malware

      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

      # Todo o trafego HTTP deve ser enviado ao proxy parente HAVP
      acl HTTP proto HTTP
      never_direct allow HTTP

      # CONFIG DO SQUIDGUARD
      redirect_program /usr/bin/squidGuard
      redirect_children 8
      redirector_bypass on

      http_access allow localhost
      http_access allow all
      http_reply_access allow all

      icp_access allow all

      cache_mgr aa@#aa.com

      cache_effective_group proxy
      coredump_dir /var/spool/squid

    23. stéfano

      30|Jan|2011 23

      eu fiz um script simples onde executa o comando tail . Por exemplo: tail -n 10 /var/log/squid/acces.log
      dessa forma fica mostrando no terminal o que está sendo escrito no log do squid, ou seja, o que os usuarios
      estão acessando no momento.
      espero que ajude

      abraços


    Deixe seu comentário!

    Acompanhe!

      Assine o feed RSS! Me acompanhe no Twitter! Me adicione no LinkedIn!

    Creative Commons


    Mais lidos