informatica:linux:openvpn
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
informatica:linux:openvpn [2015/02/02 11:03] – javi | informatica:linux:openvpn [2018/01/05 10:05] – [Migracion a openvpn >=2.3] javi | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== OpenVPN ====== | + | ======= OpenVPN |
- | ===== Routed VPN ===== | + | ====== Routed VPN ====== |
- | ==== Instalacion y configuracion ==== | + | ===== Instalacion y configuracion |
Esta configuración nos permite conectividad punto a punto entre los distintos clientes y el servidor VPN | Esta configuración nos permite conectividad punto a punto entre los distintos clientes y el servidor VPN | ||
Line 22: | Line 22: | ||
< | < | ||
- | cd /usr/share/ | + | cd / |
sudo su | sudo su | ||
vim vars | vim vars | ||
Line 44: | Line 44: | ||
./clean-all | ./clean-all | ||
./build-ca | ./build-ca | ||
+ | </ | ||
+ | |||
+ | Error: | ||
+ | |||
+ | < | ||
+ | grep: / | ||
+ | pkitool: KEY_CONFIG (set by the ./vars script) is pointing to the wrong | ||
+ | version of openssl.cnf: | ||
+ | The correct version should have a comment that says: easy-rsa version 2.x | ||
+ | </ | ||
+ | |||
+ | Solución: | ||
+ | |||
+ | ln -s openssl-1.0.0.cnf openssl.cnf | ||
+ | |||
+ | Y volver a intentar: | ||
+ | |||
+ | ./build-ca | ||
+ | | ||
+ | Error: | ||
+ | |||
+ | < | ||
+ | unable to find ' | ||
+ | problems making Certificate Request | ||
+ | 1995425184: | ||
+ | </ | ||
+ | |||
+ | Desconozco el motivo, pero se resuleve editando las lineas en las que se le asigna un valor a la variable " | ||
+ | |||
+ | vim openssl.cnf | ||
+ | | ||
+ | Y cambio los valores: | ||
+ | |||
+ | < | ||
+ | # anyadido | ||
+ | # | ||
+ | subjectAltName=email: | ||
+ | </ | ||
+ | |||
+ | Y volver a intentar: | ||
+ | |||
+ | ./build-ca | ||
+ | |||
+ | Ahora a contestar las preguntas y pulsar " | ||
+ | |||
+ | < | ||
+ | Country Name (2 letter code) [US]:ES | ||
+ | State or Province Name (full name) [BC]: | ||
+ | Locality Name (eg, city) [Barcelona]: | ||
+ | Organization Name (eg, company) [Contrabanda FM]: | ||
+ | Organizational Unit Name (eg, section) [Tècnica]: | ||
+ | Common Name (eg, your name or your server' | ||
+ | Name [EasyRSA]: | ||
+ | Email Address [admin@example.com]: | ||
</ | </ | ||
Line 51: | Line 105: | ||
./ | ./ | ||
+ | |||
+ | Ahora a contestar las preguntas y pulsar " | ||
+ | |||
+ | < | ||
+ | Country Name (2 letter code) [US]:ES | ||
+ | State or Province Name (full name) [BC]: | ||
+ | Locality Name (eg, city) [Barcelona]: | ||
+ | Organization Name (eg, company) [Contrabanda FM]: | ||
+ | Organizational Unit Name (eg, section) [Tècnica]: | ||
+ | Common Name (eg, your name or your server' | ||
+ | Name [EasyRSA]: | ||
+ | Email Address [admin@example.com]: | ||
+ | </ | ||
+ | |||
+ | Las contraseñas las dejo en blanco: | ||
+ | |||
+ | A challenge password []: | ||
+ | An optional company name []: | ||
+ | |||
+ | Y aquí hay que pulsar " | ||
+ | |||
+ | Sign the certificate? | ||
+ | 1 out of 1 certificate requests certified, commit? [y/n] | ||
4.2. Generate Diffie Hellman parameters | 4.2. Generate Diffie Hellman parameters | ||
+ | **OJO**: puede llevar mucho tiempo, unos 15 minutos: | ||
+ | |||
./build-dh | ./build-dh | ||
- | 4.3. Mover llaves | + | 4.3. Mover llaves |
mkdir -p / | mkdir -p / | ||
Line 79: | Line 158: | ||
cert / | cert / | ||
key / | key / | ||
- | dh / | + | dh / |
server 172.16.0.0 255.255.255.0 | server 172.16.0.0 255.255.255.0 | ||
ifconfig-pool-persist ipp.txt | ifconfig-pool-persist ipp.txt | ||
Line 102: | Line 181: | ||
Hay muchas opciones (" | Hay muchas opciones (" | ||
- | ==== Generar claves de los clientes ==== | + | ===== Generar claves de los clientes |
- | === Migracion a openvpn >=2.3 === | ||
- | |||
- | **IMPORTANTE**: | ||
- | |||
- | 0. Instalar paquete, ahora ya NO es parte de openvpn | ||
- | |||
- | sudo aptitude install easy-rsa | ||
- | | ||
- | 1. **IMPORTANTE**: | ||
- | cd / | ||
- | mv keys keys.old | ||
- | sudo mv / | ||
- | === Procedimiento generico === | + | ==== Procedimiento generico |
Para cada nuevo cliente se tiene que repetir este proceso completo. | Para cada nuevo cliente se tiene que repetir este proceso completo. | ||
Line 143: | Line 210: | ||
mkdir -p ~/ | mkdir -p ~/ | ||
- | user=" | + | user=" |
rm -fr keys/ | rm -fr keys/ | ||
Line 305: | Line 372: | ||
sudo service openvpn start | sudo service openvpn start | ||
- | ===== Acceso desde el cliente a la LAN del servidor VPN (gateway de la LAN y servidor VPN son distintos) ===== | + | ====== Acceso desde el cliente a la LAN del servidor VPN (gateway de la LAN y servidor VPN son distintos) |
Queremos que desde el cliente se llegue no solo al servidor VPN, sino también a la LAN de ese servidor. La particularidad es que el servidor VPN es una máquina virtual detrás de un Hipervisor KVM. Además el Hipervisor KVM está detrás de un router ADSL casero en modo DMZ, de forma que TODO el tráfico lo redirige hacia el Hipervisor. | Queremos que desde el cliente se llegue no solo al servidor VPN, sino también a la LAN de ese servidor. La particularidad es que el servidor VPN es una máquina virtual detrás de un Hipervisor KVM. Además el Hipervisor KVM está detrás de un router ADSL casero en modo DMZ, de forma que TODO el tráfico lo redirige hacia el Hipervisor. | ||
Line 458: | Line 525: | ||
ping 10.0.0.12 | ping 10.0.0.12 | ||
- | ===== Configurar DNS en el cliente ===== | + | ====== Configurar DNS en el cliente |
Para que el cliente reciba del servidor VPN parámetros como servidor DNS o Dominio de búsqueda necesitamos configuración tanto en el servidor como en el cliente, y un script en el lado cliente. Si la máquina es Windows el script no es necesario. | Para que el cliente reciba del servidor VPN parámetros como servidor DNS o Dominio de búsqueda necesitamos configuración tanto en el servidor como en el cliente, y un script en el lado cliente. Si la máquina es Windows el script no es necesario. | ||
Line 581: | Line 648: | ||
</ | </ | ||
- | ===== Revocar certificados ===== | + | ====== Revocar certificados |
http:// | http:// | ||
Line 638: | Line 705: | ||
</ | </ | ||
- | ====== Receta 2 (parcialmente incompleta) ====== | + | ======= Receta 2 (parcialmente incompleta) |
- | ===== Instalar OPENVPN ===== | + | ====== Instalar OPENVPN |
# apt-get install openvpn | # apt-get install openvpn | ||
- | ===== Crear certificados ===== | + | ====== Crear certificados |
- | ==== Generar la CA para firmar los certificados ==== | + | ===== Generar la CA para firmar los certificados |
Copiamos el directorio de ejemplo en la carpeta de configuración de OpenVPN: | Copiamos el directorio de ejemplo en la carpeta de configuración de OpenVPN: | ||
#/ | #/ | ||
Line 691: | Line 758: | ||
-rw-r--r-- 1 root root 3 Nov 6 21:20 serial | -rw-r--r-- 1 root root 3 Nov 6 21:20 serial | ||
- | ===== Creación de Certificado y llaves para Servidor ===== | + | ====== Creación de Certificado y llaves para Servidor |
Line 740: | Line 807: | ||
- | ===== Generar Certificado para los clientes ===== | + | ====== Generar Certificado para los clientes |
./build-key client1 | ./build-key client1 | ||
Line 770: | Line 837: | ||
Please enter the following ' | Please enter the following ' | ||
to be sent with your certificate request | to be sent with your certificate request | ||
- | A challenge password []:fermin99 | + | A challenge password []:mysecretpassword |
An optional company name []: | An optional company name []: | ||
Using configuration from / | Using configuration from / | ||
Line 793: | Line 860: | ||
- | ===== Generate Diffie Hellman parameters ===== | + | ====== Generate Diffie Hellman parameters |
Diffie Hellman parameters must be generated for the OpenVPN server. On Linux/ | Diffie Hellman parameters must be generated for the OpenVPN server. On Linux/ | ||
Line 799: | Line 866: | ||
- | ===== Ficheros de configuración ===== | + | ====== Ficheros de configuración |
donquixot:/ | donquixot:/ | ||
- | ===== Habilitar para máquinas virtuales contenedores openvz ===== | + | ====== Habilitar para máquinas virtuales contenedores openvz |
vzctl set 101 --devnodes net/tun:rw --save | vzctl set 101 --devnodes net/tun:rw --save | ||
Line 861: | Line 928: | ||
Y la ruta 10.8.0.0/24 -> 10.139.67.103 (ip del servidor vpn) | Y la ruta 10.8.0.0/24 -> 10.139.67.103 (ip del servidor vpn) | ||
- | ===== Autenticación LDAP ===== | + | ====== Autenticación LDAP ====== |
/ | / |
informatica/linux/openvpn.txt · Last modified: 2018/01/05 14:20 by javi