Linux 2FA: Hvernig á að tryggja SSH innskráningu með Google Authenticator og Yubikey


Internettengd þjónusta er sérstaklega viðkvæm fyrir innskráningarárásum vegna þess að hver sem er í heiminum getur skráð sig inn á reikninginn þinn frá þægindum í eigin sófanum. Nokkrar viðbætur við auðkenningu hafa verið þróaðar í gegnum árin til að berjast gegn þessum innfellda veikleika í venjulegu sannprófunarlíkani notanda / lykilorða. Algengasta er tveggja þátta staðfesting (2FA) vegna þess að 2FA krefst þess að þú sannir að þú sért með eitthvað auk þess að þekkja notandanafn og lykilorð. Önnur vel þekkt aðferð krefst þess að notendur séu í fórum vélbúnaðar sem veitir snúningslykilorð.

Í þessari grein skal ég sýna þér hvernig á að læsa Linux SSH netþjóninum þínum með báðum aðferðum – Yubikey er krafist til að gefa upp lykilorðið og Google Authenticator tákn er krafist til að klára innskráninguna.

A Yubikey er vélbúnaðartæki sem býður upp á ýmsa dulmálsvottunarkerfi eins og One Time Passwords (OTP) og Public Key Encryption (PKI). Google Authenticator er hugbúnaðarforrit sem veitir OTP til notkunar sem annar sannvottunarstuðull.

Notaðu Google Authenticator til að tryggja Linux SSH tenginguna þína

Það fyrsta er það fyrsta – hlaðið niður Google Authenticator farsímaforritinu fyrir símann eða spjaldtölvuna. Þegar þú hefur það, getum við farið í vinnuna. Það er fáanlegt bæði frá Play Store og App Store.

Auðkenning á Linux innskráningu er venjulega veitt af PAM-bókasöfnum (Pluggable Authentication Modules). Eins og nafnið gefur til kynna styður PAM viðbót við handahófskenndar staðfestingareiningar. Í þessu tilfelli ætlum við að „stinga“ Google Authenticator laginu við venjulega SSH innskráningu til að biðja um kóða eftir að notandi hefur gefið upp lykilorð sitt.

Til að gera það verðum við að byrja á því að setja upp nauðsynlegar PAM bókasöfn:

$ sudo apt-get install libpam-google-authenticator
Lestrarpakkalistar … Lokið
Byggja ósjálfstré
Lestur upplýsingar um ástand … Lokið
Eftirfarandi aukapakkar verða settir upp:
libqrencode3
Eftirfarandi nýir pakkar verða settir upp:
libpam-google-authenticator libqrencode3
0 uppfærð, 2 nýlega sett upp, 0 til að fjarlægja og 356 ekki uppfærð.
Þarftu að fá 46,4 kB skjalasöfn.
Eftir þessa aðgerð verður 208 kB viðbótar pláss notað.

Viltu halda áfram [Y / n]? y

Og keyrðu auðkennarann ​​í fyrsta skipti:

$ google sannvottari

Afritaðu þessa kóða eitthvað öruggt. Ef þú týnir símanum eða lendir í einhverjum öðrum vandamálum þar sem þú getur ekki fengið kóða frá honum þarftu einn af þessum neyðarskrúðukóða til að skrá þig inn.

Nú verðum við að setja þessa innskráningu inn í Google Authenticator forritið þitt. Ýttu á á til að gera þetta + skráðu þig inn í Google Authenticator forritið og ákveður síðan hvort þú viljir skanna QR kóða eða sláðu inn leynilykilinn. Hvor hvor aðferðin virkar. Þegar þú hefur bætt því við verður ný færsla í Google Authenticator forritinu sem lítur svona út:

google-authentic-mobile-entry

Svaraðu nú játandi við Viltu að ég uppfæri ~ / .google_authenticator skjalið (y / n) spurninguna þína, sem mun vekja spurningu þína.

Viltu banna marga notkun sömu sannvottunar?

tákn? Þetta takmarkar þig við eina innskráningu um þrítugsaldur, en það eykur líkurnar á því að taka eftir eða jafnvel koma í veg fyrir árásir manna í miðjunni (y / n) y

Sjálfgefið eru tákn góð í 30 sekúndur og til að bæta upp hugsanlegan tímaskekkju milli viðskiptavinarins og netþjónsins leyfum við auka tákn fyrir og eftir núverandi tíma. Ef þú lendir í vandræðum með lélega tíma samstillingu, geturðu aukið gluggann úr sjálfgefinni stærð 1: 30min í um 4min. Viltu gera það (j / n) n

Ef tölvan sem þú ert að skrá þig í er ekki hert gegn árásarprófunum á skepna-afl geturðu virkjað takmörkun takmarkana fyrir auðkenningareininguna. Sjálfgefið, þetta takmarkar árásarmenn við ekki meira en 3 innskráningartilraunir á 30 ára fresti.

Viltu gera kleift að takmarka (y / n) y

Þú getur valið svör sem eru mest skynsamleg fyrir þig. Ég kýs að banna marga notkunartákn og gera kleift að takmarka hlutfall. Ég valdi því að leyfa fjögurra mínútna skeið vegna þess að bæði tölvan mín og síminn minn uppfæra tímann reglulega svo það er erfitt að ímynda sér hvernig klukkan gæti orðið svo ógeðslega samstillt. Ef þú ætlar að skrá þig inn á ytra kerfi með mikilli leynd gætirðu viljað leyfa lengri tíma skekkju.

Af forvitni, ef við kíkjum á nýju .google-auðkenningarskrána okkar, getum við séð þá valkosti sem þar eru vistaðir ásamt neyðarmerki okkar.

$ köttur .google_authenticator
NO7ZW33I34JMPCKB
RATE_LIMIT 3 30
WINDOW_SIZE 17
DISALLOW_REUSE
TOTP_AUTH
73444347
15364641
36772087
14155810
92578001

Það er góð hugmynd að tryggja að þessi skrá sé aðeins læsileg af notandanum þínum, þannig er hún sett upp sjálfgefið:

$ ls -l .google_authenticator

-r ——– 1 jdw jdw 126 26. apríl 08:30 .google_authenticator

Við höfum núna Google Authenticator sett upp, en kerfið okkar hefur enga hugmynd um að það sé ætlað að nota það til innskráningar ennþá. Til að gera það verðum við að uppfæra PAM-stillingar (Pluggable Authentication Module).

Breyta PAM ssh config skránni sem rót:

$ sudo vim /etc/pam.d/sshd

Bættu þessari línu við einhvers staðar, ég setti hana neðst:

# Notaðu Google Auth fyrir ssh innskráningu
heimild krafist pam_google_authenticator.so

Enn er þörf á einni breytingu; breyttu áskorunar- og svörunarstillingunni í sshd_config skránni þinni með því að skipta nei á já:

$ sudo vim / etc / ssh / sshd_config
# Breyta í já til að gera kleift lykilorð við áskorun (varast vandamál með
# nokkrar PAM einingar og þræðir)
Áskorun Svar svar Staðfesting já

Endurræstu nú SSH púkann þinn og prófaðu það:

$ sudo þjónusta ssh endurræstu

Ekki skrá þig út. Láttu þig vera skráður inn ef þú getur ekki komið aftur inn af einhverjum ástæðum. Ræstu aðra flugstöð og SSH í nýlega stillta vélina þína.

Þegar ég slá inn lykilorðið mitt er ég beðinn um núverandi Google Authenticator kóða. Ef þú slærð bæði inn rétt þá geturðu skráð þig inn:

$ ssh [email protected]
Lykilorð: <=== slegið inn lykilorðið mitt
Staðfestingarkóði:
Velkomin (n) í Ubuntu 12.04.5 LTS (GNU / Linux 3.13.0-32-generic x86_64)

Notkun Yubikey til að tryggja Linux SSH tenginguna þína

Við höfum núna kerfi sem krefst notandanafns, lykilorðs og Google Authenticator-tákn til að skrá þig inn. Það er nokkuð öruggt, en við getum gert enn betur. Við getum stillt kerfið til að samþykkja aðeins lykilorð sem myndað er af handahófi frá Yubikey.

Af þeim þremur gögnum sem þarf til að skrá sig inn (notandanafn, lykilorð, staðfestingarkóði) gat enginn hugsanlega vitað síðustu tvö fyrirfram, eða endurnýtt þau ef þau uppgötvast.

Það fyrsta er hið fyrsta – fáðu Yubikey annað hvort beint frá Yubico eða frá stað eins og Amazon. Ég mun nota Yubikey Nano í þessu.

Næst skulum setja upp nauðsynlega pakka. Bættu við Yubico PPA (Personal Product Archive) og settu upp libpam-yubico PAM bókasafnið.

$ sudo bæta við-apt-geymsla ppa: yubico / stabíl
$ sudo apt-get update
$ sudo apt-get install libpam-yubico

staðfesta-yubi-libs-uppsetningu

Bókasafnskráin sjálf er kölluð pam_yubico.so og ætti að setja hana inn í / lib / security /

$ ls -l / lib / öryggi /
alls 104
-rw-r – r– 1 rótarót 10296 19. mar. 2013 pam_ck_connector.so
-rw-r – r– 1 rót rót 43480 28. mars 2013 pam_gnome_keyring.so
-rw-r – r– 1 rótarót 47672 25. nóvember 2016 pam_yubico.so
$

Við munum þurfa a setja af Yubi API skilríkjum. Farðu á Yubico API síðu hér.

yubi-fá-api-creds

Og fylgdu leiðbeiningunum. Þegar þú hefur sent tölvupóstinn þinn og Yubikey OTP mun vefsíðan gefa þér viðskiptavinakenni og leynilykil sem þú getur notað:

yubi-api-creds

Síðasti hluti upplýsinganna sem þú þarft er Yubikey táknið þitt. Þetta er bara fyrstu 12 tölustafir einhvers tíma lykilorðs (OTP) sem Yubikey þinn hræktir út. Til að fá þetta skaltu beina bendilnum að flugstöðva glugga eða textaritli – einhvern stað sem mun taka innslátt. Settu síðan Yubikey í USB drifið. Ef það er með hnapp, ýttu á hann. Ef það gerist ekki, eins og Nano líkanið, þá ýttu bara Yubikey sjálft inn í USB tengið í staðinn. Það ætti að skrifa út einu sinni lykilorð í formi langs stafs. Fyrstu tólf tölustafirnir eru allt sem við þurfum fyrir þennan hluta. Í mínu tilfelli er það þetta:

cccccchcdjed

Næst skaltu stilla /etc/pam.d/sshd skrána til að krefjast þess að yubikey skrái sig inn með því að bæta við þessari línu efst á skránni, nota auðkenni og lykil sem þú fékkst frá Yubi API vefnum:

heimild krafist pam_yubico.so id = 38399 lykill = lZqKSrHhyQ6dEBZnIEe2 + Uwe3NA = kemba autorfile = / etc / yubikey_mappings mode = client

Við verðum líka að segja sshd púkanum að það ætti ekki að samþykkja lykilorð lengur. Ef við gerum það ekki, þá mun það samt taka við venjulegum lykilorðum til viðbótar við Yubikey OTP, sem er í raun ekki það sem við viljum. Til að gera það skaltu skrifa athugasemd við þessa línu með því að setja # fyrir framan hana:

# @ fela í sér sameiginlega heimild

Nú verðum við að tengja notandann þinn við Yubikey þinn. Til að gera það skaltu breyta / etc / yubikey_mappings skránni og bæta við notandanafni þínu og 12 stafa stafinum Yubikey-tákninu aðskilin með ristli:

jdw: cccccchcdjed

Ef þú ert með marga Yubikeys geturðu bætt við fleiri með því að bæta við viðbótar Yubikey táknunum í sömu línu, aðskilin með ristli. Ef ég ætti þrjá Yubikeys myndi lína mín líta svona út:

jdw: cccccchcdjed: joewubtklruy: sgjyirtvskhg

Að lokum, endurræstu ssh lotuna þína og prófaðu það. Athugaðu að þú ættir að vera skráður inn á vinnusamninguna þína bara ef þetta virkar ekki.

$ sudo ssh endurræstu

Þegar ég er beðinn um lykilorðið mitt ýti ég á Yubikey minn í staðinn og það skráir mig inn. Vegna þess að ég er búinn að fella villuvalkostinn í etc / pam.d / sshd skrána fæ ég mikið af afköstum, en ég hef parað það niður fyrir þetta bút vegna þess að það er í raun aðeins gagnlegt ef eitthvað hefur farið úrskeiðis:

$ ssh 192.168.1.118
Lykilorð: <=== kom frá því að ýta á Yubikey minn
Staðfestingarkóði:
Velkomin (n) í Ubuntu 12.04.5 LTS (GNU / Linux 3.13.0-32-generic x86_64)

Það er allt sem þarf að gera. Báðar þessar tækni eru mjög tæknilegar að eðlisfari, en þungar lyftingar eru gerðar af PAM bókasöfnum frá einstökum framleiðendum. Það þýðir að við erum fær um að tryggja ssh aðgang að Linux kerfum okkar með tiltölulega fáum stillingum.

Bakgrunnsmaður á SMS og 2FA

Þó það sé ekki nauðsynlegt til að klára þessa kennslu getur einhver bakgrunnur á því hvers vegna SMS 2FA er veikburða verið gagnlegur. Það er ástæða þess að hlutir eins og Yubikeys og sannprófunarforrit eru æskilegir yfir SMS 2FA.

SMS tveggja þátta staðfesting er veik

Algengasta skilgreiningin á 2FA er „eitthvað sem þú veist og eitthvað sem þú hefur“. „Eitthvað sem þú veist“ er lykilorð. „Eitthvað sem þú átt“ þýðir venjulega sex stafa kóða sem þú býður upp á úr tæki sem aðeins þú hefur aðgang að. Að gefa upp réttan kóða er næg sönnun þess að þú hafir „það“.

Algengasta form 2FA á internetinu í dag er notkun sms-skilaboða til að senda 2FA kóða á innskráningartíma. Vegna veikleika í SS7-samskiptareglunum og lélegrar staðfestingar viðskiptavina innan þjónustudeildar farsíma er nokkuð auðvelt að beina textaskilaboðum yfir í hvaða síma sem þú vilt. Tveir veikleikar eru nýttir reglulega í SMS 2FA aðferðinni: Í fyrsta lagi er símanúmer ekki bundið varanlega við síma, svo hver sem er getur fengið SMS skilaboðin með kóðanum. Í öðru lagi er SMS-staðfestingarkóðinn sendur til þín í gegnum ósannaðan og dulkóðaðan miðil. Samkvæmt skilgreiningu sinni uppfyllir þetta ekki kröfuna um að vera „eitthvað sem þú hefur“. Það er í raun „eitthvað sem ég gaf þér bara“, sem er ekki það sama.

Sannvottunarforrit og vélbúnaðartákn eru sterkari

Betri lausn er að nota farsímavottunarforrit eins og Google Authenticator eða Authy. Enn betri lausn er að para þessa tegund af 2FA með snúningslegu, ófyrirsjáanlegu lykilorði frá tæki eins og Yubikey. Hvorki forrit né vélbúnaðarmerki senda nein gögn yfir internetið eða farsímakerfið, sem fjarlægir þennan hlerunarvektor. Gallinn er að þeir eru erfiðari að setja upp, sem þýðir að veikari SMS-aðferðin er oftast notuð.

Tengt:
Dulkóðunargögn: Stór listi yfir verkfæri og leiðbeiningar
Hvað er skepnaárás?
The hrognalaus handbók um tölvu- og internetöryggi
Endanleg leiðarvísir um Linux öryggi á skjáborðinu

Kim Martin
Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me