Por: @eduardoh Publicado em: 2022-07-06

SquidAnalyzer para consumo de logs do Webfilter

Objetivo

Testar o comportamento do serviço SquidAnalyzer para o consumo de logs do Webfilter.

Instalação

Instalando os requisitos:

yum install perl perl-devel git

Instalando o SquidAnalyzer:

cd /var/www/

git clone https://github.com/darold/squidanalyzer

cd squidanalyzer/

perl Makefile.PL

make && make install

Criar virtualhost para permitir acesso ao SquidAnalyzer:

vim /etc/nginx/conf.d/squidanalyzer.conf

server {
        listen 8888;
        server_name _;

        location /squidreport {
          alias /var/www/squidanalyzer;
        }
}

systemctl restart nginx

Apontar o arquivo de logs correto:

vim /etc/squidanalyzer/squidanalyzer.conf

LogFile /var/log/squid/access.log

Configurar a cron para compilar os logs:

vim /etc/cron.d/squidanalyzer

PATH=/sbin:/bin:/usr/sbin:/usr/bin
LANG=pt_BR.UTF-8

# SquidAnalyzer log reporting daily
0 2 * * * /usr/local/bin/squid-analyzer > /dev/null 2>&1

systemctl restart crond

Executando a primeira vez para gerar os primeiros logs e as páginas web:

Modo normal:
/usr/local/bin/squid-analyzer

Modo debug:
/usr/local/bin/squid-analyzer -d
Lembre-se de criar uma regra de INPUT no FWFLEX liberando acesso a porta que foi aberta no virtualhost do Nginx.

Autenticação (Opcional, porém recomendada)

Instalar o pacote httpd-tools:

yum install httpd-tools

Criando usuário:

htpasswd -c /var/www/squidanalyzer/.htpasswd visualizador
New password: ***
Re-type new password: ***
Adding password for user visualizador

Ativando autenticação:

vim /etc/nginx/conf.d/squidanalyzer.conf

server {
        listen 8888;
        server_name _;

        location /squidreport {
          alias /var/www/squidanalyzer;

          auth_basic "Autenticação necessária";
          auth_basic_user_file /var/www/squidanalyzer/.htpasswd;
        }
}

Reiniciando o Nginx:

systemctl restart nginx

Redirecionamento (Opcional)

Caso você utilize um virtualhost diferente do padrão, que utilize outra porta, você pode criar um redirecionamento que quando o usuário abrir o site na porta configurada, ele seja automaticamente redirecionado para a URI /squidreport

vim /etc/nginx/conf.d/squidanalyzer.conf

server {
        listen 8888;
        server_name _;

        location / {
                return 301 /squidreport;
        }

        location /squidreport {
          alias /var/www/squidanalyzer;

          auth_basic "Autenticação necessária";
          auth_basic_user_file /var/www/squidanalyzer/.htpasswd;
        }
}

Análise geral

De modo geral a ferramenta é de fácil instalação e atende o que precisamos hoje a curto prazo. A configuração não requer passos complexos de implantação. Um risco é a descontinuação da ferramenta, então como sugestão fica: criar pacote e armazenar no nosso repositório.

Critérios levados em consideração:

  1. Licenciamento: O SquidAnalyzer está disponível de maneira aberta no GitHub sobre licença GPL v3.

  2. Suporte: O último commit do software foi lançado em novembro de 2020, depois disso não se teve mais atualização da ferramenta.

  3. Instalação: Instalação simples baseada em compilação. Uma possível sugestão seria avaliar criar o pacote e indexar ao nosso repo, para termos maior garantia que a ferramenta esteja sempre disponível.

  4. Configuração: Configuração é simples e não requer nível de complexidade alto, basta seguir o procedimento.

  5. Integração com o produto: Fácil integração, pensando a curto prazo basta adicionarmos novas tasks ao Ansible para provisionar.

  6. Performance: Como o SquidAnalyzer não se mantém em execução como serviço, acaba sendo bastante performático, pois utiliza de serviços já instalados, como Cron, Nginx e o próprio Squid.

  7. Limitações/impedimentos/riscos: Falta de atualização de melhorias e correção de bugs, repositório aberto no Github sem atualização que pode ser desativado a qualquer momento.

  8. Referência de soluções alternativas: O SquidAnalyzer já é uma solução alternativa para o Graylog que foi estudado em outra Spike.