OpenVPN
Descripción
Esto es una VPN que usa SSL ..y tambien corre en windogs y permite hacer routing o Bridge .. interesante.
“… OpenVPN is a full-featured SSL VPN which implements OSI layer 2 or 3 secure network extension using the industry standard SSL/TLSs protocol,supports flexible client authentication methods based ons certificates, smart cards, and/or username/password credentials, and allows user or group-specific access control policies using firewall rules applied to the VPN virtual interface. OpenVPN is not a web application proxy and does not operate through a web browser. …”
Procedimiento
MODULO Webmin (comodiiisimo)
1 Montelo e instalelo
http://www.openit.it/index.php/openit_en/software_libero/openvpnadmin/download –
2 Genere el CA
3 Genere la llave para el servidor
4 Genere la configuracion para el servidor
5 Ya puede generar la llave para el cliente.
Algunos problemas https://github.com/authentic-theme/authentic-theme/issues/934
Un howto video https://www.youtube.com/watch?v=P2uNmixRA2k
A MANO: Solo Conectar 2 equipos (Server y Clientes)
Si son solo dos conectados es muy facil porque no se requiere esquema de PKI (llave publica-privada) sino que se configura de una .. mire http://openvpn.net/static.html –
1.1 En el server
A. Instale el paquete OpenVPN conveniente.
B. Toca generar las llaves de un lado y otro. Para esto el instalador ofrece un directorio llamado easy-rsa (/usr/share/doc/openvpn-2.0.7/easy-rsa/2.0). Ahi toca seguir el procedimiento
C. Editar vars para que sea consistente con su ubicacion y la demas informaciión para generar las llaves.
export KEY_COUNTRY=“CO” export KEY_PROVINCE=“Bogota DC” export KEY_CITY=“Bogota DC” export KEY_ORG=“SkinaTech” export KEY_EMAIL=“kasandra@skinatech.com” D. Suba las variables de ambiente, limpie y construya el CA
$> source vars $> clean-all $> build-ca
E. Genera las llaves del server
$> ./build-key-server server
F. Y la llave para entregarle al cliente
$> ./build-key client
OJO que eso quedan en el directorio keys
G. y Finalmente los parametros Diffie Helman (??)
$> ./build-dh
Con estos archivos .. ya se puede configurar el server y los clientes.
H. En /etc/openvpn/server.conf se pone el archivo de configuracion y en /etc/openvpn/keys copie las llaves relevantes al server.
1.2 En el cliente
A. En /etc/openvpn/client.conf se pone el archivo de configuracion y en /etc/openvpn/keys copie las llaves relevanes al clientes originados en el server. Ya es inicie y pruebe. OJO con configurar el firewall para permitir conexiones de entrada y salida .. y las interfaces van a ser tun0. Si el cliente es windows .. hay varias versiones … pero toca configurar el cliente.
El cliente windows
- Instale openvpn
- Copie el client.conf que que esta en el directorio de ejemplos
- Cambie lo que sea necesario en este archivo
- Copie las llaves, puede dejarlas aqui
- Active la interfaz nueva creada (tun0) y deberia funcionar
- Si no . . mire bitacoras
Trucos
1. Como usar una Smart Card
2. Que hacemos con un VPS ?
3. Alta disponibilidad
Cuando se tiene varios canales de entrada, lo ideal es que el cliente sea inteligente para cambiar de canal cuando se cae el cliente.
La solucion es declarar varios “remote” y el los va a escoger en secuencia y/o random (si se indica).
4. Cliente to client
Para comuncarse entre los clientes el servidor debe tener la opcion –client-to-client
5. OpenvpnAS
5.1 Agregar un superusuario Primero agreguelo como usuario normal del sistema
/usr/local/openvpn_as/scripts/sacli –user=lisim –key prop_superuser –value true UserPropPut?
Y verifico que tenga los valores
root@openvpnas2:~# /usr/local/openvpn_as/scripts/confdba -us -p lisim
{
"lisim": {
"prop_superuser": "true",
"type": "user_compile"
}
}
Ahora ya puede entrar al GUI web.
5. Client as service on W2K12
Primero baje el cliente e instalelo.
- https://community.openvpn.net/openvpn/wiki/Easy_Windows_Guide#RunningOpenVPNasaService
Y como hago pa que arranque solo
Toca subir el servicio openvpn a automatico (services.msc) Y hacer el par de arrelgos en el regedit y bien arranca. OJO coger un opepnvpn > 2.1.4
6. OpenWRT
Problemas
1. Que hacemos con un VPS ?
2. Como subo el sevidor en un Centos 7
3. El cliente de windows se reinicia todo el tiempo
Sabe que puede ser .. a mi me pasa eso .. a veces cuando dos proceso estan corriendo al tiempo .. O sea vaya a administrador de tareas y mate todo lo que huela a openvpn y desactive el servicio de openvpn que a veces esta activo .. por fa
4. EL CRL vencido
Me paso con el modulo de webmin de openvpn .. y toco regenerarlo a mano … un camello. Parece en donde estan las llaves (/etc/openvpn/keys/cucuta-aws)
Me toco crear a mano las variables (VARS)
export CA_NAME='cucuta-aws' export CA_EXPIRE='3650' export KEY_SIZE='2048' export KEY_CONFIG='/etc/openvpn/openvpn-ssl.cnf' export KEY_DIR='/etc/openvpn/keys/cucuta-aws' export KEY_COUNTRY='CO' export KEY_PROVINCE='NS' export KEY_CITY='Cucuta' export KEY_ORG='Alcaldia Cucuta' export KEY_EMAIL='mesadeayuda@cucuta.gov.co' export KEY_OU='Office' export KEY_CN='berlin/emailAddress=mesadeayuda@cucuta.gov.co'
Cambiar el '/etc/openvpn/openvpn-ssl.cnf para que el CRl no dure solo 30 dias sino 10 años
Y ahi se pudo generar con
openssl ca -gencrl -keyfile ca.key -cert ca.crt -out crl.pem -config /etc/openvpn/openvpn-ssl.cnf
4. conexion erratica y no es usuario conectandose varias veces
Imaginese que descubri que puede ocurrir que varios clientes generen la misma MAC y se conflictean.
Se diagnostica viendo las bitacoras de openvpn que MULTI: Learn .. a cada rato .. mientras asigna una MAC al uno o al otro
Solucion .. la opcione lladdr para asigar mac a mano a alguno y ya
Referencias
- Howto ecuatoriano bueno http://www.ecualug.org/2007/02/06/comos/centos/c_mo_instalar_y_configurar_openvpn –
- Alta disponibilidad
FIN
Un server.conf
port 1194 proto udp dev tun ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist /var/log/ipp.txt keepalive 10 120 comp-lzo max-clients 5 user nobody group nobody persist-key persist-tun status /var/log/openvpn-status.log log-append /var/log/openvpn.log verb 3 cipher AES-256-CBC
Y un client.conf para un Linux
client dev tap proto tcp remote castellana.ikatta.com 1194 remote pasadena.ikatta.com 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key comp-lzo verb 0 script-security 2 cipher AES-256-CBC
Y un client.ovpn para un windows
client dev tap proto tcp remote castellana.ikatta.com 1194 remote pasadena.ikatta.com 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key comp-lzo verb 0 script-security 2 cipher AES-256-CBC
Y un client.ovpn para Tunnelblick en MacOS?
client dev tap proto tcp remote castellana.ikatta.com 1194 remote pasadena.ikatta.com 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key comp-lzo verb 2 cipher AES-256-CBC