Actividad 4: Servidor VPNs
En las actividades anteriores se ha utilizado OpenVPN para realizar túneles entre dos equipos. De este modo, si una máquina quiere estar preparada para aceptar determinado número de clientes (por ejemplo 100), debe estar configurada para soportar un túnel diferente para cada cliente. No se trata de un escenario cómodo, pues para cada conexión será necesario preparar sus ficheros de configuración y puerto a utilizar.
OpenVPN puede funcionar en modo servidor aceptando muchos clientes en un mismo puerto UDP o TCP.
Los requisitos para utilizar OpenVPN en modo servidor son:
- OpenVPN2.0 o superior
- Es posible mutiplexar varios túneles en un mismo puerto UDP o TCP
- Es necesario utilizar SSL/TLS
- Cada nodo debe tener su propio par de certificado/clave (.crt y .key) y el certificado de la autoridad de certificación (ca.crt)
- El servidor necesita el certificado de la autroidad de certificación (ca.crt) su propio par certificado/clave (.crt y .key) y el fichero .pem con los parámetros Diffie Hellman (dh1024.pem)
Configuración servidor | configuración cliente |
---|---|
port 30001 proto udp dev tap ca ca.crt cert server.crt key server.key dh dh1024.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 comp-lzo #persist-key #persist-tun verb 3 | client dev tap remote 192.168.100.104 30001 nobind #persist-key ca ca.crt cert client1.crt key client1.key comp-lzo verb 3 |
Cuando se utilizan túneles en modo servidor, no es necesario configurar en los clientes los parámetros IP del túnel. Es el propio servidor el que asigna una configuración de red. En los clientes es posible incluir varias directivas remote con diferentes servidores para conseguir tolerancia a fallos o bien balanceo de carga.
Actividades
- Construya una nueva PKI incluyendo autoridad de certificación, una clave/certificado de servidor y 3 claves/certificados de cliente. Se utilizará un fichero de parámetros Diffie Hellman de 2048 bits. Los certificados y claves de los clientes tendrán un nombre formado por la inicial del nombre y los apellidos del alumno que los generó seguidos de A,B o C. Por ejemplo, los ficheros generados por Silvia Álvarez serán: salvarez{A,B,C}.{key,crt}. Los ficheros de la autoridad de certificación tendrán por nombre salvarez_ca.{key,crt}. En los certificados/claves de los clientes se utilizará salvarez{A,B,C} como common name.
- Configure su ordenador como un servidor de VPNs utilizando las siguientes redes:
Alumno red máscara Álvarez, Silvia 172.16.1.0 255.255.255.0 Cano, Iñaki 172.16.2.0 255.255.255.0 Español, Jordi 172.16.3.0 255.255.255.0 Francisco, Carlos 172.16.4.0 255.255.255.0 Jurado, Oscar 172.16.5.0 255.255.255.0 Murillo, David 172.16.6.0 255.255.255.0 Núñez, Samuel 172.16.7.0 255.255.255.0 Perez, Ismael 172.16.8.0 255.255.255.0 Romero, Juan Francisco 172.16.9.0 255.255.255.0 Veiga, Begoña 172.16.10.0 255.255.255.0 - Intercambie sus claves/certificados de los clientes con tres compañeros
- Compruebe el correcto funcionamiento de su túnel y el de los compañeros. Cuando se levanta el túnel, qué IP adquiere la interfaz del servidor y los clientes ? Cuantos clientes simultáneos admite el servidor ? De qué depende este número ?
- Cuando usted está conectado como cliente a un servidor puede comunicarse con dicho servidor, pero puede hacer pings a los otros clientes del mismo servidor ? Busque en la documentación de OpenVPN la directiva necesaria para que los clientes se vean entre sí y pruébela.
Túneles en el aula
Servidor | Invitado a | Invitado b | Invitado c | cliente a | cliente b | cliente c |
---|---|---|---|---|---|---|
salvarez | ||||||
icano | ||||||
jespañol | iperez | dmurillo | ojurado | |||
cfrancisco | ||||||
ojurado | jespañol | snuñez | bveiga | |||
dmurillo | iperez | snuñez | jespañol | |||
snuñez | dmurillo | iperez | bveiga | |||
jromero | ||||||
bveiga | ojurado | snuñez | ||||