Sunteți pe pagina 1din 13

Configuracin de WPAD.

Autor: Joel Barrios Dueas


Correo electrnico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
J abber ID: darkshram@jabber.org
Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
1999-2014 Joel Barrios Dueas. Usted es libre de copiar, distribuir y comunicar pblicamente la obra y hacer obras derivadas bajo las
condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo
su publicacin, a travs de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una
obra derivada, slo puede distribuir la obra generada bajo una licencia idntica a sta. Al reutilizar o distribuir la obra, tiene que dejar
bien claro los trminos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de
los derechos de autor. Los derechos derivados de usos legtimos u otras limitaciones no se ven afectados por lo anterior. Licencia
completa en castellano. La informacin contenida en este documento y los derivados de ste se proporcionan tal cual son y los autores
no asumirn responsabilidad alguna si el usuario o lector hace mal uso de stos.
Introduccin.
Este documento requiere haber estudiado y comprendido previamente
los documentos titulados Configuracin bsica de Shorewall,
Configuracin de servidor DHCP y Configuracin de Squid:
Opciones bsicas.
Por qu utilizar WPAD?
Gracias a que una gran cantidad de sitios de Internet ahora funcionan
a travs de HTTPS, resulta poco prctico configurar servidores
intermediarios (proxies) en modo transparente, pues stos solo
permiten el modo transparente para el protocolo HTTP (puerto
80/TCP), obligando a los administradores de redes de rea local a
configurar la salida del protocolo HTTPS (puerto 443/TCP) a travs de
NAT en el muro cortafuegos.
Una forma de enfrentar el problema y poder controlar y filtrar la
actividad de los usuarios a travs de HTTPS, es olvidarse del modo
transparente de Squid y utilizar una configuracin manual del servidor
proxy. Sin embargo, sto representara una enorme cantidad de
trabajo para los administradores de redes de rea local, quienes
tendran que pasar anfitrin por anfitrin a realizar la configuracin.
sta, sin embargo, se puede automatizar anunciando sta a travs de
servidores DHCP y servidores DNS, utilizando WPAD.
Eliminar la configuracin de proxy en modo trasparente y utilizar en su
lugar el mtodo descrito en este documento, combinado con una
configuracin del proxy-cache que permita el acceso hacia Internet
utilizando slo a una lista blanca y el cierre de la salida por NAT hacia
el puerto 443, adems de permitir bloquear servicios
como Facebook, permite tambin bloquear de manera eficiente
programas comoUltrasurf y Your Freedom. Si adems se cierra la
salida hacia el puerto 22/TCP, tambin se puede bloquear con xito a
programas comoTor Browser.
Acerca de WPAD.
WPAD (Web Proxy Auto-Discovery protocol) es un mtodo utilizado
por los clientes de servidores Proxy para localizar el URI de un archivo
de configuracin, valindose de mtodos de descubrimiento a travs
de DHCP y DNS.
Los clientes descargan y ejecutan un archivo, que debe
denominarse wpad.dat, utilizando el formato de auto-configuracin de
proxy (PAC,Proxy Auto-Config) diseado por Netscape en 1996 para
Netscape Navigator 2.0.
El borrador del protocolo WPAD, el cual expir en 1999, fue
elaborado por un consorcio de empresas que incluan a Inktomi Corp.,
Microsoft, Real Networks Inc. y Sun Microsystems Inc. A pesar de
tratarse de un borrador que ha expirado, la mayora de los
navegadores modernos incluyen soporte para este protocolo.
El anuncio del archivo wpad.dat hacia la red de rea local slo puede
hacerse a travs de uno de los dos siguientes mtodos:
a. A travs de un servidor DHCP.
b. A travs de un servidor DNS.
Se puede utilizar indistintamente uno u otro mtodo. Jams combine
ambos mtodos porque los anuncios seran ignorados por los
navegadores. El mtodo ms estndar es el anuncio a travs de
un servidor DHCP. Ambos mtodos requieren aadir registros en
zonas de reenvo estticas o dinmicas del servidor de DNS utilizado
por la red de rea local.
Equipamiento lgico necesario.
Instale Apache en el servidor que utilice como muro cortafuegos/proxy.
yum -y install httpd
Inicie el servicio httpd.
service httpd start
Para que el servicio httpd inicie junto con el sistema, ejecute lo
siguiente:
chkconfig httpd on
Ajustes en el muro cortafuegos.
Es necesario abrir en el muro cortafuegos el puerto 80 por TCP
(HTTP) para la red de rea local. Se asume que ya estn abiertos los
puertos correspondientes al resto de los servicios involucrados, es
decir los puertos 67 (bootps), 68 (bootpc) y 53 (domain) por TCP y
UDP.
Shorewall.
Edite el archivo el archivo /etc/shorewall/rules:
vim /etc/shorewall/rules
Elimine la configuracin de proxy transparente deshabilitando las
reglas correspondientes a la salida desde la zona correspondiente a la
red de rea local hacia los puertos 20/TCP (ftp-data), 22/TCP (ssh),
21/TCP (ftp) y 443/TCP (https) en la zona correspondiente a la red
pblica y la regla que redirige hacia el puerto 8080/TCP (webcache)
las peticiones desde la red de rea local hacia el puerto 80/TCP (http):
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
#ACCEPT loc net tcp 20,21,443
#ACCEPT loc net tcp 22
#REDIRECT loc 8080 tcp 80
#
Si necesita acceder hacia servidores SSH legtimos que utilicen el
puerto 22/TCP, aada una regla similar a la mostrada en el siguiente
ejemplo, en la cual se asume que el servidor SSH involucrado tiene
direccin IP hipottica equivalente a 200.1.2.3:
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
#ACCEPT loc net tcp 20,21,443
#ACCEPT loc net tcp 22
#REDIRECT loc 8080 tcp 80
#
ACCEPT loc net:200.1.2.3 tcp 22
Asumiendo que Squid escucha peticiones en el puerto 8080 y que slo
se permitirn conexiones desde la red de rea local, la regla que
habilita el acceso desde la red de rea local hacia los puertos 8080
(webcache) y 80 (http) del muro cortafuegos correspondera a algo
similar a lo siguiente:
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
#ACCEPT loc net tcp 20,21,80,443
#ACCEPT loc net tcp 22
#REDIRECT loc 8080 tcp 80
#
ACCEPT loc fw tcp 80,8080
Para aplicar los cambios en Shorewall, ejecute lo siguiente:
service shorewall restart
Servicio iptables.
Asumiendo que Squid escucha peticiones en la puerto 8080 y que la
red de rea local corresponde a 172.16.1.0/28, ejecute lo siguiente
para abrir los puertos 80/TCP (http) y 8080/TCP (webcache) del
servidor y cerrar la salida desde la red de rea local hacia los puertos
20 (ftp-data), 21 (ftp), 22 (ssh) y 443 (https) en el exterior:
iptables -A INPUT -s 172.16.1.0/28 -m state --state NEW \
-m tcp -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -s 172.16.1.0/28 -m state --state NEW \
-m tcp -p tcp --dport 8080 -j ACCEPT
iptables -A FORWARD -p tcp --dport 20:21 -j DROP
iptables -A FORWARD -p tcp --dport 22 -j DROP
iptables -A FORWARD -p tcp --dport 443 -j DROP

service iptables save
O bien edite el archivo /etc/sysconfig/iptables:
vim /etc/sysconfig/iptables
Y aada lo siguiente:
-A INPUT -s 172.16.1.0/28 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -s 172.16.1.0/28 -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A FORWARD -p tcp --dport 20:21 -j DROP
-A FORWARD -p tcp --dport 22 -j DROP
-A FORWARD -p tcp --dport 443 -j DROP
Y reinicie el servicio iptables:
service iptables restart
Procedimientos.
Este documento asume que se tiene configurado un servidor proxy-
cache con Squid, un servidor DHCP y un servidor DNS. Por favor,
cambie todos los valores resaltados en el procedimiento por aquellos
que correspondan al escenario de su red de rea local.
Resolucin local del nombre de anfitrin.
Edite el archivo /etc/hosts:
vim /etc/hosts
Asumiendo que la direccin IP del anfitrin es 172.16.1.1 y que el
dominio de la red de rea local es red-local.net, aada la siguiente
lnearesaltada en negrita y respetando el resto del contenido
existente en este archivo:
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.70.20 m20.alcancelibre.org.mx m20
172.16.1.1 servidor.red-local.net servidor
172.16.1.1 wpad.red-local.net wpad
Modifique lo que sea necesario para que ajuste a la configuracin
utilizada en su red de rea local.
Generar archivo wpad.dat.
Genere el directorio /var/www/wpad con permisos de acceso y
escritura para usuario y de acceso para grupo y otros (rwxr-xr-x):
mkdir -m 0755 /var/www/wpad
Cualquier error en la sintaxis har que el archivo sea imposible de
utilizar. Puede descargar un archivo plantilla desde AlcanceLibre.org
ejecutando lo siguiente:
wget http://www.alcancelibre.org/linux/secrets/wpad.dat \
-O /var/www/wpad/wpad.dat
Edite el archivo /var/www/wpad/wpad.dat y modifique lo que sea
necesario para que ajuste a la configuracin utilizada en su red de
rea local.
vim /var/www/wpad/wpad.dat
Asumiendo que la red de rea local corresponde
a 172.16.1.0/28 (172.16.1.0/255.255.255.240) y que Squid est
funcionando en el anfitrin denimonado servidor.red-local.net,
escuchando peticiones en el puerto 8080, aada el siguiente
contenido:
function FindProxyForURL(url, host)
{
if (
isInNet(host, "172.16.1.0", "255.255.255.240")
|| isInNet(host, "127.0.0.0", "255.0.0.0")
|| shExpMatch(host, "172.16.1.*")
|| shExpMatch(host, "127.*" )
|| shExpMatch(host, "localhost")
|| shExpMatch(host, "*.red-local.net")
|| isPlainHostName(host)
|| dnsDomainIs(host, ".red-local.net")
) {
return "DIRECT";
}
else
{
return "PROXY servidor.red-local.net:8080";
}
}
Es indispensable que el archivo /var/www/wpad/wpad.dat tenga
permisos de lectura para todos, de otro modo ser imposible
compartirlo a travs del servicio httpd.
chmod a+r /var/www/wpad/wpad.dat
Configuracin de Apache.
Genere el archivo /etc/httpd/conf.d/wpad.conf:
vim /etc/httpd/conf.d/wpad.conf
Aada el siguiente contenido:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName wpad.red-local.net
ServerAlias wpad
DocumentRoot /var/www/wpad
ErrorLog logs/wpad-error_log
CustomLog logs/wpad-access_log combined
<Directory "/var/www/wpad">
AddType application/x-ns-proxy-autoconfig .dat
DirectoryIndex wpad.dat
Order Deny,Allow
Deny from all
Allow from 127.0.0.0/8 172.16.1.0/28
</Directory>
</VirtualHost>
Modifique lo que sea necesario para que ajuste a la configuracin
utilizada en su red de rea local.
A fin de evitar problemas con algunos navegadores, se recomienda
que ste sea el nico anfitrin virtual en el servidor o bien que
cuando menos sea el anfitrin virtual predeterminado.
Recargue o reinicie el servicio httpd.
service httpd reload
Anuncio del archivo wpad.dat a travs de servidor DNS con zona
esttica.
Se requiere configurar el servidor DNS para que incluya dos registros,
uno que resuelva el nombre wpad.red-local.net y el otro que indique
el URI del archivo wpad.dat.
Asumiendo que tiene configurado y funcionando un servidor DNS con
una zona esttica que resuelve los nombres de anfitrin y direcciones
IP de la red de rea local, edite el archivo de zona correspondiente:
vim /var/named/data/red-local.net.zone
Cambie el nmero de serie de la zona y aada los siguientes dos
registros en la zona de reenvo en el DNS utilizado por la red de rea
local. En el ejemplo se asume que el servidor HTTP que hospeda al
archivo wpad.dat corresponde a la direccin IP 172.16.1.1:
wpad IN A 172.16.1.1
@ IN TXT "service: wpad:!http://wpad.red-
local.net:80/wpad.dat"
Reinicie el servicio named.
service named restart
Recuerde que este mtodo jams debe combinarse con el del anuncio
del archivo wpad.dat a travs de servidor DHCP.
Anuncio del archivo wpad.dat a travs de servidor DNS con zona
dinmica.
Si se trata de una zona de reenvo dinmica, ejecute nsupdate para
conectarse al servidor DNS:
nsupdate -k /etc/rndc.key
Desde el intrprete de mandatos de nsupdate, ejecute lo siguiente
para aadir los registros necesarios:
server 127.0.0.1
update add wpad.red-local.net. 86400 A 172.16.1.1
update add red-local.net. 86400 TXT "service: wpad:!http://wpad.red-
local.net:80/wpad.dat"
send
quit
Utilizando este ltimo procedimiento, es innecesario reiniciar el
servicio named.
Recuerde que este mtodo jams debe combinarse con el del anuncio
del archivo wpad.dat a travs de servidor DHCP.
Anuncio del archivo wpad.dat a travs de DHCP.
Se requirere aadir un registro en la zona de DNS correspondientea a
a zona de reenvo utilizada para resolver los nombres de la red de
rea local.
Identifique primero si utiliza una zona de reenvo esttica o dinmica.
Edite el archivo /etc/named.conf.
vim /etc/named.conf
Localice la zona de reenvo que corresponda a la red de rea llocal.
Una zona esttica almacena sus archivos de zona dentro de una ruta
relativa al directorio /var/named o bien el sub-
directorio /var/named/datay prohibe realizar actualizaciones de los
registros de la zona. Ejemplo:
zone "red-local.net" {
type master;
file "data/red-local.net.zone";
allow-update { none; };
}
Una zona dinmica almacena sus archivos de zona dentro del sub-
directorio /var/named/dynamic y permite realizar actualizaciones de
los registros de la zona a travs de una firma digital. Ejemplo:
zone "red-local.net" {
type master;
file "dynamic/red-local.net.zone";
allow-update { key "rndc-key"; };
}
Aadir registro TXT del archivo wpad.dat en servidor DNS con
zona esttica.
Se requiere configurar primero el servidor DNS para que incluya un
registro que resuelva el nombre wpad.red-local.net el cual ser
utilizado para hacer el anuncio del URI del archivo wpad.dat a travs
del servidor DHCP.
Asumiendo que tiene configurado y funcionando un servidor DNS con
una zona esttica que resuelve los nombres de anfitrin y direcciones
IP de la red de rea local, edite el archivo de zona correspondiente:
vim /var/named/data/red-local.net.zone
Cambie el nmero de serie de la zona y aada slo el siguiente
registro en la zona de reenvo en el DNS utilizado por la red de rea
local. En el ejemplo se asume que el servidor HTTP que hospeda al
archivo wpad.dat corresponde a la direccin IP 172.16.1.1:
wpad IN A 172.16.1.1
Reinicie el servicio named.
service named restart
Aadir registro TXT del archivo wpad.dat en servidor DNS con
zona dinmica.
Si se trata de una zona dinmica, ejecute nsupdate para conectarse
al servidor DNS:
nsupdate -k /etc/rndc.key
Desde el intrprete de mandatos de nsupdate, ejecute lo siguiente
para aadir el registro necesario:
server 127.0.0.1
update add wpad.red-local.net. 86400 A 172.16.1.1
send
quit
Utilizando este procedimiento, es innecesario reiniciar el
servicio named.
Configuracin de servidor DHCP.
Asumiendo que tiene configurado y funcionando un servidor DHCP
para gestionar la asignacin de las direcciones IP utilizadas por la red
de rea local, edite el archivo /etc/dhcp/dhcpd.conf:
vim /etc/dhcp/dhcpd.conf
Aada en la configuracin del servidor DHCP, las dos siguientes
opciones:
option ip-forwarding off;
option domain-name "red-local.net";
option ntp-servers 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org,
3.pool.ntp.org;
option wpad-url code 252 = text;
option wpad-url "http://wpad.red-local.net/wpad.dat\n";

include "/etc/rndc.key";

zone localdomain. {
primary 127.0.0.1;
key rndc-key;
}
Reinicie el servicio dhcpd.
service dhcpd restart
Recuerde que este mtodo jams debe combinarse con el del anuncio
del archivo wpad.dat a travs de servidor DNS.
Comprobaciones.
Si todo lo anterior concluy sin errores, slo resta verificar que la
configuracin de los anfitriones con Windows. Vaya a Opciones de
Internet Conexiones Configuracin LAN y verifique que est
habilitada la casilla Autodetectar configuracin de proxy. En algunos
casos es posible que se tenga que definir tambin el URI del archivo
de configuracin (http://wpad.red-local.net/wpad.dat).

Opciones de Internet - Configuracin de Proxy.
Para los anfitriones con GNU/Linux con GNOME 2 como escritorio
slo hay que establecer Configuracin automtica del Proxy en
lasPreferencias de Proxy de la red. Deje vaco el campo de URL de
configuracin automtica para forzar la deteccin del archivo wpad.dat
anunciado.

Configuracin de Proxy de la red en GNOME 2.
Tambin pude configurar las opciones de cada navegador que lo
requiera para que auto-detecte la configuracin del servidor proxy.

Opciones de Firefox - autodetectar configuracin del proxy.

S-ar putea să vă placă și