Squid e firewall em 5 minutos
Este é um modelo simples para instalação e configuração do Squid e iptables. Baseado em dicas rápidas e transcrição de arquivos de configuração.
Parte 2: Arquivos de configuração
O arquivo de configuração do Squid se chama squid.conf, devem estar dentro de /etc/squid.
Neste arquivo estão todas as configurações para o funcionamento do squid.
Aqui estamos configurando um proxy transparente na porta 3128 (http_port 3128 transparent). A porta 3128 é onde o squid irá escutar nada impede de alterar esta porta.
Lembrando que para usar o bloqueio por MAC o squid deverá ser compilado com os parâmetros"--enable-arp-acl", para o pacote .tgz essa opção já esta em uso.
Neste arquivo estão todas as configurações para o funcionamento do squid.
Squid.conf
O squid.conf contem todas as regras do squid. Segue abaixo um exemplo.Aqui estamos configurando um proxy transparente na porta 3128 (http_port 3128 transparent). A porta 3128 é onde o squid irá escutar nada impede de alterar esta porta.
http_port 3128 transparent
visible_hostname MeuProxyServer
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_dir ufs /var/cache/squid 200 16 256
# Localizacao do logs de acesso, dica para visualize-los em tempo de execução utilize tail -f /var/log/squid/acess.log
access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
# Endereço de rede e sua mascara
acl all src 192.168.1.0/24
always_direct allow all
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 # https
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, news
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 purge method PURGE
acl CONNECT method CONNECT
acl MSNDLL url_regex -i gateway.dll
acl MSN dstdomain loginnet.passport.com
acl liberados dstdomain "/etc/squid/liberados"
acl site_porno urlpath_regex "/etc/squid/sitequente"
acl site_geral urlpath_regex "/etc/squid/sitegeral"
acl palavra_quente url_regex -i "/etc/squid/palavraquente"
acl palavra_geral url_regex -i "/etc/squid/palavrageral"
acl url_quente dstdomain "/etc/squid/urlquente"
acl url_geral dstdomain "/etc/squid/urlgeral"
# Url que não deve ser cacheada
acl semcache urlpath_regex "/etc/squid/semCache" \?
no_cache deny semcache
# Dias da semana S - Sunday M - Monday T - Tuesday W - Wednesday H - Thursday F - Friday A - Saturday
# Horários usados para liberar
acl horario_manha time M T W H F 07:00-11:59 # Libera das 17:56 as 07:00 – fora do expediente
acl horario_tarde time M T W H F 13:00-17:55 #Libera das 12:00 as 13:00 – Horário de almoco
# Utilizado para bloquear por MAC,
acl mac arp "/etc/squid/mac"
http_access allow MSNDLL
http_access allow MSN
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 localhost
## Nega pelo horario
http_access deny mac horario_manha
http_access deny mac horario_tarde
http_access deny site_geral horario_manha
http_access deny site_geral horario_tarde
http_access deny palavra_geral horario_manha
http_access deny palavra_geral horario_tarde
http_access deny url_geral horario_manha
http_access deny url_geral horario_tarde
## Nega indenpendente de tudo
http_access allow liberados
http_access deny site_porno
http_access deny palavra_quente
http_access deny url_quente
#LIBERANDO REDE INTERNA
http_access allow all
icp_access allow all
# Localização onde esta os erros em português
error_directory /usr/share/squid/errors/Portuguese
visible_hostname MeuProxyServer
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_dir ufs /var/cache/squid 200 16 256
# Localizacao do logs de acesso, dica para visualize-los em tempo de execução utilize tail -f /var/log/squid/acess.log
access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
# Endereço de rede e sua mascara
acl all src 192.168.1.0/24
always_direct allow all
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 # https
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, news
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 purge method PURGE
acl CONNECT method CONNECT
acl MSNDLL url_regex -i gateway.dll
acl MSN dstdomain loginnet.passport.com
acl liberados dstdomain "/etc/squid/liberados"
acl site_porno urlpath_regex "/etc/squid/sitequente"
acl site_geral urlpath_regex "/etc/squid/sitegeral"
acl palavra_quente url_regex -i "/etc/squid/palavraquente"
acl palavra_geral url_regex -i "/etc/squid/palavrageral"
acl url_quente dstdomain "/etc/squid/urlquente"
acl url_geral dstdomain "/etc/squid/urlgeral"
# Url que não deve ser cacheada
acl semcache urlpath_regex "/etc/squid/semCache" \?
no_cache deny semcache
# Dias da semana S - Sunday M - Monday T - Tuesday W - Wednesday H - Thursday F - Friday A - Saturday
# Horários usados para liberar
acl horario_manha time M T W H F 07:00-11:59 # Libera das 17:56 as 07:00 – fora do expediente
acl horario_tarde time M T W H F 13:00-17:55 #Libera das 12:00 as 13:00 – Horário de almoco
# Utilizado para bloquear por MAC,
acl mac arp "/etc/squid/mac"
http_access allow MSNDLL
http_access allow MSN
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 localhost
## Nega pelo horario
http_access deny mac horario_manha
http_access deny mac horario_tarde
http_access deny site_geral horario_manha
http_access deny site_geral horario_tarde
http_access deny palavra_geral horario_manha
http_access deny palavra_geral horario_tarde
http_access deny url_geral horario_manha
http_access deny url_geral horario_tarde
## Nega indenpendente de tudo
http_access allow liberados
http_access deny site_porno
http_access deny palavra_quente
http_access deny url_quente
#LIBERANDO REDE INTERNA
http_access allow all
icp_access allow all
# Localização onde esta os erros em português
error_directory /usr/share/squid/errors/Portuguese
Lembrando que para usar o bloqueio por MAC o squid deverá ser compilado com os parâmetros"--enable-arp-acl", para o pacote .tgz essa opção já esta em uso.
estou trabalhando para fazer um pacote completo onde ele instala tudo e jah joga os script no lugar devido e seu artigo me deu algumas ideias.
mais uma vez parabens pelo artigo.