VPN -opsætning
Som i det foregående trin kan de fleste parametre være misligholdt. Når Almindeligt navn er forespurgt, indtast “Server”. To andre forespørgsler kræver positive svar, “Underskriv certifikatet? [y/n] “og” 1 ud af 1 certifikatanmodninger certificeret, forpligtelse? [y/n] “.
2x hvordan
OpenVPN er en fuldt udstyret SSL VPN, der implementerer OSI-lag 2 eller 3 sikker netværksforlængelse ved hjælp af branchestandard SSL/TLS-protokol, understøtter fleksible klientgodkendelsesmetoder baseret på certifikater, smartkort og/eller brugernavn/adgangskodekredentioner og giver brugeren mulighed for eller gruppespecifikke adgangskontrolpolitikker ved hjælp af firewall-regler anvendt til VPN-virtuel grænseflade. OpenVPN er ikke en webapplikationsproxy og fungerer ikke via en webbrowser.
OpenVPN 2.0 Udvides på kapaciteterne i OpenVPN 1.X ved at tilbyde en skalerbar klient/servertilstand, så flere klienter kan oprette forbindelse til en enkelt OpenVPN -serverproces over en enkelt TCP- eller UDP -port. OpenVPN 2.3 inkluderer et stort antal forbedringer, herunder fuld IPv6 -support og PolarsSL -support.
Dette dokument indeholder trin-for-trin-instruktioner til konfiguration af en OpenVPN 2.X klient/server VPN, inklusive:
- OpenVPN QuickStart.
- Installation af OpenVPN.
- Bestemmelse af, om man skal bruge en routet eller brobroet VPN.
- Nummerering af private undernet.
- Opsætning af din egen certifikatmyndighed (CA) og generering af certifikater og nøgler til en OpenVPN -server og flere klienter.
- Oprettelse af konfigurationsfiler til server og klienter.
- Start af VPN og test for den første tilslutningsmulighed.
- Konfiguration af OpenVPN til at køre automatisk på systemstart.
- Kontrol af en kørende openvpn -proces.
- Udvidelse af omfanget af VPN til at omfatte yderligere maskiner på enten klienten eller serverundernetet.
- Skubbe DHCP -muligheder til klienter.
- Konfiguration af klientspecifikke regler og adgangspolitikker.
- Brug af alternative godkendelsesmetoder.
- Sådan tilføjes dobbeltfaktor-godkendelse til en OpenVPN-konfiguration ved hjælp af klientside-smartkort.
- Routing af al klienttrafik (inklusive webtrafik) gennem VPN.
- Kører en OpenVPN -server på en dynamisk IP -adresse.
- Tilslutning til en OpenVPN -server via en HTTP -proxy.
- Tilslutning til en samba -andel over OpenVPN.
- Implementering af en belastningsbalancering/failover-konfiguration.
- Hærdning OpenVPN Security.
- Tilbagekaldelse af certifikater.
- Yderligere sikkerhedsnotater.
Den utålmodige ønsker måske at hoppe direkte til prøvekonfigurationsfilerne:
Tilsigtet publikum
Dette antager, at læsere har en forudgående forståelse af grundlæggende netværkskoncepter såsom IP -adresser, DNS -navne, netmasks, undernet, IP -routing, routere, netværksgrænseflader, LAN’er, gateways og firewall -regler.
Yderligere dokumentation
OpenVPN -bøger
Se venligst på siden OpenVPN Books.
OpenVPN 1.X Howto
Den originale OpenVPN 1.X Howto er stadig tilgængelig og forbliver relevant for punkt-til-punkt- eller statisk-nøgle-konfigurationer.
OpenVPN -artikler
For yderligere dokumentation, se siden Artikler og OpenVPN Wiki.
OpenVPN QuickStart
Mens dette howto vil guide dig i opsætning af en skalerbar klient/server VPN ved hjælp af en X509 PKI (offentlig nøgleinfrastruktur ved hjælp af certifikater og private nøgler), kan dette muligvis være overdreven, hvis du kun leder efter en simpel VPN -opsætning med en server, der kan håndtere en enkelt klient.
Hvis du gerne vil have en VPN, der kører hurtigt med minimal konfiguration, kan du tjekke den statiske nøgle-mini-howto.
Statiske nøglefordele
- Enkel opsætning
- Ingen X509 PKI (offentlig nøgleinfrastruktur) for at vedligeholde
Statiske nøgle -ulemper
- Begrænset skalerbarhed – en klient, en server
- Mangel af Perfekt fremadrettet hemmeligholdelse — Nøglekompromis resulterer i total afsløring af tidligere sessioner
- Secret Key skal eksistere i PLAINTEXT -form på hver VPN -peer
- Secret Key skal udveksles ved hjælp af en allerede eksisterende sikker kanal
Installation af OpenVPN
OpenVPN kildekode og Windows -installatører kan downloades her. Seneste udgivelser (2.2 og senere) er også tilgængelige som Debian- og RPM -pakker; Se OpenVPN Wiki for detaljer.
For sikkerhed er det en god ide at kontrollere filfrigivelsessignaturen efter download.
OpenVPN -eksekverbar skal installeres på både server- og klientmaskiner, da den enkelte eksekverbare giver både klient- og serverfunktioner.
Linux -noter (ved hjælp af RPM -pakke)
Hvis du bruger en Linux -distribution, der understøtter RPM -pakker (Suse, Fedora, Redhat osv.), det er bedst at installere ved hjælp af denne mekanisme. Den nemmeste metode er at finde en eksisterende binær omdrejningstal til din distribution. Du kan også opbygge din egen binære omdrejningstalfil:
RPMBuild -tb openvpn- [version].tjære.GZ
Når du har .RPM -fil, du kan installere den med det sædvanlige
RPM -ivh OpenVpn- [Detaljer].RPM
eller opgrader en eksisterende installation med
RPM -UVH OpenVpn- [Detaljer].RPM
Installation af OpenVPN fra en binær omdrejningstal har disse afhængigheder:
Hvis du bygger din egen binære omdrejningstal, er der endvidere flere yderligere afhængigheder:
- OpenSSL-Devel
- Lzo-deevel
- Pam-Devel
Se OpenVPN.Specfil til yderligere noter om opbygning af en omdrejningspakke til Red Hat Linux 9 eller bygning med reducerede afhængigheder.
Linux Notes (uden RPM)
Hvis du bruger Debian, Gentoo eller en ikke-RPM-baseret Linux-distribution, skal du bruge din distro-specifikke emballagemekanisme såsom f.eks apt-get på Debian eller dukke op på Gentoo.
Det er også muligt at installere OpenVPN på Linux ved hjælp af det universelle ./Konfigurer metode. Udvid først .tjære.GZ -fil:
Tar XFZ OpenVpn- [version].tjære.GZ
Derefter CD til det øverste bibliotek og type:
./Konfigurer Make Make Install
Windows bemærker
OpenVPN til Windows kan installeres fra den selvinstallerende EXE-fil på siden OpenVPN Download. Husk, at OpenVPN kun kører på Windows XP eller senere. Bemærk også, at OpenVPN skal installeres og køres af en bruger, der har administrative privilegier (denne begrænsning pålægges af Windows, ikke OpenVPN). Begrænsningen kan sidestiges ved at køre OpenVPN i baggrunden som en service, i hvilket tilfælde selv ikke-admin-brugere vil være i stand til at få adgang til VPN, når den først er installeret. Mere diskussion om OpenVPN + Windows Privilege -problemer.
Officielle OpenVPN Windows-installatører inkluderer OpenVPN-GUI, der tillader styring af OpenVPN-forbindelser fra en systembakkeapplet. Andre GUI -applikationer er også tilgængelige.
Når du har kørt Windows -installationsprogrammet, er OpenVPN klar til brug og vil knytte sig til filer, der har .ovpn udvidelse. For at køre OpenVPN kan du:
- Højreklik på en OpenVPN -konfigurationsfil (.ovpn) og vælg Start OpenVPN på denne konfigurationsfil. Når du kører, kan du bruge F4nøgle til at afslutte.
- Kør OpenVPN fra et kommandoprompt -vindue med en kommando som:
OpenVpn MyConfig.ovpn
Mac OS X Noter
Angelo Laub og Dirk Theisen har udviklet en OpenVPN GUI til OS X.
Andre operativsystemer
Nogle noter er tilgængelige i installationsfilen til specifikke operativsystemer. Generelt
./Konfigurer Make Make Install
Metode kan bruges, eller du kan søge efter en OpenVPN -port eller pakke, der er specifik for dit OS/distribution.
Bestemmelse af, om man skal bruge en routet eller brobroet VPN
Se FAQ for en oversigt over routing vs. Ethernet brodannelse. Se også siden OpenVPN Ethernet Bridging for flere noter og detaljer om brodannelse.
Generelt er routing sandsynligvis et bedre valg for de fleste mennesker, da det er mere effektivt og lettere at konfigurere (så langt som selve OpenVPN -konfigurationen) end brodannelse. Routing giver også en større evne til selektivt at kontrollere adgangsrettigheder på et klientspecifikt grundlag.
Jeg vil anbefale at bruge routing, medmindre du har brug for en bestemt funktion, der kræver brodannelse, såsom:
- VPN skal være i stand til at håndtere ikke-IP-protokoller såsom IPX,
- Du kører applikationer over VPN, der er afhængige af netværksudsendelser (såsom LAN -spil) eller
- Du vil gerne tillade browsing af Windows File -aktier på tværs af VPN uden at oprette en samba eller vinder server.
Nummerering af private undernet
Opsætning af en VPN medfører ofte sammenkobling af private undernet fra forskellige steder.
Internettet tildelt Numbers Authority (IANA) har reserveret følgende tre blokke af IP -adresserummet til private internetter (kodificeret i RFC 1918):
10.0.0.0 | 10.255.255.255 | (10/8 præfiks) |
172.16.0.0 | 172.31.255.255 | (172.16/12 præfiks) |
192.168.0.0 | 192.168.255.255 | (192.168/16 præfiks) |
Mens adresser fra disse NetBlocks normalt skal bruges i VPN -konfigurationer, er det vigtigt at vælge adresser, der minimerer sandsynligheden for IP -adresse eller undernetkonflikter. De typer konflikter, der skal undgås, er:
- Konflikter fra forskellige steder på VPN ved hjælp af den samme LAN -undernet -nummerering, eller
- Forbindelser til fjernadgang fra websteder, der bruger private undernet, der er i konflikt med dine VPN -undernet.
Antag for eksempel at du bruger den populære 192.168.0.0/24 Undernet som dit private LAN -undernet. Nu prøver du at oprette forbindelse til VPN fra en internetcafé, der bruger det samme undernet til sit WiFi Lan. Du har en routingkonflikt, fordi din maskine ikke ved, om 192.168.0.1 henviser til den lokale WiFi Gateway eller til den samme adresse på VPN.
Antag som et andet eksempel, at du vil sammenkæde flere websteder af VPN, men hvert sted bruger 192.168.0.0/24 som sit LAN -undernet. Dette fungerer ikke uden at tilføje et komplet lag af NAT -oversættelse, fordi VPN ikke ved, hvordan man rute pakker mellem flere steder, hvis disse websteder ikke bruger et undernet, der unikt identificerer dem.
Den bedste løsning er at undgå at bruge 10.0.0.0/24 eller 192.168.0.0/24 som private LAN -netværksadresser. Brug i stedet noget, der har en lavere sandsynlighed for at blive brugt i en WiFi -café, lufthavn eller hotel, hvor du måske forventer at oprette forbindelse fra eksternt. De bedste kandidater er undernet midt i de store 10.0.0.0/8 Netblock (for eksempel 10.66.77.0/24).
Og for at undgå, at IP-nummereringskonflikter på tværs af stedet skal altid bruge unik nummerering til dine LAN-undernet.
Opsætning af din egen certifikatmyndighed (CA) og generering af certifikater og nøgler til en OpenVPN -server og flere klienter
Oversigt
Det første trin i opbygningen af en openvpn 2.X -konfiguration er at etablere en PKI (offentlig nøgleinfrastruktur). PKI består af:
- et separat certifikat (også kendt som en offentlig nøgle) og privat nøgle til serveren og hver klient og
- Et CA) -certifikat (CA) certifikat og nøgle, der bruges til at underskrive hver af server- og klientcertifikaterne.
OpenVPN understøtter tovejsgodkendelse baseret på certifikater, hvilket betyder, at klienten skal autentificere servercertifikatet, og serveren skal autentificere klientcertifikatet, før gensidig tillid etableres.
Både server og klient vil autentificere den anden ved først at verificere, at det præsenterede certifikat blev underskrevet af Master Certificate Authority (CA), og derefter ved at teste oplysninger i det nu autentiske certifikatoverskrift, såsom certifikatets fælles navn eller certifikattype (klient eller server).
Denne sikkerhedsmodel har en række ønskelige funktioner fra VPN -perspektivet:
- Serveren har kun brug for sit eget certifikat/nøgle – den behøver ikke at kende de individuelle certifikater for enhver klient, der muligvis kan oprette forbindelse til den.
- Serveren accepterer kun klienter, hvis certifikater blev underskrevet af Master CA -certifikatet (som vi genererer nedenfor). Og fordi serveren kan udføre denne signaturverifikation uden at have brug for adgang til selve CA Private Key, er det muligt for CA -nøglen (den mest følsomme nøgle i hele PKI) at opholde sig på en helt anden maskine, endda en uden en netværksforbindelse.
- Hvis en privat nøgle kompromitteres, kan den deaktiveres ved at tilføje sit certifikat til en CRL (Certificate Revocationsliste). CRL tillader, at kompromitterede certifikater selektivt afvises uden at kræve, at hele PKI genopbygges.
- Serveren kan håndhæve klientspecifikke adgangsrettigheder baseret på indlejrede certifikatfelter, såsom det almindelige navn.
Bemærk, at serveren og klienturene skal være groft synkroniseret, eller at certifikater muligvis ikke fungerer korrekt.
Generer Master Certificate Authority (CA) Certificate & Key
I dette afsnit genererer vi et Master CA -certifikat/nøgle, en servercertifikat/nøgle og certifikater/nøgler til 3 separate klienter.
Til PKI -styring bruger vi Let-RSA 2, Et sæt scripts, der er samlet med OpenVPN 2.2.X og tidligere. Hvis du bruger OpenVpn 2.3.X, du skal downloade let-RSA 2 separat herfra.
Til PKI-styring bruger vi Easy-RSA 2, et sæt scripts, der er samlet med OpenVPN 2.2.X og tidligere. Hvis du bruger OpenVpn 2.3.X, du skal muligvis downloade let-RSA 2 separat fra den let-RSA-gamle projektside. På *NIX-platforme skal du se på at bruge Easy-RSA 3 i stedet; Se sin egen dokumentation for detaljer.
Hvis du bruger Linux, BSD eller et UNIX-lignende OS, skal du åbne en skal og cd til Let-RSA undermappe. Hvis du installerede OpenVPN fra en RPM- eller DEB-fil, kan Easy-RSA-biblioteket normalt findes i /usr/share/doc/pakker/openvpn eller /usr/share/doc/openvpn(Det er bedst at kopiere dette bibliotek til et andet sted, såsom /etc/openvpn, Før nogen redigeringer, så fremtidige OpenVPN -pakkeopgraderinger ikke overskriver dine ændringer). Hvis du installerede fra en .tjære.GZ-fil, let-RSA-biblioteket vil være i det øverste niveau-bibliotek i det udvidede kildetræ.
Hvis du bruger Windows, skal du åbne et kommandoprompt vindue og CD til \ Program Files \ OpenVpn \ Easy-RSA. Kør følgende batchfil for at kopiere konfigurationsfiler på plads (dette vil overskrive eventuelle eksisterende VAR’er.Bat og OpenSSL.CNF -filer):
init-config
Rediger nu vars fil (kaldet vars.flagermus på Windows) og indstil Key_Country, Key_Province, Key_City, Key_org og Key_EMail -parametre. Efterlad ikke nogen af disse parametre tomme.
Initialiser derefter PKI. På Linux/BSD/UNIX:
. ./vars ./Clean-All ./build-ca
Vars Clean-All Build-Ca
Den endelige kommando (Build-Ca) vil opbygge certifikatmyndigheden (CA) certifikat og nøgle ved at påberåbe sig det interaktive OPENSSLkommando:
AI: Easy-RSA # ./Build-CA Genererer en 1024 bit RSA privat nøgle . ++++++ . ++++++ Skrivning af en ny privat nøgle til 'CA.Nøgle '----- Du er ved at blive bedt om at indtaste oplysninger, der vil blive indarbejdet i din certifikatanmodning. Hvad du skal komme ind er det, der kaldes et fremtrædende navn eller en DN. Der er ganske mange felter, men du kan efterlade nogle tomme for nogle felter, der vil være en standardværdi, hvis du kommer ind '.', feltet vil blive tomt. ----- Landsnavn (2 bogstaverkode) [kg]: stat eller provinsnavn (fuldt navn) [NA]: lokalitetsnavn (f.eks. By) [Bishkek]: Organisationsnavn (f.eks. Virksomhed) [OpenVPN-Test]: Organisatorisk enhedsnavn (f.eks. Afsnit) []: Almindelig navn (f.eks.MyDomain]:
Bemærk, at i ovenstående sekvens blev de fleste forespurgte parametre misligholdt de værdier, der blev indstillet i varseller vars.flagermus filer. Den eneste parameter, der eksplicit skal indtastes, er Almindeligt navn. I eksemplet ovenfor brugte jeg “OpenVPN-CA”.
Generer certifikat og nøgle til server
Dernæst genererer vi et certifikat og en privat nøgle til serveren. På Linux/BSD/UNIX:
./Build-Key-server Server
Build-Key-server-server
Som i det foregående trin kan de fleste parametre være misligholdt. Når Almindeligt navn er forespurgt, indtast “Server”. To andre forespørgsler kræver positive svar, “Underskriv certifikatet? [y/n] “og” 1 ud af 1 certifikatanmodninger certificeret, forpligtelse? [y/n] “.
Generer certifikater og nøgler til 3 klienter
Generering af klientcertifikater ligner meget det forrige trin. På Linux/BSD/UNIX:
./Build-Key Client1 ./Build-Key Client2 ./Build-Key Client3
Build-Key Client1 Build-Key Client2 Build-Key Client3
Hvis du gerne vil have adgangskodebeskyt dine klientnøgler, skal du erstatte build-key-pass manuskript.
Husk, at for hver klient skal du sørge for at skrive det passende Almindeligt navn Når jeg blev bedt om, jeg.e. “Client1”, “Client2” eller “Client3”. Brug altid et unikt fælles navn til hver klient.
Generer Diffie Hellman -parametre
Diffie Hellman -parametre skal genereres til OpenVPN -serveren. På Linux/BSD/UNIX:
./build-dh
Build-DH
AI: Easy-RSA # ./build-dh genererer dh-parametre, 1024 bit lang sikker prime, generator 2 Dette vil tage lang tid . +. . +. +. +. .
Nøglefiler
Nu finder vi vores nyligt genererede nøgler og certifikater i nøgler undermappe. Her er en forklaring af de relevante filer:
Filnavn | Nødvendigt af | Formål | Hemmelighed |
CA.CRT | Server + alle klienter | Root CA -certifikat | INGEN |
CA.nøgle | KUN Nøglesigneringsmaskine | Root CA -nøgle | JA |
DH.Pem | kun server | Diffie Hellman -parametre | INGEN |
server.CRT | kun server | Servercertifikat | INGEN |
server.nøgle | kun server | Servernøgle | JA |
klient1.CRT | Kun klient1 | Klient1 -certifikat | INGEN |
klient1.nøgle | Kun klient1 | Klient1 -nøgle | JA |
klient2.CRT | Kun klient2 | Klient2 -certifikat | INGEN |
klient2.nøgle | Kun klient2 | Klient2 -nøgle | JA |
klient3.CRT | Kun klient3 | Klient3 -certifikat | INGEN |
klient3.nøgle | Kun klient3 | Klient3 -nøgle | JA |
Det sidste trin i nøglegenerationsprocessen er at kopiere alle filer til de maskiner, der har brug for dem, passe på at kopiere hemmelige filer over en sikker kanal.
Vent nu, kan du sige. Bør det ikke være muligt at oprette PKI uden en allerede eksisterende sikker kanal?
Svaret er tilsyneladende ja. I eksemplet ovenfor genererede vi for kortfattethedens skyld alle private nøgler på samme sted. Med lidt mere indsats kunne vi have gjort dette anderledes. I stedet for at generere klientcertifikatet og nøglerne på serveren, kunne vi for eksempel have fået klienten til at generere sin egen private nøgle lokalt og derefter indsende en Certificate Signing Request (CSR) til den nøglesigneringsmaskine. Til gengæld kunne den nøglekarmeringsmaskine have behandlet CSR og returneret et underskrevet certifikat til klienten. Dette kunne have været gjort uden nogensinde at kræve, at en hemmelighed .nøgle fil efterlad den harddisk på den maskine, som den blev genereret på.
Oprettelse af konfigurationsfiler til server og klienter
Få prøvekonfigurationsfiler
Det er bedst at bruge OpenVPN -prøvekonfigurationsfiler som udgangspunkt for din egen konfiguration. Disse filer findes også i
- det prøve-config-filer Katalog om OpenVPN -kildefordelingen
- det prøve-config-filer Katalog i /usr/share/doc/pakker/openvpn eller /usr/share/doc/openvpn Hvis du er installeret fra en RPM eller DEB -pakke
- Startmenu -> Alle programmer -> OpenVPN -> OpenVPN -prøvekonfigurationsfiler på vinduer
Bemærk, at på Linux-, BSD- eller UNIX-lignende operativsystemer er prøvekonfigurationsfilerne navngivet server.Conf og klient.Conf. På vinduer er de navngivet server.ovpn og klient.ovpn.
Redigering af serverkonfigurationsfilen
Eksempel på serverkonfigurationsfil er et ideelt udgangspunkt for en OpenVPN -serverkonfiguration. Det vil skabe en VPN ved hjælp af en virtuel Tun Netværksgrænseflade (til routing), vil lytte til klientforbindelser på UDP Port 1194 (OpenVPNs officielle portnummer) og distribuere virtuelle adresser til at forbinde klienter fra 10.8.0.0/24 Undernet.
Før du bruger eksempler på konfigurationsfil, skal du først redigere CA, cert, nøgle, og DH Parametre skal pege på de filer, du genererede i PKI -afsnittet ovenfor.
På dette tidspunkt er serverkonfigurationsfilen anvendelig, men du vil stadig muligvis tilpasse den yderligere:
- Hvis du bruger Ethernet Bridging, skal du bruge Server-bro og Dev Tap i stedet for server og dev tun.
- Hvis du vil have din OpenVPN -server til at lytte på en TCP -port i stedet for en UDP -port, skal du bruge Proto TCPi stedet for Proto udp (Hvis du ønsker, at OpenVPN skal lytte på både en UDP- og TCP -port, skal du køre to separate OpenVPN -forekomster).
- Hvis du vil bruge et andet virtuelt IP -adresseområde end 10.8.0.0/24, du skal ændre serverdirektiv. Husk, at dette virtuelle IP -adresseområde skal være et privat interval, der i øjeblikket er ubrugt på dit netværk.
- UNCOMMENT OUT klient til klient Direktiv, hvis du gerne vil have tilslutning af klienter for at kunne nå hinanden over VPN. Som standard vil klienter kun være i stand til at nå serveren.
- Hvis du bruger Linux, BSD eller et Unix-lignende operativsystem, kan du forbedre sikkerheden ved at fjerne bruger ingen og Gruppe ingen Direktiver.
Hvis du vil køre flere OpenVPN -forekomster på den samme maskine, hver ved hjælp af en anden konfigurationsfil, er det muligt, hvis du:
- Brug en anden Havn Nummer for hver instans (UDP- og TCP-protokollerne bruger forskellige portrum, så du kan køre en dæmonlytning på UDP-1194 og en anden på TCP-1194).
- Hvis du bruger Windows, er hver OpenVPN-konfiguration taned for at have sine egne tap-windows adapter. Du kan tilføje yderligere adaptere ved at gå til Startmenu -> Alle programmer -> Tap -Windows -> Tilføj en ny tap -windows virtuel Ethernet -adapter.
- Hvis du kører flere OpenVPN -forekomster ud af det samme bibliotek, skal du sørge for at redigere direktiver, der opretter outputfiler, så flere forekomster ikke overskriver hinandens outputfiler. Disse direktiver inkluderer log, Log-append, status, og ifconfig-pool-persist.
Redigering af klientkonfigurationsfilerne
Eksempelklientkonfigurationsfilen (klient.Conf på Linux/BSD/Unix eller klient.ovpn på Windows) spejler standarddirektiverne, der er indstillet i eksempler på serverkonfigurationsfil.
- Ligesom serverkonfigurationsfilen, rediger først CA, cert, og nøgle Parametre skal pege på de filer, du genererede i PKI -afsnittet ovenfor. Bemærk, at hver klient skal have sin egen cert/nøgle par. Kun den CAFilen er universel på tværs af OpenVPN -serveren og alle klienter.
- Rediger derefter fjernDirektiv om at pege på værtsnavnet/IP-adressen og portnummeret på OpenVPN-serveren (hvis din OpenVPN-server kører på en enkelt-NIC-maskine bag en firewall/nat-gateway, brug den offentlige IP-adresse på gatewayen og en port Nummer, som du har konfigureret porten til at videresende til OpenVPN -serveren).
- Endelig skal du sikre dig, at klientkonfigurationsfilen er i overensstemmelse med de direktiver, der bruges i serverkonfigurationen. Den vigtigste ting at kontrollere for er, at Dev (tun eller tap) og Proto (UDP eller TCP) Direktiver er konsistente. Sørg også for det Comp-lzo og fragment, Hvis det bruges, er der i både klient- og serverkonfigurationsfiler.
Start af VPN og test for den første tilslutningsmulighed
Start på serveren
Først skal du sørge for, at OpenVPN -serveren er tilgængelig fra internettet. Det betyder:
- Åbning af UDP -port 1194 på firewall (eller hvad TCP/UDP -port du har konfigureret), eller
- Opsætning af en havnefronregel for at videresende UDP -port 1194 fra firewall/gateway til maskinen, der kører OpenVPN -serveren.
For at forenkle fejlfinding er det bedst at oprindeligt starte OpenVPN-serveren fra kommandolinjen (eller højreklikke på .ovpn fil på Windows) snarere end at starte det som en dæmon eller tjeneste:
OpenVPN [Server Config -fil]
En normal serverstart skal se sådan ud (output vil variere på tværs af platforme):
Sol 6. februar 20:46:38 2005 OpenVPN 2.0_RC12 I686-SUSE-LINUX [SSL] [LZO] [Epoll] Bygget den 5. februar 2005 Sol 6. februar 20:46:38 2005 Diffie-Hellman initialiseret med 1024 Bit Key Sun 6 20:46:38 2005 TLS-Auth Mtu PARMS [L: 1542 D: 138 EF: 38 EB: 0 ET: 0 EL: 0] SUN 6. februar 20:46:38 2005 TUN/TAP DEVICE TUn1 Åbnet SUN 6. februar 20:46:38 2005/SBIN/IFCONFIG TUN1 10.8.0.1 Pointopoint 10.8.0.2 MTU 1500 Sun 6. februar 20:46:38 2005 /SBIN /ROUTE ADD -NET 10.8.0.0 Netmask 255.255.255.0 GW 10.8.0.2 Sol 6. februar 20:46:38 2005 Datakanal MTU PARMS [L: 1542 D: 1450 EF: 42 EB: 23 ET: 0 EL: 0 AF: 3/1] Sol 6. februar 20:46:38 2005 UDPV4 Link Lokal (bundet): [undef]: 1194 Sol 6. februar 20:46:38 2005 UDPv4 Link Fjern: [Undek] Sol 6. februar 20:46:38 2005 Multi: Multi_init kaldet, r = 256 V = 256 Sun Feb 6 20 : 46: 38 2005 Ifconfig Pool: Base = 10.8.0.4 Størrelse = 62 Sol 6. februar 20:46:38 2005 Ifconfig Pool List Sun 6. februar 20:46:38 2005 Initialiseringssekvens afsluttet
Start af klienten
Som i serverkonfigurationen er det bedst at oprindeligt starte OpenVPN-serveren fra kommandolinjen (eller på Windows, ved at højreklikke på klient.ovpn fil) snarere end at starte den som en dæmon eller tjeneste:
OpenVPN [Client Config -fil]
En normal klientstart på Windows ligner serverudgangen ovenfor og bør ende med Initialiseringssekvens afsluttet besked.
Prøv nu en ping over VPN fra klienten. Hvis du bruger routing (jeg.e. dev tun I serverkonfigurationsfilen), prøv:
Ping 10.8.0.1
Hvis du bruger brodannelse (i.e. Dev Tap I serverkonfigurationsfilen), prøv at pinge IP -adressen på en maskine på serverens Ethernet -undernet.
Hvis ping lykkes, lykønskning! Du har nu en fungerende VPN.
Fejlfinding
Hvis ping mislykkedes, eller OpenVPN -klientinitialiseringen ikke kunne gennemføre, er her en tjekliste over almindelige symptomer og deres løsninger:
- Du får fejlmeddelelsen: TLS -fejl: TLS -nøgleforhandlinger kunne ikke forekomme inden for 60 sekunder (tjek din netværksforbindelse). Denne fejl indikerer, at klienten ikke var i stand til at etablere en netværksforbindelse med serveren.Løsninger:
- Sørg for, at klienten bruger det rigtige værtsnavn/IP -adresse og portnummer, som giver den mulighed for at nå openvpn -serveren.
- Hvis OpenVPN-servermaskinen er en enkelt-NIC-boks inde i et beskyttet LAN, skal du sørge for, at du bruger en korrekt portforsvarsregel på serverens Gateway Firewall. Antag for eksempel, at din openvpn -boks er på 192.168.4.4 Inde i firewall, lytter til klientforbindelser på UDP -port 1194. Nat Gateway servicerer 192.168.4.X Subnet skal have en havneforsvarsregel, der siger Fremad UDP Port 1194 fra min offentlige IP -adresse til 192.168.4.4.
- Åbn serverens firewall for at give indgående forbindelser til UDP -port 1194 (eller hvad TCP/UDP -port du har konfigureret i serverkonfigurationsfilen).
TLS: indledende pakke fra x.x.x.X: X, SID = XXXXXXXX XXXXXXXX
Se FAQ for yderligere fejlfindingsoplysninger.
Konfiguration af OpenVPN til at køre automatisk på systemstart
Manglen på standarder på dette område betyder, at de fleste operativsystemer har en anden måde at konfigurere dæmoner/tjenester til Autostart på Boot. Den bedste måde at få denne funktionalitet konfigureret som standard på er at installere OpenVPN som en pakke, f.eks. Via RPM på Linux eller ved hjælp af Windows -installationsprogrammet.
Linux
Hvis du installerer OpenVPN via en RPM eller DEB -pakke på Linux, vil installationsprogrammet oprette en Initscript. Når det udføres, scanner Initscript .Conf Konfigurationsfiler i /etc/openvpn, Og hvis det findes, starter en separat openvpn -dæmon for hver fil.
Windows
Windows -installationsprogrammet opretter en serviceindpakning, men lad den være slukket som standard. For at aktivere det skal du gå til kontrolpanel / administrative værktøjer / tjenester, vælge OpenVPN-tjenesten, højreklik på egenskaber og indstille starttypen til automatisk. Dette konfigurerer tjenesten til automatisk start på den næste genstart.
Når den startes, scanner openvpn -serviceindpakningen \ Program Files \ OpenVpn \ Config mappe til .ovpn Konfigurationsfiler, starter en separat OpenVPN -proces på hver fil.
Kontrol af en kørende openvpn -proces
Kører på Linux/BSD/UNIX
OpenVPN accepterer flere signaler:
- Sigusr1 — Betinget genstart, designet til at genstarte uden rodrettigheder
- SIGHUP — Hård genstart
- Sigusr2 — Outputforbindelsesstatistik til logfil eller syslog
- Sigterm, Sigint — Afslut
Brug Skrivpid direktiv om at skrive OpenVpn Daemon’s PID til en fil, så du ved, hvor du skal sende signalet (hvis du starter OpenVPN med en Initscript, Manuskriptet passerer muligvis allerede en –Skrivpid direktiv om OpenVpn kommandolinje).
Kører på Windows som GUI
Kører i et Windows Command Prompt -vindue
På Windows kan du starte OpenVPN ved at højreklikke på en OpenVPN -konfigurationsfil (.ovpn fil) og valg af “Start OpenVPN på denne konfigurationsfil”.
Når man kører på denne måde, er flere tastaturkommandoer tilgængelige:
- F1 — Betinget genstart (lukker ikke/genåbner Tap Adapter)
- F2 — Vis forbindelsesstatistik
- F3 — Hård genstart
- F4 — Afslut
Kører som en Windows -service
Når OpenVPN startes som en service på Windows, er den eneste måde at kontrollere det på:
- Via Service Control Manager (kontrolpanel / administrative værktøjer / tjenester), der giver start / stop kontrol.
- Via Management Interface (se nedenfor).
Ændring af en live -serverkonfiguration
Mens de fleste konfigurationsændringer kræver, at du genstarter serveren, er der især to direktiver, der henviser til filer, der kan opdateres dynamisk på flyet, og som vil have øjeblikkelig indflydelse på serveren uden at skulle genstarte serverprocessen.
klient-config-dir — Dette direktiv indstiller et klientkonfigurationsmappe, som OpenVPN-serveren scanner på enhver indgående forbindelse og søger efter en klientspecifik konfigurationsfil (se The Manual-siden for mere information). Filer i dette bibliotek kan opdateres på flyet uden at genstarte serveren. Bemærk, at ændringer i dette bibliotek kun træder i kraft for nye forbindelser, ikke eksisterende forbindelser. Hvis du gerne vil have en klientspecifik konfigurationsfilændring for at få øjeblikkelig virkning på en aktuelt tilsluttet klient (eller en, der har afbrudt, men hvor serveren ikke har tidsbestemt sit instansobjekt), dræber klientinstansobjektet ved hjælp af styringen Interface (beskrevet nedenfor). Dette vil få klienten til at oprette forbindelse igen og bruge den nye klient-config-dir fil.
CRL-Verify — Dette direktiv navngiver A Liste over tilbagekaldelse af certifikat fil, beskrevet nedenfor i afsnittet om tilbagekaldelsescertifikater. CRL -filen kan ændres på farten, og ændringer træder i kraft straks for nye forbindelser eller eksisterende forbindelser, der genforhandler deres SSL/TLS -kanal (forekommer en gang i timen som standard). Hvis du gerne vil dræbe en aktuelt tilsluttet klient, hvis certifikat netop er føjet til CRL, skal du bruge styringsgrænsefladen (beskrevet nedenfor).
Statusfil
Standardserveren.conf -fil har en linje
Status openvpn-status.log
som udsender en liste over aktuelle klientforbindelser til filen OpenVpn-status.log en gang pr. Minut.
Brug af styringsgrænsefladen
OpenVPN -styringsgrænsefladen tillader en stor kontrol over en kørende OpenVPN -proces. Du kan bruge styringsgrænsefladen direkte ved at telneting til administrationsgrænsefladeporten eller indirekte ved at bruge en OpenVPN GUI, der selv forbinder til styringsgrænsefladen.
For at aktivere styringsgrænsefladen på enten en OpenVPN -server eller klient, skal du tilføje dette til konfigurationsfilen:
Management Localhost 7505
Dette beder OpenVPN om at lytte til TCP -port 7505 til administrationsgrænsefladeklienter (Port 7505 er et vilkårligt valg – du kan bruge enhver gratis port).
Når OpenVPN kører, kan du oprette forbindelse til styringsgrænsefladen ved hjælp af en Telnet klient. For eksempel:
AI: ~ # Telnet Localhost 7505 Prøv 127.0.0.1. Forbundet til localhost. Escape -karakter er '^]'. > Info: OpenVPN Management Interface version 1 - Type 'Hjælp' til mere information.0_RC14 I686-SUSE-LINUX [SSL] [LZO] [Epoll] Bygget den 15. februar 2005 Kommandoer: ECHO [ON | OFF] [N | ALL]: Ligesom log, men viser kun meddelelser i Echo Buffer. Afslut | Afslut: Luk styringssession. Hjælp: Udskriv denne besked. Hold [ON | Fra | Udgivelse]: Indstil/vis hold flag til ON/OFF -tilstand, eller frigør strøm og start tunnelen. Dræb CN: Dræb klientinstansen (er) med fælles navn CN. Dræb IP: Port: Dræb klientinstansen, der forbinder fra IP: Port. Log [ON | OFF] [N | ALL]: Turn On/Off Realtime Log Display + Show Last N Lines eller 'All' for hele historien. stum [n]: Indstil log stum niveau til n eller showniveau, hvis n er fraværende. Net: (kun vinduer) Vis netværksinfo og routingtabel. Adgangskode Type P: Indtast adgangskode P for en forespørgsel OpenVPN -adgangskode. Signal S: Send signal S til Daemon, S = SIGHUP | SIGTERM | SIGUSR1 | SIGUSR2. Stat [On | off] [N | All]: Ligesom log, men viser statshistorie. Status [n]: Vis aktuelle daemon -statusoplysninger ved hjælp af format #n. Test N: Produktion af outputlinjer til test/fejlsøgning. Brugernavn Type U: Indtast brugernavn u til et forespurgt OpenVPN -brugernavn. verb [n]: Indstil log verbositetsniveau til n, eller vis, hvis n er fraværende. Version: Vis det aktuelle versionnummer. End -exit -forbindelse lukket af udenlandsk vært. AI: ~ #
Udvidelse af omfanget af VPN til at omfatte yderligere maskiner på enten klienten eller serverundernetet.
Inklusive flere maskiner på serversiden, når du bruger en routet VPN (dev tun)
Når VPN er operationel i en punkt-til-punkt-kapacitet mellem klient og server, kan det være ønskeligt at udvide omfanget af VPN, så klienter kan nå flere maskiner på servernetværket i stedet for kun selve servermaskinen.
Med henblik på dette eksempel antager vi, at LAN på serversiden bruger et undernet af 10.66.0.0/24og VPN IP -adressepoolen bruger 10.8.0.0/24 Som citeret i server Direktiv i OpenVPN -serverkonfigurationsfilen.
Først skal du Annoncer det 10.66.0.0/24 Undernet til VPN -klienter som værende tilgængelige gennem VPN. Dette kan let gøres med følgende server-side-konfigurationsfildirektiv:
Skub "rute 10.66.0.0 255.255.255.0 "
Dernæst skal du indstille en rute på server-side LAN-gatewayen for at rute VPN-klientens undernet (10.8.0.0/24) til OpenVPN -serveren (dette er kun nødvendigt, hvis OpenVPN -serveren og LAN -gatewayen er forskellige maskiner).
Sørg for, at du har aktiveret IP og TUN/TAP -videresendelse på OpenVPN -servermaskinen.
Inklusive flere maskiner på serversiden, når du bruger en brobroet VPN (Dev Tap)
En af fordelene ved at bruge Ethernet Bridging er, at du får dette gratis uden at have brug for yderligere konfiguration.
Inklusive flere maskiner på klientsiden, når du bruger en routet VPN (dev tun)
I et typisk scenarie til vejkrigskrig eller fjernadgang forbindes klientmaskinen til VPN som en enkelt maskine. Men antag, at klientmaskinen er en gateway for et lokalt LAN (f.eks.
I dette eksempel antager vi, at klienten LAN bruger 192.168.4.0/24 Undernet, og at VPN -klienten bruger et certifikat med et fælles navn på klient2. Vores mål er at indstille VPN, så enhver maskine på klienten LAN kan kommunikere med enhver maskine på server LAN gennem VPN.
Før opsætning er der nogle grundlæggende forudsætninger, der skal følges:
- Client Lan Subnet (192.168.4.0/24 i vores eksempel) må ikke eksporteres til VPN af serveren eller andre klientwebsteder, der bruger det samme undernet. Hvert undernet, der er forbundet til VPN via routing, skal være unik.
- Klienten skal have et unikt fælles navn i sit certifikat (“klient2” i vores eksempel) og duplikat-cn Flag må ikke bruges i OpenVPN -serverkonfigurationsfilen.
Sørg først for, at IP og TUN/TAP -videresendelse er aktiveret på klientmaskinen.
Dernæst vil vi håndtere de nødvendige konfigurationsændringer på serversiden. Hvis serverkonfigurationsfilen ikke i øjeblikket refererer til en klientkonfigurationsdatalog, skal du tilføje en nu:
Klient-config-Dir CCD
I ovenstående direktiv, CCD Bør være navnet på et bibliotek, der er forudoprettet i standardkataloget, hvor OpenVPN Server Daemon kører. På Linux har dette en tendens til at være /etc/openvpn Og på vinduer er det normalt \ Program Files \ OpenVpn \ Config. Når en ny klient opretter forbindelse til OpenVPN -serveren, vil dæmonen kontrollere dette bibliotek for en fil, der matcher det almindelige navn på den forbindende klient. Hvis der findes en matchende fil, læses den og behandles for yderligere konfigurationsfildirektiver, der skal anvendes til den navngivne klient.
Det næste trin er at oprette en fil kaldet klient2 I CCD vejviser. Denne fil skal indeholde linjen:
Iroute 192.168.4.0 255.255.255.0
Dette fortæller OpenVPN -serveren, at 192.168.4.0/24 undernet skal dirigeres til klient2.
Føj derefter følgende linje til hovedserverkonfigurationsfilen (ikke CCD/klient2 fil):
Rute 192.168.4.0 255.255.255.0
Hvorfor den overflødige rute og Iroute udsagn, spørger du måske? Årsagen er det rute Kontrollerer routingen fra kernen til OpenVPN -serveren (via TUN -grænsefladen), mens Iroute Kontrollerer routingen fra OpenVPN -serveren til de eksterne klienter. Begge er nødvendige.
Spørg dig selv derefter, om du gerne vil tillade netværkstrafik mellem Client2’s Subnet (192.168.4.0/24) og andre klienter på OpenVPN -serveren. I så fald skal du tilføje følgende til serverkonfigurationsfilen.
klient-til-klient push "rute 192.168.4.0 255.255.255.0 "
Dette vil få OpenVPN -serveren til at Annoncer Client2s undernet til andre forbindelsesklienter.
Det sidste trin, og et, der ofte glemmes, er at tilføje en rute til serverens LAN -gateway, der leder 192.168.4.0/24 til OpenVPN -serverboksen (du har ikke brug for dette, hvis OpenVPN -serverboksen er Gateway for Server Lan). Antag, at du manglede dette trin, og du prøvede at pinge en maskine (ikke selve OpenVPN -serveren) på server LAN fra 192.168.4.8? Den udgående ping ville sandsynligvis nå maskinen, men så ville det ikke vide, hvordan man ruter ping -svaret, fordi det ikke ville have nogen idé om, hvordan man når 192.168.4.0/24. Tommelfingerreglen, der skal bruges, er, at når du dirigerer hele LAN’er gennem VPN (når VPN -serveren ikke er den samme maskine som LAN -gatewayen), skal du sørge for, at gatewayen til LAN ruter alle VPN -undernet til VPN -servermaskinen.
Tilsvarende, hvis klientmaskinen, der kører OpenVPN, ikke også er porten til klienten LAN, skal porten til klienten LAN have en rute, der leder alle undernet, der skal nås gennem VPN til OpenVPN -klientmaskinen.
Inklusive flere maskiner på klientsiden, når du bruger en broforbundet VPN (Dev Tap)
Dette kræver en mere kompleks opsætning (måske ikke mere kompleks i praksis, men mere kompliceret at forklare detaljeret):
- Du skal bygge bro over klientens tapgrænseflade med den LAN-tilsluttede NIC på klienten.
- Du skal manuelt indstille IP/NETMASK på tapgrænsefladen på klienten.
- Du skal konfigurere maskiner til klientsiden til at bruge en IP/netmask, der er inde i det broede undernet, muligvis ved at forespørge en DHCP-server på OpenVPN-serversiden af VPN.
Skubbe DHCP -muligheder til klienter
OpenVPN -serveren kan skubbe DHCP -indstillinger såsom DNS og Wins Server -adresser til klienter (nogle advarsler for at være opmærksomme på). Windows-klienter kan acceptere skubbede DHCP-indstillinger naturligt, mens ikke-windows-klienter kan acceptere dem ved at bruge en klientside op script, der analyserer udenlandsk_option_nMiljøvariabel liste. Se manden for ikke-windows udenlandsk_option_n Dokumentation og scripteksempler.
Antag for eksempel at du gerne vil have tilslutning af klienter til at bruge en intern DNS -server på 10.66.0.4 eller 10.66.0.5 og en vinder server kl. 10.66.0.8. Føj dette til OpenVPN -serverkonfigurationen:
Push "DHCP-Option DNS 10.66.0.4 "Push" DHCP-Option DNS 10.66.0.5 "Push" DHCP-Option vinder 10.66.0.8 "
For at teste denne funktion på Windows skal du køre følgende fra et kommandoprompt -vindue, efter at maskinen har tilsluttet en OpenVPN -server:
ipconfig /alle
Indgangen til tap-windows-adapteren skal vise DHCP-indstillingerne, der blev skubbet af serveren.
Konfiguration af klientspecifikke regler og adgangspolitikker
Antag, at vi opretter et firma VPN, og vi vil gerne etablere separate adgangspolitikker for 3 forskellige klasser af brugere:
- Systemadministratorer — Fuld adgang til alle maskiner på netværket
- Medarbejdere — Adgang kun til samba/e -mail -server
- Entreprenører — Kun adgang til en speciel server
Den grundlæggende tilgang, vi vil tage, er (a) at adskille hver brugerklasse i sit eget virtuelle IP -adresseområde, og (b) kontrollere adgangen til maskiner ved at opsætte firewall -regler, som sætter klientens virtuelle IP -adresse.
Antag i vores eksempel, at vi har et variabelt antal ansatte, men kun en systemadministrator og to entreprenører. Vores IP -allokeringsmetode vil være at sætte alle medarbejdere i en IP -adressepool og derefter tildele faste IP -adresser til systemadministratoren og entreprenørerne.
Bemærk, at en af forudsætningerne for dette eksempel er, at du har en software -firewall, der kører på OpenVPN -servermaskinen, som giver dig muligheden for at definere specifikke firewall -regler. For vores eksempel antager vi, at firewall er Linux iptables.
Lad os først oprette et virtuelt IP -adressekort ifølge brugerklasse:
Klasse Virtuel IP -rækkevidde Tilladt LAN -adgang Fælles navne Medarbejdere 10.8.0.0/24 Samba/e -mail -server kl. 10.66.4.4 [Variabel] Systemadministratorer 10.8.1.0/24 Hele 10.66.4.0/24 Undernet sysadmin1 Entreprenører 10.8.2.0/24 Entreprenørserver kl. 10.66.4.12 Entreprenør1, Contracter2 Lad os derefter oversætte dette kort til en OpenVPN -serverkonfiguration. Først og fremmest skal du sørge for, at du har fulgt trinnene ovenfor for at lave 10.66.4.0/24 Undernet til rådighed for alle klienter (mens vi konfigurerer routing for at give klientadgang til hele 10.66.4.0/24 Undernet, vi pålægger derefter adgangsbegrænsninger ved hjælp af firewall -regler til implementering af ovennævnte politiske tabel).
Definer først et statisk enhedsnummer for vores Tun Interface, så vi kan henvise til det senere i vores firewall -regler:
dev tun0
I serverkonfigurationsfilen skal du definere medarbejderens IP -adressepool:
Server 10.8.0.0 255.255.255.0
Tilføj ruter til systemadministratoren og entreprenørens IP -intervaller:
Rute 10.8.1.0 255.255.255.0 Rute 10.8.2.0 255.255.255.0
Fordi vi tildeler faste IP -adresser til specifikke systemadministratorer og entreprenører, vil vi bruge en klientkonfigurationsmappe:
Klient-config-Dir CCD
Placer nu specielle konfigurationsfiler i CCD Undermappe til at definere den faste IP-adresse for hver ikke-medarbejder VPN-klient.
CCD/sysadmin1
ifconfig-push 10.8.1.1 10.8.1.2
CCD/entreprenør1
ifconfig-push 10.8.2.1 10.8.2.2
CCD/entreprenør2
ifconfig-push 10.8.2.5 10.8.2.6
Hvert par af ifconfig-push adresser repræsenterer de virtuelle klient- og server IP -endepunkter. De skal tages fra på hinanden følgende /30 undernet for at være kompatible med Windows-klienter og tap-windows-driveren. Specifikt skal den sidste oktet i IP -adressen på hvert slutpunktpar tages fra dette sæt:
[1, 2] [5, 6] [9, 10] [13, 14] [17, 18] [21, 22] [25, 26] [29, 30] [33, 34] [37, 38] [41, 42] [45, 46] [49, 50] [53, 54] [57, 58] [61, 62] [65, 66] [69, 70] [73, 74] [77, 78] [81, 82] [85, 86] [89, 90] [93, 94] [97, 98] [101,102] [105,106] [109,110] [113,114] [117,118] [121,122] [125,126] [129,130] [ 133,134] [137,138] [141,142] [145,146] [149,150] [153,154] [157,158] [161,162] [165,166] [169,170] [173,174] 94] [197.198] [201,202] [205,206] [209,210] [213,214] [217,218] [221,222] [225,226] [229,230] [233,234] [237,238] [241,242] [245,246] [249,250] [253,254]
Dette afslutter OpenVPN -konfigurationen. Det sidste trin er at tilføje firewall -regler for at afslutte adgangspolitikken. I dette eksempel vil vi bruge firewall -regler i Linux iptables Syntaks:
# Medarbejderregel iptables -a fremad -i tun0 -s 10.8.0.0/24 -d 10.66.4.4 -J Accepter # sysadmin -regel iptables -a frem -i Tun0 -s 10.8.1.0/24 -d 10.66.4.0/24 -J Accepter # entreprenørregel iptables -a frem -i Tun0 -s 10.8.2.0/24 -d 10.66.4.12 -J Accepter
Brug af alternative godkendelsesmetoder
OpenVPN 2.0 og inkluderer senere en funktion, der giver OpenVPN -serveren mulighed for sikkert at få et brugernavn og adgangskode fra en forbindelsesklient og bruge disse oplysninger som grundlag for at autentisere klienten.
For at bruge denne godkendelsesmetode skal du først tilføje Auth-bruger-pass direktiv til klientkonfigurationen. Det vil instruere OpenVPN -klienten til at forespørge brugeren til et brugernavn/adgangskode og videregive den til serveren over den sikre TLS -kanal.
Konfigurer derefter serveren til at bruge et godkendelsesplugin, som kan være et script, delt objekt eller DLL. OpenVPN -serveren kalder plugin hver gang en VPN -klient forsøger at oprette forbindelse, og videregive det brugernavnet/adgangskoden, der er indtastet på klienten. Autentificerings plugin kan kontrollere, om OpenVPN -serveren giver klienten mulighed for at oprette forbindelse ved at returnere en fiasko (1) eller succes (0) -værdi.
Brug af script -plugins
Script -plugins kan bruges ved at tilføje Auth-bruger-pass-verify Direktiv til server-side-konfigurationsfilen. For eksempel:
Auth-bruger-Pass-Verify Auth-Pam.PL Via-file
bruger auth-pam.pl Perl -script til at autentificere brugernavnet/adgangskoden til at forbinde klienter. Se beskrivelsen af Auth-bruger-pass-verify På manuel side for mere information.
Det auth-pam.pl Script er inkluderet i OpenVPN -kildefilfordelingen i prøve-scriptsundermappe. Det vil autentificere brugere på en Linux -server ved hjælp af et PAM -godkendelsesmodul, som igen kan implementere skyggeadgangskode, radius eller LDAP -godkendelse. auth-pam.pl er primært beregnet til demonstrationsformål. For PAM-godkendelse i den virkelige verden skal du bruge OpenVPN-forfatter-pamDelt objekt plugin beskrevet nedenfor.
Brug af delt objekt eller DLL -plugins
Delt objekt- eller DLL -plugins er normalt samlet C -moduler, der indlæses af OpenVPN -serveren på kørselstidspunktet. For eksempel hvis du bruger en RPM-baseret OpenVPN-pakke på Linux, den OpenVPN-forfatter-pam Plugin skal allerede bygges. For at bruge den skal du tilføje dette til server-side-konfigurationsfilen:
Plugin/USR/Share/OpenVPN/Plugin/lib/OpenVPN-forfatter-PAM.Så login
Dette fortæller OpenVPN -serveren at validere det brugernavn/adgangskode, der er indtastet af klienter ved hjælp af Log påPam -modul.
Til produktion af den virkelige verden er det bedre at bruge OpenVPN-forfatter-pam plugin, fordi det har flere fordele i forhold til auth-pam.pl manuskript:
- Det delte objekt OpenVPN-forfatter-pam Plugin bruger en split-privilege eksekveringsmodel for bedre sikkerhed. Dette betyder, at OpenVPN -serveren kan køre med reducerede privilegier ved at bruge direktiverne bruger ingen, Gruppe ingen, og CHROOT, og vil stadig være i stand til at autentificere mod den rodlæselige skygge-adgangskodefil.
- OpenVPN kan videregive brugernavnet/adgangskoden til et plugin via virtuel hukommelse snarere end via en fil eller miljøet, hvilket er bedre for lokal sikkerhed på servermaskinen.
- C-kompilerede plugin-moduler kører generelt hurtigere end scripts.
Hvis du gerne vil have flere oplysninger om at udvikle dine egne plugins til brug med OpenVPN, skal du se Readme filer i Plugin Undermappen af OpenVPN -kildefordelingen.
At bygge OpenVPN-forfatter-pam Plugin på Linux, CD til Plugin/Auth-Pam Katalog i OpenVPN -kildefordelingen og kør lave.
Brug af brugernavn/adgangskode -godkendelse som den eneste form for klientgodkendelse
Som standard ved hjælp af Auth-bruger-pass-verify eller et brugernavn/adgangskodekontrol Plugin På serveren vil du aktivere dobbelt godkendelse, hvilket kræver, at både klientcertifikat og brugernavn/adgangskode-godkendelse lykkes for at klienten kan godkendes.
Selvom det er modløs fra et sikkerhedsperspektiv, er det også muligt at deaktivere brugen af klientcertifikater og kun tvinge brugernavn/adgangskode -godkendelse. På serveren:
klient-cert-ikke-krævet
Sådanne konfigurationer skal normalt også indstille:
Brugernavn-som-fælles-navn
som fortæller serveren at bruge brugernavnet til indekseringsformål, da det ville bruge det almindelige navn på en klient, der godkendte via et klientcertifikat.
Noter det klient-cert-ikke-krævet vil ikke undgå behovet for et servercertifikat, så en klient, der opretter forbindelse til en server, der bruger klient-cert-ikke-krævet kan fjerne cert og nøgle Direktiver fra klientkonfigurationsfilen, men ikke CA Direktiv, fordi det er nødvendigt for klienten at verificere servercertifikatet.
Sådan tilføjes dobbeltfaktor-godkendelse til en OpenVPN-konfiguration ved hjælp af klientside-smartkort
- Om dobbeltfaktor-godkendelse
- Hvad er PKCS#11?
- Find PKCS#11 Provider Library.
- Sådan konfigureres et kryptografisk token
- Sådan ændres en OpenVPN -konfiguration for at gøre brug af kryptografiske tokens
- Bestem det rigtige objekt.
- Brug af OpenVPN med PKCS#11.
- PKCS#11 Implementeringshensyn.
- OpenSC PKCS#11 -udbyder.
Om dobbeltfaktor-godkendelse
Dobbeltfaktor-godkendelse er en metode til godkendelse, der kombinerer to elementer: noget du har og noget, du kender.
Noget, du har, skal være en enhed, der ikke kan duplikeres; En sådan enhed kan være et kryptografisk token, der indeholder en privat hemmelig nøgle. Denne private nøgle genereres inde i enheden og forlader den aldrig. Hvis en bruger, der besidder dette token, forsøger at få adgang til beskyttede tjenester på et fjernt netværk, kan autorisationsprocessen, der tildeler eller benægter netværksadgang.
Noget, du ved, kan være en adgangskode, der præsenteres for den kryptografiske enhed. Uden at præsentere den rette adgangskode kan du ikke få adgang til den private hemmelige nøgle. Et andet træk ved kryptografiske enheder er at forbyde brugen af den private hemmelige nøgle, hvis den forkerte adgangskode var blevet præsenteret mere end et tilladt antal gange. Denne opførsel sikrer, at hvis en bruger mistede sin enhed, ville den være umulig for en anden person at bruge den.
Kryptografiske enheder kaldes ofte “smartkort” eller “tokens” og bruges sammen med en PKI (offentlig nøgleinfrastruktur). VPN -serveren kan undersøge en x.509 certifikat og bekræft, at brugeren har den tilsvarende private hemmelige nøgle. Da enheden ikke kan duplikeres og kræver en gyldig adgangskode, er serveren i stand til at autentificere brugeren med en høj grad af selvtillid.
Dobbeltfaktor-godkendelse er meget stærkere end adgangskodebaseret godkendelse, fordi i det værste tilfælde er kun en person ad gangen kan bruge det kryptografiske token. Adgangskoder kan gættes og kan udsættes for andre brugere, så i det værste tilfælde kunne et uendeligt antal mennesker forsøge at få uautoriseret adgang, når ressourcerne er beskyttet ved hjælp af kun adgangskode-godkendelse.
Hvis du gemmer den hemmelige private nøgle i en fil, er nøglen normalt krypteret med en adgangskode. Problemet med denne tilgang er, at den krypterede nøgle udsættes for dekrypteringsangreb eller spyware/malware, der kører på klientmaskinen. I modsætning til når du bruger en kryptografisk enhed, kan filen ikke slette sig automatisk efter flere mislykkede dekrypteringsforsøg.
Hvad er PKCS#11?
Denne standard specificerer en API, kaldet Cryptoki, til enheder, der indeholder kryptografisk information og udfører kryptografiske funktioner. Cryptoki, udtalt “krypto-nøgle” og kort for kryptografisk token-grænseflade, følger en simpel objektbaseret tilgang, der adresserer målene for teknologiuafhængighed (enhver form for enhed) og ressourcedeling (flere applikationer, der får adgang til flere enheder), der præsenterer for applikationer a Almindelig, logisk visning af enheden kaldet et kryptografisk token.
For at opsummere er PKCS#11 en standard, der kan bruges af applikationssoftware til at få adgang til kryptografiske tokens såsom smartkort og andre enheder. De fleste enhedsleverandører leverer et bibliotek, der implementerer PKCS#11 -udbyderens grænseflade – dette bibliotek kan bruges af applikationer for at få adgang til disse enheder. PKCS#11 er en tværplatform, leverandøruafhængig gratis standard.
Find PKCS#11 Provider Library
Den første ting, du skal gøre, er at finde udbyderbiblioteket, det skal installeres med enhedsdriverne. Hver leverandør har sit eget bibliotek. F.eks.Så på UNIX eller på OpenSC-PKCS11.DLL på Windows.
Sådan konfigureres kryptografisk token
Du skal følge en tilmeldingsprocedure:
- Initialiser PKCS#11 -token.
- Generer RSA -nøglepar på PKCS#11 -token.
- Opret en certifikatanmodning baseret på nøgleparet, du kan bruge OpenSc og OpenSSL for at gøre det.
- Indsend certifikatanmodningen til en certifikatmyndighed og modtag et certifikat.
- Indlæs certifikatet på tokenet, mens man bemærker, at ID- og etiketattributterne for certifikatet skal matche dem fra den private nøgle.
Et konfigureret token er et token, der har et privat nøgleobjekt og et certifikatobjekt, hvor både deler de samme ID og etiketattributter.
Et simpelt tilmeldingsværktøj er let-RSA 2.0 som er en del af OpenVpn 2.1 serie. Følg instruktionerne, der er angivet i README -filen, og brug derefter pkitoolen til at tilmelde.
Initialiser et token ved hjælp af følgende kommando:
$ ./pkitool --pkcs11-slots/usr/lib/pkcs11/$ ./pkitool --pkcs11-init/usr/lib/pkcs11/
Tilmeld et certifikat ved hjælp af følgende kommando:
$ ./pkitool --pkcs11/usr/lib/pkcs11/
Sådan ændres en OpenVPN -konfiguration for at gøre brug af kryptografiske tokens
Du skulle have OpenVpn 2.1 eller derover for at bruge PKCS#11 -funktionerne.
Bestem det rigtige objekt
Hver PKCS#11 -udbyder kan understøtte flere enheder. For at se den tilgængelige objektliste kan du bruge følgende kommando:
$ OpenVPN-Show-PKCS11-IDS/USR/LIB/PKCS11/Følgende objekter er tilgængelige til brug. Hvert objekt vist nedenfor kan bruges som parameter til-PKCS11-ID-indstilling Husk at bruge et enkelt citatmærke. Certifikat DN:/CN = User1 Serial: 490B82C4000000000075 Serialiseret ID: AAAA/BBB/41545F5349474E415455524581D2A1A1B23C4AA4CB17FAF7A4600
Hvert certifikat/privat nøglepar har unikt “serialiseret ID” -streng. Den serialiserede ID -streng af det ønskede certifikat skal specificeres til PKCS11-ID mulighed ved hjælp af enkelt citatmærker.
PKCS11-ID 'AAAA/BBB/41545F5349474E415455524581D2A1A1B23C4AA4CB17FAF7A4600'
Brug af OpenVPN med PKCS#11
Et typisk sæt OpenVPN -indstillinger til PKCS#11
PKCS11-Providers/USR/LIB/PKCS11/PKCS11-ID 'AAAA/BBB/41545F5349474E415455524581D2A1A1B23C4AA4CB17FAF7A4600'
Dette vælger det objekt, der matcher PKCS11-ID-streng.
Avancerede OpenVPN -indstillinger til PKCS#11
PKCS11-Providers/USR/LIB/PKCS11/Provider1.Så/usr/lib/pkcs11/udbyder2.Så PKCS11-ID 'AAAA/BBB/41545F5349474E415455524581D2A1A1B23C4AA4CB17FAF7A4600' PKCS11-PIN-CACHE 300 DAMON Authi-Retry NoInteract Management-Hold Management-Snal Management 127 'PKCS11-PIN-CACHE 300 Demon Auth-Retry NoInteract Management Management Management-Signal Management 12777'.0.0.1 8888 Management-Query-Passwords
Dette indlæser to udbydere i OpenVPN, bruger det certifikat, der er angivet på PKCS11-ID mulighed og brug styringsgrænsefladen for at forespørge adgangskoder. Demonen genoptages i holdet tilstand på begivenheden, når token ikke kan fås adgang. Tokenet vil blive brugt i 300 sekunder, hvorefter adgangskoden vil blive forespørgsel, sessionen vil afbryde forbindelsen, hvis ledelsessessionen afbryder.
PKCS#11 Implementeringshensyn
Mange PKCS#11 -udbydere bruger tråde for at undgå problemer forårsaget af implementering af LinuxThreads (Setuid, Chroot), det anbefales stærkt at opgradere til Native Posix Thread Library (NPTL) aktiveret GLIBC, hvis du har til hensigt at bruge PKCS#11.
OpenSC PKCS#11 -udbyder
OpenSC PKCS#11 Provider er placeret på/usr/lib/pkcs11/openSC-PKCS11.Så på UNIX eller på OpenSC-PKCS11.DLL på Windows.
Forskel mellem PKCS#11 og Microsoft Cryptographic API (Cryptoapi)
PKCS#11 er en gratis, tværplatformsleverandørens uafhængige standard. Cryptoapi er en Microsoft -specifik API. De fleste smartkortleverandører yder support til begge grænseflader. I Windows -miljøet skal brugeren vælge, hvilken grænseflade der skal bruges.
Den aktuelle implementering af OpenVPN, der bruger MS Cryptoapi (Cryptoapicert Valgmulighed) fungerer godt, så længe du ikke kører OpenVPN som en service. Hvis du ønsker at køre OpenVPN i et administrativt miljø ved hjælp af en service, fungerer implementeringen ikke med de fleste smartkort på grund af følgende grunde:
- De fleste smartkortudbydere indlæser ikke certifikater i den lokale maskinbutik, så implementeringen vil ikke være i stand til at få adgang til brugercertifikatet.
- Hvis OpenVPN-klienten kører som en service uden direkte interaktion med slutbrugeren, kan tjenesten ikke spørge brugeren for at give et kodeord til smartkortet, hvilket får adgangskodeverificeringsprocessen på smartkortet til at mislykkes.
Ved hjælp af PKCS#11-interface kan du bruge smartkort med OpenVPN i enhver implementering, da PKCS#11 ikke får adgang til Microsoft-butikker og kræver ikke nødvendigvis direkte interaktion med slutbrugeren.
Routing af al klienttrafik (inklusive webtrafik) gennem VPN
Oversigt
Som standard, når en OpenVPN -klient er aktiv, er det kun netværkstrafik til og fra OpenVPN -serverstedet. Generel webbrowsing, for eksempel, vil blive gennemført med direkte forbindelser, der omgår VPN.
I visse tilfælde er denne opførsel muligvis ikke ønskelig – du vil måske have en VPN -klient til at tunnelere al netværkstrafik gennem VPN, inklusive generel internet -webbrowsing. Mens denne type VPN -konfiguration vil udøve en præstationsstraf på klienten, giver den VPN -administratoren mere kontrol over sikkerhedspolitikker, når en klient samtidig er forbundet med både det offentlige internet og VPN på samme tid.
Implementering
Føj følgende direktiv til serverkonfigurationsfilen:
Push "Redirect-Gateway DEF1"
Hvis din VPN -opsætning er over et trådløst netværk, hvor alle klienter og serveren er på det samme trådløse undernet, skal du tilføje lokal flag:
Push "Redirect-Gateway Local DEF1"
Skubbe Redirect-gateway Valgmulighed til klienter vil få alle IP -netværkstrafik, der stammer fra klientmaskiner til at passere gennem OpenVPN -serveren. Serveren skal konfigureres til at håndtere denne trafik på en eller anden måde, f.eks. Ved at natere den til internettet eller dirigere den gennem serverwebstedets HTTP -proxy.
På Linux kunne du bruge en kommando som denne til at nat af VPN -klienttrafikken til Internettet:
iptables -t nat -a posttrouting -s 10.8.0.0/24 -o Eth0 -J Masquerade
Denne kommando antager, at VPN -undernettet er 10.8.0.0/24 (taget fra server Direktiv i OpenVPN -serverkonfigurationen) og at den lokale Ethernet -interface er eth0.
Hvornår Redirect-gateway bruges, OpenVPN -klienter ruter DNS -forespørgsler gennem VPN, og VPN -serveren har brug for at håndtere dem. Dette kan opnås ved at skubbe til en DNS -serveradresse til at forbinde klienter, der erstatter deres normale DNS -serverindstillinger i løbet af den tid, hvor VPN er aktiv. For eksempel:
Push "DHCP-Option DNS 10.8.0.1 "
vil konfigurere Windows-klienter (eller ikke-windows-klienter med nogle ekstra scripting på serversiden) til at bruge 10.8.0.1 som deres DNS -server. Enhver adresse, der kan nås fra klienter, kan bruges som DNS -serveradresse.
Advarsler
Omdirigering af al netværkstrafik gennem VPN er ikke helt et problemfrit forslag. Her er nogle typiske gotchas at være opmærksomme på:
- Mange OpenVPN -klientmaskiner, der forbinder til internettet. Det Redirect-gateway Valgmulighed kan forhindre, at klienten når den lokale DHCP -server (fordi DHCP -meddelelser ville blive dirigeret over VPN), hvilket får den til at miste sin IP -adressekontrakt.
- Der findes problemer med hensyn til at skubbe DNS -adresser til Windows -klienter.
- Web Browsing -ydelse på klienten vil være mærkbart langsommere.
For mere information om mekanikken i Redirect-gateway Direktiv, se den manuelle side.
Kører en OpenVPN -server på en dynamisk IP -adresse
Mens OpenVPN -klienter let kan få adgang til serveren via en dynamisk IP -adresse uden nogen særlig konfiguration, bliver tingene mere interessante, når selve serveren er på en dynamisk adresse. Mens OpenVPN ikke har problemer med at håndtere situationen på en dynamisk server, kræves der en vis ekstra konfiguration.
Det første trin er at få en dynamisk DNS -adresse, der kan konfigureres til at “følge” serveren hver gang serverens IP -adresse ændres. Der er flere dynamiske DNS -tjenesteudbydere tilgængelige, såsom Dyndns.org.
Det næste trin er at oprette en mekanisme, så hver gang serverens IP -adresse ændres, opdateres det dynamiske DNS -navn hurtigt med den nye IP -adresse, så klienter kan finde serveren på sin nye IP -adresse. Der er to grundlæggende måder at opnå dette på:
- Brug et NAT -routerapparat med dynamisk DNS -support (såsom Linksys BEFSR41). De fleste af de billige NAT -routerapparater, der er bredt tilgængelige. Denne opsætning er ideel, når OpenVPN-serverboksen er en enkelt-NIC-maskine inde i firewall.
- Brug en dynamisk DNS -klientapplikation såsom DDCLIENT til at opdatere den dynamiske DNS -adresse, hver gang serverens IP -adresse ændres. Denne opsætning er ideel, når maskinen kører OpenVPN har flere NIC’er og fungerer som et stedomfattende firewall/gateway. For at implementere denne opsætning skal du konfigurere et script, der skal køres af din DHCP -klientsoftware, hver gang en IP -adresseændring opstår. Dette script skal (a) køre ddclientFor at underrette din dynamiske DNS -udbyder af din nye IP -adresse og (b) genstarte OpenVPN Server Daemon.
OpenVPN -klienten vil som standard fornemme, når serverens IP -adresse er ændret, hvis klientkonfigurationen bruger en fjern Direktiv, der refererer til et dynamisk DNS -navn. Den sædvanlige begivenhedskæde er, at (a) OpenVPN -klienten ikke modtager rettidige keepalive meddelelser fra serverens gamle IP -adresse, udløser en genstart, og (b) genstarten forårsager DNS -navnet i fjern Direktivet skal opløses, hvilket giver klienten mulighed for at oprette forbindelse igen til serveren på sin nye IP-adresse.
Mere information kan findes i FAQ.
Tilslutning til en OpenVPN -server via en HTTP -proxy.
OpenVPN understøtter forbindelser gennem en HTTP -proxy med følgende godkendelsestilstande:
- Ingen proxy -godkendelse
- Grundlæggende proxy -godkendelse
- NTLM proxy -godkendelse
Først og fremmest kræver HTTP -proxybrug, at du bruger TCP som tunnelbærerprotokol. Så tilføj følgende til både klient- og serverkonfigurationer:
Proto TCP
Sørg for, at enhver Proto udp linjer i konfigurationsfilerne slettes.
Tilføj derefter http-proxy Direktiv til klientkonfigurationsfilen (se manuel side for en fuld beskrivelse af dette direktiv).
Antag f.eks 192.168.4.1, som lytter til forbindelser på havn 1080. Føj dette til klientkonfigurationen:
HTTP-Proxy 192.168.4.1 1080
Antag, at HTTP -proxy kræver grundlæggende godkendelse:
HTTP-Proxy 192.168.4.1 1080 Stdin Basic
Antag, at HTTP -proxy kræver NTLM -godkendelse:
HTTP-Proxy 192.168.4.1 1080 Stdin NTLM
De to godkendelseseksempler ovenfor vil få OpenVPN til at bede om et brugernavn/adgangskode fra standardinput. Hvis du i stedet gerne vil placere disse legitimationsoplysninger i en fil, skal du udskifte Stdin med et filnavn, og placer brugernavnet på linje 1 i denne fil og adgangskoden på linje 2.
Tilslutning til en samba -andel over OpenVPN
Dette eksempel er beregnet til, hvordan OpenVPN -klienter kan oprette forbindelse til en samba -deling over en rutet dev tun tunnel. Hvis du er Ethernet -brodannelse (Dev Tap), du behøver sandsynligvis ikke at følge disse instruktioner, da OpenVPN-klienter skulle se maskiner på serversiden i deres netværkskvarter.
For dette eksempel antager vi, at:
- Lan på serversiden bruger et undernet af 10.66.0.0/24,
- VPN IP -adressepoolen bruger 10.8.0.0/24 (som nævnt i server Direktiv i OpenVPN -serverkonfigurationsfilen),
- Samba -serveren har en IP -adresse på 10.66.0.4, og
- Samba -serveren er allerede konfigureret og kan nås fra det lokale LAN.
Hvis SAMBA- og OpenVPN -serverne kører på forskellige maskiner, skal du sørge for, at du har fulgt sektionen om at udvide VPN’s omfang til at omfatte yderligere maskiner.
Rediger derefter din samba -konfigurationsfil (SMB.Conf). Sørg for Værter tillader Direktiv tillader OpenVPN -klienter, der kommer fra 10.8.0.0/24 Undernet til at oprette forbindelse. For eksempel:
Værter tillader = 10.66.0.0/24 10.8.0.0/24 127.0.0.1
Hvis du kører Samba- og OpenVPN -serverne på den samme maskine, kan du redigere grænseflader direktiv i SMB.Conf fil til også at lytte på SUN -interface -undernettet af 10.8.0.0/24:
grænseflader = 10.66.0.0/24 10.8.0.0/24
Hvis du kører SAMBA- og OpenVPN -servere på den samme maskine, skal du oprette forbindelse fra en OpenVPN -klient til en samba -andel ved hjælp af mappenavnet:
\\ 10.8.0.1 \\ sharename
Hvis Samba- og OpenVPN -serverne er på forskellige maskiner, skal du bruge mappenavn:
\\ 10.66.0.4 \ sharename
For eksempel fra et kommandoprompt vindue:
Netbrug Z: \\ 10.66.0.4 \ sharename /bruger: myusername
Implementering af en belastningsbalancering/failover-konfiguration
Klient
OpenVPN -klientkonfigurationen kan henvise til flere servere til belastningsbalancering og failover. For eksempel:
Remote Server1.MyDomain Remote Server2.MyDomain Remote Server3.MyDomain
vil instruere OpenVPN -klienten til at forsøge en forbindelse med Server1, Server2 og Server3 i den rækkefølge. Hvis en eksisterende forbindelse er brudt, vil OpenVPN -klient. Du kan også instruere OpenVPN -klienten til at randomisere sin serverliste ved opstart, så klientbelastningen sandsynligvis spredes over serverpuljen.
fjerntliggende random
Hvis du også gerne vil have DNS -opløsningssvigt for at få OpenVPN -klienten til at flytte til den næste server på listen, skal du tilføje følgende:
Resolv-tilbageførelse 60
Det 60 Parameter fortæller OpenVPN -klienten at prøve at løse hver fjern DNS -navn i 60 sekunder, før du går videre til den næste server på listen.
Serverlisten kan også henvise til flere OpenVPN -serverdemoner, der kører på den samme maskine, hver lytter til forbindelser på en anden port, for eksempel:
fjerntliggende SMP-server1.MyDomain 8000 Remote SMP-server1.MyDomain 8001 Remote SMP-server2.MyDomain 8000 Remote SMP-server2.Mydomain 8001
Hvis dine servere er multi-processor maskiner, kan det være en fordel at køre flere OpenVPN-dæmoner på hver server fra et ydelsesmæssigt synspunkt.
OpenVPN understøtter også fjern Direktiv henviser til et DNS -navn, der har flere EN Registreringer i zonekonfigurationen for domænet. I dette tilfælde vælger OpenVPN -klienten tilfældigt EN Registreringer hver gang domænet løses.
Server
Den enkleste tilgang til en belastningsafbalanceret/failover-konfiguration på serveren er at bruge ækvivalente konfigurationsfiler på hver server i klyngen, undtagen at bruge en anden virtuel IP-adressepool til hver server. For eksempel:
Server1
Server 10.8.0.0 255.255.255.0
Server2
Server 10.8.1.0 255.255.255.0
Server3
Server 10.8.2.0 255.255.255.0
Hærdning OpenVPN Security
En af de ofte gentagne maksimum af netværkssikkerhed er, at man aldrig skal være placeret så meget tillid til en enkelt sikkerhedskomponent, at dens fiasko medfører et katastrofalt sikkerhedsbrud. OpenVPN leverer flere mekanismer til at tilføje yderligere sikkerhedslag til afdækning mod et sådant resultat.
tls-forfatter
Det tls-forfatter Direktiv tilføjer en yderligere HMAC -signatur til alle SSL/TLS -håndtrykspakker til integritetsverifikation. Enhver UDP -pakke, der ikke bærer den korrekte HMAC -signatur, kan droppes uden yderligere behandling. Det tls-forfatter HMAC Signature giver et ekstra sikkerhedsniveau ud over det, der leveres af SSL/TLS. Det kan beskytte mod:
- DOS -angreb eller oversvømmelse af havn på OpenVPN UDP -porten.
- Port -scanning for at bestemme, hvilke server UDP -porte der er i en lytningstilstand.
- Bufferoverløbssårbarheder i SSL/TLS -implementeringen.
- SSL/TLS -håndtryksinitieringer fra uautoriserede maskiner (mens sådanne håndtryk i sidste ende undlader at autentificere, tls-forfatter kan afskære dem på et meget tidligere punkt).
Ved brug af tls-forfatter Kræver, at du genererer en delt-hemmelig nøgle, der bruges ud over standard RSA-certifikat/nøgle:
OpenVPN -Geney -Secret TA.nøgle
Denne kommando genererer en openvpn statisk nøgle og skriver den til filen ta.nøgle. Denne nøgle skal kopieres over en allerede eksisterende sikker kanal til serveren og alle klientmaskiner. Det kan placeres i det samme bibliotek som RSA .nøgle og .CRT filer.
Tilføj: Tilføj: i serverkonfigurationen:
tls-forfatter ta.nøgle 0
Tilføj: Tilføj: i klientkonfigurationen:
tls-forfatter ta.Nøgle 1
Proto udp
Mens OpenVPN tillader enten TCP- eller UDP -protokollen at blive brugt som VPN Carrier -forbindelse, vil UDP -protokollen give bedre beskyttelse mod DOS -angreb og PORT -scanning end TCP:
Proto udp
Bruger/gruppe (kun ikke-windows)
OpenVPN er blevet meget omhyggeligt designet til at tillade, at rodrettigheder falder efter initialisering, og denne funktion skal altid bruges på Linux/BSD/Solaris. Uden rodprivilegier giver en kørende openvpn -serverdemon et langt mindre lokkende mål til en angriber.
Bruger ingen gruppe ingen
Unprivilegeret tilstand (kun Linux)
På Linux kan OpenVpn køres helt uprivilegeret. Denne konfiguration er lidt mere kompleks, men giver den bedste sikkerhed.
For at arbejde med denne konfiguration skal OpenVPN konfigureres til at bruge IPROUTE-interface, dette gøres ved at specificere-ENABLE-IPROUTE2 til at konfigurere script. Sudo -pakke skal også være tilgængelig på dit system.
Denne konfiguration bruger Linux -evnen til at ændre tilladelse fra en TUN -enhed, så den uprivilegerede bruger kan få adgang til den. Den bruger også sudo for at udføre iProute, så interfaceegenskaber og routingtabel kan ændres.
-
- Skriv følgende script, og placer det på:/usr/local/sbin/upriv-ip:
#!/bin/sh sudo/sbin/ip $*
-
- Udfør Visudo, og tilføj følgende for at give brugeren ‘bruger1’ mulighed for at udføre /sbin /IP:
bruger1 alle = (alle) nopasswd: /sbin /ip
- Du kan også aktivere en gruppe brugere med følgende kommando:
%brugere alle = (alle) nopasswd: /sbin /ip
-
- Føj følgende til din OpenVPN -konfiguration:
Dev Tunx/TAPX IPROUTE/USR/LOCAL/SBIN/UPRIV-IP
-
- Bemærk, at du skal vælge konstant x og angive tun eller tryk på ikke begge dele.
- Når Root tilføjer vedvarende interface, og lad bruger og/eller gruppe mulighed for at administrere det, opretter følgende tunx (udskift med din egen) og lad bruger1 og gruppebrugere få adgang til den.
OpenVPN - -MKTUN -DEV TUNX -Type TUN -User User1 -Gruppebrugere
- Kør OpenVPN i sammenhæng med den uprivilegierede bruger.
Yderligere sikkerhedsbegrænsninger kan tilføjes ved at undersøge parametrene på/usr/local/sbin/upriv-IP-scriptet.
kun chroot (kun windows)
Det CHROOT Direktiv giver dig mulighed for at låse OpenVPN-dæmonen i en såkaldt Chroot fængsel, Hvor dæmonen ikke ville være i stand til at få adgang til nogen del af værtssystemets filsystem undtagen for det specifikke bibliotek, der er givet som en parameter til direktivet. For eksempel,
Chroot fængsel
ville få OpenVPN -dæmonen til at cd ind i fængsel Undermappen om initialisering og ville derefter omorientere sit rodfilsystem til dette bibliotek, så det derefter ville være umuligt at få dæmonen til at få adgang fængsel og dets undermappe. Dette er vigtigt ud fra et sikkerhedsperspektiv, for selv hvis en angriber var i stand til at kompromittere serveren med en kodeindsættelse, ville udnyttelsen være låst ud af det meste af serverens filsystem.
Forbehold: Fordi CHROOT omorienterer filsystemet (kun fra dæmonens perspektiv), det er nødvendigt at placere alle filer, som OpenVPN måtte have brug for efter initialisering i fængsel Katalog, såsom:
- det CRL-Verify fil, eller
- det klient-config-dir vejviser.
Større RSA -nøgler
RSA -nøglestørrelsen styres af Key_Size variabel i Let-RSA/vars fil, der skal indstilles, før der genereres nøgler. I øjeblikket indstillet til 1024 som standard kan denne værdi med rimelighed øges til 2048 uden nogen negativ indvirkning på VPN-tunnelpræstation, bortset fra en lidt langsommere SSL/TLS-genforhandlingshåndtryk, der opstår en gang pr. Klient i timen, og en meget langsommere engangsdiffie Hellman -parametre Generationsproces ved hjælp af Let-RSA/Build-DH manuskript.
Større symmetriske nøgler
Som standard bruger OpenVPN Blowfish, en 128 bit symmetrisk chiffer.
OpenVPN understøtter automatisk enhver chiffer, der understøttes af OpenSSL -biblioteket, og som sådan kan understøtte chiffere, der bruger store nøglestørrelser. For eksempel kan den 256-bit version af AES (avanceret krypteringsstandard) bruges ved at tilføje følgende til både server- og klientkonfigurationsfiler:
COPHER AES-256-CBC
Hold rodtasten (CA.nøgle) på en selvstændig maskine uden en netværksforbindelse
En af sikkerhedsfordelene ved at bruge en X509 PKI (som OpenVPN gør) er, at Root CA -nøglen (CA.nøgle) behøver ikke være til stede på OpenVPN -servermaskinen. I et miljø med høj sikkerhed vil du muligvis specielt udpege en maskine til nøgleunderskrivelsesformål, holde maskinen godt beskyttet fysisk og afbryde den fra alle netværk. Disketter kan bruges til at flytte nøglefiler frem og tilbage, efter behov. Sådanne foranstaltninger gør det ekstremt vanskeligt for en angriber at stjæle rodnøglen, kort efter fysisk tyveri af den vigtigste signaturmaskine.
Tilbagekaldelse af certifikater
Tilbagekaldelse af et certifikat betyder at ugyldiggøre et tidligere underskrevet certifikat, så det ikke længere kan bruges til godkendelsesformål.
Typiske grunde til at ville tilbagekalde et certifikat inkluderer:
- Den private nøgle, der er forbundet med certifikatet, er kompromitteret eller stjålet.
- Brugeren af en krypteret privat nøgle glemmer adgangskoden på nøglen.
- Du vil afslutte en VPN -brugers adgang.
Eksempel
Som et eksempel vil vi tilbagekalde klient2 certifikat, som vi genererede ovenfor i afsnittet “Key Generation” af Howto.
Åbn først et shell eller kommandoprompt vindue og cd til Let-RSA Katalog, som du gjorde i afsnittet “Key Generation” ovenfor. På Linux/BSD/UNIX:
. ./vars ./tilbagekaldte-fuld klient2
VARS tilbagekaldte-fuld klient2
Du skal se output, der ligner dette:
Brug af konfiguration fra/root/openvpn/20/openvpn/tmp/let-rsa/openssl.CNF DEBUG [LOAD_INDEX]: unik_subject = "Ja" tilbagekaldelsescertifikat 04. Database opdateres ved hjælp af konfiguration fra/rod/openvpn/20/openvpn/tmp/let-rsa/openssl.CNF DEBUG [LOAD_INDEX]: unik_subject = "ja" klient2.CRT:/c = kg/st = na/o = openVpn-Test/cn = client2/e-mailAddress = [email protected] Error 23 ved 0 dybdeopslag: certifikat tilbagekaldt
Bemærk “Fejl 23” i den sidste linje. Det er hvad du vil se, da det indikerer, at en certifikatbekræftelse af det tilbagekaldte certifikat mislykkedes.
Det tilbagekaldte fuld Script genererer en CRL (certifikat tilbagekaldelsesliste) -fil kaldet CRL.Pem I nøglerundermappe. Filen skal kopieres til et bibliotek, hvor OpenVPN -serveren kan få adgang til den, så skal CRL -verifikation være aktiveret i serverkonfigurationen:
CRL-Verify CRL.Pem
Nu vil alle forbindelsesklienter fået deres klientcertifikater verificeret mod CRL, og enhver positiv match vil resultere i, at forbindelsen bliver droppet.
CRL -noter
- Når CRL-Verify Valgmulighed bruges i OpenVPN, CRL-filen læses igen, når som helst, en ny klient forbinder, eller en eksisterende klient genforhandler SSL/TLS-forbindelsen (som standard en gang i timen). Dette betyder, at du kan opdatere CRL -filen, mens OpenVPN Server Daemon kører, og lad den nye CRL straks træde i kraft for nyligt tilsluttende klienter. Hvis klienten, hvis certifikat du tilbagekaldes, allerede er tilsluttet, kan du genstarte serveren via et signal (SIGUSR1 eller SIGHUP) og skylle alle klienter, eller du kan telnet til styringsgrænsefladen, der eksplicit dræber det specifikke klientforekomstobjekt på serveren uden at forstyrre andre klienter.
- Mens CRL-Verify Direktiv kan bruges på både OpenVPN -serveren og klienter, det er generelt unødvendigt at distribuere en CRL -fil til klienter, medmindre et servercertifikat er tilbagekaldt. Kunder behøver ikke at vide om andre klientcertifikater, der er tilbagekaldt, fordi klienter ikke bør acceptere direkte forbindelser fra andre klienter i det første sted.
- CRL-filen er ikke hemmelig og bør gøres verdensadlæselig, så OpenVPN-dæmonen kan læse den, efter at rodrettigheder er blevet droppet.
- Hvis du bruger CHROOTDirektiv, sørg for at lægge en kopi af CRL -filen i Chroot -biblioteket, da i modsætning til de fleste andre filer, som OpenVPN læser, læses CRL -filen, efter at Chroot -opkaldet er udført, ikke før.
- En almindelig grund til, at certifikater skal tilbagekaldes, er, at brugeren krypterer deres private nøgle med en adgangskode og derefter glemmer adgangskoden. Ved at tilbagekalde det originale certifikat er det muligt at generere et nyt certifikat/nøglepar med brugerens originale fælles navn.
Vigtig note om mulig “mand-i-midten” -angreb, hvis klienter ikke bekræfter certifikatet på den server, de opretter forbindelse til.
For at undgå et muligt angreb fra mand-i-midten, hvor en autoriseret klient forsøger at oprette forbindelse til en anden klient ved at efterligne serveren, skal du sørge for at håndhæve en slags servercertifikatbekræftelse af klienter. Der er i øjeblikket fem forskellige måder at opnå dette på, anført i rækkefølgen af præference:
- [OpenVPN 2.1 og derover]Byg dine servercertifikater med specifik nøglebrug og udvidet nøgleforbrug. RFC3280 bestemmer, at følgende attributter skal leveres til TLS -forbindelser:
Mode Nøglebrug Udvidet nøgleforbrug Klient digital signatur TLS Web Client Authentication KeyAgreement Digitalsignature, KeyAgreement Server Digitalsignature, Keyencipherment TLS webservergodkendelse Digitalsignature, KeyAgreement Du kan opbygge dine servercertifikater med Build-key-server Script (se let-Rsadokumentationen for mere info). Dette udpeger certifikatet som et server-certifikat ved at indstille de rigtige attributter. Tilføj nu følgende linje til din klientkonfiguration:
Remote-CERT-TLS-server
NS-CERT-type server
SETUPVPN
Omgå ethvert websted, der er blevet blokeret af din regering, skole eller virksomhed med bare enkelt klik. Setupvpn leveres med ubegrænset båndbredde, og det er helt gratis for alle!
Sikre din browseraktivitet med kryptering af militær kvalitet, mens du bruger offentlige WiFi -hotspots, firmanetværk eller skolenetværk. SetupVPN tilbyder høj grad Wi-Fi-sikkerhed og online privatliv.
Med over 100 servere spredt over hele kloden giver SetupVPN dig adgang til ethvert indhold, der ikke er tilgængeligt i dit land, virksomhed eller på din skole. Du skal blot ændre din placering, kryptere din forbindelse og ændre din IP -adresse.
Ingen teknisk viden krævet. Du skal blot downloade udvidelse, oprette en konto og gjort! Skift din placering mod online trackere. Forhindre websteder i at indsamle dine personlige oplysninger.
Setupvpn Nemmeste måde at konfigurere en VPN -server på!
Setupvpn leveres med:
– Ubegrænset og 100% gratis VPN -server
– Ingen båndbredde eller hastighedsbegrænsninger
– 4096 bit militær kvalitet krypteringOpdateret på
18. juli 2023Datasikkerhed
Arrow_forward
Sikkerheden starter med at forstå, hvordan udviklere indsamler og deler dine data. Data -privatliv og sikkerhedspraksis kan variere baseret på din brug, region og alder. Udvikleren leverede disse oplysninger og kan opdatere dem over tid.
Sådan opsættes en VPN på en iPhone i 2023
Et virtuelt privat netværk (VPN) er et værktøj, der skjuler din geolocation og beskytter dit privatliv, mens du er online. Det gør dette ved at oprette en krypteret tunnel fra dit hjemmenetværk til en VPN -leverandørserver.
Når du køber en internetplan, giver din internetudbyder (ISP) dit udstyr (som din router og modem) en Internet Protocol (IP) -adresse. Din IP -adresse hjælper dig med at kommunikere med det bredere internet ved at lade et websted, du er på, ved, hvor data kommer fra, og hvor du skal sende dem.
Med andre ord, din IP -adresse lader onlinevirksomheder vide, hvor du er. De fleste online virksomheder gemmer IP -adresser til dataanalyse, men cyberkriminelle kan bruge din IP til at spore din aktivitet online, stjæle dine personlige oplysninger og målrette dig mod svindel.
En VPN omdirigerer dit internet gennem en serveradresse med en anden IP end din egen. På den måde kan ingen online spore din internetaktivitet tilbage til dig. En VPN krypterer også dine internetdata for at beskytte dine personlige oplysninger.
VPN’er er dog ikke kun til stationære computere. Alle slags enheder – fra iPads til smarte tv’er – kan drage fordel af en VPN -forbindelse . Hvis du er den type person, der håndterer din økonomi eller handler online ved hjælp af en mobilenhed, er det klogt at få en VPN til at beskytte dig selv.
Denne artikel viser dig, hvordan du vælger og installerer en VPN på din iPhone .
Hvorfor bruge en VPN?
Her er et par af de vigtigste måder at få en VPN som McAfee Safe Connect VPN kan gavne dig:
- En VPN kan hjælpe dig med fjernt at få adgang til dit arbejde intranet. Et intranet er et lille underafsnit på Internettet, der ikke forbinder til det større internet. Virksomheder bruger intranet-hvor virksomheder kan gemme vigtige interne filer-for at give deres medarbejdere hurtig adgang til virksomhedsarbejdsværktøjer og forbedre kommunikationen.
- En VPN bruger kryptering af bankkvalitet til at skjule dine personlige oplysninger og handlinger fra cyberkriminelle ogAnnoncører. Dette giver dig mulighed for at shoppe, bank og gøre alt andet online uden at bekymre dig om, at nogen stjæler dine oplysninger, selvom du bruger et offentligt Wi-Fi-netværk .
- En VPN kan holde din browsing privat. Det gør dette ved at skjule din IP -adresse, så din fysiske placering, bankoplysninger og kreditkortoplysninger er beskyttet, mens du surfer online.
Sådan vælger du en VPN -udbyder
Den bedste VPN for dig afhænger af din situation, og hvad du planlægger at gøre online.
Du har brug for en VPN, der er kompatibel med alle dine enheder. Mange VPN’er arbejder med Windows, Android, MacOS, Linux og iOS . Imidlertid er ikke alle VPN’er kompatible med hvert operativsystem. For eksempel, hvis du har en iPhone, men en anden i dit hjem har en Android, er det vigtigt at vælge en udbyder med en app i Apple App Store og Google Play Store.
Overvej hvilke funktioner du har brug for:
- Vil du rejse? I så fald skal du få en VPN med serverplaceringer, hvor du skal hen.
- Har du en stor familie med en masse enheder? Derefter kan en routerbaseret VPN være et godt valg.
- Vil du bruge din VPN til ting som streaming af film påNetflixog spil? Du vil have en VPN med en masse hastighed og båndbredde.
Vær dog forsigtig, når du vælger en VPN -service. Nogle gratis VPN -tjenester vil stadig videregive dine oplysninger til annoncebureauer. Hvis online privatliv er dit hovedmål, vil du finde en VPN, der ikke gemmer logfiler med din internetaktivitet eller videregive dine data.
VPN -protokoller betyder også noget, og de varierer i hastighed og sikkerhed. F.eks. Nogle VPN -udbydere giver dig mulighed for at bruge flere protokoller.
Endelig skal du kigge efter en VPN, der er let at bruge. Nogle VPN’er har praktiske funktioner som virtuel opsætning og intuitive grænseflader, der gør det lettere at bruge dem. Nogle udbydere vil endda give dig en gratis prøve til at teste VPN, før de forpligter sig til det. Sørg for, at dit VPN -netværk også har et pålideligt supportteam til at hjælpe dig, hvis du nogensinde har problemer.
Hvordan man opretter en VPN på en iPhone
Vi viser dig, hvordan du gennemfører VPN -opsætning på din iPhone i de næste par sektioner.
Installer iOS app af a VPN -udbyder
Gå til Apple App Store på din iPhone og find en app til den VPN -udbyder, du har valgt. Tryk på “Få” og “Installer” eller dobbeltkontrol for at installere appen på din telefon.
Opret en konto på VPN -app
Åbn VPN -appen . Opret en konto hos VPN -udbyderen . Tilmeld dig tjenesten.
Åben iPhone Indstillinger og opret forbindelse til VPN
Du skal indtaste din adgangskode efter at have oprettet din konto for at tillade en ændring i din telefons VPN -indstillinger og aktivere VPN.
Du skal muligvis manuelt konfigurere din VPN, hvis du har brug for adgang til et privat netværk på en virksomhed eller skole. Sådan gør du manuelt at gøre det muligt for en VPN at arbejde på din iPhone:
- Tryk på din “Indstillinger” -app på startskærmen på din iPhone .
- Vælg “Generelt.”
- Tryk på “VPN.”
- Tryk på “Tilføj VPN -konfiguration .”
- Tryk på “Type” og vælg den type VPN -protokol, du bruger. Det kan være IKEV2, IPSEC eller L2TP .
- Indtast en beskrivelse, ekstern ID og en server til VPN.
- Indtast dit brugernavn og din adgangskode.
- Klik på “Manual” eller “Auto” for at aktivere din proxyserver (hvis du bruger en).
- Tryk på “Udført.”
Brug VPN på din iPhone
Når du har aktiveret VPN på dine iPhone -indstillinger, bliver du nødt til at aktivere den, når du vil bruge den. Sådan kan du gøre din VPN aktiv:
- Gå til appen “Indstillinger” på din telefon.
- Gå til “General.”
- Vælg “VPN.”
- Tryk på statusafbryderen på din VPN for at tænde den.
Sørg for at slukke for din VPN, når du ikke bruger den, så den ikke bruger dit batteri. Det er især vigtigt at slukke for din VPN, hvis du har en begrænset plan fra din udbyder.
Hold din enhed sikker med McAfee -sikkerhed for mobil
En VPN er et godt værktøj til at holde din internetforbindelse privat. Når du installerer en VPN på din iPhone, kan du nyde internettet hvor som helst ved at vide, at dine personlige oplysninger har et ekstra lag af beskyttelse mod annoncører og hackere .
Uanset om du bruger en Android eller en iOS -enhed, kan McAfee dog hjælpe dig med at forblive sikker online. Med McAfee Security for Mobile kan du få adgang til sikkerhedsværktøjer af høj kvalitet som en VPN og sikker browsing.
Vores prisvindende app giver dig mulighed for at oprette forbindelse sikkert og problemfrit til den digitale verden, mens du holder uønskede besøgende fra at komme ind i dit digitale rum. Nyd en af vores mest omfattende sikkerhedsteknologier, mens du lever dit bedste liv online.