Divu faktoru autentifikācija SSH

“Secure shell” SSH ir tīkla protokols droša savienojuma izveidei starp saimniekiem, parasti izmantojot portu 22 (kuru labāk mainīt). SSH klienti un SSH serveri ir pieejami lielākajai daļai operētājsistēmu. Gandrīz jebkurš cits tīkla protokols darbojas SSH iekšienē, tas ir, jūs varat strādāt attālināti citā datorā, pārraidīt audio vai video straumi pa šifrētu kanālu utt. Turklāt, izmantojot SOCKS starpniekserveri attālā resursdatorā šī attālā resursdatora vārdā varat izveidot savienojumu ar citiem resursdatoriem.

Autentifikācija notiek, izmantojot paroli, bet izstrādātāji un sistēmas administratori tradicionāli izmanto SSH atslēgas. Problēma ir tā, ka privāto atslēgu var nozagt. Ieejas frāzes pievienošana teorētiski aizsargā pret privātās atslēgas zādzību, taču praksē, pārsūtot un saglabājot atslēgas, tās joprojām var izmantot bez apstiprinājuma. Divu faktoru autentifikācija atrisina šo problēmu.

Kā ieviest divu faktoru autentifikāciju

Izstrādātāji no Honeycomb nesen publicēja detalizētas instrukcijas, kā ieviest atbilstošu infrastruktūru uz klienta un servera.

Instrukcijās tiek pieņemts, ka jums ir noteikts pamata resursdators, kas ir atvērts internetam (bastions). Jūs vēlaties izveidot savienojumu ar šo resursdatoru no klēpjdatoriem vai datoriem, izmantojot internetu, un piekļūt visām pārējām ierīcēm, kas atrodas aiz tā. 2FA nodrošina, ka uzbrucējs nevar darīt to pašu, pat ja viņš iegūst piekļuvi jūsu klēpjdatoram, piemēram, instalējot ļaunprātīgu programmatūru.

Pirmā iespēja ir OTP

OTP - vienreizējas digitālās paroles, kuras šajā gadījumā tiks izmantotas SSH autentifikācijai kopā ar atslēgu. Izstrādātāji raksta, ka tas nav ideāls variants, jo uzbrucējs var pacelt viltus bastionu, pārtvert jūsu OTP un to izmantot. Bet tas ir labāk nekā nekas.

Šajā gadījumā servera pusē Chef konfigurācijā tiek ierakstītas šādas rindas:

  • metadata.rb
  • attributes/default.rb (no attributes.rb)
  • files/sshd
  • recipes/default.rb (kopēt no recipe.rb)
  • templates/default/users.oath.erb

Jebkura OTP lietojumprogramma ir instalēta klienta pusē: Google Authenticator, Authy, Duo, Lastpass, instalēta brew install oath-toolkit vai apt install oathtool openssl, tad tiek ģenerēta nejauša base16 virkne (atslēga). Tas tiek konvertēts uz Base32 formātu, ko izmanto mobilie autentifikatori, un importēts tieši lietojumprogrammā.

Rezultātā varat izveidot savienojumu ar Bastion un redzēt, ka tagad autentifikācijai ir nepieciešama ne tikai ieejas frāze, bet arī OTP kods:

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

Otrā iespēja ir aparatūras autentifikācija

Šajā gadījumā lietotājam nav jāievada OTP kods katru reizi, jo otrais faktors kļūst par aparatūras ierīci vai biometriju.

Šeit Chef konfigurācija ir nedaudz sarežģītāka, un klienta konfigurācija ir atkarīga no OS. Bet pēc visu darbību veikšanas MacOS klienti var apstiprināt autentifikāciju SSH, izmantojot ieejas frāzi un novietojot pirkstu uz sensora (otrais faktors).

iOS un Android īpašnieki apstiprina pieteikšanos nospiežot vienu viedtālruņa pogu. Šī ir īpaša tehnoloģija no Krypt.co, kas ir vēl drošāka nekā OTP.

Operētājsistēmā Linux/ChromeOS ir iespēja strādāt ar YubiKey USB marķieriem. Protams, uzbrucējs var nozagt jūsu pilnvaru, taču viņš joprojām nezina ieejas frāzi.

Avots: www.habr.com

Pievieno komentāru