Vous êtes sur la page 1sur 20

CONFIGURACIN DEL ROUTER LINUX

Paso 1:
Configurar las placas de red, eth0 (192.168.0.7/24), es la que
nos dar la salida a internet (ethX).
Configurar eth1 como red local (192.168.10.1/24), ser
nuestra red local (ethY).
Configurar las iptables para que trabaje como router.
#iptables F
#iptables t nat F
#modprobe iptable_nat
#echo 1 > /proc/sys/net/ip_forward

CentOS 6
#iptables t nat A POSTROUTING o ethX j SNAT --to M.Y.Z.W

CentOS 5
#iptables A POSTROUTING t nat s W.Z.Y.M o ethX
MASQUERADE

o probar con la siguiente lnea que es la que me funciono


#iptables t nat A POSTROUTING o ethX j MASQUERADE

Siendo X la interfase conectada a internet y M.Y.Z.W la


direccin IP de la interfaz, y W.Z.Y.M la red local que est
conectada a la ethY local

Paso 2:
Configurar las iptables para que el proxy funcione de manera
transparente.
Debemos redireccionar todo nuestro trfico LAN que ingresa
por la interfaz al proxy:
#iptables t nat A PREROUTING i ethY p tcp --dport 80 j
DNAT --to-destination M.Y.Z.W:3128
#iptables t nat A PREROUTING i ethY p tcp --dport 80 j
DNAT --to-destination M.Y.Z.W:8080

Siendo Y el nmero de interfaz de nuestra red local.


Paso 3:
SELinux y el servicio Squid, implementar una poltica para que
SELinux le permita al Squid aceptar conexiones de los clientes
desde cualquier IP
En CentOS 5:
#setsebool P squid_connect_any 1

En Centos 6:
#setsebool P squid_use_tproxy 1

Paso 4:
Instalar squid y configurar el archivo squid.conf (ya lo tengo
configurado)

Errores de Squid con los que nos podemos encontrar:


#init_cache_dir /var/spool/squid Iniciando squid:

[FALL]

Problema: Este error se debe a la creacin de la estructura de


directorios dentro de /var/spool/squid.
Solucin:
- Borrar el contenido de la ruta /var/spool/squid:
#rm rf /var/spool/squid/*

- Parar squid, si es que est funcionando:


#service squid stop

- Crear la estructura de directorios:


#squid z

- Reiniciamos el squid:
#service squid restart

CONFIGURACIN DE PROXY A TRAVS DE WPAD


Muchos sitios de internet, funcionan a travs del protocolo
HTTPS , por lo que resulta poco prctico configurar servidores
intermediarios (proxies) en modo transparente, ya que solo
permiten 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 manera de filtrar la actividad de los usuarios a travs de
HTTPS, es olvidarse del modo transparente del Squid y utilizar
una configuracin manual del servidor proxy. Sin embargo,
esto representara como administrador de red una enorme
cantidad de trabajo, ya que se debera pasar anfitrin por
anfitrin a realizar la configuracin. Una manera de
automatizar la configuracin es mediante servidores DHCP y
servidores DNS, utilizando WPAD.

WPAD nos permite eliminar la configuracin del proxy en


modo transparente y utilizar otro tipo de configuracin, con
una configuracin de proxy-cach que permita el acceso hacia
Internet utilizando slo una lista blanca y el cierre de la
salida por NAT hacia el puerto 443, adems de permitir
bloquear servicios como Facebook, y de bloquear de manera
eficiente programas que no queremos que saturen el trfico
de nuestra red. Si adems cerramos la salida hacia el puerto
22/TCO y la salida hacia los puertos 53/UDP y 53/TCP, tambin
se puede bloquear con xito programas como (Ver los que
funcionan en ese puerto, ver si se puede bloquear Spotify).
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 autoconfiguracin de proxy (PAC, Proxy Auto-Config) diseado por
Netscape en 1996 para Netscape Navigator 2.2.
El borrador del protocolo WPAD, expir en 1999, pero a pesar
de haber 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 siguientes mtodos:
a. Mediante un servidor DHCP.
b. Mediante un servidor DNS.
Se pueden utilizar el que se prefiera, yo opto por utilizar un
servidor DHCP. Se recomienda no utilizar de manera
simultnea ambos mtodos ya que los anuncios seran
ignorados por los navegadores. Utilizar un servidor DHCP es el

mtodo estndar. Ambos mtodos requieren aadir registros


en zonas de reenvo estticas o dinmicas del servidor de DNS
utilizado por la red de rea local.
Instalaciones Necesarias
Servidor Apache
Debemos instalar un servidor apache en el servidor que
utilizamos como cortafuegos (firewall)/ proxy
yum y install httpd

Iniciamos el servidor Apache


service httpd start

Para que el servidor Apache inicie junto con el sistema


chkconfig httpd on

Ajustes en el Firewall
Es necesario abrir el muro cortafuegos el puerto 80 por TCP
(HTTP) para la red de rea local. Asumiremos 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.
Shorwewall
Editaremos el archivo /etc/shorewall/rules:
gedit /etc/shorewall/rules

Eliminamos 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), 53/TCP (dns) 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
#
#ACCEPT loc
#ACCEPT loc
#ACCEPT loc
#ACCEPT loc
#REDIRECT
#

DEST

PROTO

net
net
net
net
loc

tcp
tcp
tcp
udp
8080

DEST
PORT
20,21,443
22
53
53
tcp
80

SOURCE
PORT(S)1

Si necesita accedes hacia servidores SSH legtimos que


utilicen el puerto 22/TCP, debemos aadir 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
#
#ACCEPT loc
#ACCEPT loc
#ACCEPT loc
#ACCEPT loc
#REDIRECT
#
ACCEPT loc

DEST

PROTO

net
net
net
net
loc

tcp
tcp
tcp
udp
8080

net:200.1.2.3

DEST
PORT
20,21,443
22
53
53
tcp
80
tcp

SOURCE
PORT(S)1

22

Si necesitamos acceder hacia servidores DNS legtimos,


aadimos un par de reglas similares a las mostradas en el
siguiente ejemplo, en el cual asumimos que el servidor DNS
involucrado tiene la direccin IP hipottica equivalente a
8.8.8.8:
#ACTION SOURCE
#
#ACCEPT loc
#ACCEPT loc
#ACCEPT loc
#ACCEPT loc
#REDIRECT
#
ACCEPT loc
ACCEPT loc
ACCEPT loc

DEST

PROTO

net
net
net
net
loc

tcp
tcp
tcp
udp
8080

net:200.1.2.3
net:8.8.8.8
net:8.8.8.8

DEST
PORT
20,21,443
22
53
53
tcp
80
tcp
tcp
udp

SOURCE
PORT(S)1

22
53
53

Otra solucin sera configurar un servidor DNS dentro de la


red de rea local para poder prescindir de abrir la salida hacia
los puertos 53/TCP y 53/UDP.

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, ac es donde se encuentra el
squid) y 80 (http) del muro cortafuegos correspondera a algo
similar a lo siguiente:
#ACTION SOURCE
#
#ACCEPT loc
#ACCEPT loc
#REDIRECT
#
ACCEPT loc
ACCEPT loc
ACCEPT loc
ACCEPT loc
ACCEPT loc
ACCEPT loc

DEST

PROTO

net
net
loc

tcp
tcp
8080

net:200.1.2.3
net:8.8.8.8
net:8.8.8.8
net:8.8.4.4
net:8.8.4.4
fw
tcp

DEST
PORT
20,21,80,443
22
tcp
80
tcp
tcp
udp
tcp
udp
80,8080

SOURCE
PORT(S)1

22
53
53
53
53

Y finalmente reiniciamos el shorewall:


service shorewall restart

Servicio iptables
Asumiendo que Squid escucha peticiones en el puerto 8080 y
que la red de rea local corresponde a 172.16.1.0/28,
ejecutaremos 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
iptables -A FORWARD -p tcp --dport 53 -j DROP
iptables -A FORWARD -p udp --dport 53 -j DROP

Ejecutamos el siguiente comando para guardar las iptables


service iptables save

O bien debemos editar el archivo /etc/sysconfig/iptables y


aadir las siguientes lneas:
-A
-A
-A
-A
-A
-A
-A

INPUT -s 172.16.1.0/28
INPUT -s 172.16.1.0/28
FORWARD -p tcp --dport
FORWARD -p tcp --dport
FORWARD -p tcp --dport
FORWARD -p tcp --dport
FORWARD -p udp --dport

-m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT


-m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
20:21 -j DROP
22 -j DROP
443 -j DROP
53 -j DROP
53 -j DROP

Y nuevamente reiniciamos el servicio de iptables:


service iptables restart

Procedimientos
Asumiremos que ya tenemos configurado el servidor proxycach con Squid, un servidor DHCP y un servidor DNS.
Debemos tener en cuenta de reemplazar los valores de este
ejemplo por los valores que correspondan a nuestra red de
rea local.
Resolucin del nombre de anfitrin
Editamos el archivo /etc/hosts:
gedit /etc/hosts

Asumiendo que la direccin IP del anfitrin es 172.16.1.1 y


que el dominio de de la red de rea local es red-local.net,
aadimos la siguiente lnea resaltada en negrita y respetando
el resto del contenido existente en el archivo:
127.0.0.1
::1
192.168.70.20
172.16.1.1
172.16.1.1

localhost.localdomain localhost
localhost6.localdomain6 localhost6
m20.alcancelibre.org.mx
m20
servidor.red-local.net servidor
wpad.red-local.net
wpad

Modifiquemos lo que sea necesario para que el ajuste a la


configuracin utilizada en nuestra red local.
A fin de que la red de rea local tambin pueda resolver este
nombre, se requiere tambin aadir un registro tipo A en la
zona DNS correspondiente a la zona de reenvo utilizada para
resolver los nombres de la red de rea local.
Identifique primero si utiliza una zona de reenvo dinmica o
esttica. Para este fin, editamos el archivo /etc/named.conf
gedit /etc/named.conf

Debemos localizar la zona de reenvo que corresponda a la


red de rea local.

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. Por ejemplo:
zone "red-local.net" {
type master;
file "dynamic/red-local.net.zone";
allow-update { key "rndc-key"; };
}

Una zona esttica almacena sus archivos de zona dentro de


una ruta relativa al directorio /var/named o bien el subdirectorio /var/named/data y prohbe realizar actualizaciones
de los registros de la zona. Por ejemplo:
zone "red-local.net" {
type master;
file "red-local.net.zone";
allow-update { none; };
}

Resolver nombre de anfitrin en el Servidor DNS con zona


dinmica
Si se trata de una zona dinmica, ejecutamos el nsupdate
para conectar al servidor DNS:
nsupdate k /etc/rndc.key

Desde el intrprete de mandatos nsupdate, debemos


ejecutar 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 necesario reiniciar el


servidor named.

Resolver nombre de anfitrin en el Servidor DNS con zona


esttica
Se requiere configurar primero el servidor DNS para que
incluya un registro que resuelva el nombre de wpad.redlocal.net el cual ser utilizado para hacer el anuncio 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 nombres de anfitrin
y direcciones IP de la red de rea local, editamos el archivo de
zona correspondiente:
gedit /var/named/data/red-local.net.zone

Cambiaremos el nmero de serie de la zona y aadiremos


slo el siguiente registro en la zona de reenvo en el DNS
utilizado por la red de rea local. En este ejemplo asumimos
que el servidor HTTP que hospeda el archivo wpad.dat
corresponde a la direccin IP 172.16.1.1:
wpad

IN

172.16.1.1

Reiniciamos el servicio named.


service named restart

Generaremos el archivo wpad.dat


Generaremos 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. Podemos 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

Editaremos el archivo /var/www/wpad/wpad.dat y


modificaremos lo que sea necesario para que ajuste a la
configuracin utilizada en su red de rea local.
gedit /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 denominado servidor.redlocal.net, escuchando peticiones en el puerto 8080,
aadiremos 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
Generamos el archivo /etc/httpd/conf.d/wpad.conf:
gedit /etc/httpd/conf.d/wpad.conf

Y aadiremos 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
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
Require ip 172.16.1.0/28
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from all
Allow from 127.0.0.0/8 172.16.1.0/28
</IfModule>
</Directory>
</VirtualHost>

Modificaremos lo que sea necesario para que ajuste a la


configuracin utilizada en nuestra red de rea local.
A fin de evitar problemas con algunos navegadores, es
recomendable que este sea el nico anfitrin virtual en el
servidor o bien que al menos sea el anfitrin virtual
predeterminado.
Reiniciamos o recargamos el servicio httpd
service httpd reload

Anuncio del archivo wpad.dat a travs de DHCP


Configuracin del servidor DHCP
Asumiendo que tenemos configurado y funcionando el
servidor DHCP (para nuestro caso nuestro servidor DHCP es
Mikrotik) para gestionar la asignacin de las direcciones IP
utilizadas por la red de rea local. En este ejemplo lo hace el
mismo Linux, editamos el archivo /etc/dhcp/dhcpd.conf:
gedit /etc/dhcp/dhcpd.conf

Aadiremos en la configuracin del servidor DHCP, las


siguientes opciones:
option
option
option
option
option

ip-forwarding off;
domain-name "red-local.net";
ntp-servers 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org, 3.pool.ntp.org;
wpad-url code 252 = text;
wpad-url "http://wpad.red-local.net/wpad.dat\n";

include "/etc/rndc.key";
zone localdomain. {
primary 127.0.0.1;
key rndc-key;
}

Reiniciamos el servicio dhcpd


service dhcpd restart

Recordar que este mtodo jams debe combinarse con el del


anuncio del archivo wpad.dat a travs del servidor DNS.
Anuncio del archivo wpad.dat a travs del 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, editamos el


archivo de la zona correspondiente:
gedit /var/named/data/red-local.net.zone

Cambiamos el nmero de serie de la zona y aadimos los


siguientes dos registros en la zona de reenvo en el DNS
utilizando por la red de rea local. En el ejemplo asumiremos
que el servidor HTTP que hospeda el archivo wpad.dat
corresponde a la direccin IP 172.16.1.1:
wpad
@

IN
IN

A
TXT

172.16.1.1
"service: wpad:!http://wpad.red-local.net:80/wpad.dat"

Reiniciamos el servidor named


service named restart

Recordemos que este mtodo jams debe combinarse con el


del anuncio del archivo wpad.dat a travs del servidor DHCP.
Anuncio del archivo wpad.dat a travs del servidor DNS con
zona dinmica
Si se trata de una zona de reenvo dinmica, ejecutaremos
nsupdate para conectarnos al servidor DNS:
nsupdate k /etc/rndc.key

Desde el intrprete de mandatos de nsupdate, ejecutamos el


siguiente comando 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 ultimo procedimiento, es innecesario reiniciar


el servicio named.

Recordaremos que este mtodo jams debe combinarse con


el del anuncio del archivo wpad.dat a travs del servidor
DHCP.

Comprobaciones
Si todo lo anterior concluy sin errores, slo resta verificar que
la configuracin de los anfitriones con Windows.
En internet explorer ingresamos a Opciones de Internet ->
Conexiones -> Configuraciones LAN y verificamos 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.redlocal.net/wpad.dat)

Opciones de Internet Config del WPAD

Para los anfitriones con GNU/Linux con GNOME 2 como


escritorio (en nuestro caso solo tenemos clientes Windows, y
por polticas no se dan contraseas de wifi, por lo tanto
ningn smathphone tiene acceso a nuestro wpad, ver como se
regulara en un celular).
CONFIGURAR EL MIKROTIK PARA QUE ACCEDA AL WPAD

Vous aimerez peut-être aussi