Ugyanaz a Notakey auth-proxy, amely már a
VPN-t és a
MikroTik admin-bejelentkezést is védi,
a Linux-bejelentkezésekre is kiterjeszthető. A Linux PAM-rendszere tartalmaz
egy szabványos RADIUS-modult: irányítsa a proxyra, és az SSH, a sudo és a
su a jelszó mellett telefonos jóváhagyást is megkövetel.
sshd / sudo ──PAM──▶ pam_radius ──RADIUS──▶ Notakey auth-proxy ──▶ your RADIUS server
│
└──▶ push ──▶ user's phone
Ez az útmutató Debian/Ubuntu rendszerekre készült (libpam-radius-auth); a
RHEL-családba tartozó disztribúciókon a modul pam_radius néven érhető el
(EPEL), a PAM-fájlok pedig ugyanabban a /etc/pam.d/ struktúrában
találhatók.
Előfeltételek
- Működő auth-proxy egy RADIUS-szerver előtt, pontosan úgy beállítva, ahogy a VPN-útmutató 1–3. lépése leírja.
- Ugyanaz a felhasználónév a mögöttes RADIUS-szerveren, a Notakey szolgáltatásban (regisztrált telefonnal) és fiókként a Linux-gépen. A PAM csak hitelesít: a felhasználónak továbbra is kell egy helyi (vagy címtárbeli) fiók, amelybe bejelentkezhet.
- A Linux-gép érje el a proxyt az UDP 1812-es porton. A jelszó közöttük PAP-ként utazik, ezért tartsa ezt menedzsmenthálózaton, vagy futtassa a dockeres proxyt magán a gépen.
0. lépés: Először gondoskodjon vészkijáratról
Mielőtt a PAM-hoz nyúlna, győződjön meg róla, hogy a tisztán helyi bejelentkezés működik: adjon a rootnak (vagy egy erre a célra fenntartott vészhelyzeti admin fióknak) erős helyi jelszót, és próbálja ki a konzolon. Az alábbi konfiguráció mindig visszavált a helyi jelszavakra, így ez a fiók lesz a belépési útja, ha a proxy, a RADIUS-szerver vagy a hálózat valaha leáll. Ezt tegye meg legelőször, ne akkor, amikor már baj van.
1. lépés: Telepítse a modult
sudo apt-get install libpam-radius-auth
2. lépés: Irányítsa a proxyra
Szerkessze a /etc/pam_radius_auth.conf fájlt, és vegyen fel egyetlen sort:
a proxy címét, a megosztott titkot (a proxy vpn_secret_in értékének párját)
és az időtúllépést másodpercben:
# server[:port] shared_secret timeout (s)
10.0.1.20 secret_to_radius_server 60
Ezután korlátozza a fájl jogosultságait, mivel a titkot tartalmazza:
sudo chmod 0600 /etc/pam_radius_auth.conf
Az időtúllépés ugyanaz a csapda, mint a sorozat minden más részében. A
modul alapértéke 3 másodperc: jelszóellenőrzéshez elegendő, emberi
jóváhagyáshoz reménytelen. Állítsa legalább a proxy vpn_message_ttl
értékére (30 mp); a 60 kényelmes ráhagyást ad.
3. lépés: Engedélyezze a PAM-ban
Minden védendő belépési ponthoz vegyen fel egy sort közvetlenül a
@include common-auth sor fölé. SSH esetén:
sudo nano /etc/pam.d/sshd
auth sufficient pam_radius_auth.so
@include common-auth
A sufficient jelentése: ha a RADIUS Access-Accept választ ad (a jelszót a
mögöttes szerver ellenőrizte, és az értesítést jóváhagyták), a
bejelentkezés azonnal sikeres. Ha nem, a PAM továbblép az alatta lévő
szokásos helyi jelszóellenőrzésre.
Igény szerint vegye fel ugyanezt a sort az alábbiak bármelyikébe:
/etc/pam.d/login– konzolos bejelentkezések/etc/pam.d/sudo– mindensudoa telefonhoz fordul (erős védelem, de sok értesítéssel jár; a sudo hitelesítés-gyorsítótárazása elviselhetővé teszi)/etc/pam.d/su– felhasználóváltás
Végül szerkessze a /etc/pam.d/common-auth fájlt, és fűzze hozzá a
try_first_pass opciót a meglévő pam_unix.so sorhoz:
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
(A sor többi opciója kiadásonként eltérhet; egyedül a try_first_pass az
újdonság.) Enélkül a helyi hitelesítésre visszaeső felhasználótól a rendszer
másodszor is bekéri a jelszót; ezzel az opcióval viszont a már beírt jelszót
csendben újra felhasználja.
4. lépés: Ellenőrizze, hogy az sshd valóban használja-e a PAM-ot
Az /etc/ssh/sshd_config fájlban a PAM-alapú hitelesítéshez ez szükséges:
UsePAM yes
KbdInteractiveAuthentication yes
(mindkettő a Debian/Ubuntu alapértelmezése). Egy fontos tudnivaló: az SSH
nyilvános kulcsos bejelentkezései teljesen kihagyják a PAM hitelesítési
fázisát, vagyis kulcsalapú bejelentkezés nem vált ki push értesítést. Ha
kulcsot és push-t is szeretne, állítsa be az
AuthenticationMethods publickey,keyboard-interactive opciót, de ezt a
változatot élesítés előtt külön tesztelje.
5. lépés: Hozzon létre csak push értesítéssel belépő felhasználókat
Íme a trükk, amelytől a felállás igazán letisztult lesz: hozzon létre felhasználókat helyi jelszó nélkül.
sudo useradd -m -G sudo john
Utána nincs passwd: a fiók helyi jelszava zárolva marad. Ennek a
felhasználónak ezzel pontosan egy belépési útja van: a RADIUS a proxyn
keresztül, vagyis jelszó és telefonos jóváhagyás. Helyben nincs mit nyers
erővel feltörni. Egyedül a 0. lépésben létrehozott vészhelyzeti admin marad
tisztán helyi jelszavas fiók.
Tesztelés – óvatosan
Hagyja nyitva a működő munkamenetét, és jelentkezzen be SSH-val egy második terminálból egy RADIUS-felhasználónévvel:
- A jelszókérés a megszokott módon viselkedik; a jelszó beírása után a munkamenet várakozik, mert ilyenkor a proxy tartja nyitva a folyamatot.
- A push értesítés megérkezik a telefonra. Jóváhagyás → shell. Elutasítás vagy figyelmen kívül hagyás → a bejelentkezés az időtúllépés után meghiúsul.
- Győződjön meg róla, hogy a vészhelyzeti fiók továbbra is be tud lépni a helyi jelszavával.
Az eredeti munkamenetet csak azután zárja be, hogy mindkét ellenőrzés sikerült.
Hibaelhárítás
- A bejelentkezés azonnal meghiúsul, push nélkül: a
/etc/pam_radius_auth.confidőtúllépése még a 3 másodperces alapértéken áll, vagy a titok nem egyezik a proxyvpn_secret_inértékével. - Nincs push, de a várakozás megtörténik: a felhasználónév eltér a RADIUS és a Notakey szolgáltatás között, vagy a telefon nincs regisztrálva ehhez az alkalmazáshoz.
- Kétszer kéri a jelszót: a
try_first_passhiányzik acommon-authfájlpam_unixsorából. - Kulcsalapú SSH-bejelentkezésnél nincs push: ez a normális működés; a nyilvános kulcsos hitelesítés megkerüli a PAM hitelesítési fázisát (lásd a 4. lépést).
Hogyan illeszkedik az összképbe
Egy proxy, egy RADIUS-szerver – és mostantól a VPN, a router adminfelülete és a teljes Linux-géppark is telefonos jóváhagyást követel. Bármi, ami tud RADIUS-t vagy PAM-ot, csatlakozhat ugyanehhez a felálláshoz.
Kapcsolódó útmutatók
- VPN 2FA RADIUS-szal: az auth-proxy teljes beállítása – a proxykonfiguráció, amelyre ez az útmutató épül
- MikroTik router-bejelentkezés 2FA – ugyanez a minta a router saját WinBox/SSH bejelentkezéséhez