Двухфакторная аутСнтификация для SSH

«БСзопасная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Β» SSH β€” сСтСвой ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» для установлСния Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ соСдинСния ΠΌΠ΅ΠΆΠ΄Ρƒ хостами, стандартно ΠΏΠΎ ΠΏΠΎΡ€Ρ‚Ρƒ 22 (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ). SSH-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΈ SSH-сСрвСры доступны для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ОБ. Π’Π½ΡƒΡ‚Ρ€ΠΈ SSH Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ практичСски любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСтСвой ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Ρ‚.Π΄. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Π΅Ρ€Π΅Π· SOCKS-прокси Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ хостС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ хостам ΡƒΠΆΠ΅ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ этого ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ хоста.

АутСнтификация происходит ΠΏΠΎ ΠΏΠ°Ρ€ΠΎΠ»ΡŽ, Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ систСмныС администраторы Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ SSH-ΠΊΠ»ΡŽΡ‡ΠΈ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сСкрСтный ΠΊΠ»ΡŽΡ‡ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΡ€Π°ΡΡ‚ΡŒ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ„Ρ€Π°Π·Ρ‹ тСорСтичСски Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΡ‚ ΠΊΡ€Π°ΠΆΠΈ сСкрСтного ΠΊΠ»ΡŽΡ‡Π°, Π½ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€Π²Π°Ρ€Π΄ΠΈΠ½Π³Π΅ ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΎΠ½ΠΈ всё Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· подтвСрТдСния. Двухфакторная аутСнтификация Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Как Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Honeycomb Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ инфраструктуру Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈ сСрвСрС.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΈΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ хост, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ (бастион). Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ этому хосту с Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊΠΎ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ устройствам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находятся Π·Π° Π½ΠΈΠΌ. 2FA Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ Π½Π΅ смоТСт ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС, Π΄Π°ΠΆΠ΅ Ссли ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ доступ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, установив врСдоносноС ПО.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” OTP

OTP β€” ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для SSH-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ вмСстС с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΈΡˆΡƒΡ‚, Ρ‡Ρ‚ΠΎ это Π½Π΅ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ Ρ„Π°Π»ΡŒΡˆΠΈΠ²Ρ‹ΠΉ бастион, ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ ваш OTP ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Но это Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ.

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π° сСрвСрной сторонС Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ Chef ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки:

  • metadata.rb
  • attributes/default.rb (ΠΈΠ· attributes.rb)
  • files/sshd
  • recipes/default.rb (копия ΠΈΠ· recipe.rb)
  • templates/default/users.oath.erb

На клиСнтской сторонС ставится любоС OTP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: Google Authenticator, Authy, Duo, Lastpass, устанавливаСтся brew install oath-toolkit ΠΈΠ»ΠΈ apt install oathtool openssl, ΠΏΠΎΡ‚ΠΎΠΌ гСнСрируСтся случайная строка base16 (ΠΊΠ»ΡŽΡ‡). Она конвСртируСтся Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Base32, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΈ импортируСтся нСпосрСдствСнно Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ бастиону ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ„Ρ€Π°Π·Ρƒ, Π½ΠΎ ΠΈ ΠΊΠΎΠ΄ OTP для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

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

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” аппаратная аутСнтификация

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ трСбуСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ OTP-ΠΊΠΎΠ΄, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ становится Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ устройство ΠΈΠ»ΠΈ биомСтрия.

Π’ΡƒΡ‚ конфигурация Chef Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС, Π° конфигурация ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² зависит ΠΎΡ‚ ОБ. Но Π·Π°Ρ‚ΠΎ послС выполнСния всСх дСйствий ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π½Π° MacOS ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π² SSH ΠΏΠΎ ΠΏΠ°Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ„Ρ€Π°Π·Π΅ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°Π»ΡŒΡ†Π° ΠΊ сСнсору (Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°ΠΊΡ‚ΠΎΡ€).

Π’Π»Π°Π΄Π΅Π»ΡŒΡ†Ρ‹ iOS ΠΈ Android ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚ Π²Ρ…ΠΎΠ΄ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° смартфонС. Π­Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ тСхнология ΠΎΡ‚ Krypt.co, которая Π΄Π°ΠΆΠ΅ бСзопаснСС, Ρ‡Π΅ΠΌ OTP.

На Linux/ChromeOS Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с USB-Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ YubiKey. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ…ΠΈΡ‚ΠΈΡ‚ΡŒ ваш Ρ‚ΠΎΠΊΠ΅Π½, Π½ΠΎ ΠΎΠ½ всё Ρ€Π°Π²Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΏΠ°Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ„Ρ€Π°Π·Ρƒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com