Com crear un tunel amb la eXO amb un dispositiu de baix cost

Per establir el tunnel IPIP entre els dos punts farem servir un router de baix cost basats en el firmware Openwrt.

En el nostre exemple farem servir el WT3020H. Es tracta d'un router que té per cost uns 15€. Cal asegurar-se que es aquesta versió i no una altra, que aquest porta 8M de memoria respecte els 4M que porten altres versions.Té la limitació però que la seva xarxa inalàmbrica no es del tot bona, cosa que es pot solventar, si cal,  amb un TP-Link tambè de baix cost, per exemple es un TP-Link TL-WR841ND.

Partim de la hipòtesi que malgrat que el dispositiu NEXX no vé de fàbrica amb Openwrt instalat se li ha instalat abans de continuar amb el procès que s'explica, en el cas que ens ocupa la versió estable de Openwrt 15.05.1

Parametres emprats al exemple i que proporciona la eXO en el moment de demanar el tunel

Proporcionats per la eXO
    IP pública del tunel 109.69.10.y
    IP's emprats per aixecar el tunel 
        Cantó del client 192.168.201.6/30
        Cantó de telvent 192.168.201.5/30
    IP de Guifi del servidor de telvent 10.38.140.225

Ip's de la nostra instalació
    IP de Guifi del nostre router Nexx 10.1.x.33
    IP de Guifi de la nostra antena on va conectat el nostre router Nexx 10.1.x.34
    Mascara de la nostra xarxa 255.255.255.224

S'assumeix en aquest tutorial que se sap entrar al router Nexx per linea de comandes ssh

En tot moment per accedir a configurar-ho ho farem a travès del port LAN del nexx, ja que per defecte el router Nexx habilita un servidor dhcp en aquest port.

Es recomanable quan s'ha acabat la configuració i es veu que funciona rebotar el router nexx amb la comanda

reboot&&exit

i comprovar que funciona tot correctament.

Instalació de paquets necessaris

Per poder-ho dur a terme el primer que hem de fer es instalar els paquets necessaris per tal de poder establir el tunel.

Caldrà entrar al routers NEXX a travès de ssh per la linea de comandes i tindre la certesa que disposa d'algun tipus de conexió a Internet (si no el tè caldrà temporalment posar-lo amb conexió per poder-ho fer)

Un cop a dins executar les següents comandes

opkg update
opkg install kmod-ipip ipip

Això ens instalarà els paquets necessaris per poder establir el tunel IPIP

Copia dels arxius originals

Aquest pas ens el podriem estalviar però es important disposar d'una copia del que ens trobem quan entrem per primer cop al router Nexx. Per fer-ho executem les següents comandes

cp /etc/config/firewall /etc/config/firewall.old
cp /etc/config/network /etc/config/network.old

Configuració de la xarxa del router Nexx

editem l'arxiu que es troba a 

/etc/config/network

Cerquem els parametres que fan referencia a la interficie wan i reemplaçem les linees de la interficie wan per aquestes. La maccaddr serà la ja ens trobem originalment i aquesta no caldrà canviar-la. A més caldrà posar-hi la IP del nostre router Nexx (no la 10.1.x.33 que es l'exemple) i la seva màscara. NO cal que hi posem el gateway.

config interface 'wan'
	option ifname 'eth0.2'
	option force_link '1'
	option macaddr '20:28:18:a1:f0:02'
	option proto 'static'
	option ipaddr '10.1.x.33'
	option netmask '255.255.255.224'

i afegirem la ruta per defecte cap a guifi al final de tot. Caldrà substituir la 10.1.x.34 per la IP que tingui la nostra antena on conectem el router Nexx (pel port WAN)

config route
	option interface 'wan'
	option target '10.0.0.0/8'
	option gateway '10.1.x.34'

a continuació executarem 

/etc/init.d/network reload

Si està correcte fent un 

ping 10.38.140.225

hauriem de tindre resposta, voldrà dir que hem configurat bé la ruta cap a Guifi.Net

Configuració del firewall

Cal obrir els ports necessaris per poder establir el tunnel IPIP entre els dos llocs.

Caldrà entrar al router NEXX a travès de ssh per la linea de comandes i editar l'arxiu /etc/config/firewall 

config rule
           option target 'ACCEPT'
           option src 'wan'
           option name 'Allow-IPIP-Input'
           option family 'ipv4'
           option proto 'ipip'

Que es fa sobre la interficie lan que es per on establirem el tunel

A continuació executar la comanda

/etc/init.d/firewall restart

Establiment del tunel

Un cop tenim la certesa que els dos routers es veuen i que s'han obert els ports per establir el tunel cal posar-hi en marxa el tunel

Per fer-ho cal editar novament l'arxiu /etc/config/network i posar-hi al final de tot

config interface 'tun'
	option peeraddr '10.38.140.225'
	option ipaddr '10.1.x.33'
	option mtu '1432'
	option proto 'ipip'

config interface 'exo'
	option proto 'static'
	option ifname '@tun'
	list ipaddr '109.69.10.y/32'
	list ipaddr '192.168.201.6/30'

Amb els parametres nostres o que ens hagi donat la exo

A continuació executar la comanda

/etc/init.d/network restart

Si ens han activat el tunel a la eXO executant la comanda

ping 192.168.201.5

ens hauria de respondre l'altre cantó del tunel. En el ping caldrà posar la IP necessària per aixecar el tunel del cantó de telvent

Afegir la ruta per defecte

Ara tenim el tunel aixecat i funcionant, nomès cal dir-li que la ruta per defecte sigui la del tunel i afegir la interficie exo a la zona de wan del firewall. Això darrer es important fer-ho perquè de manera automàtica tots els paquets que vinguin per la lan amb destí Internet se'ls hi aplicarà el masquerade.

Per afegir la ruta per defecte afegirem les següents linees al final de l'arxiu /etc/config/network

config route
	option interface 'exo'
	option target '0.0.0.0/0'

A continuació cal afegir la interficie exo a la zona wan. Per fer-ho editem l'arxiu /etc/config/firewall i busquem la zona anomenada 'wan'

i on posa option network 'wan wan6' afegir-hi tambè la interficie exo. Ha de quedar així

config zone
	option name 'wan'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	option masq '1'
	option mtu_fix '1'
	option network 'wan wan6 exo'

A continuació fer un 

/etc/init.d/firewall restart

Bones pràctiques amb el tunel un cop ja funciona

Si no hi hagut cap problema ara mateix el router nexx es accesible desde Internet per tots els ports oberts (ssh, http, ....). Es reconamable el següent

1.- Colocar un bon password de ssh

2.- Limitar l'accès tant de ssh com del servidor http nomès a Guifi per si cal que algú hi hagi d'entrar-hi a donar suport.

Per fer-ho cal editar l'arxiu /etc/config/firewall i afegir al final de tot o canviar en cas que ja existeixin

config rule
	option src 'lan'
	option proto 'tcp'
	option dest_port '22'
	option target 'ACCEPT'

config rule
	option src 'wan'
	option src_ip '10.0.0.0/8'
	option proto 'tcp'
	option dest_port '22'
	option target 'ACCEPT'

config rule
	option src 'lan'
	option proto 'tcp'
	option dest_port '80'
	option target 'ACCEPT'

config rule
	option src 'wan'
	option src_ip '10.0.0.0/8'
	option proto 'tcp'
	option dest_port '80'
	option target 'ACCEPT'

Activar la wireless del nexx

Es pot configurar la wifi a travès de la interficie web del propi router nexx.

Un cop posada en marxa cal afegir-la a la zona de lan. Per fer-ho cal editar l'arxiu /etc/config/wireless i posar

	option network 'lan'

dins la secció 

config wifi-iface

Un cop fet nomès cal executar

/etc/init.d/wireless restart

 

Taxonomia: