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. …”
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
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.
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).
Para comuncarse entre los clientes el servidor debe tener la opcion –client-to-client
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.
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
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
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
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
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