Está en la página 1de 4

UNLu - Departamento de Ciencias Bsicas

Administracin y Gestin de Redes


Curso 2016

Trabajo Prctico 9: Seguridad en Redes


Redes Privadas Virtuales mediante OpenVPN/TLS

Fecha de Entrega: 17/11/2016

Bibliografa
Hertzog, R., Mas, R., Captulo 10.2. Red privada virtual en "Debian 8: El libro del administrador de
Debian, 2015 https://debian-handbook.info/browse/es-ES/stable/sect.virtual-private-network.html

OpenVPN es un software basado en Transport Layer Security (TLS) que permite crear redes privadas
virtuales entre dos o ms nodos, sobre una red pblica tal como es Internet. Opera en forma cliente/servidor
mediante en la creacin de interfaces de red virtuales denominadas tun (para tneles que transportan
paquetes IP) o tap (en el caso de tneles transportan tramas Ethernet).

En esta prctica crearemos un tnel para transporte de paquetes IP utilizando OpenVPN en modo routing.

Instructivo bsico para el uso de OpenVPN


Instalacin y configuracin de los servicios
Instalar el paquete openvpn en el equipo servidor y en todos los clientes.
apt-get install openvpn easy-rsa
Prueba de una conexin VPN local. Para ello, iniciar el extremo del tnel en el servidor:
openvpn --dev tun1 --ifconfig 10.9.8.1 10.9.8.2

Wed Mar 7 06:03:03 2012 NOTE: OpenVPN 2.1 requires '--script-security 2'
or higher to call user-defined scripts or executables
Wed Mar 7 06:03:03 2012 ******* WARNING *******: all encryption and
authentication features disabled -- all data will be tunnelled as
cleartext
Wed Mar 7 06:03:03 2012 TUN/TAP device tun1 opened
Verificar que la interfaz del tnel (tun1) punto a punto est activa mediante el comando ip :
ip link
Iniciar una captura de trfico, y posteriormente iniciar el otro extremo del tnel en el cliente:
openvpn --remote SERVER_IP --dev tun1 --ifconfig 10.9.8.2 10.9.8.1
...
Wed Mar 7 18:05:30 2012 Peer Connection Initiated with
[AF_INET]SERVER_IP:PORT
Wed Mar 7 18:05:30 2012 Initialization Sequence Completed
...
Comprobar que el tnel opera adecuadamente realizando un echo request/reply:
ping 10.9.8.1
Analizar la captura identificando los mensajes de establecimiento del tnel y buscando los paquetes
correspondientes a los mensajes ICMP Echo Request y Echo Reply.
Hasta ahora, Qu servicios de seguridad brinda este tnel bajo esta configuracin?
La autenticacin en OpenVPN puede realizarse mediante credenciales, tales como usuario y clave;
mediante clave compartida, como pre-shared key; o bien mediante criptografa de clave pblica utilizando
certificados de cliente y de servidor.
UNLu - Departamento de Ciencias Bsicas
Administracin y Gestin de Redes
Curso 2016

Prueba esttica
a) En el servidor, crear una nueva clave con:
openvpn --genkey --secret static.key
La misma debe intercambiarse con el cliente, puede pasarla utilizando scp. En ambos extremos, ubique ael
archivo de clave .key en el directorio /etc/openvpn/
b) Configuracin de la interfaz. En el servidor, cree el archivo /etc/openvpn/tun0.conf para configurar
la interfaz y luego incorpore los siguientes parmetros:
dev tun0
ifconfig 10.9.8.1 10.9.8.2
secret /etc/openvpn/static.key
Qu identifican las direcciones IP del comando ifconfig?
c) En el cliente, configure tambin una interfaz en el archivo /etc/openvpn/tun0.conf con los
siguientes parmetros:
remote ip-del-servidor
dev tun0
ifconfig 10.9.8.2 10.9.8.1
secret /etc/openvpn/static.key
d) Por ltimo, para levantar la VPN utilice la siguiente instruccin:
openvpn --config /etc/openvpn/tun0.conf
- Realice una captura antes de establecer la VPN en el punto c)
- En funcin de quienes poseen la clave, Qu tipo de seguridad le sugiere esta solucin de VPN? Qu
mtodo de seguridad se utiliza para autenticar los extremos?

VPN Seguro con TLS


a) En el servidor configuramos los scripts para generar las claves:
cd /etc/openvpn
mkdir easy-rsa
cp -R /usr/share/easy-rsa/* easy-rsa/
b) Configurar las claves a travs de la ejecucin de los siguientes comandos:
cd easy-rsa/
mkdir keys
touch keys/index.txt
echo 01 > keys/serial
source ./vars # set environment variables
./clean-all
c) Crear una autoridad de certificacin
./build-ca
d) Generar un certificado de autoridad .crt/.key para el servidor
./build-key-server server
e) Generar los parmetros de DIFFIE-HELLMAN
./build-dh
f) Generar la clave para el cliente
./build-key [NOMBRE-DEL-USUARIO]
./build-key [NOMBRE-DEL-USUARIO-II]
UNLu - Departamento de Ciencias Bsicas
Administracin y Gestin de Redes
Curso 2016

g) Configuracin del Servidor:


Editar el archivo /etc/openvpn/server.conf
proto udp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem

server 192.168.8.0 255.255.255.0


ifconfig-pool-persist ipp.txt
keepalive 10 120

comp-lzo
persist-key
persist-tun

status log/openvpn-status.log
verb 3 # verbose mode
client-to-client

Es necesario configurar el archivo de log para OpenVPN en el servidor.


cd /etc/openvpn
mkdir -p log/
touch log/openvpn-status.log
Para iniciar el servidor:
service openvpn restart

h) Configuracin del Cliente:


Debe agregar al archivo la direccin del servidor y el nombre de la clave del cliente.
client
dev tun
port 1194
proto udp

remote SERVIDOR_VPN 1194


nobind
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/NOMBRE_DEL_CLIENTE.crt
key /etc/openvpn/easy-rsa/keys/NOMBRE_DEL_CLIENTE.key

comp-lzo
persist-key
persist-tun

verb 3

Para iniciar el tunel, ejecutar desde el Cliente:


service openvpn restart
UNLu - Departamento de Ciencias Bsicas
Administracin y Gestin de Redes
Curso 2016

Enunciados:
1. Antes de reiniciar los servicios inicie la captura sobre la interfaz fsica ethN. Luego haga una prueba
con ping. Es posible ver los mensajes ICMP que viajan a travs de la VPN?
2. Intente realizar una conexin SSH a travs de la VPN Qu se observa en la captura?
3. Cambie en ambos extremos el parmetro PROTO a tcp y reinicie los servicios.
Repita la prueba anterior. Qu diferencias se observan en la captura? Se perciben cambios en el
comportamiento de SSH? Cmo puede impactar esto al rendimiento? Por qu considera que es
as?