Proxy transparente com Squid, com controle de banda e bloqueio por horários
O Squid permite compartilhar a conexão com a Internet entre vários computadores, servindo como ponte entre os usuários e a Internet. Ele analisa todo o tráfego de dados, separando assim, tudo que pode ou não passar, segundo a configuração que fizermos.
Instalação e configuração
Instalando o Squid
O Squid é feito de apenas um arquivo de configuração. O ambiente que foi feito este procedimento, foi no Debian Squeeze.Então vamos instalar o Squid. Execute:
# apt-get update
# apt-get upgrade
# apt-get install squid
Agora, vamos renomear o arquivo original do Squid, que está em: "/etc/squid/squid.conf"
Então execute:
# mv /etc/squid/squid.conf /etc/squid/squid.conf.padrao
Agora temos que criar um novo arquivo. Então, execute:
# touch /etc/squid/squid.conf
Agora temos que editar este arquivo novo. Execute:
# cd /etc/squid
# nano squid.conf
Dentro deste arquivo temos que colocar 4 linhas, por enquanto, são elas:
http_port 3128 # PORTA QUE O SQUID VAI USAR
visible_hostname Nome do Server # NOME DO SERVIDOR QUE O SQUID VAI LER
acl all src 0.0.0.0/0.0.0.0 # CRIA UM POLITICA DE ACESSO PARA TODOS, QUE INCLUI TODOS OS ENDEREÇOS DE IP POSSÍVEIS.
http_access allow all # CRIA UMA POLÍTICA DE ACESSO PARA TODOS, QUE INCLUI TODOS OS ENDEREÇOS DE IP POSSÍVEIS.
visible_hostname Nome do Server # NOME DO SERVIDOR QUE O SQUID VAI LER
acl all src 0.0.0.0/0.0.0.0 # CRIA UM POLITICA DE ACESSO PARA TODOS, QUE INCLUI TODOS OS ENDEREÇOS DE IP POSSÍVEIS.
http_access allow all # CRIA UMA POLÍTICA DE ACESSO PARA TODOS, QUE INCLUI TODOS OS ENDEREÇOS DE IP POSSÍVEIS.
Salve e saia.
Agora, para testar o servidor reinicie o serviço. Então, execute:
# /etc/init.d/squid restart
Criando a configuração básica
O problema em deixar o arquivo com apenas estas 4 linhas, é que o Proxy fica muito aberto, e se não tiver um Firewall na sua rede, a situação fica ainda pior.Mas acho que não é o caso de quem está lendo, porque um bom administrador de redes tem que ter um firewall na rede bem configurado.
Então, vamos gerar um arquivo mais completo, permitindo assim que só os micros da rede local acessem o proxy, e claro, definir mais políticas de segurança.
Então vamos lá, execute:
# nano /etc/squid/squid.conf
Dentro deste arquivo, adicione as seguintes linhas:
# Configuracoes Squid
http_port 3128 transparent # Tipo do proxy, no nosso caso transparente
visible_hostname nome # O nome do seu server
error_directory /usr/share/squid/errors/English # Idioma dos erros, no caso eu deixo Inglês, mas você pode colocar em portugues, mudando English para Portuguese
hierarchy_stoplist cgi-bin? # Quando o cache lotar, ele sobrescreve o cache
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 512 MB # Quantidade de memória RAM dedicada a cache
maximum_object_size_in_memory 200 KB # Determina o tamanho máximo na memória RAM dos arquivos que serão guardados no cache
maximum_object_size 3 GB # Tamanho máximo dos arquivos armazenado no cache do HD
minimum_object_size 0 KB # Tamanho mínimo dos arquivos armazenados no Cache do HD
ipcache_size 1024
ipcache_low 90
ipcache_high 95
cache_replacement_policy lru
memory_replacement_policy lru
logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
access_log /var/log/squid/access.log squid # Arquivo onde ficam guardados os log do Squid
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 5048 16 256
cache_access_log /var/log/squid/access.log # Onde fica guardado o cache dos logs
cache_log /var/log/squid/cache.log
cache_swap_log /var/spool/squid/swap.log
cache_mgr seuemail@seuprovedor.com.br # E-mail que aparece no erro da página ao ser bloqueada
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 10 20% 2280
refresh_pattern ^gopher: 10 0% 1440
refresh_pattern . 15 20% 2280
# Definicao das ACLs # ACLs são responsáveis por limitar as portas que o proxy irá usar
acl all src 0.0.0.0/0.0.0.0 # Política de acesso liberado para todos na rede usando o proxy
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255 # Troque pela faixa da sua rede local
acl redelocal src 192.168.0.0/24
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 # snews # Porta segura, você pode adicionar quantas porta você precisar
acl Safe_ports port 80 # http # Porta segura, você pode adicionar quantas porta você precisar
# Travando micros locais para usaram o proxy
http_access allow localhost # Importante essa duas linhas sempre está na final do arquivos
http_access allow redelocal # Importante essa duas linhas sempre está na final do arquivos
http_port 3128 transparent # Tipo do proxy, no nosso caso transparente
visible_hostname nome # O nome do seu server
error_directory /usr/share/squid/errors/English # Idioma dos erros, no caso eu deixo Inglês, mas você pode colocar em portugues, mudando English para Portuguese
hierarchy_stoplist cgi-bin? # Quando o cache lotar, ele sobrescreve o cache
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 512 MB # Quantidade de memória RAM dedicada a cache
maximum_object_size_in_memory 200 KB # Determina o tamanho máximo na memória RAM dos arquivos que serão guardados no cache
maximum_object_size 3 GB # Tamanho máximo dos arquivos armazenado no cache do HD
minimum_object_size 0 KB # Tamanho mínimo dos arquivos armazenados no Cache do HD
ipcache_size 1024
ipcache_low 90
ipcache_high 95
cache_replacement_policy lru
memory_replacement_policy lru
logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
access_log /var/log/squid/access.log squid # Arquivo onde ficam guardados os log do Squid
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 5048 16 256
cache_access_log /var/log/squid/access.log # Onde fica guardado o cache dos logs
cache_log /var/log/squid/cache.log
cache_swap_log /var/spool/squid/swap.log
cache_mgr seuemail@seuprovedor.com.br # E-mail que aparece no erro da página ao ser bloqueada
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 10 20% 2280
refresh_pattern ^gopher: 10 0% 1440
refresh_pattern . 15 20% 2280
# Definicao das ACLs # ACLs são responsáveis por limitar as portas que o proxy irá usar
acl all src 0.0.0.0/0.0.0.0 # Política de acesso liberado para todos na rede usando o proxy
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255 # Troque pela faixa da sua rede local
acl redelocal src 192.168.0.0/24
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 # snews # Porta segura, você pode adicionar quantas porta você precisar
acl Safe_ports port 80 # http # Porta segura, você pode adicionar quantas porta você precisar
# Travando micros locais para usaram o proxy
http_access allow localhost # Importante essa duas linhas sempre está na final do arquivos
http_access allow redelocal # Importante essa duas linhas sempre está na final do arquivos
Salve e saia do arquivos. Reinicie o Squid:
# /etc/init.d/squid restart
vou usar como referencia para o pessoal novado
que quer implantar o squid e não sabe como
muito bom mesmo
bem explicado