Si bien, openvpn con una llave estática es algo bastante sencillo de configurar;
tiene un grave problema: Que solo un cliente puede conectarse a la vez. En un
escenario donde por ejemplo, queremos crear una vpn para múltiples servidores
que deben conectarse, usar un clave estática se vuelve un problema. Una
topología de anillo podría ayudarnos resolverlo, pero cada servidor debería ser
cliente y servidor a la vez. Una VPN autenticada por usuario y contraseña
resuelve el problema de la manera más simplificada posible.
Si quieres, si te da la mariconería, edita los parámetros del fichero que acabas
de copiar, pa que pongas los parámetros bonitillos, si no, espera a que openssl
los pregunte; a lo mejor ni los pregunta.
Note que la cadena de texto tuservidor debe ser remplazada por el nombre de
tu actor asiático preferido o, por algún nombre de tu agrado para el servidor.
[lazaro@artema vpn]$ cd /etc/openvpn/
[lazaro@artema openvpn]$ cat servidor.conf
# como y por donde escuhanport 1194
proto udp
dev tun
# los certificadosca /etc/openvpn/servidor/ca.crt
cert /etc/openvpn/servidor/tuservidor.crt
key /etc/openvpn/servidor/tuservidor.key
# el diffie hellmandh /etc/openvpn/servidor/dh.pem
# la red que vamos a operarserver 10.8.0.0 255.255.255.0
# manda un ping cada 10 segundos# y tumba el tunel si a los 120 no hay respuestakeepalive 10 120
# usa la compresión lzocomp-lzo
# opera con los siguientes privilegios#user nobody#group nogroup# esto es para reforzarlopersist-key
persist-tun
# que tan elocuente seráverb 3
# mándale estos parámetros al clientepush "redirect-gateway def1"push "dhcp-option DNS 8.8.8.8"push "dhcp-option DNS 8.8.4.4"# y he aquí el truco de la autenticaciónplugin /usr/lib/openvpn/plugins/openvpn-plugin-auth-pam.so login
client-cert-not-required
username-as-common-name
Con eso tenemos el servidor pinchando. Ahora vamos a hacer un fichero .ovpn
genérico, para dar a entender como sería la configuración de nuestro cliente.
OJO El certificado que se le dará al cliente será el ca.crt
A mi me quedó así:
“cliente.ovpn”
1234567891011121314151617181920212223242526
[lazaro@artema openvpn]$ cat tuservidor.ovpn
client
dev tun
proto udp
remote 192.168.0.1 1194
remote-cert-tls server
auth-user-pass ~/autenticacion.conf
comp-lzo
<ca>
-----BEGIN CERTIFICATE-----
Lorem ipsum ad his scripta blandit partiendo, eum fastidii
accumsan euripidis in, eum liber hendrerit an. Qui ut wisi
vocibus suscipiantur, quo dicit ridens inciderint id. Quo mundi
lobortis reformidans eu, legimus senserit definiebas an eos. Eu
sit tincidunt incorrupte definitionem, vis mutat affert
percipit cu, eirmod consectetuer signiferumque eu per. In usu
latine equidem dolores. Quo no falli viris intellegam, ut fugit
veritus placerat per. Ius id vidit volumus mandamus, vide
veritus democritum te nec, ei eos debet libris consulatu. No
mei ferri graeco dicunt, ad cum veri accommodare. Sed at malis
omnesque delicata, usu et iusto zzril meliore. Dicunt maiorum
eloquentiam cum cu, sit summo dolor essent te. Ne quodsi
nusquam legendos has, ea dicit voluptua eloquentiam pro, ad sit
quas qualisque. Eos vocibus deserunt quaestio ei.
-----END CERTIFICATE-----
</ca>
Cada cliente de OpenVPN tiene su librito… Pero ese .ovpn genérico, debe ser
capaz de ser importado sin problema.
Por una cuestión de orden y seguridad, yo borro la base con la que se creó todo:
“clear area”
1
[lazaro@artema ~]$ rm -rf Downloads/vpn
Por cierto, cada configuración que pongas en /etc/openvpn cuya extensión
sea .conf se puede echar a andar con systemd.
En versiones recientes de archlinux, la unit del cliente y del servidor, son
distintas. Por tanto, en el caso del servidor, que ha de estar en
/etc/openvpn/server/fulanito usarás una unit llamda
openvpn-server@fulanito