ezgonzaga
(usa Debian)
Enviado em 10/08/2011 - 11:47h
Configurando Servidor Internet Linux
1. Instalar Debian
2. Instalar Squid (terminal como root - sudo su)
apt-get install squid
3. Fazer backup arquivo configuração do Squid
cp /etc/squid/squid.conf /etc/squid/squid.conf.orig
4. Cadastro de usuários
apt-get install apache2-utils
touch /etc/squid/squid_passwd #cria um arquivo texto vazio para armazenar usuários e senhas
ou
gedit /etc/squid/squid_passwd
Salva e Fecha
Cadastre os usuários
htpasswd /etc/squid/squid_passwd nome_do_usuário #digite a senha em seguida
Para alterar a senha repita o processo acima
Para deletar usuário
htpasswd -D /etc/squid_passwd nome_do_usuário
5. Criar diretório para listas (ACLs)
mkdir /etc/squid/listas
6. Crie as listas necessárias:
/etc/squid/listas/pal_blq #Palavras bloqueadas nas URLs
/etc/squid/listas/url_blq #Sites bloqueados
/etc/squid/listas/url_ign #Sites ignorados, que não passarão pelo Squid
/etc/squid/listas/url_lib #Sites liberados
/etc/squid/listas/usr_blq_parcial #Usuários que acessarão tudo, exceto sites bloqueados
/etc/squid/listas/usr_blq_total #Usuários bloqueados
/etc/squid/listas/usr_lib_parcial #Usuários que acessarão apenas sites liberados
/etc/squid/listas/usr_lib_total #Usuários liberados
Para editar listas (colocar sempre um (site ou usuário) por linha:
gedit /etc/squid/listas/______
7. Configuração squid.conf
apague todo conteúdo do squid.conf
gedit /etc/squid/squid.conf
Obs: Ao encontrar uma ACL que encaixa o Squid ignora as demais abaixo
http_port 3128 #Porta a ser usada
visible_hostname debian #Nome do servidor da rede
error_directory /usr/share/squid/errors/Portuguese/ #Caminho das Mensagens
#Configurações de cache
cache_mem 350 MB #memoria usada
maximum_object_size_in_memory 64 KB #tamanho máximo arquivo na memória
maximum_object_size 512 MB #tamanho máximo arquivo no hd
minimum_object_size 0 KB #tamanho minimo arquivo no hd
cache_swap_low 90 #percentual de uso do hd antes de apagar
cache_swap_high 95 #percentual de uso do hd antes de apagar
cache_dir aufs /var/spool/squid 20480 16 256 #Caminho no disco do cache - tamanho em disco - Qtd pastas - Qtd subpastas
cache_access_log /var/log/squid/access.log #Caminho no disco do log
refresh_pattern ^ftp: 15 20% 2280 #padrão de atualização do cache
refresh_pattern ^gopher: 15 0% 2280 #padrão de atualização do cache
refresh_pattern . 15 20% 2280 #padrão de atualização do cache
#Cria listas
acl all src 0.0.0.0/0.0.0.0 #todos os IPs da rede
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255 #lista para acesso do servidor a internet
acl SSL_ports port 443 563 #portas configuradas
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
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
acl url_ign dstdomain -i "/etc/squid/listas/url_ign" #Sites Ignorados, que não passarão pelo Squid
http_access allow url_ign #Libera os Sites Ignorados antes de tudo
http_access allow manager localhost #Configurações Padrões
http_access deny manager #Configurações Padrões
http_access allow purge localhost #Configurações Padrões
http_access deny purge #Configurações Padrões
http_access deny !Safe_ports #Configurações Padrões
http_access deny CONNECT !SSL_ports #Configurações Padrões
acl redelocal src 10.0.0.0/24 #Bloqueia acesso de fora da rede local antes de tudo
http_access deny !redelocal #Bloqueia acesso de fora da rede local antes de tudo
acl url_lib url_regex -i "/etc/squid/listas/url_lib" #Sites liberados, caso bloqueie tudo
#http_access allow url_lib #Sites liberados, caso bloqueie tudo
#http_access deny all #Sites liberados, caso bloqueie tudo
#acl url_blq url_regex -i "/etc/squid/listas/url_blq" #Sites bloqueados, caso libere tudo
#http_access deny url_blq #Sites bloqueados, caso libere tudo
#acl pal_blq dstdom_regex -i "/etc/squid/listas/pal_blq" #Palavras bloqueadas (na url do site)
#http_access deny pal_blq #Palavras bloqueadas (na url do site)
#Autentica o usuario:
auth_param basic realm Digite sua senha para acesso a internet. #Frase que aparecerá na mensagem de usuário e senha
auth_param basic program /usr/bin/ncsa_auth /etc/squid/squid_passwd #Método de autenticação e arquivo dos usuários
acl autenticados proxy_auth REQUIRED #Cria lista de usuários autenticados
acl usr_lib_total proxy_auth "/etc/squid/listas/usr_lib_total" #Cria lista de usuários com acesso total
http_access allow usr_lib_total #Libera acesso total aos usuários da lista
http_access allow autenticados url_lib #Libera acesso aos demais usuários autenticados apenas para a lista de sites liberados
http_access deny all #Bloqueia o restante
#libera acesso da rede local para os autenticados e bloqueia o resto
http_access allow localhost
http_access allow redelocal
http_access deny all
8. Configurando o SARG para relatórios
Baixe o programa do site
http://sarg.sourceforge.net/ (
http://sourceforge.net/projects/sarg/files/sarg/sarg-2.3.1/sarg-2.3.1.tar.gz/download )
No diretório onde foi salvo o arquivo baixado ( sarg-2.3.1.tar.gz ) digite:
# tar zpfx sarg-1.2.2.tar.gz
# cd sarg-1.2.2
# ./configure --enable-sysconfdir=/etc/sarg
[...configurando a compilação...]
# make
[...compilando...]
# make install
O arquivo de configuração está em:
/usr/local/etc/sarg.conf
Acesse e altere as linhas referentes a linguagem e caminho do log do squid:
gedit /usr/local/etc/sarg.conf
language Portuguese
access_log /var/log/squid/access.log Colocar esta linha depois do realtime
graphs yes
title "Relatórios de Acesso de Usuários Squid"
temporary_dir /tmp
output_dir /var/www/squid-reports
date_format e
lastlog 0 Se quiser apagar relatorio antigos mude o 0 para quantos dias salvar
remove_temp_files yes
index yes
overwrite_report yes
report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads
show_successful_message yes
topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE
realtime_refresh_time 3
realtime_access_log_lines 1000
realtime_types GET,PUT,CONNECT
realtime_unauthenticated_records: show
access_log /var/log/squid/access.log
chmod -R a+rw /var/log/squid/
chmod -R a+rw /var/log/squid/access.log
9. Para atualizar os relatórios digite:
sarg
10. Gerar relatorio automatico todos os dias:
gedit /etc/cron.daily/sarg-dia
Insira este conteúdo e salve:
#!/bin/bash
HOJE=$(date --date "1 day ago" +%d/%m/%Y)
/usr/sbin/sarg -f /usr/local/etc/sarg.conf -d $HOJE-$HOJE
exit 0
chmod +x /etc/cron.daily/sarg-dia
11. Para visualizar os relatórios:
apt-get install apache2
apt-get install libapache2-mod-php5
a2enmod
/etc/init.d/apache2 restart
http://ip-do-servidor/squid-reports (
http://10.0.0.5/squid-reports ) Relatório completo, porém até a última geração
http://ip-do-servidor/sarg-php/sarg-realtime.php (
http://10.0.0.5/sarg-php/sarg-realtime.php ) Acesso em tempo real
12. Para administrar o Debian remotamente:
apt-get install xrdp
Acesso via terminal server
13. Aplicar alterações:
/etc/init.d/squid restart
squid -k reconfigure