OpenVPN - OpenVPN

OpenVPN
OpenVPN logo.svg
Originale forfattere James Yonan
Utvikler (er) OpenVPN -prosjekt / OpenVPN Inc.
Første utgivelse 13. mai 2001 ; 20 år siden ( 2001-05-13 )
Stabil utgivelse 2.5.3 (17. juni 2021 ; for 59 dager siden ) [±] ( 2021-06-17 )
Oppbevaringssted Rediger dette på Wikidata
Skrevet inn C
Plattform
Type VPN
Tillatelse GNU GPLv2
Nettsted openvpn .net Rediger dette på Wikidata

OpenVPN er et virtuelt privat nettverk (VPN) -system som implementerer teknikker for å lage sikre punkt-til-punkt eller sted-til-sted-tilkoblinger i rutede eller brobygde konfigurasjoner og eksterne tilgangsfasiliteter. Den implementerer både klient- og serverprogrammer .

OpenVPN gjør jevnaldrende til å autentisere hverandre ved hjelp av pre-delte hemmelige nøkler , sertifikater eller brukernavn / passord . Når den brukes i en multiklientserverkonfigurasjon, tillater den serveren å frigjøre et autentiseringssertifikat for hver klient, ved hjelp av signaturer og sertifikatmyndighet .

Den bruker OpenSSL krypterings bibliotek i stor utstrekning, så vel som TLS -protokollen, og inneholder mange sikkerhets- og kontrollfunksjoner. Den bruker en tilpasset sikkerhetsprotokoll som bruker SSL/TLS for nøkkelutveksling. Den er i stand til å krysse nettverksadresseoversettere (NAT) og brannmurer .

OpenVPN har blitt portet og innebygd i flere systemer. For eksempel har DD-WRT OpenVPN-serverfunksjonen. SoftEther VPN , en VPN-server med flere protokoller, har også en implementering av OpenVPN-protokollen.

Den ble skrevet av James Yonan og er gratis programvare , utgitt under vilkårene i GNU General Public License versjon 2 (GPLv2). I tillegg er kommersielle lisenser tilgjengelig.

Arkitektur

Kryptering

OpenVPN bruker OpenSSL -biblioteket for å gi kryptering av både data- og kontrollkanalene. Det lar OpenSSL utføre alt krypterings- og autentiseringsarbeid, slik at OpenVPN kan bruke alle chifferene som er tilgjengelige i OpenSSL -pakken. Den kan også bruke funksjonen HMAC -pakkegodkjenning til å legge til et ekstra lag med sikkerhet til tilkoblingen (referert til som en "HMAC -brannmur" av skaperen). Den kan også bruke maskinvareakselerasjon for å få bedre krypteringsytelse. Støtte for mbed TLS er tilgjengelig fra versjon 2.3.

Godkjenning

OpenVPN har flere måter å autentisere jevnaldrende med hverandre. OpenVPN tilbyr forhåndsdelte nøkler , sertifikatbasert og brukernavn/passordbasert autentisering. Forhånds delt hemmelig nøkkel er den enkleste, og sertifikatbasert er den mest robuste og funksjonsrike . I versjon 2.0 kan brukernavn/passord autentisering aktiveres, både med eller uten sertifikater. For å bruke brukernavn/passordautentisering, er OpenVPN imidlertid avhengig av tredjeparts moduler.

Nettverk

OpenVPN kan kjøre over User Datagram Protocol (UDP) eller Transmission Control Protocol (TCP) transporter, multipleksing opprettet SSL -tunneler på en enkelt TCP/UDP -port (RFC 3948 for UDP).

Fra 2.3.x -serien støtter OpenVPN fullt ut IPv6 som protokoll for det virtuelle nettverket inne i en tunnel, og OpenVPN -applikasjonene kan også opprette tilkoblinger via IPv6. Den har muligheten til å jobbe gjennom de fleste proxy -servere (inkludert HTTP ) og er god til å jobbe gjennom nettverksadresseoversettelse (NAT) og komme seg ut gjennom brannmurer. Serverkonfigurasjonen har muligheten til å "skyve" visse nettverkskonfigurasjonsalternativer til klientene. Disse inkluderer IP -adresser, rutingkommandoer og noen få tilkoblingsmuligheter. OpenVPN tilbyr to typer grensesnitt for nettverk via Universal TUN/TAP -driveren . Den kan lage enten en lag-3- basert IP-tunnel (TUN), eller en lag-2- basert Ethernet-TAP som kan bære alle typer Ethernet-trafikk. OpenVPN kan valgfritt bruke LZO -komprimeringsbiblioteket til å komprimere datastrømmen. Port 1194 er det offisielle IANA -tildelte portnummeret for OpenVPN. Nyere versjoner av programmet er nå standard for den porten. En funksjon i 2.0 -versjonen gir mulighet for en prosess for å administrere flere samtidige tunneler, i motsetning til den opprinnelige "en tunnel per prosess" -begrensning på 1.x -serien.

OpenVPNs bruk av vanlige nettverksprotokoller (TCP og UDP) gjør det til et ønskelig alternativ til IPsec i situasjoner der en Internett-leverandør kan blokkere spesifikke VPN- protokoller for å tvinge brukerne til å abonnere på et høyere nivå av "business grade" -tjeneste. For eksempel erklærte Comcast tidligere at @Home -produktet deres var og alltid har blitt utpekt som boligtjeneste og ikke tillot bruk av kommersielle applikasjoner. Argumentet deres var at høy trafikk -telekommunikasjon mens du bruker en VPN kan påvirke nettverksytelsen til sine vanlige boligabonnenter negativt. De tilbød et alternativ, @Home Professional, dette ville koste mer enn @Home -produktet. Så, alle som ønsker å bruke VPN, må abonnere på en høyere pris på forretningsnivå.

Når OpenVPN bruker Transmission Control Protocol (TCP) -transporter for å etablere en tunnel, vil ytelsen bare være akseptabel så lenge det er tilstrekkelig overskytende båndbredde på den ikke-tunnelede nettverkskoblingen for å garantere at de tunnelerte TCP-timerne ikke utløper. Hvis dette blir usant, faller ytelsen dramatisk. Dette er kjent som "TCP meltdown problem".

Sikkerhet

OpenVPN tilbyr forskjellige interne sikkerhetsfunksjoner. Den har opptil 256-biters kryptering gjennom OpenSSL- biblioteket, selv om noen tjenesteleverandører kan tilby lavere priser, noe som effektivt gir noen av de raskeste VPN-er tilgjengelig for forbrukere. Den kjører i brukerområdet i stedet for å kreve drift av IP -stabel (derfor kjerne). OpenVPN har muligheten til å slippe rotrettigheter , bruke mlockall for å forhindre bytte av sensitive data til disk, gå inn i et chroot -fengsel etter initialisering og bruke en SELinux -kontekst etter initialisering.

OpenVPN kjører en tilpasset sikkerhetsprotokoll basert på SSL og TLS, i stedet for å støtte IKE, IPsec, L2TP eller PPTP .

OpenVPN tilbyr støtte for smartkort via PKCS#11 -baserte kryptografiske tokens.

Utvidbarhet

OpenVPN kan utvides med tredjeparts plug-ins eller skript, som kan kalles på definerte inngangspunkter. Formålet med dette er ofte å utvide OpenVPN med mer avansert logging, forbedret autentisering med brukernavn og passord, dynamiske brannmuroppdateringer, RADIUS -integrasjon og så videre. Plugin-modulene er dynamisk lastbare moduler, vanligvis skrevet i C , mens skriptgrensesnittet kan utføre alle skript eller binære filer som er tilgjengelige for OpenVPN. I kildekoden til OpenVPN er det noen eksempler på slike plug-ins, inkludert en plugin-modul for PAM- godkjenning. Flere tredjeparts plug-ins finnes også for å autentisere mot LDAP- eller SQL-databaser som SQLite og MySQL .

Plattformer

Den er tilgjengelig på Solaris , Linux , OpenBSD , FreeBSD , NetBSD , QNX , macOS og Windows XP og senere . OpenVPN er tilgjengelig for operativsystemer for mobiltelefoner (OS) inkludert Maemo , Windows Mobile 6.5 og nyere , iOS 3GS+ -enheter, jailbroken iOS 3.1.2+ -enheter, Android 4.0+ -enheter og Android -enheter som har Cyanogenmod -ettermarkedet fastvare blinket eller har riktig kjernemodul installert. Det er ikke kompatibelt med noen mobiltelefoner, inkludert Palm OS . Det er ikke en "nettbasert" VPN som vises som en nettside som Citrix eller Terminal Services Web access ; programmet installeres uavhengig og konfigureres ved å redigere tekstfiler manuelt, i stedet for gjennom en GUI-basert veiviser. OpenVPN er ikke kompatibel med VPN -klienter som bruker IPsec over L2TP- eller PPTP -protokoller. Hele pakken består av en binær for både klient- og serverforbindelser , en valgfri konfigurasjonsfil og en eller flere nøkkelfiler, avhengig av godkjenningsmetoden som brukes.

Fastvareimplementeringer

OpenVPN har blitt integrert i flere rutermaskinvarepakker som lar brukerne kjøre OpenVPN i klient- eller servermodus fra sine nettverksrutere. En ruter som kjører OpenVPN i klientmodus, lar for eksempel alle enheter i et nettverk få tilgang til et VPN uten å måtte installere OpenVPN.

Bemerkelsesverdige fastvarepakker med OpenVPN -integrasjon inkluderer:

Bemerkelsesverdige fastvarepakker med OpenVPN -integrasjon
Fastvarepakke Koste Utvikler Referanser
DD-WRT Gratis NewMedia-NET GmbH
Gargoyle Gratis Eric Bishop
OpenWrt Gratis Samfunnsdrevet utvikling
OPNsense Gratis Deciso BV
pfSense Gratis Rubicon Communications, LLC (Netgate)
Tomat Gratis Keith Moyer

OpenVPN har også blitt implementert i noen produsentens ruter -fastvare.

Programvareimplementeringer

OpenVPN har blitt integrert i SoftEther VPN , en åpen kildekode multi-protokoll VPN-server, slik at brukerne kan koble seg til VPN-serveren fra eksisterende OpenVPN-klienter.

OpenVPN er også integrert i Vyos , et åpen kildekode-ruting-operativsystem gaffelt fra Vyatta- programvareruteren.

Lisensiering

OpenVPN er tilgjengelig i to versjoner:

  • OpenVPN Community Edition, som er en gratis og åpen kildekode-versjon
  • OpenVPN Access Server (OpenVPN-AS) er basert på Community Edition, men tilbyr ekstra betalte og proprietære funksjoner som LDAP-integrasjon, SMB-server, Web UI-administrasjon og tilbyr et sett med installasjons- og konfigurasjonsverktøy som rapporteres for å forenkle den raske distribusjonen av en VPN ekstern tilgangsløsning. Access Server -utgaven er sterkt avhengig av iptables for lastbalansering, og den har aldri vært tilgjengelig på Windows av denne grunn. Denne versjonen er også i stand til dynamisk å lage klientinstallatører ("OpenVPN Connect"), som inkluderer en klientprofil for tilkobling til en bestemt Access Server -forekomst. Brukeren trenger imidlertid ikke å ha en Access Server -klient for å koble til Access Server -forekomsten; klienten fra OpenVPN Community Edition kan brukes.

Se også

Referanser

Eksterne linker