No artigo eu uso editor de textos
mc caso tenha preferência em usar outro, substitua
mcedit pelo editor de sua preferência.
Obs.: Vamos considerar que eth1 é a interface para a internet e eth0 a interface para a rede local.
Instalando editor de textos mc:
# apt-get install mc
Editando as Interfaces:
# mcedit /etc/network/interfaces
Obs.: Eu coloquei as interfaces manuais, sendo que a eth0 é minha rede local, e eth1 é minha internet, configure os ips conforme necessário na sua rede.
Caso seja necessário editar as dns da eth1 internet:
# mcedit /etc/resolv.conf
auto lo eth0 eth1
iface lo inet loopback
iface eth0 inet static
address 10.1.1.1
netmask 255.0.0.0
network 10.0.0.0
broadcast 10.255.255.255
#iface eth1 inet dhcp
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
Instalando e configurando Squid
Instalando squid:
# apt-get install squid
Guardando o squid original pra mais tarde caso precise:
# cd /etc/squid
# mv squid.conf squid.conf.original
Criando Regras de squid:
# mcedit squid.conf
http_port 3128 transparent
visible_hostname debian
error_directory /usr/share/squid/errors/Portuguese
cache_mem 256 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 3 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 1024 16 50
cache_access_log /var/log/squid/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
#O cache pode ser configurado para continuar downloads de requisicoes abortadas
quick_abort_min -1 KB
quick_abort_max 0 KB
quick_abort_pct 100%
#fecha a conexao quando o a leitura do socket retornar sem mais dados para leitura
half_closed_clients off
read_timeout 60 seconds
pconn_timeout 120 seconds
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# Macs computadores de quem e Totalmente Liberado
acl macsliberados arp "/etc/squid/macsliberados"
http_access allow macsliberados
# Macs computadores de quem e bloqueado
acl macsbloqueados arp "/etc/squid/macsbloqueados"
http_access deny macsbloqueados
#Lista de Sites Bloqueados
acl bloqueados url_regex -i "/etc/squid/bloqueados"
http_access deny bloqueados
#Lista de Macs de Pessoas Autorizadas e Fazer Downloads
acl downloadsallow arp "/etc/squid/downloads.allow"
http_access allow downloadsallow
#Lista de Extensoes ex. ..exe . Bloqueadas
acl downloadsdeny url_regex -i "/etc/squid/downloads.deny"
http_access deny downloadsdeny
acl LoginMSN dst loginnet.passport.com
acl GatewayMSN url_regex gateway.dll
http_access allow CONNECT LoginMSN
http_access deny GatewayMSN
#Aqui você vai colocar a faixa de ip da sua rede local ex: 192.168.1.0/24 ou conforme abaixo:
acl redelocal src 10.0.0.0/8
http_access allow localhost
http_access allow redelocal
http_access deny all
forwarded_for off
memory_pools off
detect_broken_pconn on