7. juuli 2026

Linuxi SSH 2FA pam_radius-mooduliga – kinnitus telefonis SSH-le ja sudo-le

Telefonikinnitusega 2FA Linuxi SSH, sudo ja su jaoks pam_radiuse ja Notakey auth-proxyga, lisaks turvaline kohalik varuvariant väljalukustumise vastu.

Sama Notakey auth-proxy, mis kaitseb juba teie VPN-i ja MikroTiku halduri sisselogimist, suudab kaitsta ka Linuxi sisselogimisi. Linuxi PAM-pinuga on kaasas standardne RADIUS-moodul: suunake see proksi poole ning SSH, sudo ja su nõuavad lisaks paroolile ka kinnitust telefonis.

sshd / sudo ──PAM──▶ pam_radius ──RADIUS──▶ Notakey auth-proxy ──▶ your RADIUS server

                                                    └──▶ push ──▶ user's phone

See juhend on mõeldud Debianile/Ubuntule (libpam-radius-auth); RHEL-i perekonna distributsioonides kannab pakett nime pam_radius (EPEL) ja PAM-i failid paiknevad samamoodi kataloogis /etc/pam.d/.

Eeldused

  • Töötav auth-proxy RADIUS-serveri ees, seadistatud täpselt nii, nagu kirjeldatud VPN-i juhendi sammudes 1–3.
  • Sama kasutajanimi nii taustal olevas RADIUS-serveris, Notakey teenuses (registreeritud telefoniga) kui ka kontona Linuxi masinas. PAM ainult autendib; sisselogimiseks vajab kasutaja endiselt kohalikku (või kataloogiteenuse) kontot.
  • Linuxi masin peab proksini jõudma UDP pordil 1812. Parool liigub nende vahel PAP-kujul, seega hoidke see liiklus haldusvõrgus või käivitage dokkeriseeritud proksi otse samas masinas.

Samm 0 – seadistage kõigepealt varuväljapääs

Enne PAM-i puutumist veenduge, et puhtalt kohalik sisselogimine töötab: andke root-kasutajale (või spetsiaalsele hädaolukorra halduskontole) tugev kohalik parool ja kontrollige seda konsoolist. Allolev seadistus langeb alati tagasi kohalikele paroolidele, seega on see konto teie sissepääs, kui proksi, RADIUS-server või võrk peaks kunagi maas olema. Tehke see kõigepealt, mitte alles pärast seda, kui midagi on juba katki.

Samm 1 – paigaldage moodul

sudo apt-get install libpam-radius-auth

Samm 2 – suunake see proksi poole

Avage /etc/pam_radius_auth.conf ja lisage üks rida: proksi aadress, jagatud saladus (peab kattuma proksi seadega vpn_secret_in) ja ajalimiit sekundites:

# server[:port]    shared_secret            timeout (s)
10.0.1.20          secret_to_radius_server  60

Seejärel piirake faili õigusi, sest see sisaldab saladust:

sudo chmod 0600 /etc/pam_radius_auth.conf

Ajalimiit on seesama lõks nagu mujalgi selles sarjas. Mooduli vaikeväärtus on 3 sekundit: paroolikontrolliks piisav, inimese antava kinnituse jaoks lootusetu. Seadke see vähemalt proksi vpn_message_ttl väärtuseni (30 s); 60 jätab mugava varu.

Samm 3 – lülitage moodul PAM-is sisse

Lisage igasse sissepääsupunkti, mida soovite kaitsta, üks rida vahetult enne rida @include common-auth. SSH puhul:

sudo nano /etc/pam.d/sshd
auth sufficient pam_radius_auth.so
@include common-auth

sufficient tähendab: kui RADIUS vastab Access-Accept (parool on taustal kontrollitud ja tõuketeade kinnitatud), õnnestub sisselogimine kohe. Kui mitte, liigub PAM edasi allpool oleva tavalise kohaliku paroolikontrolli juurde.

Sama rea võite soovi korral lisada ka järgmistesse failidesse:

  • /etc/pam.d/login konsoolist sisselogimiste jaoks
  • /etc/pam.d/sudo – iga sudo küsib kinnitust telefonist (tugev, kuid jutukas; sudo volituste vahemälu hoiab selle talutavana)
  • /etc/pam.d/su kasutaja vahetamiseks

Lõpuks avage /etc/pam.d/common-auth ja lisage olemasolevale pam_unix.so reale try_first_pass:

auth    [success=1 default=ignore]      pam_unix.so nullok_secure try_first_pass

(Selle rea muud valikud erinevad väljalasketi; lisandub ainult try_first_pass.) Ilma selleta küsitakse kohalikule autentimisele tagasi langevalt kasutajalt parooli teist korda; sellega kasutatakse juba sisestatud parooli märkamatult uuesti.

Samm 4 – veenduge, et sshd tõesti kasutab PAM-i

PAM-il põhinev autentimine eeldab failis /etc/ssh/sshd_config järgmist:

UsePAM yes
KbdInteractiveAuthentication yes

(mõlemad on Debianis/Ubuntus vaikimisi nii). Üks asi, mida teada: SSH avaliku võtmega sisselogimised jätavad PAM-i autentimisfaasi täielikult vahele: võtmepõhine sisselogimine tõuketeadet ei käivita. Kui soovite võtit ja tõuketeadet koos, määrake AuthenticationMethods publickey,keyboard-interactive, kuid katsetage seda varianti enne kasutuselevõttu eraldi.

Samm 5 – looge ainult tõuketeatega kasutajad

Siin on nipp, mis teeb lahenduse puhtaks: looge kasutajad ilma kohaliku paroolita.

sudo useradd -m -G sudo john

Ärge käivitage pärast seda passwd: konto kohalik parool jääb lukku. Sellel kasutajal on nüüd täpselt üks sissepääs: RADIUS läbi proksi ehk parool ja kinnitus telefonis. Kohapeal pole midagi, mida jõurünnakuga murda. Sammus 0 loodud hädaolukorra halduskonto jääb ainsaks puhtalt kohaliku parooliga kontoks.

Katsetage, ettevaatlikult

Hoidke oma töötav seanss lahti ja logige SSH kaudu sisse teisest terminalist RADIUS-e kasutajanimega:

  • Parooliviip käitub tavapäraselt; pärast parooli sisestamist jääb seanss ootele: see on proksi, mis hoiab vahetust avatuna.
  • Tõuketeade jõuab telefoni. Kinnitage → saate käsurea. Keelake või ignoreerige → sisselogimine ebaõnnestub pärast ajalimiidi täitumist.
  • Veenduge, et hädaolukorra konto pääseb endiselt sisse oma kohaliku parooliga.

Sulgege algne seanss alles siis, kui mõlemad kontrollid on läbitud.

Veaotsing

  • Sisselogimine ebaõnnestub hetkega, tõuketeadet ei tule. Ajalimiit failis /etc/pam_radius_auth.conf on ikka veel 3-sekundilisel vaikeväärtusel või saladus ei kattu proksi seadega vpn_secret_in.
  • Tõuketeadet ei tule, kuid ootamine toimub. Kasutajanimi erineb RADIUS-e ja Notakey teenuse vahel või pole telefon selle rakenduse jaoks registreeritud.
  • Parooli küsitakse kaks korda. Failis common-auth puudub pam_unix realt try_first_pass.
  • Võtmepõhised SSH sisselogimised tõuketeadet ei saa. See on ootuspärane; avaliku võtmega autentimine möödub PAM-i autentimisfaasist (vt samm 4).

Kuidas see tervikusse sobitub

Ühe proksi ja ühe RADIUS-serveriga nõuavad kinnitust telefonis nüüd nii VPN, ruuteri haldusliides kui ka teie Linuxi masinapark. Sama lahendusega saab liita kõik, mis räägib RADIUS-t või PAM-i.

Seotud juhendid

← Kõik postitused

Esimene paroolivaba sisselogimine juba sel nädalal

30-minutiline vestlus inseneriga, mitte müügiesitlus. Paneme koos paika, kuidas teie VPN-i, SSO või Windowsi keskkonnas töötav pilootprojekt käima saab.