terça-feira, 28 de julho de 2009

Proxy Transparente usando Opensolaris

Aproveitando a dica anterior de configuração de squid em zone ( http://joaocep.blogspot.com/2009/07/configurando-squid-em-uma-zone.html ), que tal colocar essa zone como gateway de proxy transparente?
É comum em redes usar o mascaramento NAT, e para elevar o nível de segurança vamos colocá-lo dentro de uma zone.

O Opensolaris utiliza o ipfilter (ipf) como firewall, ferramenta "parecida" com o Packet Filter (pf) dos *BSD. há algumas semelhanças e diversas features devido ao framework de serviços svc do Solaris.

O que é necessário:

Opensolaris 2009.06

Se o pacote ipfilter não estiver instalado:
# svcs -xv ipfilter
svcs: Pattern 'ipfilter' doesn't match any instances

Instale-o:
# pkg install SUNWipf

Verifique o serviço:
# svcs -xv ipfilter
svc:/network/ipfilter:default (IP Filter)
State: disabled since Tue Jul 28 15:00:28 2009
Reason: Disabled by an administrator.
See: http://sun.com/msg/SMF-8000-05
See: man -M /usr/share/man -s 5 ipfilter
Impact: This service is not running.

Habilitando o ipfilter como serviço
# svcadm enable svc:/network/ipfilter

Habilitando o repasse em pacotes
# svcadm enable ipv4-forwarding


Regra de firewall:

crie um arquivo /etc/ipf/ipnat.conf

# rdr squid0 0.0.0.0/0 port 80 -> 127.0.0.1 port 3128

Habilite o nat
# ipnat -Cf /etc/ipf/ipnat.conf

Verificando se as regras estão ok.

# ipnat -l
List of active MAP/Redirect filters:
rdr squid0 0.0.0.0/0 port 80 -> 127.0.0.1 port 3128 tcp

List of active sessions:
RDR 127.0.0.1 3128 <- -> 189.73.192.209 80 [192.168.10.135 1321]
RDR 127.0.0.1 3128 <- -> 74.125.113.102 80 [192.168.10.135 1319]

Veririfique os logs do squid
# tail -f /var/log/squid/access.log
1248816780.483 232 192.168.10.135 TCP_MISS/200 1248 GET http://bn.uol.com.br/js.ng/site=uolbr&chan=homeuol&subchan=capa&affiliate=uolbrhomeuol&size=slot&page=2&conntype=1&expble=0&reso=800x600&tile=240914129032793? - DIRECT/200.221.6.19 application/x-javascript

Beleza, seu proxy já está habilitado em modo transparente


Bibliografia:

http://blogs.sun.com/tonyn/entry/firewall_configuration_in_opensolaris_2009
http://sigtar.com/2009/04/22/opensolaris-configuring-squid-as-transparent-proxy/