Multe sisteme de operare suportă VPN L2TP / IPsec din cutie. Combinând serviciile de confidențialitate și autentificarea IPsec (securitate Internet Protocol), rețea Protocol de tunel tunelare nivel secundar (L2TP) și identificarea utilizatorului prin intermediul pppd, administratorii pot crea VPN-rețea pe o varietate de sisteme disparate. Aceasta vă permite să configurați VPN pe sistemele Android, Windows, Linux, MacOS și alte sisteme de operare, fără a utiliza niciun software comercial.
Acest ghid nu acoperă instalarea infrastructurii DHCP, RADIUS, Samba sau Open Key Infrastructure (PKI). De asemenea, nu explică modul de configurare a clienților Linux, deși acest pas poate fi ușor obținut din manual. O porțiune din configurația clientului Windows va fi evidențiată pentru a depana problemele de configurare a serverului.
simboluri
În acest manual se vor folosi următoarele convenții (setări de exemplu):
- Domeniu - example.com
- Numele serverului este vpn.example.com
- Numele fișierului certificatului CA - ca.crt
- Certificat de server - vpn.example.com.crt
- Cheia serverului este vpn.example.com.key
- Client certificate - client.example.com.crt
- Cheia clientului este client.example.com.key
Nivelul primul și cel mai complex pentru configurare este IPsec. Rețineți că IPsec este o rețea peer-to-peer, deci, în terminologia sa, clientul este numit inițiator. iar serverul este cel care răspunde.
Windows utilizează IKEv1. Există 3 implementări ale IPsec în Portage: ipsec-tools (racoon), LibreSwan și strongswan.
Următoarele secțiuni explică diferitele configurații. Pentru fiecare opțiune este documentată
Opțiunea 1: ipsec-tools (racoon)
notă
net-firewall / ipsec-tools ar trebui să fie compilate cu pavilion nat. dacă serverul se află în spatele NAT sau clienții din spatele NAT sunt necesari.
ipsec-tools este cel mai puțin funcțional, dar pentru cei care vin de la * BSD, poate fi mai intim. Cu toate acestea, spre deosebire de * BSD, Linux nu utilizează o interfață separată pentru IPsec.
După instalarea instrumentelor ipsec, trebuie să creați mai multe fișiere. Mai întâi, creați directoarele în care vor fi stocate:
rădăcină # mkdir / etc / racoon / certs
rădăcină # mkdir / etc / racoon / scripts
Configurarea PSK în ipsec-tools
user $ dd dacă = / dev / random count = 24 bs = 1 2> / dev / null | hexdump -e '24 / 1 "% 02x" "\ n" "
Fiecare intrare în fișierul PSK constă dintr-un identificator și o cheie. Windows se identifică printr-un nume de domeniu complet calificat (FQDN). Cheia trebuie să fie notată ca un șir sau un număr hexazecimal începând cu 0x. În orice caz, conținutul (cheia în sine) este complet la alegerea administratorului:
În fișierul racoon.conf, fișierul PSK este notat cu opțiunea path pre_shared_key.
/etc/racoon/racoon.conf Utilizând racoon cu PSK
Configurarea instrumentelor ipsec utilizând un certificat
Copiați ca.crt. vpn.example.com.crt și vpn.example.com.key în / etc / racoon / certs. Asigurați-vă că vpn.example.com.key nu este disponibil pentru toți utilizatorii.
Apoi, actualizați configurația din fișierul racoon.conf. adăugând aceste fișiere în secțiunea anonimă la distanță.
/etc/racoon/racoon.conf Utilizarea certificatelor cu racoon
Depanarea ipsec-tools
Când apar probleme, această secțiune poate oferi mai multe direcții în soluția lor.
Crearea politicilor de securitate și NAT
Opțiunea generate_policy pe; ar trebui să forțeze racoonul să creeze politica de securitate necesară pentru noi. Cu toate acestea, în prezența NAT (cel puțin dacă serverul este în spatele NAT), nu o va face așa cum doriți. Prin urmare, dacă traficul nu trece prin tunel, politica de securitate trebuie determinată manual.
Politica este creată în fișierul /etc/ipsec-tools.conf.
Opțiunea 2: LibreSwan
LibreSwan este o sucursală din Openswan (care în sine este o filială din FreeS / WAN). LibreSwan într-adevăr împărțit în două cu păstrarea acestor dezvoltatori Openswan, dar după ce au părăsit Xelerance, disputa cu privire la numele de „Openswan“ sa transformat într-un proces, după care sa decis numele LibreSwan.
Bypass NAT este instalat implicit în fișierul de configurare LibreSwan, deci nu sunt necesare pași de configurare speciali.
Configurarea PSK în LibreSwan
Apoi creați /etc/ipsec.d/vpn.example.com.conf.
Configurarea LibreSwan utilizând un certificat
LibreSwan impune ca serviciile de securitate de rețea (NSS) să fie configurate și utilizate corespunzător pentru a gestiona certificatele. Pentru a facilita configurarea, trebuie să creați un pachet PKCS # 12 care conține cheia secretă a serverului, certificatul său și certificatul CA.
utilizator $ OpenSSL PKCS12 -export -certfile ca.crt -inkey vpn.example.com.key -in vpn.example.com.crt -out /etc/ipsec.d/vpn.example.com.p12
Pachetul poate fi apoi importat în baza de date NSS:
root # cd /etc/ipsec.d
root # pk12util -i calea spre pachetul /vpn.example.com.p12 -d.
Fișierele de configurare LibreSwan se vor referi la aliasul obiectelor importate. Utilizați certutil -L -d. și certutil -K -d. pentru a afla.
În exemplu, vpn.example.com a fost folosit ca alias primit cu comanda certutil -K -d.
Aici vpn.example.com este aliasul obținut cu comanda certutil -L -d.
Opțiunea 3: puternicSwan
strongSwan este o sucursală din FreeS / WAN (deși cea mai mare parte a codului a fost înlocuită).
În ceea ce privește puternicSwan 5.0, traversal NAT este automat, nimic nu trebuie setat.
strongSwan nu creează un fișier ipsec.secrets. astfel încât trebuie să creați unul:
rădăcină # touch /etc/ipsec.secrets chmod 664 /etc/ipsec.secrets
Configurarea PSK în strongSwan
Apoi, editați /etc/ipsec.conf după cum se arată mai jos:
Când și când a plecat. și dreapta sunt specificate ca% oricare. strongSwan presupune că calculatorul local se află la distanță.
Configurarea strongSwan folosind un certificat
Certificatele și cheile trebuie copiate în dosarul corect:
rădăcină # cp ca.crt /etc/ipsec.d/cacerts
rădăcină # cp vpn.example.com.crt /etc/ipsec.d/certs
rădăcină # cp vpn.example.com.key /etc/ipsec.d/private
rădăcină # chown -R ipsec: /etc/ipsec.d
În final, actualizați fișierul /etc/ipsec.conf după cum se arată mai jos:
Ca și înainte, când și-a plecat. și dreapta sunt egale cu% oricare. strongSwan presupune că calculatorul local se află la distanță.
Depanarea cu strongSwan
Transmitere IPsec / NAT corupt
În versiunile anterioare ale lui strongSwan, transferul IPsec nu pare să funcționeze. Sa întors "nu poate răspunde solicitării IPsec SA pentru că nu se cunoaște nicio conexiune" sau (cu editarea complexă a fișierului de configurare) eroarea INVALID_HASH_INFORMATION. Acest lucru nu poate fi cu puternicSwan versiunea 5.0 și mai mare.
Depanarea standardului IPsec
Cu IPsec, nu este ușor de rezolvat. Această secțiune oferă câteva indicații privind problemele comune și erorile.
Server în spatele NAT
Porturi de deschidere
Este necesar să deschideți 2 porturi:
- Portul UDP 500 (pentru ISAKMP)
- Portul UDP 4500 (pentru NAT Traversal)
Asigurați-vă că trimiteți acest mesaj serverului VPN.
De asemenea, următoarele protocoale Internet (nu porturi) au nevoie de permisiune:
Poate fi necesar să le configurați pe partea routerului, dacă are parametri specifici pentru protocoale (cu toate acestea, cele mai multe nu le au).
Transmitere IPsec / NAT corupt
Multe routere au opțiunea "pass-through IPsec", care poate însemna unul din două:
- Distortați pachetele IPsec într-un mod care nu este compatibil cu traseul NAT IPsec
- Permiteți tuturor pachetelor IPsec să treacă prin router fără modificări.
Dacă transferul IPsec înseamnă (1), dezactivați această opțiune. Dacă înseamnă (2), apoi reporniți-l.
Din păcate, există routere care scad traficul IPsec, chiar dacă porturile sunt activate, și acceptă doar opțiunea (1). Pentru cei care au un astfel de router, există 3 opțiuni:
- Actualizați firmware-ul dacă este disponibilă o versiune mai nouă, care rulează corect.
- Deschideți raportul de eroare / defecțiune cu modelul routerului dacă acesta nu este depășit
- Găsiți un alt router. Conform descrierilor, routerele Linksys și D-link funcționează corect.
Acest manual a fost inițial scris cu un astfel de router (Zyxel P-330W), iar singura opțiune disponibilă a fost (3).
Aceste sisteme de operare nu suportă automat serverele IPsec / L2TP în spatele NAT. Vedeți KB926179 pentru modificările de registru care îi obligă să o susțină.
Limitările cheilor pre-distribuite (PSK)
Cel de-al doilea strat, protocolul de tunelizare al doilea strat (L2TP), este mult mai ușor de configurat. Ca IPsec, L2TP este un protocol peer-to-peer. Partea client este numită L2TP Access Concentrator sau LAC, iar partea de server este L2TP Network Server sau LNS.
Prevenirea
L2TP este complet nesigur și nu ar trebui să fie accesibil în afara conexiunii IPsec
Când utilizați iptables, utilizați următoarele reguli pentru a bloca toate conexiunile L2TP în afara ipsec:
rădăcină # iptables -t filtru -A INPUT -p udp -m politică -dir în -pol ipsec -m udp -dport l2tp -j ACCEPT
rădăcină # iptables -t filtru -A INPUT -p udp -m udp -dport l2tp -j REJECT -reject-cu icmp-port-unreachable
rădăcină # iptables -t filtru -A OUTPUT -p udp -m politică -dir out -pol ipsec -m udp -sport l2tp -j ACCEPT
rădăcină # iptables -t filtru -A OUTPUT -p udp -m udp -sport l2tp -j REJECT -reject-cu icmp-port-unreachable
Folosind xl2tpd
Pentru a utiliza serverul RADIUS sau DHCP, lăsați opțiunea IP și opțiunile locale ip dezactivate. Dacă conexiunea nu este stabilă, încercați să adăugați bit = yes la secțiunea implicită. Pentru a evita utilizarea autentificării PPP, înlocuirea necesită autentificare = da cu autentificare refuză = da.
Creați un fișier de opțiuni:
Folosind rp-l2tp
Configurarea rp-l2tp este simplă:
Nivelul final pentru configurare este Protocolul Point-to-Point (PPP). Pachetul de instalare este net-dialup / pptpd.
rădăcină # emerge --ask net-dialup / pptpd
- toate computerele client sunt pe deplin de încredere și sub control, sau
- toți utilizatorii sunt de încredere, iar cheile sunt numai pe computerele de lângă utilizatorii care au acces și nicăieri altundeva, sau
- toate conexiunile sunt automate (această metodă este utilizată pentru conectarea mai multor locații)
Prevenirea
/ etc / ppp / chap-secrets conține parole necriptate, deci asigurați-vă că numai root poate citi sau scrie în acest fișier
Dacă serverul RADIUS rulează pe computer, atunci pppd îl poate utiliza. Asigurați-vă că net-dialup / ppp este compilat cu raza pavilionului USE. Apoi adăugați pluginul radius.so la opțiunile PPP. Configurarea RADIUS și pppd este în afara acestui ghid.
Rezolvați problemele clientului
Windows: Instalarea corectă a certificatului (pentru utilizatorii PKI)
Certificatul trebuie să fie ambalat în pachetul PKCS12. Acest lucru se poate face cu openssl sau gnutls:
utilizator $ openssl pkcs12 -export -certfile ca.crt -linie client.example.com.key -in client.example.com.crt -out client.example.p12
user $ certtool - încărcare-ca-certificat ca.crt - certificat de încărcare client.example.com.crt --load-privkey client.example.com.key - la-p12 --outfile client.example.com .p12
Cod Importă o cheie în Windows
Extindeți Certificatele. Alegeți orice dosar (indiferent de ce), faceți clic dreapta, selectați "Toate sarcinile", apoi "Import.". Doar acum urmați instrucțiunile expertului, dar în ultimul pas, asigurați-vă că este selectată opțiunea "Selectați automat spațiul de stocare pe baza tipului de certificat".
Windows: erori de rețea RAS
Eroare 766: Certificatul nu poate fi găsit
Dacă apare această eroare, certificatul nu a fost importat corect. Asigurați-vă că le importați prin MMC și nu faceți dublu clic pe fișier.
Eroarea 810: conexiunea VPN nu a fost finalizată
Atunci când utilizați ipsec-tools (racoon) în jurnalul de sistem, este posibil să apară următorul mesaj:
Cod Cod de eroare în jurnalul de sistem când folosiți ipsec-tools / racoon
Aceasta înseamnă că certificatul a fost importat incorect sau pachetul p12 nu este în certificatul CA. Asigurați-vă că importați cheia prin MMC și selectați "Selectați automat spațiul de stocare pe baza tipului de certificat" la sfârșitul procesului de import.
XP SP2 și mai mare: Eroare 809: Serverul nu răspunde (Serverul din spatele NAT)
Windows XP SP2 și Vista implicit nu se vor conecta la serverul din spatele NAT. Necesită hacking în registri. Unele remedii sunt necesare pentru Windows XP și Windows Vista.
Această eroare apare numai când utilizați PKI. Aceasta înseamnă că SubjectAltName nu se potrivește cu serverul la care se conectează clientul. Acest lucru se întâmplă adesea atunci când se utilizează DNS dinamic, - certificatul are un nume intern și nu unul extern. Adăugați un nume extern la certificat sau dezactivați opțiunea "Verificați numele și utilizați atributele pentru certificatul serverului" din setările de conexiune: Security -> Advanced settings -> L2TP.
Eroare 741: Calculatorul local nu acceptă tipul de criptare necesar
Windows va încerca să implementeze criptarea MPPE (slabă) când
atunci apare această eroare.
notă
Conexiunea este protejată într-un fel sau altul prin criptare IPsec, numai necesitatea MPPE va fi deconectată.
Clienții Mac OS X trebuie să solicite recomandările cu care aceștia sunt de acord. În special:
Mac OS X nu se va conecta în cazul în care SubjectAltName nu se potrivește cu numele serverului cu care se conectează. Spre deosebire de Vista, acest control nu poate fi dezactivat.
De asemenea, Mac OS X nu se va conecta dacă certificatul de server conține câmpurile "Ekey" (cu excepția celor învechite ikeIntermediate). În special, când se utilizează certificate de la utilitarul OpenVPN ușor-rsa. EKU "TLS WWW Server" sau "Client TLS WWW" sunt adăugate, prin urmare aceste certificate nu vor funcționa. Cu toate acestea, ele pot fi utilizate de clientul Mac OS X, deoarece este interesat doar de certificate de server.