O proxy é um programa que fica entre a rede interna e a rede mundial controlando a comunicação entre as mesmas.
Squid
Squid é um servidor de proxy e cache de alta performance, suportando HTTP e FTP. Tem como objetivo principal de compartilhar uma conexão com a internet entre vários ou mesmo com todos os usuários de uma rede.
Principais características:
- Eficiência e segurança no gerenciamento do tráfego de informações;
- Redução do tráfego HTTP e FTP, pois muito do que é frequentemente acessado fica no cache do servidor;
- Possibilitar acesso restrito a usuário e sites específicos, com possibilidade de controle de horários permitidos para acesso.
Instalação:
Existem 2 maneiras de se instalar o Squid:
1. Utilizando o pacote rpm (pré-definido):
Arquivo vem junto com a distribuição do
Linux:
# rpm -ivh squid-versão.rpm
2. Utilizando o tar.gz (fonte):
2.1. Download
http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE4.tar.gz
2.2. Descompactar
# tar -zpxvf squid-2.5.STABLE4.tar.gz
2.3. Instalar
Entre no diretório descompactado:
# ./configure --prefix=/etc/squid --enable-err-language=Portuguese
# make all
# make install
Configuração:
Edite o arquivo
/etc/squid/etc/squid.conf.
Opções principais:
- http_port (padrão 3128)
- Cache_mem (Tamanho da memória a ser utilizado) Ex: cache_mem 32 MB
- Cache_dir (Diretório onde arquivos serão armazenados. Ex: cache_dir ufs /var/spool/squid 300 16 256
- Cache_access_log (arquivo no qual será gerado log dos acessos ao servidor). Ex: Cache_access_log /var/log/squid/acces.log
Adicione as linhas:
acl all src 192.168.2.0/255.255.255.0
http_access allow all
Salve o arquivo.
Dentro do diretório do squid/bin:
# ./squid -Z (cria o diretório do cache)
Iniciando o Squid:
Com o pacote rpm:
# cd /etc/rc.d/init.d
#./squid start
# ntsysv (habilitar squid)
Com o tar:
# cd /etc/squid/bin
# ./RunCache &
Configuração:
1) Exemplo 01 de regras:
authenticate_program /usr/bin/ncsa_auth /etc/squid/password
acl unit proxy_auth REQUIRED
acl interno src 192.168.2.3
acl interno1 src 192.168.2.5
acl pagina_local dst 200.251.159.0/255.255.255.0
acl interno3 src 192.168.2.10
acl Safe_ports port 8000 #ibict
acl negarend url_regex "/etc/squid/negado"
http_access deny negarend
http_access allow interno unit
http_access deny pagina_local interno1
http_access allow interno3
http_access deny all
2) Exemplo 02 de regras:
authenticate_program /usr/bin/ncsa_auth /etc/squid/senhas
acl interno3 src 200.220.20.1
acl userctl proxy_auth "/usuarios/userctl"
acl ip_permitidos_userctl url_regex "/usuarios/ip_permitidos_userctl"
acl sites_permitidos_userctl dstdomain “/usuarios/sites_permitidos_userctl"
http_access allow userctl sites_permitidos_userctl
http_access allow userctl ip_permitidos_userctl
http_access allow interno3
http_access deny all
Arquivos:
- Criando arquivo de senha:
# httpasswd -c senhas usuario
- userctl
atendimento
recepcao
acristina
- ip_permitidos_userctl
#Setor de Protocolo
192.168.3.188
192.168.3.190
192.168.2.30
- sites_permitidos_userctl
www.uol.com.br
www.terra.com.br
www.globo.com