Autentifikimi me dy faktorë për SSH

"Secure Shell" SSH është një protokoll rrjeti për vendosjen e një lidhjeje të sigurt midis hosteve, standardisht mbi portin 22 (që është më mirë të ndryshohet). Klientët SSH dhe serverët SSH janë të disponueshëm për shumicën e sistemeve operative. Pothuajse çdo protokoll tjetër i rrjetit funksionon brenda SSH, domethënë, mund të punoni nga distanca në një kompjuter tjetër, të transmetoni një transmetim audio ose video përmes një kanali të koduar, etj. Përveç kësaj, nëpërmjet përfaqësuesit SOCKS në një host të largët mund të lidheni me host të tjerë në emër të këtij hosti në distancë.

Autentifikimi ndodh duke përdorur një fjalëkalim, por zhvilluesit dhe administratorët e sistemit tradicionalisht përdorin çelësat SSH. Problemi është se çelësi privat mund të vidhet. Shtimi i një fraze kalimi teorikisht mbron nga vjedhja e çelësit privat, por në praktikë, kur transferoni dhe ruani çelësat, ato mund të përdoret ende pa konfirmim. Autentifikimi me dy faktorë e zgjidh këtë problem.

Si të zbatoni vërtetimin me dy faktorë

Zhvilluesit nga Honeycomb botuar së fundmi udhëzime të hollësishme, si të implementoni infrastrukturën e duhur në klient dhe server.

Udhëzimet supozojnë se ju keni një host të caktuar bazë të hapur në internet (bastion). Ju dëshironi të lidheni me këtë host nga laptopët ose kompjuterët nëpërmjet internetit dhe të përdorni të gjitha pajisjet e tjera që ndodhen pas tij. 2FA siguron që një sulmues nuk mund të bëjë të njëjtën gjë edhe nëse fiton akses në laptopin tuaj, për shembull duke instaluar malware.

Opsioni i parë është OTP

OTP - fjalëkalime dixhitale një herë, të cilat në këtë rast do të përdoren për vërtetimin e SSH së bashku me çelësin. Zhvilluesit shkruajnë se ky nuk është një opsion ideal, sepse një sulmues mund të ngrejë një bastion të rremë, të përgjojë OTP-në tuaj dhe ta përdorë atë. Por është më mirë se asgjë.

Në këtë rast, në anën e serverit, rreshtat e mëposhtëm shkruhen në konfigurimin e Chef:

  • metadata.rb
  • attributes/default.rb (nga attributes.rb)
  • files/sshd
  • recipes/default.rb (kopje nga recipe.rb)
  • templates/default/users.oath.erb

Çdo aplikacion OTP është i instaluar në anën e klientit: Google Authenticator, Authy, Duo, Lastpass, i instaluar brew install oath-toolkit ose apt install oathtool openssl, atëherë krijohet një varg (çelës) i rastësishëm bazë16. Ai konvertohet në formatin Base32 që përdorin autentikuesit celularë dhe importohet direkt në aplikacion.

Si rezultat, mund të lidheni me Bastion dhe të shihni që tani kërkon jo vetëm një frazë kalimi, por edhe një kod OTP për vërtetim:

➜ ssh -A bastion
Enter passphrase for key '[snip]': 
One-time password (OATH) for '[user]': 
Welcome to Ubuntu 18.04.1 LTS...

Opsioni i dytë është vërtetimi i harduerit

Në këtë rast, përdoruesi nuk kërkohet të fusë kodin OTP çdo herë, pasi faktori i dytë bëhet pajisja harduerike ose biometria.

Këtu konfigurimi i Chef është pak më i komplikuar, dhe konfigurimi i klientit varet nga OS. Por pas përfundimit të të gjithë hapave, klientët në MacOS mund të konfirmojnë vërtetimin në SSH duke përdorur një frazë kalimi dhe duke vendosur një gisht në sensor (faktori i dytë).

Pronarët e iOS dhe Android konfirmojnë hyrjen duke shtypur një buton në smartphone tuaj. Kjo është një teknologji e veçantë nga Krypt.co, e cila është edhe më e sigurt se OTP.

Në Linux/ChromeOS ekziston një mundësi për të punuar me argumentet USB YubiKey. Natyrisht, një sulmues mund të vjedhë shenjën tuaj, por ai ende nuk e di frazën e kalimit.

Burimi: www.habr.com

Shto një koment