Egy OpenVPN-ügyfél szüneteltetése: miért a visszavonás a rossz kar
A munkamenet megölése visszafordítható; a tanúsítvány visszavonása nem. Döntse el, melyik karra van szüksége az esetnek, és csak akkor építse újra a CRL-t, ha illik.
Egy ügyfél hozzáférésének szüneteltetése és végleges eltávolítása ugyanannak a feladatnak látszik, amíg meg nem próbálja visszavonni az egyiket. A tanúsítvány visszavonása olyan rekordot ír, amelyet a kiszolgáló véglegesnek tekint, és ennek visszafordítása a kibocsátó adatbázisának kézi szerkesztését jelenti. Az élő alagút eldobása olyan kezelési parancs, amely semmit sem változtat a bizalmon. A kart annak alapján válassza, hogy a kulcs még mindig megbízható-e, nem pedig aszerint, mennyire tűnik sürgősnek a kérés.
A hit: a visszavont és a felfüggesztett ugyanaz
Egy alvállalkozót egy hétre szüneteltetnek, és a reflex a visszavonás, mert a visszavonás valami kikapcsolásának hangzik. Rendesnek tűnik, tíz másodpercig tart, és az adatbázis szerkesztését hagyja az egyetlen visszaútnak. A reflex érthető, és közelebb áll egy útlevél elégetéséhez, mint egy ajtó becsukásához. A szüneteltetett eszköz és a kompromittált kulcs eltérő bánásmódot igényel, és csak az egyikük visszafordítása olcsó.
A különbség a hitelesítő adatról szól, nem a személyről. Egy kulcs, amely még a megfelelő kezekben van, szüneteltethető és folytatható a bizalom bármilyen elvesztése nélkül. Egy kulcsot, amelyről esetleg másolat készült, soha nem szabad visszaállítani, mert a visszaállítás azt állítja, hogy a másolat nem létezik.
Írja le a választ, mielőtt bármelyik rendszerhez hozzányúlna. Ha nem tudja megmondani, hogy a kulcs kiszivárgott-e, a konzervatív válasz a csere.
Dobja el az élő munkamenetet a kezelőfelülettel
OpenVPN egy kezelőfelületet kínál, amely listázhatja a munkameneteket, és megölhet egyet közülük a közös név alapján. Engedélyezze a localhoston, tartsa távol a nyilvános felülettől, és küldje el az ölési parancsot, amikor egy munkamenetnek azonnal el kell tűnnie. A parancs csak azt az alagutat zárja be, és minden más ügyfél tovább működik.
Ez egy aktív probléma válasza, nem felfüggesztési szabályzat. Ugyanaz a profil egy perc alatt újra csatlakozhat, mert a hitelesítő adatában semmi sem változott. Akkor használja, amikor a munkamenetnek mennie kell, és a tartós döntés még születőben van.
Erősítse meg, hogy a munkamenet csatlakozva volt, mielőtt megöli, hogy ne olyan ügyfelet keressen, amely soha nem csatlakozott. Az alábbi állapotparancs kiírja, mi van jelenleg csatlakozva.
printf 'status 2\nquit\n' | nc 127.0.0.1 7506
printf 'kill kiosk-14\nquit\n' | nc 127.0.0.1 7506Ha az ölés azt jelenti, hogy nincs ilyen ügyfél, a tanúsítványban szereplő közös név nem az a karakterlánc, amelyet beírt. Az állapotkimenetet olvassa a profilfájl neve helyett.
Mit szabályoz valójában a CRL
A kiszolgáló nem egy, a tanúsítványon tárolt visszavonási jelzőt néz. A crl-verify-ban megnevezett tanúsítvány-visszavonási listát minden új kapcsolatnál beolvassa, és elutasítja azt a tanúsítványt, amelynek sorozatszáma szerepel a listán. Ebből két következmény adódik, és mindkettő üzemeltetésileg fontos. A fájlnak olvashatónak kell lennie annak a fióknak, amelyre a kiszolgáló a jogosultságait átadja, és a már csatlakozott ügyfél addig működik, amíg újra nem csatlakozik.
A második következmény meglepi az embereket az incidensek alatt. A tanúsítvány visszavonása nem zárja be az alagutat, amely éppen használja. Ha a munkamenetnek azonnal véget kell érnie, párosítsa a visszavonást kezelési öléssel, és a két műveletet külön lépésként kezelje az útmutatóban.
Vizsgálja meg a listát, hogy lássa, mit fog a kiszolgáló valójában kikényszeríteni, ahelyett hogy az utoljára másolt fájl időbélyegében bízna. A sorozatszámok száma az a rész, amely számít.
openssl crl -in /etc/openvpn/server/crl.pem -noout -text | sed -n '1,14p'
ls -l /etc/openvpn/server/crl.pemA bejegyzés nélküli lista és a megfelelő bejegyzésekkel rendelkező lista ugyanúgy néz ki egy könyvtárlistában, ezért érdemes kinyomtatni a sorozatszámok számát. Az engedélyek sora ugyanolyan fontos, mert egy fájl, amelyet a démon nem tud olvasni, olyan hibát okoz, amely elutasított ügyfélnek látszik.
Rekord visszaállítása, óvatosan
Egy tanúsítvány visszaállítása azt jelenti, hogy a kibocsátási adatbázisban megfordítunk egy rekordot, és új listát teszünk közzé. Az easy-rsa 3 ezt az adatbázist index.txt formájában tartja a PKI könyvtárban, míg a régebbi elrendezések más megoldást használtak. Egy sor állapotbetűvel és lejárati dátummal kezdődik. A visszavont sor beszúrja a visszavonás időbélyegét, mielőtt folytatná a sorozatszámmal, a tanúsítvány fájlnevével és a megkülönböztető névvel. Egy sor visszatétel azt jelenti, hogy töröljük azt az időbélyeget és megfordítjuk a betűt, minden mást békén hagyva.
Először készítsen biztonsági másolatot a fájlról, és a szerkesztést szkriptként végezze el, nehogy szövegszerkesztőbe gépeljen. Egy elírás, amely megváltoztatja, hány mezőt tartalmaz egy sor, elrontja a kiadást minden később hozzáadott tanúsítvány számára. Ez az oka annak, hogy automatizálni kell a változtatást, és a fájlt hozzányúlás előtt le kell másolni.
Ugyanazon név második visszavonása gyakran szintén meghiúsul, mert az első futás elmozgatta azt a tanúsítványt és a kulcsát azokból a könyvtárakból, ahol az eszköz várja őket. Az eszköz ekkor nem találja, amit vissza kellene vonnia, és a hibaüzenet nem mindig egyértelmű abban, hogy miért.
cp /etc/easy-rsa/pki/index.txt /root/index.txt.$(date +%F-%H%M)
grep -c '^R' /etc/easy-rsa/pki/index.txt
easyrsa gen-crlTegye közzé az új listát, javítsa a tulajdonjogát, és vegye rá a kiszolgálót, hogy olvassa be. A legtöbb telepítésen elég egy újratöltés, de a megerősítésnek friss kapcsolatból kell jönnie, mivel a meglévő munkamenet soha nem ellenőrzött újra semmit.
Ellenőrizze, melyik kart érdemli az eset
Tegye fel az egyetlen kérdést, amely az egész útmutatót eldönti: a privát kulcs még mindig csak ott van-e, ahol lennie kell. Ha igen, a munkamenet ölése és egy dokumentált szünet lefedi az esetet, és nem hagy vissza állandó rekordot. Ha nem, az egyetlen biztonságos válasz egy új kulcs, a régi tanúsítványt visszavontan hagyva.
Ezután egy kapcsolódási kísérlettel ellenőrizze az eredményt, ne konfigurációs különbséggel. A különbség megmondja, mit szándékozott, a kapcsolat pedig megmondja, mit kényszerít ki a kiszolgáló.
openssl crl -in /etc/openvpn/server/crl.pem -noout -text | grep -c 'Serial Number'
printf 'status 2\nquit\n' | nc 127.0.0.1 7506Amikor egy visszaállított ügyfél csatlakozik, és megjelenik az állapotkimenetben, a rekord szerkesztése működött. Amikor egy visszavont ügyfelet elutasítanak, és a napló megnevezi a CRL-t, a visszavonás működött. A kettő között bármi engedély- vagy újratöltési probléma, és érdemes kijavítani, mielőtt a következő kérés megérkezik.