• Nenhum resultado encontrado

120 output_dir /var/www/sarg/squid

55/78

MYSAR

O MySar é um analisador de log, seu objetivo é ler o arquivo access.log do Squid da mesma forma que o Sarg.

A Diferença é o tempo de atualização da lista (1 minuto) e a utilização de uma base de dados SQL (MySQL) para armazenar as informações.

Baixando MySar

Espelho da UFPR, utilize sempre a versão estável mais nova por questão de segurança:

56/78

MYSAR

Dependências baixadas para rodar o MySar: - Mysql-server;

- Apache2; - php5;

- php5-mysql; - Squid;

Caso não possua os pacotes baixe-os via apt-get:

# apt-get install mysql-server apache2 php5 php5-mysql

Descompacte para um diretório de sua preferência, no meu caso em /usr/local:

57/78

MYSAR

No APACHE

Alias /mysar /var/www/mysar/www <Directory "/var/www/mysar/www"> Options Indexes MultiViews

AllowOverride None Order allow,deny Allow from all </Directory>

Restartando serviço do apache para aplicar modificação:

# /etc/init.d/apache2 restart

Agora vamos conceder permissão de dono do diretório mysar para www-data (Usuário do apache):

58/78

MYSAR

Vamos "criar" o arquivo config.ini:

# cd /var/www/mysar/etc

# cp config.ini.example config.ini

Agora o mysar já está pronto para ser configurado, essa configuração será feita acessando a web do servidor: http://ip_do_servidor/mysar

Clique em "Click here to continue >>>" Siga as telas de configuração

59/78

MYSAR

Vamos apenas fazer os ultimos ajustes no mysar. Acesse pela web e clique em "Administration"

Confira o caminho do arquivo access.log e confirme.

OBS.: Como já utilizo o Sarg e estou implementando o mysar eu vou deixar que ele crie log de 1 dia e não resolva nome de estação. Recomendo que você utilize as opções padrão:

Adicione as rotinas no contrab:

# crontab -e * * * * * root /usr/local/mysar/bin/mysar-importer.php > /var/log/mysar/mysar-importer.log 2>&1 * * * * * root /usr/local/mysar/bin/mysar-resolver.php > /var/log/mysar/mysar-resolver.log 2>&1 0 1 * * * root /usr/local/mysar/bin/mysar-maintenance.php /var/log/mysar/mysar-maintenance.log 2>&1

60/78

LOG PERSONALIZADO

Com a liberação de novas versões do squid surgiram várias novas funcionalidades e uma delas é o logformat que serve para manipular a forma em que o log será

gerado. Funciona da seguinte forma:

logformat < nome> < especificação do formato>

O nome nada mais é do que um nome para manipulação do formato.

A especificação do formato pode ser customizada como o administrador achar melhor, sempre adicionando o prefixo %. Segue a lista de especificações:

61/78

LOG PERSONALIZADO

>a IP de origem da requisição (cliente) >A FQDN do cliente

>p Porta de origem no cliente < A IP do servidor de destino la IP local do servidor Squid lp Porta local do servidor Squid

ts Segundos passados desde a requisição tu Subsegundos

tl Horário do servidor. Strings opcionais utilizadas como padrão. %d/%b/%Y:%H: %M:%S %z

tg Horário GMT. Strings opcionais utilizadas como padrão. %d/%b/%Y:%H:%M:%S %z

tr Tempo de resposta, em milisegundos) >h Cabeçalho de requisição. < h Cabeçalho de retorno. un Nome do usuário ul Login do usuário ui Ident do usuário us SSL

62/78

LOG PERSONALIZADO

ue ACL externa

Hs Status do código HTTP

Ss Status da requisição (TCP_MISS/TCP_REFRESH/TCP_DENIED etc) Sh Status da hierarquia do Squid (DEFAULT_PARENT etc)

mt MIME type do conteúdo

rm Método requisitado na conexão(GET/POST/CONNECT etc) ru URL requisitada

rv Versão do protocolo requisitado

ea String retornada por uma ACL externa

< st Tamanho da resposta, incluindo cabeçalho HTTP % % literal

63/78

LOG PERSONALIZADO

Nova forma para o log

Para criar um novo template para o seu arquivo de log primeiro precisamos criar uma diretiva do tipo logformat que será usada mais a frente.

logformat MEU_LOG IP do cliente: %>a - Username: %un - Horario: [%tl] - Metodo: %rm - URL: %ru - Status HTTP: Hs - Status Squid: %Ss

Logo em seguida definimos onde será utilizado o novo template. Estou separando em dois arquivos de logs (access.log e gerencia.log) para não atrapalhar o correto

funcionamento do SARG.

O logformat com o nome squid é o padrão do Squid que estamos acostumados a ver e que o SARG necessita para que funcione corretamente.

O logformat com o nome MEU_LOG foi o template que criei para poder enviar, em um formato mais amigável, para a gerencia.

access_log /var/log/squid/access.log squid

64/78

LOG PERSONALIZADO

Nunca esquecer de dar um reload no Squid para que as novas configurações entrem em vigor.

# squid -k reconfigure

Log de acesso

Após a criação das regras meus dois logs de acesso, acessando o site http://www.integral.inf.br/, ficaram da seguinte forma

access.log

1431486561.078 171 192.168.25.204 TCP_MISS/200 9847 GET

http://www.reisfa.eti.br/site/wp-content/themes/firmasite/assets/js/bootstrap.min.js? reisfa DIRECT/192.99.160.41 application/javascript

1431486561.125 104 192.168.25.204 TCP_MISS/200 42671 GET

http://fonts.gstatic.com/s/ubuntucondensed/v6/DBCt-NXN57MTAFjitYxdrK8NE7_Gi- Xz52ZQ_AwfA78.woff reisfa DIRECT/216.58.222.35 font/woff

65/78

LOG PERSONALIZADO

gerencia.log

IP do cliente: 192.168.25.204 - Username: reisfa - Horario: [13/May/2015:00:09:19 -0300] - Metodo: GET - URL: http://reisfa.eti.br/favicon.ico - Status HTTP: Hs - Status Squid: TCP_MISS

IP do cliente: 192.168.25.204 - Username: reisfa - Horario: [13/May/2015:00:09:20 -0300] - Metodo: GET - URL: http://reisfa.eti.br/favicon.ico - Status HTTP: Hs - Status Squid: TCP_MISS

IP do cliente: 192.168.25.204 - Username: reisfa - Horario: [13/May/2015:00:09:20 -0300] - Metodo: GET - URL: http://www.reisfa.eti.br/site/ - Status HTTP: Hs - Status Squid: TCP_MISS

IP do cliente: 192.168.25.204 - Username: reisfa - Horario: [13/May/2015:00:09:20 -0300] - Metodo: GET - URL: http://fonts.googleapis.com/css? - Status HTTP: Hs - Status Squid: TCP_MISS

IP do cliente: 192.168.25.204 - Username: reisfa - Horario: [13/May/2015:00:09:20 -0300] - Metodo: GET - URL: http://www.reisfa.eti.br/site/wp-

content/themes/firmasite/style.css? - Status HTTP: Hs - Status Squid: TCP_MISS

IP do cliente: 192.168.25.204 - Username: reisfa - Horario: [13/May/2015:00:09:20 -0300] - Metodo: GET - URL: http://www.reisfa.eti.br/site/wp-

66/78

LOG PERSONALIZADO

Tratando ACL

Com essa nova funcionalidade podemos atrelar um arquivo de log para cada acl como abaixo.

logformat LOG_DOMINIOS_LIBERADOS IP do cliente: %>a - Username: %un - Horario: [%tl] - Metodo: %rm - URL: %ru - Status HTTP: sHs - Status Squid: %Ss

acl DOMINIOS_LIBERADOS dstdomain

"/etc/squid3/acls/DOMINIOS_LIBERADOS.acl"

access_log /var/log/squid/dominios_liberados.log LOG_DOMINIOS_LIBERADOS DOMINIOS_LIBERADOS

Desta forma todo o acesso que casar com a acl DOMINIOS_LIBERADOS será gravado no arquivo de log /var/log/squid/dominios_liberados.log com o formato definido em LOG_DOMINIOS_LIBERADOS

67/78

AUTENTICAÇÃO - NCSA

#locate ncsa #cd /etc/squid3

#touch squidPasswd

#aptitude install apache2-utils #htpasswd squidPasswd reisfa #vim squid.conf

auth_param basic realm Squid-digite uma senha

auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squidPasswd

acl autenticados proxy_auth REQUIRED

http_access allow autenticados http_access allow localhost

68/78

AUTENTICAÇÃO

69/78

BANNER FILTER

O bannerFilter faz o bloqueio de diversos banners de publicidade; Influencia na navegabilidade;

Evita que usuário cliquem em links possivelmente contaminados;

#wget http://phroggy.com/files/unix/bannerfilter-1.31.tar.gz # tar zxvf bannerfilter-1.31.tar.gz

70/78

BANNER FILTER

Mova o conteúdo do diretório www para algum lugar acessível em seu Web server. Esses arquivos PRECISAM estar acessíveis ao squid via HTTP.

Mova todo o resto para /etc/squid3/bannerfilter ou /usr/local/squid3/etc/bannerfilter Edite o redirector.pl. Se você não tem o perl no local padrão (/usr/bin/perl), mude a primeira linha (ou crie um symlink).

Mude as variáveis $DATA e $WWW como indicado nos comentários. Opcionalmente, mude também $LOG e $BANNERGIF como indicado.

Teste o redirector.pl rodando-o (perl redirector.pl), digite alguma coisa e veja se recebe essa coisa de volta..

71/78

BANNER FILTER

Editando o squid.conf

Procure pela seção que fala sobre redirect (TAG: redirect_program) e insira a linha:

#vim /etc/squid3/squid.conf

redirect_program /etc/squid/bannerfilter/redirector.pl ou

72/78

SQUIDGUARD

Documentos relacionados