Rajoita OpenVPN-kirjautumiset yhteen ryhmään PAM-käytännöllä
Erillinen PAM-palvelu voi päästää sisään vain VPN-ryhmän jäsenet koskematta järjestelmänlaajuisiin kirjautumissääntöihin. Kohdista auth-pam-liitännäinen siihen ja testaa tulokset.
Pidä jokainen tili kyvykkäänä kirjautumaan normaalisti, mutta salli VPN:n käyttö vain yhdelle ryhmälle. PAM voi ilmaista tämän eron ilman toista salasanasäilöä, ja OpenVPN-liitännäinen voidaan kohdistaa palveluun, joka sisältää vain ne tarkistukset, jotka aiot. Temppu on rakentaa tuo palvelu perimättä vahingossa järjestelmänlaajuista pinoa.
Tämä läpikäynti alkaa liitännäisen palvelunimestä, rakentaa käytännön ja testaa sitten kolme tärkeää tulosta: jäsen, kelvollisen salasanan omaava ulkopuolinen ja huono tunnistetieto.
Miksi erillinen PAM-palvelu
auth-pam-liitännäinen ottaa argumentikseen palvelunimen. Tämä nimi valitsee tiedoston hakemistosta /etc/pam.d, ja kyseisen tiedoston pino on se, mikä suoritetaan VPN-kirjautumisen aikana. Jos annat saman nimen, jota järjestelmänlaajuinen kirjautuminen käyttää, perit jokaisen kyseisen pinon päätöksen, mukaan lukien myöhemmin asiattomista syistä lisätyt.
Luo sen sijaan erillinen palvelu. Aloita toimivasta pinosta, joka jo todentaa aiottua backendia vasten, kuten paikallinen salasanatiedosto, SSSD tai hakemistopalvelu, ja lisää sitten kelpoisuussääntö. Kahden rivin kopioiminen tyhjään tiedostoon on tavallinen virhe: salasanan vanheneminen, tilin lukitus ja muut tarkistukset voivat olla pinossa, jota et kopioinut.
Palvelun erottaminen rajoittaa myös vahingon laajuutta. Vain VPN:ää koskeva sääntö jaetussa pinossa voi estää SSH- tai konsolikäytön kaikilta, mikä muuttaa käyttöoikeusmuutoksen katkokseksi.
Ryhmäsäännön kirjoittaminen
Kelpoisuustarkistus kuuluu tili-vaiheeseen, sen jälkeen kun tunnistetieto on vahvistettu. Sääntö kuten account required pam_succeed_if.so user ingroup vpnusers sallii käsittelyn jatkua vain, kun todennettu käyttäjä on kyseisen ryhmän jäsen.
Tuo rivi on katkelma, ei täydellinen palvelu. Yhdistä se sinne, minne jokainen hyväksytty polku päätyy, ja tarkista sen ympärillä olevat ohjausliput. sufficient- tai hyppyohjaus aiemmin pinossa voi lopettaa käsittelyn ennen kuin sääntösi suoritetaan, mikä muuttaa rajoituksen ehdotukseksi.
Älä lisää use_uid-asetusta tottumuksesta. Ilman sitä moduuli arvioi käyttäjää, jota todennetaan; sen kanssa moduuli arvioi tiliä, jonka alla OpenVPN-prosessi toimii, joka on tavallisesti root tai palvelutili eikä siis kirjautuva henkilö.
Ryhmäjäsenyys tulee järjestelmän identiteetin ratkaisemisesta, ei tunnistamastasi nimestä. Hakemistokäyttäjille varmista, että sama backend vastaa kyseisen käyttäjän ryhmäkyselyihin, sillä tutun nimen paikallinen ryhmä on eri objekti kuin samanniminen hakemistoryhmä.
Järjestyksen ja identiteetin ansat
Sijoita ryhmäsääntö todennuspinon jälkeen ja jokaisen edelleen voimassa olevan tarkistuksen jälkeen, mutta ennen säilyttämiäsi tilitarkistuksia tai niiden rinnalle. PAM arvioi moduulit tiedostojärjestyksessä, ja kunkin rivin ohjausarvo päättää, onko epäonnistuminen lopullinen.
Varo päällekkäisiä pinoja. Tavallinen malli on include, joka sisältää jo tiliä koskevan säännön, jota seuraa oma ryhmäsääntösi, mikä tuottaa kaksi päätöstä kohtaan, jossa odotit yhtä. Lue sisällytetty tiedosto, älä vain muokkaamaasi. Nopea tapa nähdä tehokas järjestys on lukea tiedosto ylhäältä alas ja merkitä muistiin jokainen ohjausarvo.
Pidä muut hyväksymisvaatimukset ehjinä. Onnistunut salasana ei korvaa varmenteen tarkistuksia, toista tekijää tai yhteyden jälkeistä valtuutusta, eikä tämä käytäntö korvaa mitään niistä. Se päättää vain, onko tili kelpoinen tulemaan harkituksi VPN-käyttöön.
Jäsenten, ulkopuolisten ja väärien salasanojen testaaminen
Testaa kolme tapausta ennen kuin pidät käytäntöä valmiina. Jäsen yhdistää onnistuneesti. Ryhmän ulkopuolinen kelvollinen tili todentaa salasanansa, mutta VPN-käyttö evätään. Väärä salasana kummalle tahansa tilille hylätään todennusvaiheessa, ei ryhmäsäännön toimesta.
Tarkastele asiakkaalle näkyvää virhettä ja palvelimen lokia yhdessä, sillä molemmat epäonnistumiset voivat näyttää samanlaisilta yhdistävälle henkilölle. Ero on tärkeä tuelle: oikean salasanan omaava ulkopuolinen tarvitsee ryhmämuutoksen, kun taas väärä salasana vaatii tunnistetiedon nollauksen.
Pidä toinen istunto auki, kun muokkaat PAM-asetuksia, ja vahvista muutoksen jälkeen myös tavallinen SSH-kirjautuminen. Erillisen palvelun tarkoitus on, että järjestelmäkirjautumisen pitäisi pysyä vaikuttamattomana, ja ainoa tapa tietää se on testata.
Jos jokin hajoaa, palauta edellinen palvelutiedosto kopiosta. Haluamasi sääntö on helppo sanoa: jäsenyys tekee tilistä kelpoisen VPN-käyttöön, ja kaikki muut vaaditut tarkistukset pätevät edelleen.