You are on page 1of 3

OpenVPN en Debian

Una red privada virtual (VPN) es usada para establecer una conexin encriptada, punto-apunto, entre dos computadores. El uso ms comn de una VPN es para exportar en forma
remota aplicaciones X, o incluso el escritorio completo del servidor. Por ejemplo, podemos
correr en el computador de casa aplicaciones o el escritorio del servidor del trabajo.
El escritorio se puede levantar en forma remota con XDMCP, de hecho es la manera de
usarlo dentro de una red interna, pero cuando la conexin viaja por Internet, en donde no se
puede suponer que existe privacidad alguna, una VPN es la manera de asegurarlo.
En la configuracin a continuacin, el servidor remoto y computador local (cliente) pueden
ser intercambiados sin mayores consideraciones.
Instalando y configurando OpenVPN
Instala el paquete openvpn en servidor y cliente,
# apt-get install openvpn
Genera una llave secreta,
# openvpn --genkey --secret /etc/openvpn/static.key
en uno y copiala en forma segura al segundo, por ejemplo, con Secure Copy,
# scp -p /etc/openvpn/static.key root@servidor.debian:/etc/openvpn/
En el servidor remoto (el que va a servir el escritorio), crea el
archivo /etc/openvpn/tun0.conf y agrega,
dev tun0
ifconfig 10.9.8.1 10.9.8.2
secret static.key
Los nmeros IP 10.x.x.x pueden modificarse a gusto. Lo importante es asignarle, dentro de
una misma subred (10.x.x), un IP a cada computador. La llave secreta se encarga que solo
aquellos computadores que tienen la llave puedan crear el tnel. Por eso es importante
proteger la llave bien (como cualquier otra llave encriptada). En este caso, 10.9.8.1 es el IP
del servidor remoto, 10.9.8.2 el IP del cliente.
En el computador cliente (local), crea tambin el archivo /etc/openvpn/tun0.conf y agrega,
remote 100.10.2.10
dev tun0
ifconfig 10.9.8.2 10.9.8.1
secret static.key
en donde "remote" es el IP pblico del servidor remoto. En la configuracin del cliente, los
IPs asignados van revertidos.
Inicia el servidor OpenVPN en servidor remoto y cliente,

# /etc/init.d/openvpn start
El servidor OpenVPN va a crear en ambos una interfase de red llamada tun0,
# ifconfig tun0
tun0
Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-0000-00
inet addr:10.9.8.2 P-t-P:10.9.8.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
que hay que tratar igual que una interfase de red normal. En particular, hay que incluirla en
el cortafuegos. Usa como gua la versin servidor de http://manes.debianchile.org/cortafuego.html.
Edita /etc/network/if-pre-up.d/firewall y agrega en la cadena INPUT,
# VPN
$IPTABLES -A INPUT -i tun0 -s 10.9.8.1 -j ACCEPT
en el cliente y,
# VPN
$IPTABLES -A INPUT -i tun0 -s 10.9.8.2 -j ACCEPT
en el servidor.
Es tambin necesario abrir el puerto 1194 UDP en la interfase externa. Edita /etc/network/ifup.d/firewall y agrega,
# VPN
$IPTABLES -A pqtes-udp-permitidos -p UDP -m state --state NEW --dport 1194 -j
ACCEPT
El cortafuegos se puede reiniciar con,
# export IFACE=lo ; /etc/network/if-pre-up.d/firewall ; export IFACE=eth0 ;
/etc/network/if-up.d/firewall
Eso es todo. Ahora prueba conexiones desde el cliente hacia el servidor remoto, por
ejemplo,
$ ping -c3 10.9.8.1
PING 10.9.8.1 (10.9.8.1) 56(84) bytes of data.
64 bytes from 10.9.8.1: icmp_seq=1 ttl=64 time=25.2 ms
64 bytes from 10.9.8.1: icmp_seq=2 ttl=64 time=28.2 ms
64 bytes from 10.9.8.1: icmp_seq=3 ttl=64 time=27.0 ms
--- 10.9.8.1 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2005ms


rtt min/avg/max/mdev = 25.274/26.834/28.206/1.204 ms
De aqu en adelante establece cualquier conexin privada con el IP 10.9.8.1.
El wiki OpenVPN muestra como exportar el escritorio del servidor remoto.

You might also like