Construcción de servidor OpenVPN propio
2 de abril de 2016 • fjbalon
Antes de realizar cualquier comprobación es necesario tener claros unos conceptos teóricos referentes a las interfaces de redes virtuales TUN y TAP, interfaces de red virtuales a nivel de kernel.
Aunque TUN y TAP tienen el mismo propósito de «tunneling» divergen en su funcionamiento técnico. TUN simula un dispositivo de capa de red y opera en la capa 3 del modelo OSI transportando paquetes IP mientras que TAP simula un dispositivo en la capa de enlace y opera en la capa 2 del modelo OSI, creando un puente (bridge) de red.
Los paquetes enviados por un sistema operativo a través de un dispositivo TUN/TAP son entregados a un programa de espacio de usuario que se conecta al dispositivo. Un programa de espacio de usuario también puede pasar paquetes en un dispositivo TUN/TAP. En este caso el dispositivo TUN/TAP inyecta estos paquetes a la pila de red del sistema operativo simulando así su recepción desde una fuente externa.
En el caso de sistemas Linux, el soporte a TUN puede habilitarse de forma nativa en el kernel desde la versión 2.1.60. Debemos pues, comprobar si el kernel de nuestro servidor tiene habilitado este soporte, ya que al utilizar un servicio VPS algunas capas de virtualización vServers y OpenVZ requieren que TUN esté habilitado en la máquina host y podría ser necesario contactar con el administrador o proveedor del servicio para ser habilitado y así poder continuar. Debemos asegurar pues que el módulo CONFIG\_TUN está habilitado en el kernel, esto lo podemos ver rápidamente con la siguiente línea de comandos:
test ! -c /dev/net/tun && echo openvpn requires tun support || echo tun is available
Entonces, para OpenVPN debemos crear:
Descarga de
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz
tar xvf EasyRSA-unix-v3.0.6.tgz
cd EasyRSA-v3.0.6/
En el directorio
cp vars.example vars
Con el contenido:
# vars
set_var EASYRSA_REQ_COUNTRY "AR"
set_var EASYRSA_REQ_PROVINCE "Arrakis"
set_var EASYRSA_REQ_CITY "Arrakeen"
set_var EASYRSA_REQ_ORG "Dune"
set_var EASYRSA_REQ_EMAIL "paul_muaddib@atreides"
set_var EASYRSA_REQ_OU "arrakis"
Posteriormente, realizaremos las distintas acciones de inicialización y generación de claves RSA y certificados para servidor y clientes.
./easyrsa init-pki # Inicialización del entorno PKI de EasyRSA
./easyrsa gen-dh # Generación de parámetros de Diffie-Hellman
./easyrsa build-ca nopass # RSA key and CA certificate
# Clave RSA y certificado de servidor (arrakis)
./easyrsa gen-req arrakis nopass
./easyrsa sign-req server arrakis
# Clave RSA y cliente de servidor (oldscizor)
./easyrsa gen-req oldscizor nopass
./easyrsa sign-req client oldscizor
openvpn --genkey --secret ta.key # Generación de clave TLS
En este punto ya tenemos estos archivos generados y listos para usar:
-----BEGIN DH PARAMETERS-----
MIIBCAKCAQEApjAQiuMycSId2FAZ4NE0XV7df7dr7dpBdnknV7Qlm4j8U2P5RAIM
XRGkvcNotsMU+7KlNGDpb3IpUwI7PqyWDXqMbDxnSD2dQEIhUWKNGf7M44HOPlRZ
68nv0mtMjKVFTs6dR54Ls1Vtn8hGRtYR37w7+ZGUDHj09pZbu6H0DMbgV8xa3w40
rAqLntOsWRfCmnQFUSo5WsKMyZo6muYuWaAk6CCezB9s4hYHj1rCEktyc+bzYNUl
bOXvqGKQpLSGTSlxD4jpm4JQkmy8YZbhzs2c9SDeJAbCEg6d6s+uPs5uPF6Db4Ig
yR0TYXnzxhrduR3913F8ObnH5RpS/1aj2wIBAg==
-----END DH PARAMETERS-----
-----BEGIN CERTIFICATE-----
MIIDPzCCAiegAwIBAgIUUsznqWLj39zqrv/7zzjKxXGOy24wDQYJKoZIhvcNAQEL
BQAwEjEQMA4GA1UEAwwHYm9ycmFtZTAeFw0yMTExMTkyMjU4MzNaFw0zMTExMTcy
MjU4MzNaMBIxEDAOBgNVBAMMB2JvcnJhbWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQDUKxAELgW2HIfcR1XUmmnbMm+5zuP9Vr8EJK48QAA4e2fxkKgT
bKeAp9Qvf70vXwZSHy1R6GB4cgL8WTQK+MlWkbpSqAOQnDA+00k4PLWYgAH1igKz
aC2DAo/vKGquTNw8s+6iXj6+mD9qoCNI7EQdhhLDVlpRZuTY0XVqLYe/b59RTZgD
JsDIrZBAbdmekJvAxZS2WLTPR3OqMQee3bX83mMGZWvEB2FBoIGFqTFGeKmoBWNa
8jGqKO79Ctu70NhZmYcWo9jjMS7u8IumgbXWnGUs9Ls6Az59uqBEzW/nNjicZedm
EdwRBZwjvWC4Jd00ycJXgAoZraVAL+l2IsEVAgMBAAGjgYwwgYkwHQYDVR0OBBYE
FK/VNL2AA5kYY5iIJdBRhq5gl9H4ME0GA1UdIwRGMESAFK/VNL2AA5kYY5iIJdBR
hq5gl9H4oRakFDASMRAwDgYDVQQDDAdib3JyYW1lghRSzOepYuPf3Oqu//vPOMrF
cY7LbjAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsFAAOC
AQEAd9h22YXkgNrmzYOSVoE3oL8VoFZ7PwWvZ5FOPL9GjzO8YIRjCEO+LRVCFawX
qfIMZMN6usG05TNnHHPMj0bLs24wE3TQYCK4hJazH+sZQVUqr8nsU2Z4N3TYBAgq
7DMZrBI6I+LKk1BWYv7z3idYA+cWDY9b3b8bDbezugp9k+truAke0U8X7vSeiVlV
Gdm9510W43YpnTuXALkl/S1WDwQWl8035ZfMdcukdUWjM/TD2euwdd29Aj4BKpv9
tk9fpoxef/Ju0YbHRcgtXJc9VHodc4cq+zCSGq1j7eJ27hFGn4rIOAF6eTFT/lK7
QbrEG1umBi/qSosL9vtOKV85aQ==
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA1CsQBC4FthyH3EdV1Jpp2zJvuc7j/Va/BCSuPEAAOHtn8ZCo
E2yngKfUL3+9L18GUh8tUehgeHIC/Fk0CvjJVpG6UqgDkJwwPtNJODy1mIAB9YoC
s2gtgwKP7yhqrkzcPLPuol4+vpg/aqAjSOxEHYYSw1ZaUWbk2NF1ai2Hv2+fUU2Y
AybAyK2QQG3ZnpCbwMWUtli0z0dzqjEHnt21/N5jBmVrxAdhQaCBhakxRnipqAVj
WvIxqiju/Qrbu9DYWZmHFqPY4zEu7vCLpoG11pxlLPS7OgM+fbqgRM1v5zY4nGXn
ZhHcEQWcI71guCXdNMnCV4AKGa2lQC/pdiLBFQIDAQABAoIBAGxckhGQb9pTOBCJ
Xoz3UJljaSy9PjRl2amEEnkzNumiHbSC7VT+aY6MKRMZasaHAfNvePYceSkLEftQ
lAQGjM5qH3+X0DpLi1iLERpn51e8CUQe+MIosxX2eQzs14+uMc3PGFJVUDaIC9up
blwQT7nEgFDECd0JcFhMomtYVbyvl8qvJvGAAy4K38A2lGrb9Ju7QXcLvj54ss6n
zCF0bK3XGfjsujsnpb0ZvGNDG5mUyrJinVFMvyn7jI2W2JsA3sZ6lgJ2W7pN6kwy
IgiNqoms46i3jNUb2SGSFAf1qXJmkUOxfmacbRV96XwLYE1xY97LcS1LPk5jzV3a
KTmeQQECgYEA7ykfmrKdYQql467lMwCxFYbixLQoout2G6IxDwPLS0M28TkFID5h
+puczQD6dwImk4yykJeZQ2d16FHbhZwzRw7UYDevt5Mr+l4i5eoa1z9vqZlOi0/+
FBtIh4GDl3isWAA6KUf1zcu9aKQInALnYlnYgxeNlklHCRqwRWmD2OcCgYEA4xtm
Y9tAhwnK32PXTMkRNgOtPEoKdifs3hfzCigJ/NGcIGzliGcJ+6j0lLmM9kEDfdKI
i+FfqFXUYiHb1QINN6kL6LqjImiqXvN2Km066ijcmaMaw6QzzWcCku9Ekp5isM6R
DL154tB0wIQyWVI7p8OTJN+L0RwCiwB8KQmgaqMCgYBFScnBPNxBoB8djq8SjrG/
RdvvFy7qvIL0UJIcAoJkZK3HRzjH9arXOzw7XHwz/GiGuO2G3JTnpVLQot6RoAZv
IMnAsoFzEu1b1OgRajiqgdNs9GCAFgXLd3gU4h3oxWpQ+IfhK9r3634NkfB4mpLE
uLj0id9YWhR9e8Dz6zTqowKBgQCrN+AUzpqydDaH/py2HiyknVcAyg1jESyqMEIi
WRdWjKz5YUAXex9ypOloKw/UJCW+uXgKhWp53eOV7FLxH2/Zk9APsI4HBgPUPBbN
W7Z8DTxrdCVcdDI93Dh7kHoRU+mxxLpkcYEv99rdvYy7/JxPGcqYlRSzHTvpkf8J
bWGMowKBgQDr86QJkIx614U5uXh7cf+b7fLL9cfdtt2Niyhlvjn9Qb+F9ohhW4qO
mWLiGcNTzCcC/kC/Ao+aWeHwwEdW1OXOIMmqW1gEhTD4s1/TgszpOWStBiNsyABz
L3FdzCbX6aERkx/vZHJ7XWuvfcEMc+/36H7JeRfZzB1ZPyK8d2Jrww==
-----END RSA PRIVATE KEY-----
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDKePacVhI1vkgF
wpHFLe9FfnNbopgscMA2w2aAsPvXOA2ATwvTLFxXccqtfx3A4BrWD+LmOU6WXU41
3uofi15Wq2RCNb1q5exHnFHeHol15UOjpHvarZYAmYuAJ47HnSu3QXwuLeNuvE5x
muJLisP2hBh2bggIxm8aGapbjJdyPi4ri6WRwFScIcxQLmOethzDRbVUemGXbwhK
UQLhYtmcx0Y0KXiuzqECZgh7S6M2+vSEzDYTHT+fXa+N/0QGvPYQm2cZjcHUp5hs
gPCAk4/T4A76kaAowJSB/rHFsyPXzjHpiwBqBZL805OLJhSo1w9iXdaUCCpfZRgE
BaJ+KVvFAgMBAAECggEBAL/G4XdlAyyKhfeGusG0Z41AX42tLUvyo+17GUzN1kyd
GBSvSnkD7Jca/illXM5CtsiJFZaRM0GzMRBPixzDymB3SKh59GcbTrjpdJXaAMN9
m5qVgoa3onwA86Q4U8H4ud6DFVc8Oc66Z+atGKkKz+BgcDdEszF0muly4+yA9zXJ
w6XMqBYUndbPulE+pljegmSEW2CJgGh6dE81uv3/d+B3svOBTcV0DpMXXyN7+l/u
UQ91GGu21A7zOyt1ta2eCu9ixDoPFNfB5aFSOpxIlwpx0FhWZAjXC/cRMQu7Czbh
Y3oBimX2LtQOEeqQ9Q1PtU0mBnH+cL0g8qjMRy92KkUCgYEA/xqCq/jp2gfazEf/
PsnTouHk0fou+Mzn9tm+nl7wp9kvjlbfmEy4bqru+7woVCkIxSTnTj3wjC5jhzH7
Cj3csCY9HIC2YYRo/bdslQFnyh/Wp7OKr1oM8tjC+mACHmTCCASeYHfJrx9av0DO
dRgOTFFqgqvFxqV2992DbsBrRLsCgYEAyy8bOGDgMgXs5tBFQBwoMBa5WFs8P+Sg
CCZPXins+uTWm7AnbFAdZakgHS+Hriv6hRCc54hON82sD2XbYn7yC6MKQ/7C+7VE
qCWOHa740YGSSAMwDC6PhJ58QMpBhAAHknY8I4i9D2S3XtjufZpbbD07roERZ7+/
EjVE0Nf0GX8CgYB8+xQCBRUtCKQdaTiYHnFdX6anaRcSNfF/cvZ8yK7GzRULe2xY
RV4megBTvL9VXDU7wPTB1H7Bbwi797SyM9SnSFSwXi78X87AXtkHt4SN9kNILiJH
/qpRX/lGiTsAgQS+wOSHBqj87zOad7mujHaU1V6FXnqq8+3xSclWvVbQeQKBgQCx
U9pw2POyFMPOKeTWb/yPA7YdK/soVDNrCWxpZTPjQEcgt5ugh0cwy2swraO/2bgZ
3Abkd2y0fTb2dVID44EBsPiroTOxFGHoUmZ295dG2cu+N7H+X8B34Q3WSe7l8lSp
ebFA3f0K6z6yc6epTUcO714gDZsQLiPnE0CM+HycpwKBgQC6Cuygg8TFFdT2Cg4K
bUmNPVRPeE/klijZCcSCfUnlAFU1Y0NIJxGnY+o+293GZRRzwyee6yeptc27AMH6
5XLwiciqCKq6y0XBN3dRRWG4pJNFXZ/mfdHy6eTC5lgjS1oaQO5Zc3HY1/TNbZsn
RIEjfcJGNOyjQeW5QYx9zE3ebQ==
-----END PRIVATE KEY-----
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
92:05:11:0c:a7:1d:b2:3e:bb:24:93:e9:8a:82:09:d7
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=borrame
Validity
Not Before: Nov 19 22:58:59 2021 GMT
Not After : Feb 22 22:58:59 2024 GMT
Subject: CN=borrame
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:ca:78:f6:9c:56:12:35:be:48:05:c2:91:c5:2d:
ef:45:7e:73:5b:a2:98:2c:70:c0:36:c3:66:80:b0:
fb:d7:38:0d:80:4f:0b:d3:2c:5c:57:71:ca:ad:7f:
1d:c0:e0:1a:d6:0f:e2:e6:39:4e:96:5d:4e:35:de:
ea:1f:8b:5e:56:ab:64:42:35:bd:6a:e5:ec:47:9c:
51:de:1e:89:75:e5:43:a3:a4:7b:da:ad:96:00:99:
8b:80:27:8e:c7:9d:2b:b7:41:7c:2e:2d:e3:6e:bc:
4e:71:9a:e2:4b:8a:c3:f6:84:18:76:6e:08:08:c6:
6f:1a:19:aa:5b:8c:97:72:3e:2e:2b:8b:a5:91:c0:
54:9c:21:cc:50:2e:63:9e:b6:1c:c3:45:b5:54:7a:
61:97:6f:08:4a:51:02:e1:62:d9:9c:c7:46:34:29:
78:ae:ce:a1:02:66:08:7b:4b:a3:36:fa:f4:84:cc:
36:13:1d:3f:9f:5d:af:8d:ff:44:06:bc:f6:10:9b:
67:19:8d:c1:d4:a7:98:6c:80:f0:80:93:8f:d3:e0:
0e:fa:91:a0:28:c0:94:81:fe:b1:c5:b3:23:d7:ce:
31:e9:8b:00:6a:05:92:fc:d3:93:8b:26:14:a8:d7:
0f:62:5d:d6:94:08:2a:5f:65:18:04:05:a2:7e:29:
5b:c5
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
X509v3 Subject Key Identifier:
E0:66:B9:0A:80:55:5E:38:F8:F4:E4:48:05:03:01:91:C8:DF:31:AB
X509v3 Authority Key Identifier:
keyid:AF:D5:34:BD:80:03:99:18:63:98:88:25:D0:51:86:AE:60:97:D1:F8
DirName:/CN=borrame
serial:52:CC:E7:A9:62:E3:DF:DC:EA:AE:FF:FB:CF:38:CA:C5:71:8E:CB:6E
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Key Usage:
Digital Signature, Key Encipherment
X509v3 Subject Alternative Name:
DNS:borrame
Signature Algorithm: sha256WithRSAEncryption
20:50:34:d1:0a:7c:21:d4:ba:ac:82:34:c2:bf:95:56:15:e3:
f1:24:b6:a1:4a:48:8a:f8:eb:12:8b:a7:58:6a:a0:77:a0:67:
66:1a:0f:b0:b0:e0:04:ef:59:38:54:10:46:8b:35:18:c3:92:
b8:79:cb:c1:0b:96:f1:b9:81:8a:8e:00:01:07:4d:f4:b1:cf:
7b:35:36:1d:78:c2:42:28:06:0e:9f:c9:28:1b:c7:a7:a1:d3:
24:c0:07:d1:d4:3d:a5:8e:f2:fa:fc:87:e7:c6:54:0c:bb:48:
14:8d:5a:cf:7c:d7:91:1d:4f:a1:bf:8e:a9:3f:45:f2:98:b1:
8b:cc:75:dc:b1:47:8f:1e:ca:4f:51:21:f4:c5:e3:bd:ff:e1:
0f:b1:e2:29:35:c5:17:ef:5e:7a:3d:d0:88:af:47:4b:9e:33:
bd:20:15:56:a8:09:64:83:2b:ec:67:f6:4b:fd:7c:ca:80:07:
ef:8c:f8:d1:e2:64:4a:48:0d:a2:88:f1:df:9c:14:3b:83:a7:
3f:2a:99:b4:42:76:17:23:89:24:07:ad:38:d0:7a:5b:95:bb:
62:dc:a4:84:6a:1d:95:32:d7:ec:21:0f:62:c0:03:fe:00:c7:
db:3c:da:9e:49:2e:61:a3:54:94:86:27:48:04:35:c6:d9:c9:
72:6f:52:28
-----BEGIN CERTIFICATE-----
MIIDYjCCAkqgAwIBAgIRAJIFEQynHbI+uyST6YqCCdcwDQYJKoZIhvcNAQELBQAw
EjEQMA4GA1UEAwwHYm9ycmFtZTAeFw0yMTExMTkyMjU4NTlaFw0yNDAyMjIyMjU4
NTlaMBIxEDAOBgNVBAMMB2JvcnJhbWUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDKePacVhI1vkgFwpHFLe9FfnNbopgscMA2w2aAsPvXOA2ATwvTLFxX
ccqtfx3A4BrWD+LmOU6WXU413uofi15Wq2RCNb1q5exHnFHeHol15UOjpHvarZYA
mYuAJ47HnSu3QXwuLeNuvE5xmuJLisP2hBh2bggIxm8aGapbjJdyPi4ri6WRwFSc
IcxQLmOethzDRbVUemGXbwhKUQLhYtmcx0Y0KXiuzqECZgh7S6M2+vSEzDYTHT+f
Xa+N/0QGvPYQm2cZjcHUp5hsgPCAk4/T4A76kaAowJSB/rHFsyPXzjHpiwBqBZL8
05OLJhSo1w9iXdaUCCpfZRgEBaJ+KVvFAgMBAAGjgbIwga8wCQYDVR0TBAIwADAd
BgNVHQ4EFgQU4Ga5CoBVXjj49ORIBQMBkcjfMaswTQYDVR0jBEYwRIAUr9U0vYAD
mRhjmIgl0FGGrmCX0fihFqQUMBIxEDAOBgNVBAMMB2JvcnJhbWWCFFLM56li49/c
6q7/+884ysVxjstuMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAsGA1UdDwQEAwIFoDAS
BgNVHREECzAJggdib3JyYW1lMA0GCSqGSIb3DQEBCwUAA4IBAQAgUDTRCnwh1Lqs
gjTCv5VWFePxJLahSkiK+OsSi6dYaqB3oGdmGg+wsOAE71k4VBBGizUYw5K4ecvB
C5bxuYGKjgABB030sc97NTYdeMJCKAYOn8koG8enodMkwAfR1D2ljvL6/IfnxlQM
u0gUjVrPfNeRHU+hv46pP0XymLGLzHXcsUePHspPUSH0xeO9/+EPseIpNcUX7156
PdCIr0dLnjO9IBVWqAlkgyvsZ/ZL/XzKgAfvjPjR4mRKSA2iiPHfnBQ7g6c/Kpm0
QnYXI4kkB6040Hpblbti3KSEah2VMtfsIQ9iwAP+AMfbPNqeSS5ho1SUhidIBDXG
2clyb1Io
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC4jweH+SP7WRcl
/0CLgn/NVoWmokRmgqFa+pURpt9KzZvXXSPRE2AhTO5YuX//NPd17QFJTMpvowC4
AqwBTvVkFI9LpUNVNvIoVmMGy2rleUdwiZra2k2Q/Nyk6rbWSbYKelNwl4BzR671
217f5tuoXsPsDk4Qd7f3GP4peFBRFXy4tbHXIaKpOIHnvzFBlOPJ5g+w3fdH5f3c
6mMEvPqBgpBRcBfntZKWLw0IyMbetVA7Tvp6XhpOjvR7P/64lcmTJiu9/h10CBcO
TX1cvh3P9K9NOrBUl1UuMXwjuKCWoGVebZo3evD2OFRNv7XYcjpSQCDpq2l9YvRH
WCbPdfhZAgMBAAECggEBAJZsBQBfIGOQ9lwC0fGjGFUc6uuon8VJPQfw6qSrdJz8
PcNnZ3TVrOkXUcBA2MEBw5t64yyCCRC6MzDHBLhASaMbWruV4+5FTVNxLV7xVpvX
oFFp5ivv935vicpkf0biZxvdHbrL0GalC0XZWVd2SpvNOTRhaGDloqwj06urIxMh
4ohf5jPr38ly2yaoAygHEXa4xRc0JUed4n+wgdCAaUU//+9LwSaDl2xa3GX/6B4Y
NLpzYVGysgqR+CP7T4OFLMdwYuRFWSWkfwTAZL8840W9OMPOZ1j1P+q8CNnHZAVT
86LvEI6K8aD/UOwUnujMkUZoIUY5Pq77bBdTrcol1oECgYEA8/dHWXi/VVJpLhd1
g2QEbj5p5xbYOzpRv84j0qcLXMwtHajLpeCZtjawTmIsUwoJuigJxCLpRUm9Y9Iq
qqzmfTb5Jghadg8SuiWDb0ih8XPZtnt3Ayo3NKWqeDri3Rw8MK9gWpRL3SQCoHbK
D4RZR5tW+1HeqDat9gVtaGUMqWkCgYEAwamTbZO7EYGHUJXw8GvFZEmZYpkHeNUS
o4LEgWYCDC5I7ba11zRQf7nyFNBfeFcznf/K3wEsjOl2SRKezubK1xwFQE+gVxQ5
FbkGDUtY45lxuygpLfFOcVjktEaKO3HNmLnyaEa7Jta0n0SG25oKDVoruSXReehY
Aqr+DE/GiXECgYEA3zZuB4ScurnuFgfMsux9yUg9qPuT14ziYvV+fSvtD3iYBrz7
psc6nCapZO4Z09gpUjNzzAqNF6ICMCSIeSQ8tm/nwU5/RelAnyPXf6ga00nF9lo8
Z57mZ7rzn5FxJBDDWV/8bqOkTa624I4PDedvsD6GdOdRKuLsg14v3gYmcZECgYB3
La9PkMlfhZHLUuraWcg45l4hYkFJ5/43Z8McSrVZ36X7vCP9kvEzGTBUBMOr4CYg
xoiHYkaTVRz47R+T/k23wUOuBxKKZCSZLKr/xW2nawelgJqO7mAyutzL4FkzKd63
bT8zUsvbo+e118sSG6KyAtrDbvWRix2WTrpWw0VP0QKBgGTiq7IoHrR6FURR3DLR
xAhMnXgOzLtENgCWxcRoapsaM1BaAQBnjCys06MoG1BX3qQAzIy+BTYMAUHhYoRn
/lZdhJGS6OGfzdyGTyHzHzfTr2Jknisksww3LOYkYdpfco+BlWF9CV0ST1jj9v00
AlVH0P5K3lFKD9q5/8oIcWDm
-----END PRIVATE KEY-----
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
e4:e7:35:27:0e:39:9b:a0:0a:38:c0:3e:89:a9:a2:44
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=borrame
Validity
Not Before: Nov 19 22:59:14 2021 GMT
Not After : Feb 22 22:59:14 2024 GMT
Subject: CN=oldscizor
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:b8:8f:07:87:f9:23:fb:59:17:25:ff:40:8b:82:
7f:cd:56:85:a6:a2:44:66:82:a1:5a:fa:95:11:a6:
df:4a:cd:9b:d7:5d:23:d1:13:60:21:4c:ee:58:b9:
7f:ff:34:f7:75:ed:01:49:4c:ca:6f:a3:00:b8:02:
ac:01:4e:f5:64:14:8f:4b:a5:43:55:36:f2:28:56:
63:06:cb:6a:e5:79:47:70:89:9a:da:da:4d:90:fc:
dc:a4:ea:b6:d6:49:b6:0a:7a:53:70:97:80:73:47:
ae:f5:db:5e:df:e6:db:a8:5e:c3:ec:0e:4e:10:77:
b7:f7:18:fe:29:78:50:51:15:7c:b8:b5:b1:d7:21:
a2:a9:38:81:e7:bf:31:41:94:e3:c9:e6:0f:b0:dd:
f7:47:e5:fd:dc:ea:63:04:bc:fa:81:82:90:51:70:
17:e7:b5:92:96:2f:0d:08:c8:c6:de:b5:50:3b:4e:
fa:7a:5e:1a:4e:8e:f4:7b:3f:fe:b8:95:c9:93:26:
2b:bd:fe:1d:74:08:17:0e:4d:7d:5c:be:1d:cf:f4:
af:4d:3a:b0:54:97:55:2e:31:7c:23:b8:a0:96:a0:
65:5e:6d:9a:37:7a:f0:f6:38:54:4d:bf:b5:d8:72:
3a:52:40:20:e9:ab:69:7d:62:f4:47:58:26:cf:75:
f8:59
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
X509v3 Subject Key Identifier:
ED:06:85:8E:70:F2:2E:F4:46:68:AE:5D:A8:97:8D:63:84:DB:1E:3D
X509v3 Authority Key Identifier:
keyid:AF:D5:34:BD:80:03:99:18:63:98:88:25:D0:51:86:AE:60:97:D1:F8
DirName:/CN=borrame
serial:52:CC:E7:A9:62:E3:DF:DC:EA:AE:FF:FB:CF:38:CA:C5:71:8E:CB:6E
X509v3 Extended Key Usage:
TLS Web Client Authentication
X509v3 Key Usage:
Digital Signature
Signature Algorithm: sha256WithRSAEncryption
af:30:c2:94:52:f0:01:0f:3b:e9:93:47:b0:bf:9e:9a:d5:e0:
07:21:af:b8:3f:1e:80:b1:37:bf:89:f6:d3:9d:07:da:27:9b:
ce:3c:e6:54:14:a2:7b:8f:4c:43:67:b3:1c:12:a9:4e:5f:e3:
6f:f6:a6:48:94:9a:f6:a4:75:d6:31:0e:2b:ab:18:7c:54:c1:
ae:82:09:d6:1f:2d:2d:c3:3a:1d:5b:7a:92:b7:13:16:40:da:
69:3a:47:52:b0:cb:f5:53:71:ba:53:a6:3e:77:33:04:d7:ae:
d7:8a:09:56:23:6b:2c:2c:29:a6:eb:b9:54:79:10:40:4b:d4:
db:71:ed:fd:5d:cc:9f:bc:fd:9a:dc:58:ed:de:c2:62:9d:bc:
fc:3e:13:7e:9b:f5:8c:02:cf:aa:30:e4:86:68:7b:f0:0a:83:
18:03:af:50:c2:ed:8c:c0:63:cf:48:38:e1:c5:10:a2:06:40:
09:d9:63:31:b8:0f:c4:b6:2d:8f:0b:ee:b8:29:a5:e5:30:2e:
48:63:f6:20:27:38:3c:22:e3:52:7b:bf:29:50:82:3e:b1:b6:
80:bd:3b:f0:a3:ba:1b:4f:22:40:07:e0:4c:89:13:68:32:b0:
d0:a8:32:6b:3a:f5:1d:10:8d:26:34:10:c7:5d:ec:1a:5a:6d:
c3:e8:0e:db
-----BEGIN CERTIFICATE-----
MIIDUDCCAjigAwIBAgIRAOTnNScOOZugCjjAPompokQwDQYJKoZIhvcNAQELBQAw
EjEQMA4GA1UEAwwHYm9ycmFtZTAeFw0yMTExMTkyMjU5MTRaFw0yNDAyMjIyMjU5
MTRaMBQxEjAQBgNVBAMMCW9sZHNjaXpvcjCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBALiPB4f5I/tZFyX/QIuCf81WhaaiRGaCoVr6lRGm30rNm9ddI9ET
YCFM7li5f/8093XtAUlMym+jALgCrAFO9WQUj0ulQ1U28ihWYwbLauV5R3CJmtra
TZD83KTqttZJtgp6U3CXgHNHrvXbXt/m26hew+wOThB3t/cY/il4UFEVfLi1sdch
oqk4gee/MUGU48nmD7Dd90fl/dzqYwS8+oGCkFFwF+e1kpYvDQjIxt61UDtO+npe
Gk6O9Hs//riVyZMmK73+HXQIFw5NfVy+Hc/0r006sFSXVS4xfCO4oJagZV5tmjd6
8PY4VE2/tdhyOlJAIOmraX1i9EdYJs91+FkCAwEAAaOBnjCBmzAJBgNVHRMEAjAA
MB0GA1UdDgQWBBTtBoWOcPIu9EZorl2ol41jhNsePTBNBgNVHSMERjBEgBSv1TS9
gAOZGGOYiCXQUYauYJfR+KEWpBQwEjEQMA4GA1UEAwwHYm9ycmFtZYIUUsznqWLj
39zqrv/7zzjKxXGOy24wEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeA
MA0GCSqGSIb3DQEBCwUAA4IBAQCvMMKUUvABDzvpk0ewv56a1eAHIa+4Px6AsTe/
ifbTnQfaJ5vOPOZUFKJ7j0xDZ7McEqlOX+Nv9qZIlJr2pHXWMQ4rqxh8VMGuggnW
Hy0twzodW3qStxMWQNppOkdSsMv1U3G6U6Y+dzME167XiglWI2ssLCmm67lUeRBA
S9Tbce39XcyfvP2a3Fjt3sJinbz8PhN+m/WMAs+qMOSGaHvwCoMYA69Qwu2MwGPP
SDjhxRCiBkAJ2WMxuA/Eti2PC+64KaXlMC5IY/YgJzg8IuNSe78pUII+sbaAvTvw
o7obTyJAB+BMiRNoMrDQqDJrOvUdEI0mNBDHXewaWm3D6A7b
-----END CERTIFICATE-----
-----BEGIN OpenVPN Static key V1-----
c7a3b92eea6eaf2392b8610c05e9fe87
4b69bdaa948b136098d953681e3bc71b
c33a32c2936952af6ad02faf64148da9
40f4bbfb5d8e97c0404702c618af2668
8e7adf84d37343ce5ab6d13e4e5a7dd3
5351c90db4c04dd6794088625cbb7238
8fb03663b5cffc00626d7acc00a44f3b
157edd5f98c3e7b04f8815a98801d34e
e38c2fb39608d8658d528a65879326f0
8c501f46b8cfa3e6520e5e116263fad9
1e28fe1c4f949d8117b190f800e70614
7d5cfc6c8312e566971f83115087497d
f23803399d963ad9653e56845a610d4c
886fba216f71ae6d87fc3b07c2bd288f
4eb81dff04ffd2dede81993cb29bd470
3e0a42728ae814f08694d4be46bdbd74
-----END OpenVPN Static key V1-----
Enviando claves al servidor (en este caso es la misma máquina):
cp pki/dh.pem /etc/openvpn/server/
cp pki/ca.crt /etc/openvpn/server/
cp pki/private/arrakis.key /etc/openvpn/server/
cp pki/issued/arrakis.crt /etc/openvpn/server/
cp ta.key /etc/openvpn/server/
Enviando claves al cliente oldscizor (mediante SCP):
scp pki/private/oldscizor.key oldscizor.es:/tmp
scp pki/issued/oldscizor.crt oldscizor.es:/tmp
scp pki/ca.crt oldscizor.es:/tmp
scp ta.key oldscizor.es:/tmp
Entonces, en el cliente oldscizor, los movemos a su localización final:
sudo mv /tmp/oldscizor.key /etc/openvpn
sudo mv /tmp/oldscizor.crt /etc/openvpn
sudo mv /tmp/ca.crt /etc/openvpn
sudo mv /tmp/ta.key /etc/openvpn
port 1194
proto udp
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/arrakis.crt
key /etc/openvpn/server/arrakis.key
dh /etc/openvpn/server/dh.pem
server 10.10.0.0 255.255.255.0
ifconfig-pool-persist ipp.code
keepalive 10 120
tls-auth ta.key 0
cipher AES-256-CBC
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn
verb 3
explicit-exit-notify 1
client
dev tun
proto udp
remote arrakis 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/oldscizor.crt
key /etc/openvpn/oldscizor.key
remote-cert-tls server
tls-auth /etc/openvpn/ta.key 1
cipher AES-256-CBC
verb 3
echo "client-config-dir ccd" >> /etc/openvpn/server/arrakis.conf
mkdir /etc/openvpn/server/ccd
echo "ifconfig-push 10.10.0.100 255.255.255.0" >> /etc/openvpn/server/ccd/oldscizor
echo "client-to-client" >> /etc/openvpn/server/arrakis.conf
En el servidor arrakis:
./easyrsa gen-req maquina nopass
./easyrsa sign-req client maquina
cp pki/private/maquina.key /tmp
cp pki/issued/maquina.crt /tmp
cp pki/ca.crt /tmp
cp ta.key /tmp
echo "ifconfig-push 10.10.0.101 255.255.255.0" >> /etc/openvpn/server/ccd/maquina
En el nuevo cliente:
scp arrakis:/tmp/maquina.key /etc/openvpn
scp arrakis:/tmp/maquina.crt /etc/openvpn
scp arrakis:/tmp/ca.crt /etc/openvpn
scp arrakis:/tmp/ta.key /etc/openvpn
echo "client
dev tun
proto udp
remote arrakis 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/maquina.crt
key /etc/openvpn/maquina.key
remote-cert-tls server
tls-auth /etc/openvpn/ta.key 1
cipher AES-256-CBC
verb 3
auth-nocache" > /etc/openvpn/maquina.conf
chmod 700 /etc/openvpn/*