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, 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 . 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 , 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.rbattributes/default.rb(aattributes.rb)files/sshdrecipes/default.rb(másolat arecipe.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 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
