VPN Roadwarrior con instaladores para clientes Win32 y GNU/Linux

Imagen de RazaMetaL

Uno de los problemas con los que me he encontrado al implementar alguna solución es el usuario, "Es muy difícil", "Yo no puedo hacerlo", "Háblame en español", "Mejor te dejo la laptop y tu lo instalas", etc .... son frases que muchos hemos escuchado al decirle al usuario que realiza alguna modificación.

Que tan difícil es que muchas veces prefiero que el usuario tengo un archivo que le instale todo de manera _automágica_ y no saber de él nunca mas :evil:

Esa es la finalidad de esta pequeña guía. No esta de más advertirles que no es el método más seguro de tener una VPN puesto que la clave esta en el instalador que se le da al usuario y si este no cuida ese archivo cualquier persona tendrá acceso a la red interna solo con instalar la aplicación en su máquina. No digan que no les advertí.

CONFIGURACION DEL SERVIDOR VPN:
1.- Instalar dependencias:

aptitude install openvpn bridge-utils

2.- Copiar el script para habilitar el modo bridge en /etc/init.d/bridge

#!/bin/bash
# Create global variables
# Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"
# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth1"
eth_ip="172.25.55.8"
eth_netmask="255.255.255.0"
eth_broadcast="172.25.55.255"
gw=""

start_bridge () {
#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################
for t in $tap; do
openvpn --mktun --dev $t
done
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done

ifconfig $eth 0.0.0.0 promisc up

brctl addbr $br
brctl addif $br $eth
for t in $tap; do
brctl addif $br $t
done
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast up
route add default gw $gw $br
}

stop_bridge () {
####################################
# Tear Down Ethernet bridge on Linux
####################################
ifconfig $br down
brctl delbr $br
for t in $tap; do
openvpn --rmtun --dev $t
done

ifconfig $eth $eth_ip netmask $eth_netmask broadcast $eth_broadcast up
route add default gw $gw $eth
}
case "$1" in
start)
echo -n "Starting Bridge"
start_bridge
;;
stop)
echo -n "Stopping Bridge"
stop_bridge
;;
restart)
stop_bridge
sleep 2
start_bridge
;;
*)
echo "Usage: $0 {start|stop|restart}" >&2
exit 1
;;
esac

2.- Crear usuarios VPN:

export user=usuario
openvpn --genkey --secret $user.key

3.- Crear configuración para cada usuario en el servidor:

vi $user.conf


# Configuraciones diferentes para cada usuario
port 5000
dev tap0
secret usuario.key
log-append /var/log/openvpn/usuario.log

# Configuraciones iguales para todos los usuarios
local 123.123.123.123
fragment 1400
mssfix
ping 10
ping-restart 35
ping-timer-rem
persist-tun
persist-key
persist-local-ip
comp-lzo
#comp-noadapt
user openvpn
group openvpn
verb 4
##EOF

CONFIGURACIONES EN EL CLIENTE VPN:
1.- Descargar el instalador de OpenVPN para windows desde www.openvpn.net e instalarlo en la maquina Cliente:

[url]http://openvpn.net/release/openvpn-2.0.9-install.exe[/url]

2.- Configuracion de Clientes windows:

Copiar la llave usuario.key desde el servidor al cliente en C:\Program Files\OpenVpn\config

3.- Crear el archivo usuario.ovpn en el mismo directorio conteniendo lo siguiente:

# Windows VPN client config file
# Configuraciones diferentes para cada usuario
port 5000
secret usuario.key
ifconfig 172.25.55.170 255.255.255.0

# Configuraciones iguales para cada usuario
remote 123.123.123.123
route-delay 10
dev tap
tap-sleep 1
fragment 1400
mssfix
ifconfig-nowarn
ip-win32 dynamic
ping 10
comp-lzo
#comp-noadapt
verb 4
## EOF

PROCEDIMIENTO PARA CREAR UN INSTALADOR EJECUTABLE PARA CADA USUARIO DE LA VPN
1.- Descargar e instalar NSIS:
[url]http://nsis.sourceforge.net/download[/url]

2.- Descargar OpenVPN source para windows :
[url]http://www.openvpn.se/files/install_packages_source/openvpn_install_source-2.0.9-gui-1.0.3.zip[/url]

3.- Descrompimir openvpn_install_source-2.0.9-gui-1.0.3.zip en c:\openvpnsetup

4.- Crear el directorio config en c:\openvpnsetup\openvpn\

5.- Copiar el archivo de configuracion usuario.ovpn dentro del directorio c:\openvpnsetup\openvpn\config

6.- Copiar el archivo de llaves usuario.key dentro del directorio c:\openvpnsetup\openvpn\config

7.- En el archivo c:\openvpnsetup\openvpn-gui.nsi debemos descomentar y modificar el siguiente campo en la seccion "OpenVPN GUI" SecGUI:

;File "${HOME}\config\Office.ovpn"

Deberia quedar asi:

File "${HOME}\config\usuario.ovpn"
File "${HOME}\config\usuario.key"

8.- En el archivo c:\openvpnsetup\openvpn-gui.nsi daremos un nombre de identificion al instalador agregandolo en el siguiente campo:

!define OUTFILE_LABEL ""

Deberia quedar asi:

!define OUTFILE_LABEL "-usuario"

9.- Opcional: Para ocultar el adaptador TAP que nos crea OpenVPN comentamos con ; el siguiente campo dentro de c:\openvpnsetup\openvpn-gui.nsi :

; SectionSetFlags ${SecTAPHidden} 0

10.- Dar click con el boton derecho en openvpn-gui.nsi y escoger Compile NSI, esta acción nos creará un archivo con extension exe (ejecutable de windows) en c:\openvpnsetup

11.- Copiamos el archivo con extensión exe a la maquina donde se instalar el servicio y se le da doble click, esto instalará openvpn, el archivo de configuracion respectivo y la clave del usuario.

12.- Al ejecutar el instalador en el terminal estaremos listos para iniciar la sesión VPN con el servidor. Es altamente recomendable hacer un instalador para cada usuario y tener la clave separada, en este tutorial la clave esta incluida en el instalador. Si no quieren ese escenario revisen el numeral 7 y eliminen la línea File "${HOME}\config\usuario.key" del archivo Office.ovpn.

Si necesitamos conectarnos desde nuestra laptop con GNU/Linux debemos instalar:

aptitude install openvpn

Luego en /etc/openvpn creamos el archivo de configuración muy similar a la de windows pero quitando los parámetros tap-sleep e ip-win32:
myoffice.ovpn

Windows VPN client config file
# Configuraciones diferentes para cada usuario
port 5001
secret myuser.key
ifconfig 172.25.55.66 255.255.255.0

# Configuraciones iguales para cada usuario
remote 123.123.123.123
route-delay 10
dev tap
fragment 1400
mssfix
ifconfig-nowarn
ping 10
comp-lzo
verb 4
## EOF

No olvidemos descargar la clave que tengamos generada para este usuario y ubicarla en la misma ruta que el archivo de configuración.

Finalmente para conectarnos ejecutamos:


openvpn --config "myoffice.ovpn"

Comentarios

De nada Si quiers tener mas

Imagen de RazaMetaL

De nada :)

Si quiers tener mas clientes VPN solo debes agregar mas interfaces tap en el script de bridge.

------------

Antes de preguntar visita el [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

 

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});