E ai pessoal, tudo certo?
Então, aqui vamos dar uma olhada na instalação e configuração de um proxy Squid operando como transparente e também as regras que serão necessárias adicionar nas regras de firewall (PF).
Vamo lá..
Instalação
Realizei a instalação pelo package manager do OpenBSD onde tem os pacotes pré-compilados, mas nada impede de você instalar pelo Ports.
Package Manager (pkg_add)
Primeiro de tudo vamos exportar a variável com o mirror onde se encontra os pacotes:
# export PKG_PATH=ftp://ftp.das.ufsc.br/pub/OpenBSD/4.4/packages/i386/
Vamos instalar o pacote:
# pkg_add -i -v squid
A versão do Squid que instalei aqui foi a squid-2.7.STABLE3-ldap.
Ports
# cd /usr/ports/www/squid
# env FLAVOR=transparent make install
Configuração
Squid
Vamos configurar o Squid para subir no boot.
Edite o arquivo /etc/rc.local com seu editor de texto e adicione as linhas abaixo logo após # Add your local startup actions here.
# Squid
/usr/local/sbin/squid
Vamos editar agora o arquivo de configuração do Squid, que é o /etc/squid/squid.conf.
Faremos uma configuração básica do Squid.
http_port 3128 transparent
visible_hostname pr0xy.conceicao.eti.br
error_directory /usr/local/share/squid/errors/Portuguese
# Logs
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
# SVN
extension_methods REPORT MERGE MKACTIVITY CHECKOUT PROPFIND
# ACLs
acl all src 0.0.0.0/0.0.0.0
acl rede src 192.168.1.0/24
acl SSL_Ports port 443 563 2096
acl Safe_ports port 80 21 443 563 70 210 1025-65535
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 CONNECT method CONNECT
#Pessoas com acesso total
acl vips arp "/etc/squid/controle.vips"
#BlackList
acl blacklist dstdomain "/etc/squid/controle.blacklist"
##
# Permite ou Nega
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow vips
http_access deny blacklist
http_access allow rede
http_access deny all
##
Obs.: Crie os arquivos /etc/squid/controle.vips e /etc/squid/controle.blacklist
Agora temos que iniciar o Squid com a opção -z para que seja criado os diretórios de swap.
# /usr/local/sbin/squid -z
Pronto, agora já podemos iniciar o squid!
# /usr/local/sbin/squid
Sempre que for feita uma alteração no arquivo de configuração do Squid, devemos executar o comando a seguir para que as configurações sejam recarregadas:
# /usr/local/sbin/squid -k reconfigure
PF
O arquivo de configuração do PF é o /etc/pf.conf (padrão). Adicione/adapte as seguintes regras:
rdr on $int_if  inet proto tcp from any to any port www-> 127.0.0.1 port 3128
pass in on $int_if inet proto tcp from any to 127.0.0.1 port 3128
pass out on $ext_if inet proto tcp from any to any port www
É preciso também liberar o acesso do Squid ao /dev/pf para que o mesmo consulte o filtro de pacotes já que o padrão é somente o root ter acesso. O Squid roda com o grupo _squid.
# chgrp _squid /dev/pf
# chmod g+rw /dev/pf
Então é isso.. qualquer coisa é só dar um grito. =]
T+