Kétfaktoros hitelesítés SSH-hoz

Az SSH "biztonságos burkolat" egy hálózati protokoll, amely biztonságos kapcsolat létrehozását teszi lehetővé a hostok között, alapértelmezés szerint a 22-es porton (amit érdemes megváltoztatni). Az SSH-kliensek és SSH-szerverek a legtöbb operációs rendszerhez elérhetők. Az SSH-n belül szinte bármely más hálózati protokoll működik, így távolról dolgozhatunk egy másik számítógépen, hang- vagy videófolyamokat küldhetünk titkosított csatornán stb. Ezen kívül, a SOCKS-proxyn keresztül a távoli hoston más hostokhoz is csatlakozhatunk már ennek a távoli hostnak a nevében.

Az azonosítás általában jelszóval történik, de a fejlesztők és rendszergazdák hagyományosan SSH-kulcsokat használnak. A probléma az, hogy a titkos kulcsot ellophatják. A jelszavazás hozzáadása elméletileg védi a titkos kulcsot a lopástól, de a gyakorlatban, kulcsok előrehaladtával és gyorsítótárazásával akkor is használhatóak megerősítés nélkül. A kétfaktoros azonosítás megoldja ezt a problémát.

Hogyan valósítsuk meg a kétfaktoros azonosítást

A Honeycomb fejlesztői nemrégiben közzétették a részletes útmutatót, hogyan valósítható meg a szükséges infrastruktúra a kliens és a szerver oldalán.

Az útmutató azt feltételezi, hogy van egy alapvető host, amely nyitott az internetre (bástya). Ön a laptopokról vagy számítógépekről szeretne csatlakozni ehhez a hosthoz az interneten keresztül, és hozzáférést kapni az összes többi eszközhöz, amelyek mögötte vannak. A 2FA garantálja, hogy a rosszindulatú felhasználó nem tudja ugyanezt megtenni, még akkor sem, ha hozzáfér a laptopjához, például rosszindulatú szoftver telepítésével.

Az első lehetőség — OTP

Az OTP — egyszer használatos digitális jelszavak, amelyeket ebben az esetben SSH-azonosításra használnak a kulccsal együtt. A fejlesztők azt írják, hogy ez nem ideális megoldás, mert a támadó egy hamis bástyát emelhet, elfoghatja az OTP-jét és felhasználhatja azt. De ez jobb, mint a semmi.

Ebben az esetben a szerveroldalon a Chef konfigurációba a következő sorokat kell beilleszteni:

  • metadata.rb
  • attributes/default.rb (a attributes.rb)
  • files/sshd
  • recipes/default.rb (másolat a recipe.rb)
  • templates/default/users.oath.erb

A kliensoldalon bármilyen OTP-alkalmazást telepíteni kell: Google Authenticator, Authy, Duo, Lastpass, telepítse brew install oath-toolkit vagy apt install oathtool openssl, majd egy véletlenszerű karakterlánc generálódik base16 (kulcs). Ez Base32 formátumba konvertálódik, amelyet a mobil autentikátorok használnak, és közvetlenül importálódik az alkalmazásba.

Ennek eredményeként csatlakozhat a bastionhoz, és megbizonyosodhat arról, hogy most nemcsak a jelszót kérdezi, hanem egy OTP kódot is az azonosításhoz:

➜ ssh -A bastion
Kérjük, adja meg a '[snip]' kulcs passphrase-jét: 
Egyszer használatos jelszó (OATH) a '[user]' számára: 
Üdvözöljük az Ubuntu 18.04.1 LTS...

A második lehetőség a hardveres azonosítás.

Ebben az esetben a felhasználótól nem kérik meg, hogy minden alkalommal adja meg az OTP-kódot, mivel a második tényező egy硬veres eszköz vagy biometria lesz.

Itt a Chef konfigurációja egy kicsit bonyolultabb, és az ügyfelek konfigurációja az operációs rendszertől függ. De ami azt illeti, miután elvégeztük az összes lépést, a MacOS ügyfelek a passphrase segítségével és az ujjukkal a szenzorra történő érintéssel (második tényező) megerősíthetik az SSH azonosítást.

Az iOS és Android tulajdonosai megerősítik a belépést egy gombnyomással az okostelefonon.Ez egy speciális technológia a Krypt.co-tól, amely még biztonságosabb, mint az OTP.

Linuxon/ChromeOS-on van lehetőség az YubiKey USB-tokenek használatára. Természetesen a támadó ellophatja a tokenjét, de akkor sem tudja a passphrase-t.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster