OpenVPN sobre Linux

De Lordwektabyte Wiki
Salta a la navegació Salta a la cerca

Enunciat

Configura un Ubuntu Server com a servidor OpenVPN perquè un client extern pugui accedir a un servidor de la xarxa interna darrere del servidor de VPN.

Situació inicial

L'esquema de xarxa serà semblant a aquest:

M11UF2EX2-1-1.png


Tal com ho he muntat jo, tindré client i servidor amb Ubuntu Server/Client 18 en una mateixa xarxa interna; de manera que el túnel no el faré entre diferents xarxes, sinó que serà entre 2 hosts de la mateixa LAN per simplificar; però l'efecte de la connexió serà el mateix. Fins i tot podríem col·locar un sniffer per veure que el trànsit entre aquells hosts està xifrat amb OpenVPN.

Aquesta documentació s'ha fet administrant el servidor via SSH des del host amfitrió amb usuari amb permisos d'administració usant sudo o bé el superusuari root. El servidor es troba a 172.16.70.101.

Procediment

Tinc dues màquines: una amb Ubuntu Server i l'altra amb Ubuntu Desktop (el client). Haurem de configurar primer el servidor perquè sigui una Entitat Certificadora (CA) perquè OpenVPN es basa en el xifrat amb SSL; pel que necessitarem una entitat que pugui emetre certificats. Una vegada el servidor tingui els certificats necessaris, instal·larem i configurarem el servidor OpenVPN i, finalment, el client es connectarà al servidor.

Servidor

Primer de tot actualitzarem la llista de repositoris i el programari instal·lat

sudo apt update
sudo apt upgrade

Instal·larem els paquets necessaris per al servidor OpenVPN i el paquet necessari per a crear claus públiques, privades i certificats RSA, a més a més de git que ens permetrà fer servir un script automàtic per a posar en marxa el servidor i afegir clients de manera ràpida i fàcil

sudo apt-get install openvpn easy-rsa git

Clonarem el repositori dins el directori /opt...

cd /opt
git clone https://github.com/Nyr/openvpn-install.git

Ens mourem dins el directori que hem clonat i farem executable l'script d'instal·lació

cd openvpn-install
chmod +x openvpn-install.sh

Ara executarem l'script

./openvpn.install.sh

Se'ns demanaran paràmetres com ara l'adreça d'escolta del servidor, l'adreça IP pública (si aquest es troba darrere un NAT), el protocol que volem fer servir per la xarxa virtual (UDP/TCP), el port d'escolta, els DNS que volem que configurin els clients (mantenir els que tinguin o bé usar els de Google, OpenDNS, etc...) i finalment el nom pel client que farà servir aquella connexió.

Welcome to this OpenVPN "road warrior" installer!

I need to ask you a few questions before starting the setup.
You can leave the default options and just press enter if you are ok with them.

First, provide the IPv4 address of the network interface you want OpenVPN
listening to.
IP address: 172.16.70.101

This server is behind NAT. What is the public IPv4 address or hostname?
Public IP address / hostname: 192.168.70.2

Which protocol do you want for OpenVPN connections?
   1) UDP (recommended)
   2) TCP
Protocol [1-2]: 1

What port do you want OpenVPN listening to?
Port: 1194

Which DNS do you want to use with the VPN?
   1) Current system resolvers
   2) 1.1.1.1
   3) Google
   4) OpenDNS
   5) Verisign
DNS [1-5]: 4

Finally, tell me your name for the client certificate.
Please, use one word only, no special characters.
Client name: fedora29

Okay, that was all I needed. We are ready to set up your OpenVPN server now.