Fent un túnel entre dues màquines amb OpenVPN

Logo OpenVPN L'OpenVPN és segurament la manera més senzilla que he trobat per a fer túnels entre dues màquines. És una implementació opensource basada en encriptació OpenSSL, i amb compressió de dades. Per tant, suficient per a crear túnels permanents entre dos ordinadors que alhora eventualment poden fer-se servir per a enllaç via cable o internet entre subxarxes separades. En aquest document explicaré els passos (ben senzills) per a instal.lar sobre un guinux basat en Fedora Core 2, tot que no hi ha d'haver gaire diferència si el posem en qualsevol altre distribució de Linux, Unix o altres sistemes operatius.

En aquest exemple, unirem dos ordinadors amb guinux a través de internet, que, a més, estan alhora protegits per un tallafocs.

Descripció

Ordinador 1:

IP/subxarxa interna: 192.168.0.1/24
IP WAN (internet, o externa del tallafocs, la que es veu des de l'altre ordinador): 80.0.0.1

Ordinador 2:

IP/subxarxa interna: 192.168.1.1/24
IP WAN: 80.0.1.1

Instal·lació

  1. Instal·lació del openvpn.
    Com que en aquest cas partim de guinux, per agafar el paquet simplement...

    apt-get install openvpn

    Amb això, ja tenim el paquet instal·lat.

  2. Ara cal generar la clau per a la encriptació.
    Cal situar-nos en el directori /etc/openvpn i executar la comanda per a generar-la.
    cd /etc/openvpn
    openvpn --genkey --secret tunelguifi.key
  3. Copiem, de forma segura, la clau (l'arxiu tunelguifi.key)al mateix directori de l'altre ordinador.
  4. Crear l'arxiu de configuració del tunel, que anomenarem tunelguifi.conf i el deixarem en el mateix directori /etc/openvpn. Un exemple com a punt de partida pot ser el següent:
    local 192.168.0.1
    remote 80.0.0.1
    dev tun0
    port 5000
    comp-lzo
    user nobody
    ping 15
    ping-restart 15
    route 192.168.1.0 255.255.255.0
    persist-tun
    persist-key
    float
    ifconfig 172.25.0.1 172.25.0.2
    secret /etc/openvpn/tunelguifi.key

    Les adreces 172.25.0.1 i 172.25.0.2 son les IP que es fan servir per a l'enllaç. Per a obtenir més informació sobre el significat de cadascun d'aquests paràmetres, ho trobareu ben explicat fent un "man openvpn".

  5. A l'altre ordinador hem de crear també el mateix arxiu, invertint però en aquest cas les adreçes com s'escaigui, en aquest exemple el resultat és:
    local 192.168.1.1
    remote 80.0.1.1
    dev tun0
    port 5000
    comp-lzo
    user nobody
    ping 15
    ping-restart 15
    route 192.168.0.0 255.255.255.0
    persist-tun
    persist-key
    float
    ifconfig 172.25.0.2 172.25.0.1
    secret /etc/openvpn/tunelguifi.key

  6. Configura el tallafocs (o el router que fa el NAT amb la connexió a internet) de manera envii cap a l'ordinador que està protegit les peticions del port 5000, que en aquest cas és el que s'ha especificat en l'arxiu de configuració tunelguifi.conf (paràmetre "port").
  7. Amb això ja podem provar d'establir el túnel, primer des de la línea de comandes i així veurem si funciona, i en cas de que hi hagi algun problema, veure quin i el perquè:
    openvpn --verb 5 --config /etc/openvpn/tunelguifi.conf

    Això ho hem de fer en cada ordinador, i si tot va bé, ha de proporcionar una sortida en la qual la part final diu més o menys així:

    Jun 24 10:38:48 ordinador1 openvpn[5182]: UDPv4 link local (bound): 192.168.0.1:5000
    Jun 24 10:38:48 ordinador1 openvpn[5182]: UDPv4 link remote: 80.0.1.1:5000
    Jun 24 10:38:48 ordinador1 openvpn[5182]: Peer Connection Initiated with 80.0.1.1:5000
  8. Arrivats a aquest punt, el tunel ja s'establirà de forma automàtica cada vegada que es vulgui fer comunicació entre els dos punts, i podràs fer-hi ping. A partir d'aquí, ja es pot configurar la resta de l'encaminanent necessaris, si és el cas.
    El darrer pas és simplement posar que arranqui automàticament el servei, cosa que pots fer des de la Configuració del Sistema, o bé amb la comanda:
  9. chkconfig --level 35 openvpn on

    I per comprovar que com a servei del sistema funciona correctament:

    service openvpn start
Molta més informació si vas a la pàgina del projecte OpenVPN.

rroca – dj, 24/06/2004 – 09:24