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

