Inici de sessió d'usuariNavegacióCercaDarrers articles
|
Com acceidr a una LAN des d'internet usant una VPN (OpenVPN HowTo)En aquest article explicaré les meves experiències per configurar un servidor OpenVPN per permetre accés a una LAN a múltiples clients connectats a Internet (road warriors). En realitat reedito l'entrada al meu wiki personal, perquè crec que és un tema interessant i hi ha poca documentació en català de OpenVPN. ** Disclaimer ** Intro Un altre avantatge, en el meu cas és que el servidor OpenVPN fa de gateway de la LAN i per tant no s'ha de tocar cap configuració de cap màquina de la LAN per tal que puguin usar la VPN. L'escenari és el següent:
Esquemàticament tenim: +------------------+ | | | PRIVATE LAN | | WORKSTATIONS + | +--------------+ | FILE SERVER | 192.168.0.x | | | | | ROAD | +------------------+ | WARRIOR | ^ | (CLIENT) | | | | | 192.168.0.100 +--------------+ +--------------+ | VPN TUNNEL IP | | | (172.16.0.x) | OpenVPN | VPN TUNNEL IP | | SERVER | (172.16.0.1) +--------------+ | | | | +--------------+ | INTERNET | ^ 10.0.0.2 | | | +--------------+ | (DMZ) | | | SERVER PUBLIC IP +--------------+ +------------------------>| ROUTER | +--------------+ Instal·lació OpenVPN Ull! Cal mirar si tenim la interfície que necessitem (en el nostre cas tun) a /dev/net, si no la creem: NOTA: L'última ordre és per carregar el mòdul, debian ja té l'alias fet a /etc/modutils/aliases: alias char-major-10-200 tun) Configuració Inicial (client-servidor amb clau estàtica) Servidor Hem d'assegurar-nos que els paquets poden arribar a la interfície que els correspon. Hem d'obrir el port 1194 del router cap al servidor, i assegurar-nos que no el tenim "firewallejat". En el meu cas tinc l'iptables molt restrictiu: he hagut de donar permís als paquets udp al port 1194 i a l'ínterfície tun0 Client Ara cal crear la clau amb la què es comunicaran el client i el servidor. En aquest primer exemple, la cosa és simple. Es tracta d'una clau simètrica compartida per ambdós extrems. Creem la clau al servidor: Ara copiem la clau al client (a C:\Archivos de programa\openvpn\config) d'una manera segura (amb un pen drive, després cal esborrar-la!, mitjançant sftp, ...). Llavors obrim el servidor (de moment des de la línia d'ordres, estem fent proves, després ja l'obrirem com un servei): Ara des del client, fem clic amb el botó dret a sobre el fitxer client.opvn i li diem Start OpenVPN on this config file(de moment, ho fem manualment, es pot configurar pequè s'iniciï com un servei). Al cap de pocs segons veurem un missatge que diu: En aquests moments podem (o hauríem de poder) fer ping d'una màquina a l'altre utilitzant les ip's del túnnel que (172.16.0.X). Si no es pot fer el ping, cal revisar la configuració (sobretot repassar el firewall) Optimitzant Servidor: #Connection #Misc # Per tal que el client pugui veure totes les màquines de la subxarxa del servidor #Connection Tornem a mirar que efectivament connecta (el client pot accedir a qualsevol màquina de la xarxa del servidor) i ja podem anar pel següent pas: Enlloc de fer servir una clau estàtica farem certificats individuals per a cada client. NOTA: Si no et funciona, revisa el firewall. Amb la meva configuració d'iptables (FORWARD a DROP), he hagut de deixar pas als paquets sortints per la interficie tap0 (primer només deixava pas als entrants, però no als que sortien, vaig tenir problemes amb això!) Autenticació PKI Ara toca crear les claus: Ara a /etc/openvpn/easy-rsa/keys hi tenim la clau privada (ca.key, guardar-la molt bé!!!) i la clau pública (ca.crt) del CA (aquesta última l'hauran de tenir tots els clients i el servidor). Sí, el CA és el servidor, podria ser qualsevol altre màquina (i si paguem un CA oficial) Ara cal generar les claus pel servidor i pel client (jo de moment només en tinc un): En aquest punt ja tenim les claus generades. Per poder completar l'operació cal generar els paràmetres de Diffie Hellman (ens serveix perquè el client i el servidor s'intercanviïn les claus, més info): Resumint, tenim (extret de la web oficial): Fitxer Necessitat Per @@s Secret? ca.crt server + all clients Root CA cert NO ca.key Màquina CA Root CA key YES dh{n}.pem server only DH param NO server.crt server only Server Cert NO server.key server only Server Key YES client1.crt client1 only Client1 Cert NO client1.key client1 only Client1 Key YES Un cop arribat aquí, només cal que cada màquina tingui les claus necessàries i modificar els fitxers de configuració (perquè quedi més lògic - almenys segons el meu criteri :-D - he posat el directori de les claus a /etc/openvpn/keys) : Servidor: # If connections fails, this file will keep track the connections to restblish them # IP Range clients (VPN Subnet, by default server will take 172.16.0.1) # Key settings # Diffie hellman # Connection #Misc Client: # Key settings ns-cert-type server # Per tal que el client pugui veure totes les màquines a la xarxa del servidor #Connection Amb aquesta configuració, hauríem de ser capaços d'accedir a qualsevol màquina de la LAN (servidor SQL, recursos compartits als workstations, ssh al servidor de fitxers, etc.). Tot i així, cal dir que no es pot accedir a una carpeta compartida del Samba. Caldrà revisar-ne la configuració: smb.conf: Si a més volem accedir usant noms NetBIOS enlloc de IPs, caldrà activar el servidor WINS (més info): smb.conf: Bé, això és tot. Si has arribat fins aquí (vaia tostón, jeje) espero que t'hagi sigut útil, si menys no interessant. ----------------
|
Llista de correu
Fer-la petar i coordinar-se pel programari lliure. Consultes, propostes, noticies, compartir coneixement, critica, etc.
Més eines webEnquestaUtilitzes programari lliure a la feina o al centre docent?
Completament amb GNU/Linux
29%
Només alguns programes lliures (OOo, Firefox,...)
29%
Tot privatiu, política de l'empresa
43%
Tot privatiu, no saben o no ho tenen clar
0%
Tot privatiu i il·legal
0%
Total votes: 7
Gràcies a : |