Professional Documents
Culture Documents
3 WPAD / PAC
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.
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";
}
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
$ 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
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.
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;
}
}
}
types {
application/x-ns-proxy-autoconfig pac;
application/x-ns-proxy-autoconfig dat;
application/x-ns-proxy-autoconfig da;
}