vtun: una manera fàcil d'accedir a guifi.net des d'Internet

De vegades ens trobem que, estant fora de guifi.net, hem d'accedir-hi per fer alguna tasca administrativa: vtun és un servidor-client de túnels que ens permetrà simular que estem a dins de guifi.net des d'Internet.


Escenari:
  • Servidor
    • una tarja connectada a guifi.net
    • una tarja connectada a Internet (NAT o el que sigui) amb IP 88.88.88.88 (aneu-la substituïnt per l'IP o l'URL del vostre servidor)
  • Client
    • connectat a Internet

1. Instal·lació del paquet a Debian

Tant pel client com pel servidor:

# aptitude install vtun

2. Configuració del servidor

Al fitxer /etc/default/vtun indicarem que treballarà com a servidor i que ho farà pel port 5000:

# RUN_SERVER=no
RUN_SERVER=yes
# SERVER_ARGS="-P 5000"
SERVER_ARGS="-P 5000"

Al fitxer /etc/vtund.conf hi entrarem les línies següents (fitxer sobrecomentat):

options {
# Syslog facility
syslog daemon;

# Path to various programs
ifconfig /sbin/ifconfig;
route /sbin/route;
firewall /sbin/iptables;
ip /sbin/ip;
}

# Default session options
default {
speed 0; # By default maximum speed, NO shaping
}

# Ethernet. Session 'guifi'.
guifi {
passwd paraulaclau;
type ether;
device tap0; # Crea un dispositiu de xarxa anomenat tap0
proto tcp;
keepalive yes;
compress lzo;

#quan es crei el túnel:
up {
# configuració de tab0 (%%) per una xarxa de dos hosts (el servidor 192.168.14.1)
ifconfig "%% 192.168.14.1 netmask 255.255.255.252";
# tot el que entre per 192.168.14.0/29 amb destinació 10.0.0.0/8 es forwardejarà
 firewall "-A FORWARD -i %% -s 192.168.14.0/29 -d 10.0.0.0/8 -j ACCEPT";
# tot el que entra per 192.168.14.0/29 amb destinació 10/8 s'emmascararà (és a dir, que els hosts 10.x.x.x es pensaran que ha tingut origen 10.x.x.x)
firewall "-t nat -A POSTROUTING -s 192.168.14.0/29 -d 10.0.0.0/8 -j MASQUERADE";
};

## quan es destrueix el túnel, desfarem el que hem fet al crear-lo:
down {
firewall "-t nat -D POSTROUTING -s 192.168.14.0/29 -d 10.0.0.0/8 -j MASQUERADE";
firewall "-D FORWARD -i %% -s 192.168.14.0/29 -d 10.0.0.0/8 -j ACCEPT";
ifconfig "%% down";
};
}

Si no tenim activat el flag de forwarding per qualsevol altra raó, caldrà activar-lo:

echo 1 > /proc/sys/net/ipv4/ip_forward 

Podem modificar l'/etc/sysctl.conf perquè el flag de forwarding s'activi automàticament a l'inici del servidor:

net.ipv4.ip_forward=1


3. Activació del servidor

servidor:~# /etc/init.d/vtun start

4. Configuració del client

A fitxer que hi haurà d'accedir el root (p. ex. /root/vtun/vtund-client.conf) hi entrarem les línies següents (fitxer sobrecomentat):

options {
port 5000;
syslog daemon;
ifconfig /sbin/ifconfig;
route /sbin/route;
}

default {
speed 0; #By default maximum speed, NO shaping
}

# Ethernet. Session 'guifi'
guifi {
passwd paraulaclau;
type ether;
device tap0;
proto tcp;
persist yes;
compress lzo;
up {
# configuració de tab0 (%%) per una xarxa de dos hosts (el client 192.168.14.2)
ifconfig "%% 192.168.14.2 netmask 255.255.255.252";
# tot el tràfic de guifi cap al servidor
route "add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.14.1";
};
down {
route "del -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.14.1";
ifconfig "%% down";
};
}

5. Activació del client == creació del túnel

Hi ha dues opcions:

5.1 Sense encriptació (o utilitzant els mecanismes d'encriptació d'vtun)

Per aquesta opció cal que el port vtun del servidor sigui accessible des d'Internet

client:~# vtund -n -f /root/vtun/vtund-client.conf guifi 88.88.88.88


5.2 Amb encriptació ssh

Per aquesta opció només cal que sigui accessible el port ssh del servidor

Primer creem una connexió segura entre el client i el servidor (ens haurem d'autenticar):

client:~S ssh nom_usuari@88.88.88.88 -L 5000:localhost:5000

Ara cridem el client utilitzant la connexió segura

client:~# vtund -n -f /root/vtun/vtund-client.conf guifi localhost


6. Destrucció del túnel

client:~# killall vtund


Des de la banda del client:

Comentaris finals.

  • Un cop tinguem el túnel creat podem comprovar que podem accedir a guifi.net, fent, per exemple, un ping a una adreça 10.x.x.x.
  • Fins que no tinguem creat el túnel no es crearan els dispositus de xarxa ni es modificaran les taules (ifconfig, route, iptables -L -v, iptables -t nat -L -v).
  • Un cop destruït el túnel totes les configuracions haurien de tornar a l'estat en què estaven abans de ser creat.


Agraïments: a SGaleano per aportar llum sobre el tema

pàgina generada en: 1.493 segons.