bruk av alternative autentiseringsmetoder

OpenVPN 2.0 og nyere inkluderer en funksjon som gjør At OpenVPN-serveren sikkert kan få et brukernavn og passord fra en tilkoblingsklient, og å bruke denne informasjonen som grunnlag for godkjenning av klienten.

hvis du vil bruke denne godkjenningsmetoden, må du først legge til auth-user-pass-direktivet i klientkonfigurasjonen. Det vil lede OpenVPN-klienten til å spørre brukeren om et brukernavn / passord, og sende det videre til serveren over den sikre tls-kanalen.

konfigurer deretter serveren til å bruke et godkjenningsplugin, som kan være et skript, delt objekt eller DLL. OpenVPN serveren vil ringe plugin hver GANG EN VPN-klient prøver å koble, passerer den brukernavn / passord angitt på klienten. Godkjenningspluggen kan kontrollere om OpenVPN-serveren tillater klienten å koble til ved å returnere en feil (1) eller suksess (0) verdi.

Ved Hjelp Av Script Plugins

Script plugins kan brukes ved å legge til auth-user-pass-verify direktivet til serversiden konfigurasjonsfilen. Eksempelvis:

auth-user-pass-verify auth-pam.pl via-file

vil bruke auth-pam.pl perl script for å godkjenne brukernavn / passord for å koble klienter. Se beskrivelsen av auth-user-pass-verify i manualsiden for mer informasjon.

Den auth-pam.pl script er inkludert I OpenVPN kildefilen distribusjon i sample-scriptssubdirectory. Det vil godkjenne brukere på En Linux-server ved hjelp AV EN pam-godkjenningsmodul, som igjen kan implementere skyggepassord, RADIUS eller LDAP-godkjenning. auth-pam.pl er primært ment for demonstrasjonsformål. For ekte PAM-godkjenning, bruk openvpn-auth-pamshared object plugin beskrevet nedenfor.

Ved Hjelp Av Delt Objekt Eller DLL Plugins

Delt objekt eller DLL plugins er vanligvis kompilert c-moduler som lastes Av OpenVPN-serveren under kjøring. For eksempel hvis du bruker EN RPM-basert OpenVPN-pakke På Linux, bør openvpn-auth-pam plugin allerede være bygget. For å bruke det, legg til dette i server-side config-filen:

plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login

Dette vil fortelle OpenVPN-serveren å validere brukernavnet / passordet som er oppgitt av klienter ved hjelp av loginPAM-modulen.

for reell produksjon bruk, er det bedre å bruke openvpn-auth-pam plugin, fordi den har flere fordeler over auth-pam.pl manus:

  • det delte objektet openvpn-auth-pam plugin bruker en split-privilege utførelsesmodell for bedre sikkerhet. Dette betyr At OpenVPN-serveren kan kjøre med reduserte privilegier ved å bruke direktivene user nobody, group nobody og chroot, og vil fortsatt kunne godkjenne mot den rotlesbare skyggepassordfilen.
  • OpenVPN kan sende brukernavnet / passordet til et plugin via virtuelt minne, i stedet for via en fil eller miljøet, noe som er bedre for lokal sikkerhet på servermaskinen.
  • C-kompilerte plugin-moduler kjører vanligvis raskere enn skript.

hvis du vil ha mer informasjon om å utvikle dine egne plugins for Bruk Med OpenVPN, se README-filene i plugin-underkatalogen I OpenVPN-kildedistribusjonen.

for å bygge openvpn-auth-pam plugin På Linux, cd til plugin / auth-pam katalog I OpenVPN kilde distribusjon og kjøre make.

bruk av brukernavn / passordautentisering som eneste form for klientautentisering

som standard vil bruk av auth-user-pass-verify eller en plugin for brukernavn/passordkontroll på serveren aktivere dobbelautentisering, noe som krever at både klientsertifikat og brukernavn / passordautentisering lykkes for at klienten skal godkjennes.

Selv om det er motet fra et sikkerhetsperspektiv, er det ogsa mulig a deaktivere bruken av klientsertifikater, og tvinge kun brukernavn/passordautentisering. På serveren:

client-cert-not-required

slike konfigurasjoner bør vanligvis også sette:

username-as-common-name

som vil fortelle serveren å bruke brukernavnet til indekseringsformål som det ville bruke Det Vanlige Navnet på en klient som autentiserte via et klientsertifikat.

merk at client-cert-not-required ikke vil unngå behovet for et serversertifikat, så en klient som kobler til en server som bruker client-cert-not-required, kan fjerne cert – og nøkkeldirektivene fra klientkonfigurasjonsfilen, men ikke ca-direktivet, fordi det er nødvendig for klienten å verifisere serversertifikatet.



+