TvÄfaktorsautentisering för SSH

«SĂ€ker Skals» SSH — ett nĂ€tverksprotokoll för att upprĂ€tta en sĂ€ker anslutning mellan vĂ€rdar, vanligtvis via port 22 (som Ă€r bĂ€ttre att Ă€ndra). SSH-klienter och SSH-servrar finns tillgĂ€ngliga för de flesta operativsystem. Inom SSH kan nĂ€stan vilket annat nĂ€tverksprotokoll som helst anvĂ€ndas, vilket innebĂ€r att man kan arbeta pĂ„ en annan dator pĂ„ distans, överföra ljud- eller videoströmmar via en krypterad kanal, osv. Dessutom, via SOCKS-proxy pĂ„ den avlĂ€gsna vĂ€rden kan man ansluta till andra vĂ€rdar redan under namnet pĂ„ denna avlĂ€gsna vĂ€rd.

Autentisering sker via lösenord, men utvecklare och systemadministratörer anvÀnder traditionellt SSH-nycklar. Problemet Àr att den hemliga nyckeln kan bli stulen. Att lÀgga till en lösenfras skyddar teoretiskt mot stöld av den hemliga nyckeln, men i praktiken, vid vidarebefordring och cachelagring av nycklar, kan de fortfarande anvÀndas utan bekrÀftelse. TvÄfaktorsautentisering löser detta problem.

Hur man implementerar tvÄfaktorsautentisering

Utvecklare frÄn företaget Honeycomb har nyligen publicerat en detaljerad instruktion, hur man implementerar lÀmplig infrastruktur pÄ klient- och serversidan.

Instruktionen förutsÀtter att du har en viss grundlÀggande vÀrd, öppen för internet (bastion). Du vill ansluta till denna vÀrd frÄn bÀrbara datorer eller datorer via internet och fÄ tillgÄng till alla andra enheter som finns bakom den. 2FA garanterar att en angripare inte kan göra detsamma, Àven om de fÄr tillgÄng till din bÀrbara dator, till exempel genom att installera skadlig programvara.

Det första alternativet — OTP

OTP — engĂ„ngslösa koder som i detta fall kommer att anvĂ€ndas för SSH-autentisering tillsammans med nyckeln. Utvecklarna skriver att detta inte Ă€r den perfekta lösningen, eftersom en angripare kan sĂ€tta upp en falsk bastion, fĂ„nga din OTP och anvĂ€nda den. Men det Ă€r bĂ€ttre Ă€n inget.

I detta fall anges följande rader i Chef-konfigurationen pÄ serversidan:

  • metadata.rb
  • attributes/default.rb (frĂ„n attributes.rb)
  • files/sshd
  • recipes/default.rb (kopierad frĂ„n recipe.rb)
  • templates/default/users.oath.erb

PÄ klientsidan installeras vilken OTP-app som helst: Google Authenticator, Authy, Duo, Lastpass, installationen Àr brew install oath-toolkit eller apt install oathtool openssl, en slumpmÀssig strÀng base16 (nyckel) genereras. Den konverteras till Base32-format som anvÀnds av mobila autentiserare och importeras direkt till appen.

Som ett resultat kan du ansluta till bastionen och se att den nu krÀver bÄde ett lösenfras och en OTP-kod för autentisering:

➜ ssh -A bastion
Ange lösenfras för nyckel '[snip]': 
EngÄngslösenord (OATH) för '[user]': 
VĂ€lkommen till Ubuntu 18.04.1 LTS...

Det andra alternativet — hĂ„rdvaruautentisering

I det hÀr fallet behöver anvÀndaren inte ange OTP-koden varje gÄng, eftersom det andra faktorn blir en hÄrdvaruenhet eller biometrik.

HÀr Àr Chef-konfigurationen lite mer komplex, och klientkonfigurationen beror pÄ operativsystemet. Men efter att alla ÄtgÀrder har genomförts kan klienter pÄ MacOS bekrÀfta autentiseringen i SSH med lösenfras och fingeravtryck pÄ sensorn (det andra faktorn).

Ägare av iOS och Android bekrĂ€ftar inloggning genom att trycka pĂ„ en knapp pĂ„ sin smartphone. Detta Ă€r en speciell teknik frĂ„n Krypt.co, som Ă€r Ă€nnu sĂ€krare Ă€n OTP.

PÄ Linux/ChromeOS finns en lösning för att arbeta med USB-token YubiKey. SjÀlvklart kan en angripare stjÀla din token, men han vet fortfarande inte lösenfrasen.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster