Archivos por Etiqueta: tunel

OpenVPN: tun y tap

Despues de haber usado VPNs IPSec, L2TP, PPTP y PPP/SSH… sin duda me quedo con OpenVPN.

Aqui pongo varios ejemplos de configuraciones (para un “TUN” -Routing IP- y un “TAP” -Bridge Ethernet-) (Edit [2017.04.25] la configuracion y las pruebas han sido sobre Ubuntu 16.04 en el server y Windows 7 en el cliente, el articulo inicial fue para Ubuntu 12.04 -cambian pocas cosas-), si no funciona el “redirect-gateway def1” (para que todo el trafico salga a traves de la vpn) o alguna otra opcion es posible que debas arrancar el openvpn-gui con privilegios administrativos:

# Primero generamos el Diffie-Hellman (en el server)
openssl gendh -out dh-2048.pem 2048
# Generamos Shared-Secret (en el Server)
# Este fichero es compartido en server y clientes
openvpn --genkey --secret secret.key

Aunque la parte de la creacion de los certificados X.509 no la explico aqui (server.{crt,key} & client.{crt,key}); a modo de resumen (usando solo certificados auto-firmados):

  • dh-2048.pem: es privado, estará solo en el servidor (owner{root:root} perm{600})
  • server.crt: es publico, compartido entre todos -servidor y clientes-
  • server.key: es privado, estará solo en el servidor (owner{root:root} perm{600})
  • client.crt: es publico, generado para cada cliente
  • client.key: es privado, estará solo en el cliente
  • ca.crt: es publico, estará solo en el servidor con permisos restringidos (owner{root:root} perm{644}), todos los client.crt se meten dentro de este fichero de modo concatenado, es la lista de clientes permitidos

Para poder dar soporte a clientes UDP/1194 (standard) y TCP/443 (firewall-friendly) hay que crear 2 ficheros diferentes en el server y asignar 2 rangos de IPs separados (para que no haya problemas con las las rutas).

Leer más de esta entrada

Java: Simple Bouncer

forward

Si alguna vez has tenido un servidor en una DMZ seguramente habras usado rinetd o stunnel, esta aplicacion es una version simplificada de stunnel para tuneles SSL o una version del rinetd con algunas funcionalidades extra (loadbalancing o failover de conexiones) en menos de 550 lineas de codigo (Java).

El codigo fuente en GitHub: SimpleBouncer

A %d blogueros les gusta esto: