dopaminadarktheme
Full Dopamina Dark Theme
apt-get install squid3 squid3-commonEntre no diretório /etc/squid3/ Vamos fazer um backup do arquivo de configuração do Squid
cp /etc/squid3/squid.conf /etc/squid3/squid.conf.defaultPara a configuração do Squid utilizaremos como base o arquivo squid.conf que pode ser baixado com o comando abaixo
wget http://jaccon.com.br/downloads/squid/squid.conf.zipNeste arquivo de configuração estaremos considerando que sua rede trabalha no range 192.168.0.0/24 e teremos algumas regras específicas para o departamento que estaremos chamando de produção Descompacte o arquivo dentro da /etc/squid3/squid.conf
unzip squid.conf.zipEdite o arquivo com o aplicativo de sua preferência em nosso caso estaremos utilizando o poderoso Vi:
vi /etc/squid3/squid.confFizemos uma pequena alteração neste arquivo no qual mudaremos a porta padrão do Squid 3148 para 8888. Caso queira manter a porta padrão fica por seu critério. O Squid para funcionar corretamente precisa de poucas linhas. As customizações poderão ser adicionadas na sequência:
http_port 8888 transparent visible_hostname firewall.bluesystems error_directory /usr/local/blue.firewall/proxy/errors/ cache_mem 64 MB maximum_object_size_in_memory 7192 KB maximum_object_size 700 MB minimum_object_size 10 KB cache_dir ufs /var/spool/squid3 1024 16 256 refresh_pattern ^ftp: 10 20% 570 refresh_pattern ^gopher: 10 20% 570 refresh_pattern . 10 20% 570 cache_access_log /var/log/squid3/access.log cache_mgr [email protected] dns_nameservers 208.67.220.220 dns_nameservers 8.8.8.8 # acls 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 http_access allow allExplicando as principais linhas do arquivo http_port 8888 transparent Porta TCP no qual o Squid irá rodar o daemon. A flag transparent diz que o Squid trabalhará em modo Proxy transparente. acl all src 0.0.0.0/0.0.0.0 Estamos dizendo que todo o tráfego que passar pela interface local poderá ser cacheada pelo Squid. Criando uma regra de controle de sites bloqueados por IP Eu acho mais organizado criar uma pasta chamada acls dentro do diretório de configuração do Squid para deixar todos os arquivos de acls. Sendo assim caso queira seguir meu exemplo entre com o comando abaixo
mkdir -p /etc/squid3/aclsVamos criar o arquivo /etc/squid3/acls/full_allow_ipaddress.acl onde adicionaremos os ips que poderão ter acesso full aos sites que passarão pelo squid. O arquivo é simples basta adicionar os IPs um abaixo do outro e você pode usar ainda o comando echo para apendar os ips sem a necessidade de abrir com seu editor padrão:
echo "192.168.0.1" >> /etc/squid3/acls/full_allow_ipaddress.acl echo "192.168.0.2" >> /etc/squid3/acls/full_allow_ipaddress.acl echo "192.168.0.3" >> /etc/squid3/acls/full_allow_ipaddress.aclAgora adicionaremos uma ACL que levará os domínios dos sites que gostaríamos de bloquear. Para isto adicione em seu squid.conf as linhas abaixo:
# deny access acl blockeddomain dstdomain "/etc/squid3/acls/blocked.domains.acl" http_access deny blocked domainNo arquivo /etc/squid3/acls/blocked.domains.acl deve conter todos os domínios dos sites que gostaría de bloquear para os usuários. Só os usuário da acl full_allow_ipaddress não passarão por esta regra.
echo ".facebook.com" >> /etc/squid3/acls/blocked.domains.acl echo "orkut.com" >> /etc/squid3/acls/blocked.domains.acl echo "twitter.com" >> /etc/squid3/acls/blocked.domains.aclBloqueando o download de arquivos através do mimetype Uma prática simples que pode ser adicionada é o controle de downloads de arquivos como .exe , .com, .bat etc.. Para isto adicone as seguintes linhas de comando no seu squid.conf
# filter files acl blockfiles urlpath_regex "/etc/squid3/blocked.files.acl" # Deny all blocked extension #deny_info ERR_BLOCKED_FILES blockfiles http_access deny blockfilesDentro do arquivo utilize expressões regulares para especificar os mimetypes dos arquivos como no exemplo abaixo:
\.[Aa][Vv][Ii]$ \.[Mm][Pp][Gg]$ \.[Mm][Pp][Ee][Gg]$ \.[Mm][Pp]3$ \.[Pp][Ii][Ff]$ \.[Bb][Aa][Tt]$ \.[Ee][Xx][Ee]$ \.[Mm][Ss][Tt]$ \.[Tt][Oo][Rr][Rr][Ee][Nn][Tt]$ \.[Rr][Aa][Rr]$Traduzindo: MPG, MPEG, MP3, PIF, BAT, EXE, MST, TORRENT, RAR Criando regras de controle por departamento Digamos que o departamento de produção terá acesso apena a um determinado site e todos os demais serão bloqueados. Para isto adicione a acl abaixo em seu arquivo squid.conf
# CTM ACLS acl acl_ctm_ips src "/etc/squid3/acls/producao_ips.acl" acl acl_ctm_allow_urls url_regex "/etc/squid3/acls/producao_allow_urls.acl" http_access deny acl_ctm_ips !acl_ctm_allow_urlsDentro do arquivo producao_ips.acl vamos adicionar os endereços IP das máquinas que fazem parte da produção. Siga o exemplo do ítem anterior. No arquivo producao_allow_urls.acl você deve adicionar os domínios dos sites que os usuáios da produção poderão ter acesso. Proxy transparente Agora que temos parte de nossas regras no Squid podemos fazer o Prerouting da porta 80 para 8888 pelo Iptables. Entre com os seguintes comandos abaixo.
iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8888 iptables -A INPUT -p tcp --dport 8888 -i eth0 -j DROP iptables -A FORWARD -p tcp --dport 8888 -i eth0 -j DROPA primeira linha diz para que todo o tráfego da porta 80 seja enviada para 8888 ( Squid ). Na segunda linha estamos informando que todo o tráfego que for destinada a interface eth0 ( internet ) na porta 8888 seja dropada. A terceira linha é um complemento que diz que todo o tráfego que entrar ou sair da interface eth0 que destinada a porta 8888 seja dropada. Agora que temos todas as regras adicionadas execute
service squid3 stop service squid3 startPara testar se está funcionando entre com o comando
tail -f /var/log/squid3/access.logUtilize a internet normalmente e veja as saídas dos acessos pelo arquivo de log. Esperamos que tenham gostado. Para dúvida entre em contato conosco através do e-mail jaccon at gmail.com
Assine a newsletter para receber em seu email as publicações atualizadas neste blog