===== 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 === - http://acksyn.org/docs/smart-cards-openvpn.html -- === 2. Que hacemos con un VPS ? === - http://www.jvds.com/guide/bridging.php -- === 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 - https://support.untangle.com/hc/en-us/articles/202159608--OpenVPN-How-do-I-auto-start-OpenVPN-when-my-computer-boots- === 6. OpenWRT === https://wiki.openwrt.org/inbox/vpn.howto https://wiki.openwrt.org/doc/howto/vpn.openvpn ==== Problemas ==== === 1. Que hacemos con un VPS ? === - http://www.jvds.com/guide/bridging.php -- === 2. Como subo el sevidor en un Centos 7 === https://www.digitalocean.com/community/tutorials/how-to-set-up-and-configure-an-openvpn-server-on-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 ==== * Easy-RSA v3 https://community.openvpn.net/openvpn/wiki/EasyRSA3-OpenVPN-Howto * https://www.howtoforge.com/tutorial/how-to-install-openvpn-on-centos-7 * Los howtos http://openvpn.net/index.php/documentation/howto.html -- * Howto ecuatoriano bueno http://www.ecualug.org/2007/02/06/comos/centos/c_mo_instalar_y_configurar_openvpn -- * Alta disponibilidad * * http://serverfault.com/questions/114858/high-availability-openvpn-service * * http://openvpn.net/index.php/open-source/documentation/manuals/69-openvpn-21.html * * http://serverfault.com/questions/110105/redundant-openvpn-configuration/111264#111264 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