SSH uchun ikki faktorli autentifikatsiya

"Xavfsiz qobiq" SSH - bu xostlar o'rtasida xavfsiz ulanishni o'rnatish uchun tarmoq protokoli bo'lib, odatda 22-port orqali (uni o'zgartirish yaxshiroq). Ko'pgina operatsion tizimlar uchun SSH mijozlari va SSH serverlari mavjud. Deyarli har qanday boshqa tarmoq protokoli SSH ichida ishlaydi, ya'ni siz boshqa kompyuterda masofadan turib ishlashingiz, shifrlangan kanal orqali audio yoki video oqimini uzatishingiz va hokazo. Bundan tashqari, masofaviy xostda SOCKS proksi-server orqali ushbu masofaviy xost nomidan boshqa xostlarga ulanishingiz mumkin.

Autentifikatsiya parol yordamida amalga oshiriladi, ammo ishlab chiquvchilar va tizim ma'murlari an'anaviy ravishda SSH kalitlaridan foydalanadilar. Muammo shundaki, shaxsiy kalit o'g'irlanishi mumkin. Parol iborasini qo'shish nazariy jihatdan shaxsiy kalitni o'g'irlashdan himoya qiladi, ammo amalda kalitlarni yo'naltirish va keshlashda ular tasdiqlamasdan ham foydalanish mumkin. Ikki faktorli autentifikatsiya bu muammoni hal qiladi.

Ikki faktorli autentifikatsiyani qanday amalga oshirish kerak

Honeycomb-dan ishlab chiquvchilar yaqinda nashr etilgan batafsil ko'rsatmalar, mijoz va serverda tegishli infratuzilmani qanday amalga oshirish kerakligi.

Ko'rsatmalar sizda Internetga ochiq ma'lum bir asosiy xost (bastion) borligini taxmin qiladi. Siz ushbu xostga noutbuklar yoki kompyuterlardan Internet orqali ulanishni va uning orqasida joylashgan barcha boshqa qurilmalarga kirishni xohlaysiz. 2FA tajovuzkor, masalan, zararli dasturlarni o'rnatish orqali noutbukingizga kirish imkoniga ega bo'lsa ham, xuddi shunday qila olmasligini ta'minlaydi.

Birinchi variant - OTP

OTP - bir martalik raqamli parollar, bu holda kalit bilan birga SSH autentifikatsiyasi uchun foydalaniladi. Ishlab chiquvchilarning yozishicha, bu ideal variant emas, chunki tajovuzkor soxta qal'ani ko'tarishi, OTPni to'sib qo'yishi va undan foydalanishi mumkin. Lekin bu hech narsadan yaxshiroqdir.

Bunday holda, server tomonida Chef konfiguratsiyasiga quyidagi qatorlar yoziladi:

  • metadata.rb
  • attributes/default.rb ( attributes.rb)
  • files/sshd
  • recipes/default.rb (dan nusxa ko'chiring recipe.rb)
  • templates/default/users.oath.erb

Mijoz tomonida har qanday OTP ilovasi oΚ»rnatilgan: Google Authenticator, Authy, Duo, Lastpass, oΚ»rnatilgan brew install oath-toolkit yoki apt install oathtool openssl, keyin tasodifiy base16 qatori (kalit) hosil bo'ladi. U mobil autentifikatorlar foydalanadigan Base32 formatiga aylantiriladi va to'g'ridan-to'g'ri ilovaga import qilinadi.

Natijada, siz Bastion-ga ulanishingiz va endi autentifikatsiya qilish uchun nafaqat parolni, balki OTP kodini ham talab qilishini ko'rishingiz mumkin:

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

Ikkinchi variant - apparatni autentifikatsiya qilish

Bunday holda, foydalanuvchi har safar OTP kodini kiritishi shart emas, chunki ikkinchi omil apparat qurilmasi yoki biometrikaga aylanadi.

Bu erda Chef konfiguratsiyasi biroz murakkabroq va mijoz konfiguratsiyasi operatsion tizimga bog'liq. Ammo barcha amallarni bajargandan so'ng, MacOS-dagi mijozlar parolni ishlatib, barmoqni sensorga qo'yish orqali SSH-da autentifikatsiyani tasdiqlashlari mumkin (ikkinchi omil).

iOS va Android egalari kirishni tasdiqlaydi smartfoningizdagi bitta tugmani bosish orqali. Bu Krypt.co-ning maxsus texnologiyasi bo'lib, u OTPdan ham xavfsizroq.

Linux/ChromeOS-da YubiKey USB tokenlari bilan ishlash imkoniyati mavjud. Albatta, tajovuzkor sizning tokeningizni o'g'irlashi mumkin, lekin u hali ham parolni bilmaydi.

Manba: www.habr.com

a Izoh qo'shish