You are on page 1of 3

Gua de configuracin del proxy pfSense 2.

3 WPAD / PAC

Revisado el 31 de agosto de 2017 para pfSense 2.3.

NOTA: esta gua ya no est disponible, consulte la gua actualizada basada en pfSense 2.4 aqu.

pfSense realiz algunos cambios a partir de la versin 2.3 para usar nginx, lo que result en que mi
gua anterior se volviera redundante. Desestim la gua anterior y arm esta nueva versin que
admite pfSense 2.3+.

Ya no utilizo un proxy en mi red para filtrar anuncios ya que pas a pfBlockerNG, lo que
proporciona mayor control y flexibilidad. Recib varias solicitudes de una gua actualizada, as que
aqu est. Inicialmente configur mi proxy para que funcionara de forma transparente, pero este
mtodo no funcion con algunos cambios recientes que realic en mi red. Para permitir que mi
sistema de filtrado siguiera funcionando tuve que configurar cada dispositivo por separado para usar
el puerto 3128, lo cual era un inconveniente. Un sistema llamado WPAD / PAC (protocolo de
descubrimiento automtico de proxy web y configuracin automtica de proxy) prometa una
solucin fcil y la posibilidad de que los dispositivos se configuraran automticamente al conectarse
a mi red. Esto no fue tan fcil como esperaba, en parte debido a los diferentes dispositivos que
tienen diferentes formas de acceder a la informacin y en parte debido a mi configuracin de red
especfica. He invertido un poco de tiempo investigando cmo hacer que esto funcione y quise
documentar esto para m y para otros que pueden haber tenido problemas para hacerlo funcionar en
el pasado.

Crear archivos de descubrimiento proxy

Primero crearemos los archivos de configuracin del proxy. Tres de ellos son necesarios debido a
diferentes navegadores que utilizan diferentes nombres de archivo para obtener informacin de
proxy.

Crearemos el archivo proxy.pac inicial y luego crearemos dos archivos "vinculados" a los archivos
wpad.dat y wpad.da, lo que facilitar su sincronizacin.

ee /usr/local/www/nginx/proxy.pac

Pega lo siguiente en el archivo que acabas de crear. Cambie mi direccin de proxy (192.168.1.1)
obviamente a la suya.

function FindProxyForURL(url,host)
{
if(isPlainHostName(host))
{
return "DIRECT";
}

if(isInNet(host,"127.0.0.1","255.255.255.0"))
{
return "DIRECT";
}

return "PROXY 192.168.1.1:3128";


}
Este archivo PAC comprueba si el host que se busca es un nombre de host simple, es decir,
"intranet", o es la red localhost (127.0.0.1), si lo es, el acceso pasa por alto el proxy ("DIRECT") .
Si no se cumple ninguna de las condiciones anteriores, el acceso se realiza a travs del proxy y el
puerto 3128.

Tengo que hacer estos controles porque realizo algn desarrollo web y el desarrollo se prueba en un
servidor local y no quiero que pase por mi proxy. Es posible ampliar la funcionalidad del archivo
PAC para incluir caractersticas tales como listas negras / blancas, etc.

Cree las otras dos variaciones de archivos generando enlaces. Esto es preferible, ya que ayuda a
mantener sincronizadas todas las versiones si realiza cambios en el futuro.

ln -s /usr/local/www/nginx/proxy.pac /usr/local/www/nginx/wpad.dat

ln -s /usr/local/www/nginx/proxy.pac /usr/local/www/nginx/wpad.da

Verifique que su carpeta se vea algo as cuando haya terminado

$ ls -l
-rw-r--r-- 1 root wheel 537 Jul 19 12:07 50x.html
-rw-r--r-- 1 root wheel 612 Jul 19 12:07 index.html
-rw-r--r-- 1 root wheel 212 Aug 6 11:43 proxy.pac
lrwxr-xr-x 1 root wheel 9 Aug 6 11:45 wpad.da -> proxy.pac
lrwxr-xr-x 1 root wheel 9 Aug 6 11:45 wpad.dat -> proxy.pac

Configurar un segundo servidor web nginx

Las mejores prcticas dictan que solo deberamos permitir el acceso al pfSense webConfigurator a
travs de HTTP seguro y en un puerto diferente al 443. Esto nos deja un pequeo problema. El
servidor de archivos predeterminado y nico del sistema est dedicado a servir las pginas del
webConfigurator en este puerto seguro y no puede usarse simultneamente para servir datos de
WPAD en el puerto 80. Para poder servir los archivos de configuracin de WAD, debemos crear un
segundo servidor de archivos que se encargue de las solicitudes de WPAD para nosotros.

Comencemos duplicando el archivo de configuracin de nginx predeterminado del sistema.


Podemos usar esto como base para nuestra segunda instancia de nginx. No intente y cree este
archivo en la carpeta / var / etc, ya que se eliminar al reiniciar. Usaremos la misma carpeta donde
estn almacenados nuestros archivos de configuracin.

ee /usr/local/etc/nginx/nginx-wpad.conf
Pegue los contenidos a continuacin en este archivo.

worker_processes 1;

events {
worker_connections 1024;
}

http {
include wpad-mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;

server {
listen 80;
server_name wpad;

location / {
root /usr/local/www/nginx;
index index.html index.htm;
}
}
}

Agregar tipos de archivos adicionales

Vamos a crear un wpad-mime.types especfico para esta instancia de nginx ingresando


ee /usr/local/etc/nginx/wpad-mime.types. Pega las siguientes lneas en este archivo.

types {

text/html html htm shtml;


text/css css;
image/jpeg jpeg jpg;
text/plain txt;

application/x-ns-proxy-autoconfig pac;
application/x-ns-proxy-autoconfig dat;
application/x-ns-proxy-autoconfig da;
}

You might also like