käyttämällä vaihtoehtoisia todennusmenetelmiä

OpenVPN 2.0 ja myöhemmin sisältävät ominaisuuden, jonka avulla OpenVPN-palvelin voi turvallisesti hankkia käyttäjätunnuksen ja salasanan yhdistävältä asiakkaalta ja käyttää näitä tietoja perustana asiakkaan todennukselle.

jos haluat käyttää tätä todennusmenetelmää, lisää asiakasasetukseen ensin auth-user-pass-direktiivi. Se ohjaa OpenVPN-asiakasohjelman kyselemään käyttäjältä käyttäjätunnusta / salasanaa, välittäen sen palvelimelle suojatun TLS-kanavan kautta.

määritä seuraavaksi palvelin käyttämään todennusliitännäistä, joka voi olla skripti, Jaettu Objekti tai DLL. OpenVPN-palvelin soittaa lisäosalle joka kerta, kun VPN-asiakas yrittää muodostaa yhteyden, välittäen sen asiakkaalle syötetyn käyttäjätunnuksen/salasanan. Todennusliitännäinen voi määrittää, salliiko OpenVPN-palvelin asiakkaan yhteyden palauttamalla virhe – (1) vai onnistumisarvon (0).

Komentosarjaliitännäisiä

Komentosarjaliitännäisiä voidaan käyttää lisäämällä palvelinpuolen asetustiedostoon auth-user-pass-verification directive. Esimerkiksi:

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

käyttää auth-pam.pl perl script todentaa käyttäjätunnus/salasana yhdistää asiakkaita. Lisätietoja on auth-user-pass-verify-toiminnon kuvauksessa käyttöohjesivulla.

auth-pam.pl script sisältyy OpenVPN-lähdekooditiedostojen jakeluun sample-scriptssubdirectory-hakemistossa. Se todentaa käyttäjät Linux-palvelimella käyttäen Pam-todennusmoduulia, joka puolestaan voisi toteuttaa shadow password -, RADIUS-tai LDAP-todennuksen. auth-pam.pl on tarkoitettu ensisijaisesti demonstrointitarkoituksiin. Reaalimaailman Pam-todennukseen käytä alla kuvattua openvpn-auth-pamshared-objektilaajennusta.

jaetun objektin tai DLL: n liitännäiset

jaetun objektin tai DLL: n liitännäiset ovat yleensä koottuja C-moduuleja, jotka OpenVPN-palvelin lataa suorituksen aikana. Jos esimerkiksi käytät Linuxissa RPM-pohjaista OpenVPN-pakettia, OpenVPN-auth-pam-liitännäisen pitäisi olla jo rakennettu. Voit käyttää sitä lisäämällä tämän palvelinpuolen asetustiedostoon:

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

tämä kehottaa OpenVPN-palvelinta vahvistamaan käyttäjätunnuksen / salasanan, jonka asiakkaat syöttävät loginPAM-moduulin avulla.

reaalimaailman tuotantokäyttöön on parempi käyttää OpenVPN-auth-pam-laajennusta, koska sillä on useita etuja verrattuna auth-pam.pl skripti:

  • Jaettu Objekti openvpn-auth-pam-liitännäinen käyttää jaetun etuoikeuden suoritusmallia paremman turvallisuuden takaamiseksi. Tämä tarkoittaa sitä, että OpenVPN-palvelin voi käyttää alennettuja oikeuksia käyttämällä direktiivejä user nobody, group nobody ja chroot, ja se pystyy silti todentamaan vain root-luettavissa olevaa shadow-salasanatiedostoa vastaan.
  • OpenVPN voi siirtää käyttäjänimen/salasanan liitännäiselle virtuaalimuistin kautta, eikä tiedoston tai ympäristön kautta, mikä on parempi paikallisen turvallisuuden kannalta palvelinkoneessa.
  • C-kootut liitännäismoduulit toimivat yleensä skriptejä nopeammin.

jos haluat lisätietoja omien lisäosien kehittämisestä käytettäväksi OpenVPN: n kanssa, katso README-tiedostot OpenVPN: n lähdejakelun liitännäisten alihakemistosta.

OpenVPN-auth-pam-liitännäisen rakentamiseen Linuxille, cd plugin/auth-pam-hakemistoon OpenVPN-lähdejakelussa ja suorita make.

käyttäjätunnuksen/salasanan todentamisen käyttäminen ainoana asiakastodennuksen muotona

oletuksena, auth-user-pass-verification tai käyttäjänimen/salasanan tarkistusliitännäinen palvelimella mahdollistaa kaksinkertaisen todennuksen, mikä edellyttää, että sekä Asiakasvarmenne että käyttäjätunnuksen / salasanan todentaminen onnistuvat, jotta asiakas voidaan todentaa.

vaikka se ei ole tietoturvanäkökulmasta estettävissä, on myös mahdollista poistaa asiakkaiden varmenteiden käyttö käytöstä ja pakottaa vain käyttäjätunnus / salasana todennukseen. Palvelimella:

client-cert-not-required

tällaiset kokoonpanot pitäisi yleensä myös asettaa:

username-as-common-name

joka käskee palvelinta käyttämään käyttäjänimeä indeksointitarkoituksiin, koska se käyttäisi asiakkaan yleisnimeä, joka todennettiin asiakasvarmenteella.

huomaa, että client-cert-not-required ei poista palvelinvarmenteen tarvetta, joten client-cert-not-required-palvelua käyttävään palvelimeen yhdistävä asiakas voi poistaa Cert-ja key-direktiivit asiakkaan asetustiedostosta, mutta ei ca-direktiiviä, koska asiakkaan on tarpeen tarkistaa palvelinvarmenne.



+