Se utilizara el openvpn: para crear un enlace seguro entre las
tarjetas wireless. Este levantara en cada equipo
un "interface" de red tap , tap0 en los dos.
Y ahora se mete todo en un par de equipos, se agita un poco tal que... :)
La configuración de las tarjetas:
(existe un documento de Rice que lo explica), una de ellas en modo ap con
el hostap y la otra con el orinoco_plx (la vagancia invoca al knoppix)
La configuración de los squid:
el del servidor A de forma que no escuche mas que al interface tap0 usease,
solo a la ip de ese interface y a la red que tiene con el servidor de B (el
de la acera de enfrente :P ). La configuración del squid del servidor
B, escuchará a toda su red local y tendra como cache padre al squid
del servidor A. de forma que todas las peticiones que le hagan a este, de
no estar en su cache se las pida al vecino de enfrente a traves tambien del
interface seguro tap0.
La configuración del openvpn:
se explicara luego con mas detalle, pero a grandes rasgos... se levantan
dos interfaces con openvpn llamados tap0 en cada uno (puede haber varios
interfaces, tantos como tuneles). Se generara una llave que debe ser la misma
en los dos equipos, (procurad pasarla de forma segura que si no no hacemos
nada). Posteriormente, se obliga a los dos equipos a charlar exclusivamente
por el tunel creado.
Configuración de los squid (ampliada):
La configuración del squid es la basica cambiando un par de lineas
en cada uno.
Para el squid del servidor principal A, lo principal es lo siguiente,
http_port 3128
#pues eso, que escucha en el puerto 3128 para cualquier dispositivo
acl miredlocal_B src 192.168.1.10/255.255.255.255 #aqui no le vamos a dar
(por ahora) conexion web a los ordenadores de A
#pero si a los de B, como en B el que realiza las peticiones es otro squid,
por eso la mascara de 255.255.255.255 (solo ese pc)
#ahora en las lineas siguientes , se añade ...
http_access allow miredlocal_B
Ahora, para el squid de B, la cosa cambia un poquillo, (no mucho),
http_port 192.168.1.30:3128 #de esta forma solo escucha en esa ip y en ese
puerto(menos posibles disgustos)
cache_peer 192.168.1.11 parent 3128 0 no-query default
acl all src 0.0.0.0/0.0.0.0
never_direct allow all
#lo que se hace aqui es dirigir todas las peticiones al cache de A de no
tenerlas en B, la ip 192.168.1.11 es la del tunel tap0 de A, por lo que
realiza las peticiones de forma segura, como queremos.
ahora este squid se configura como el primero con las reglas para su red
local de B.
Ahora la configuración de los tuneles
openvpn:
Esta información está recogida de ciberhell, lo que aparece aqui es un resumen
con la configuración para Debian:
apt-get install openvpn
apt-get install liblzo1 lzop openssl #para la compresion
-->Importante activar en el kernel el modulo tun/tap (asi que, kernel
compilau :) )
modprobe tun
mknod /dev/tap0 c 36 16 #para mas tuneles mirad en la web ciberhell
mkdir /dev/net
mknod /dev/net/tun c 10 200
ln -s /dev/tap0 /dev/net/tap0
añadimos a /etc/modules.conf :
alias char-major-10-200 tun
modprobe tun
mkdir /etc/openvpn
cd /etc/openvpn
#generamos la clave en uno de los equipos:
openvpn --genkey --secret clave.key
#pasarsela de forma segura al otro equipo
#ahora creamos un fichero de configuración tunel.conf:
local [ip local]
remote [ip remota]
dev tun0
port 5000
comp-lzo
user nobody
ping 15
ifconfig [ip del tunel local][ip del tunel remoto]
secret /etc/openvpn/clave.key
# en el otro equipo se hace lo mismo cambiando las ip
ahora basta con crear un script de inicio que contenga lo siguiente:
openvpn --daemon --verb 0 --config /etc/openvpn/tunel.conf
--- todo esto esta obtenido de ciberhell.ath.cx , para mas informacion
sobre el openvpn , en esa pagina y en la oficial en openvpn.sourceforge.net.
Tambien lo hay para windios siendo el sistema muy parecido, levanta otro
interface de red , el archivo de configuración, la clave... blablabla
ahora, el que no se haya armado un lio, que tenga presente lo siguiente,:
hay que evitar que a los squid se pueda acceder desde wlan0 (la wifi),
para ello, que solo escuche el tunel y su ip, en el caso de servir a la
red local, dejar los ethX (allow miredlocal....)con las reglas pertinentes
en los squid. para ello, o con las reglas de squid o con un cortafuegos.
por que tanto lio con los squid? , a mi forma de ver, reducimos
el trafico bastante para dejar el servidor con su apache y su postfix "tranquilo"
y no abrasarle mucho la conexión. el squid del ordenador de la segunda
red, para que no vuelen datos innecesarios por el tunel pues los puede guardar
el cache.
Quiza esta configuración no sea la mas efectiva ni la mas sencilla
pero funciona, y lo lleva haciendo asi desde hace un mes y medio 24 hrs
al dia con un pentium II 400 y un Pentium 120. La conexión a la
red de ono es buena con sus 17 K.(la cagalona :P ) y todos los equipos
pueden disfrutar de la red (y solo los nuestros) de forma segura y sin
cables de fachada a fachada. (recordad 15 m aprox y atravesando 2 cristaleras).
para la configuración de las usr esta el documento de RICE aqui
en linuca , para el tunel , el de ciberhell.ath.cx y openvpn.sourceforge.net
y para el squid es facil encontrar información en el google (el documento
de configuración es muy completo.
si alguien ve algun error desastroso de seguridad, que no le de por
aparecer cerca haciendo wardriving (que lo cuelgo de la antena), y postee
a continuación la solución por el bien de todos los que sigan
el articulo :P .
pd: haber si le funciona a todo el mundo, para cualquier duda, pregunta
o suplica, a <<<<<< clipse @ delpuerto . com >>>>>> salu2 a todos
|