OpenVPN sobre Linux
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:
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