Squid é um servidor proxy de cache para WEB que suporta os protocolos HTTP, HTTPS, FTP entre outros, reduz a largura de banda e melhora os tempos de resposta ao colocar em cache e reutilizar as páginas da Web frequentemente solicitadas. Possui extensos controles de acessos a internet.
Pacotes Necessários.
INSTALAÇÃO
# apt-get install squid3
Apos a Instalação do Squid, vamos efetuar um backup do arquivo de configuração squid.conf , o squid.conf esta localizado no diretorio /etc/squid3.
root@squid3:/etc/squid3# cp squid.conf squid.conf.dist
Apos o backup crie um novo arquivo com o nome squid.conf
root@squid3:/etc/squid3# touch squid.conf
Edite o arquivo com o comando abaixo
root@squid3:/etc/squid3# vi squid.conf
Cole as linhas abaixo no arquivo de configuração do Squid.
# WELCOME TO SQUID 3.4.8
# ----------------------------
# should be allowed
error_directory /usr/share/squid-langpack/pt-br/
acl localnet src 172.16.100.0/24
# ACL Portas
acl SSL_ports port 443 563 448
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 563 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
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 81 # tcp host to host
acl Safe_ports port 82 # estapar
acl Safe_ports port 7071 # Zimbra
acl Safe_ports port 403
acl safe_ports port 448
acl CONNECT method CONNECT
acl sites_sem_proxy dstdomain "/etc/squid3/sites.ssl"
always_direct allow sites_sem_proxy
acl nocache url_regex -i "/etc/squid3/nocache"
acl sitesliberados dstdom_regex -i "/etc/squid3/sites.allow"
acl ipsfull src "/etc/squid3/ips.allow"
acl palavraspermitidas url_regex -i "/etc/squid3/palavras.allow"
acl skype_domain dstdom_regex skype.com
acl sitesbloqueados dstdom_regex -i "/etc/squid3/sites.deny"
acl palavrasbloqueadas url_regex -i "/etc/squid3/palavras.deny"
acl downloadsblock urlpath_regex -i "/etc/squid3/downloads.deny"
acl mailblocks url_regex -i "/etc/squid3/mail.deny
acl ipsblock src "/etc/squid3/ips.deny"
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow nocache
http_access allow skype_domain
http_access allow sitesliberados
http_access allow ipsfull
http_access allow palavraspermitidas
http_access deny sitesbloqueados
http_access deny palavrasbloqueadas
http_access deny downloadsblock
http_access deny ipsblock
http_access deny mailblocks
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
#http_access allow localnet
http_port 3128
cache_mem 1724 MB
cache_swap_low 90
cache_swap_high 95
cache_dir diskd /var/spool/squid3 20480 64 256 Q1=64 Q2=72
coredump_dir /var/spool/squid3
maximum_object_size 16384 kb
maximum_object_size_in_memory 128 kb
# Tempo de vida para resultado bem sucedidos de resolução DNS
positive_dns_ttl 5 minutes
# Ganho de performance
pipeline_prefetch on
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
cache_mgr suporte@suporte.com.br # INFORME AQUI O SEU E-MAIL
dns_nameservers 8.8.8.8
dns_nameservers 8.8.4.4
Crie os arquivos abaixo no diretorio /etc/squid3
ips.allow
ips.deny
nocache
palavras.allow
palavras.deny
sites.allow
sites.deny
downloads.deny
mail.deny
skype_domain
Obs: ao inserir algum site, ip etc.. utilize o comando abaixo para recarregar as regras no SQUID
# squid3 -k reconfigure
ESTRUTURA DOS AQUIVOS
IPS.ALLOW esse arquivo armazena os IPS que terão acesso Full a Internet sem nenhum bloqueio.
Edite o arquivo ips.allow e informe os Ips que terão acesso Total a Internet
# vi ips.allow
172.16.100.96/32
172.16.100.145/32
172.16.100.95/32
IPS.DENY esse arquivo armazena os IPS que não terão acesso a Internet
Edite o arquivo ips.deny e informe os IPS que não terão acesso a Internet
# vi ips.deny
172.16.100.64/32 # exemplo
# se não for informar nenhum IP informe pelo menos
# um e coloque um # comentário para não dar erro quando inciar o #squid
NOCACHE esse arquivo armazena os sites para o Squid não armazenar em Cache, utilizado para sites de Bancos
Edite o arquivo nocache e informe os sites de bancos
# vi nocache
.itau.com.br
.bradesco.com.br
.santander.com.br
.bb.com.br
PALAVRAS.ALLOW esse arquivo armazenas as palavras a serem liberadas, exemplo se informar a palavra puta no arquivo palavras.deny para ser bloqueada, todas as palavras relacionadas a este assunto serão bloqueadas ate mesmo a palavra computador, por isso que informei a palavra computador no arquivo abaixo, para o squid liberar o acesso
Edite o arquivo palavras.allow e informe as palavras as serem liberadas
# vi palavras.allow
computador
PALAVRAS.DENY esse arquivo armazena as palavras a serem bloqueadas
Edito o arquivo palavras.deny e informe as palavras a serem bloqueadas.
# vi palavras.deny
jogos
jogo
game
games
torrent
SITES.ALLOW esse arquivo armazena os sites para serem liberados caso haja algum bloqueio pelo Squid.
Edito o arquivo sites.allow e informe os sites.
# vi sites.allow
.gnre.pe.gov.br
SITES.DENY esse arquivo armazena os sites para serem bloqueados,
# vi sites.deny
.uol.com.br
.facebook.com
.4shared.com
.rocklaser.com.br
.uzgames.com.br
.unblocker.biz
unipeak.com
kproxy.com
.proxy420.com
.proxyweb.net
.webproxy.kaxy
DOWNLOADS.DENY - esse arquivo armazena as extensões que serão bloqueadas edite o arquivo downloads.deny e isira o que vai ser bloqueado
#downloads proibidos
\.msi(\?.*)?$
\.msu(\?.*)?$
\.torrent(\?.*)?$
\.mp3(\?.*)?$
\.bat(\?.*)?$
\.zip(\?.*)?$
\.exe(\?.*)?$
\.iso(\?.*)?$
\.bat(\?.*)?$
\.zip(\?.*)?$
\.rar(\?.*)?$
\.iso(\?.*)?$
\.torrent(\?.*)?$
\.wcry(\?.*)?$
MAIL.DENY - Esse arquivo armazena os e-mails a serem bloqueados, edite o arquivo mail.deny e informe os endereços que vão ser bloqueados.
.hotmail.com
.live.com
.mail.yahoo.com.br
.email.bol.com.br
.email.r7.com
.zipmail.uol.com.br
SKYPE_DOMAIN - Esse arquivo armazena os ips que terão acesso ao SKYPE edite o arquivo skype_domain e informe o IP
172.16.100.223/32
FIREWALL
Vamos criar o arquivo abaixo para direcionar a saida da porta 80 para a porta do squid 3128
Crie o arquivo firewall.sh no diretorio /etc/init.d/
# touch firewall.sh
# Firewall
#!/bin/sh
iptables -t nat -A PREROUTING -i eth0 -s 172.16.100.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -s 172.16.100.0/24 -p tcp --dport 443 -j REDIRECT --to-port 31443
salve o arquivo e mude a permissão desse arquivo para executável com o comando abaixo
/etc/init.d/# chmod 777 firewall.sh
Execute o script com o comando abaixo.
.# /firewall.sh
Criando o cache do SQUID
Execute o comando abaixo para criar os diretorios para armazenamento do cache
# squid3 -z
2017/05/09 17:27:34 kid1| Making directories in /var/spool/squid3/01
2017/05/09 17:27:34 kid1| Making directories in /var/spool/squid3/02
2017/05/09 17:27:34 kid1| Making directories in /var/spool/squid3/03
2017/05/09 17:27:34 kid1| Making directories in /var/spool/squid3/04
2017/05/09 17:27:34 kid1| Making directories in /var/spool/squid3/05
2017/05/09 17:27:34 kid1| Making directories in /var/spool/squid3/06
2017/05/09 17:27:34 kid1| Making directories in /var/spool/squid3/07
2017/05/09 17:27:35 kid1| Making directories in /var/spool/squid3/08
2017/05/09 17:27:35 kid1| Making directories in /var/spool/squid3/09
2017/05/09 17:27:35 kid1| Making directories in /var/spool/squid3/0A
2017/05/09 17:27:35 kid1| Making directories in /var/spool/squid3/0B
2017/05/09 17:27:35 kid1| Making directories in /var/spool/squid3/0C
2017/05/09 17:27:35 kid1| Making directories in /var/spool/squid3/0D
2017/05/09 17:27:35 kid1| Making directories in /var/spool/squid3/0E
2017/05/09 17:27:35 kid1| Making directories in /var/spool/squid3/0F
Apos criar o Cache inicie o serviço do Squid
#/etc/init.d/squid3 start
Diretorio onde a Pagina do Squid é armazenada
/usr/share/squid-langpack/pt-br/
PERSONALIZANDO O LOGO NO SQUID3
Com seu editor favorito, edite o arquivo "/etc/squid3/errorpage.css".
vim errorpage.css
Encontre no arquivo a tag #titles, troque o endereço pelo de sua imagem.
#titles { margin-left: 15px; padding: 10px; padding-left: 100px; background: url(‘http://192.168.0.1/img.jpg’) no-repeat left; }