User Tools

Site Tools


безопасное_подключение_с_чужого_компьютера

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
безопасное_подключение_с_чужого_компьютера [2023/01/30 08:03]
val
безопасное_подключение_с_чужого_компьютера [2023/01/30 11:08] (current)
val
Line 2: Line 2:
  
   * [[https://​youtu.be/​BWU1_NQZgi4|SSH-туннели,​ корпоративный TeamViewer и одноразовые пароли]]   * [[https://​youtu.be/​BWU1_NQZgi4|SSH-туннели,​ корпоративный TeamViewer и одноразовые пароли]]
 +  * https://​habr.com/​ru/​post/​713582/​
  
 Всем привет! Всем привет!
Line 7: Line 8:
 Так получилось,​ что знакомство с миром *NIX систем началось у меня в конце 90-х с системы FreeBSD, которая долгое время была любимой и с удовольствием использовалась для решения множества задач. Но, время шло, и приоритеты сместились в пользу Linux дистрибутивов,​ позволяющих "​меньше нажимать на клавиши"​ для получения конечного результата. Однако,​ как "​первая любовь"​ FreeBSD не забывается,​ и, сегодня я хочу рассказать об интересном и полезном варианте ее использования. Так получилось,​ что знакомство с миром *NIX систем началось у меня в конце 90-х с системы FreeBSD, которая долгое время была любимой и с удовольствием использовалась для решения множества задач. Но, время шло, и приоритеты сместились в пользу Linux дистрибутивов,​ позволяющих "​меньше нажимать на клавиши"​ для получения конечного результата. Однако,​ как "​первая любовь"​ FreeBSD не забывается,​ и, сегодня я хочу рассказать об интересном и полезном варианте ее использования.
  
-Итак, задача:​ Нужно подключиться SSH клиентом к "​работе"​ с чужого компьютера и не хочется вводить пароль,​ "​мало ли что":​) На следующей итерации можно так же подключиться по RDP или VNC добавив в настройки соединения SSH туннель,​ правда,​ пароль этих сервисов придется вводить явно, но, будем считать SSH первым "​фактором"​ двух факторной авторизации без доступа к которому скомпрометированный пароль RDP/VNC не угрожает безопасности.+Итак, задача:​ Нужно подключиться SSH клиентом к "​работе"​ с "чужого" ​компьютера и не хочется вводить пароль,​ "​мало ли что":​) На следующей итерации можно так же подключиться по RDP или VNC добавив в настройки соединения SSH туннель,​ правда,​ пароль ​от этих сервисов придется вводить явно, но, будем считать SSH первым "​фактором"​ двух факторной авторизации без доступа к которому скомпрометированный пароль RDP/VNC не угрожает безопасности.
    
-Одним из вариантов решения этой задачи является использование одноразовых паролей,​ и, в состав базового ПО FreeBSD, уже давно входит реализация пакета OPIE, которую мы и рассмотрим. Буду рад, если сообщество меня поправит,​ но в "​мире"​ Linux дистрибутивов удалось обнаружить только пакет OTPW, требующий (опять,​ буду рад, если это не так) предварительной печати множества одноразовых паролей,​ например на бумаге.+Одним из вариантов решения этой задачи является использование одноразовых паролей,​ и, в состав базового ПО FreeBSD, уже давно входит реализация пакета OPIE (One time Passwords In Everything), которую мы и рассмотрим. Буду рад, если сообщество меня поправит,​ но в "​мире"​ Linux дистрибутивов удалось обнаружить только пакет OTPW, требующий (опять,​ буду рад, если это не так) предварительной печати множества одноразовых паролей,​ например на бумаге.
  
 Возвращаемся к FreeBSD, скачать свежий дистрибутив можно здесь: Возвращаемся к FreeBSD, скачать свежий дистрибутив можно здесь:
Line 15: Line 16:
 https://​www.freebsd.org/​ru/​where/​ https://​www.freebsd.org/​ru/​where/​
  
-Установка не сильно отличается от установки ​Debian/​Ubuntu, для большинства экранов можно оставить значение по умолчанию. Здесь же можно настроить подключение к сети (для нашей задачи,​ система должна быть расположена так, что бы быть доступна "​снаружи"​ и, в свою очередь,​ иметь доступ "​внутрь"​). Сервер SSH, с необходимыми параметрами, будет запущен по умолчанию. Нюансом может показаться отсутствие sudo, поэтому,​ в процессе инсталляции надо будет задать пароль root а так же, создать учетную запись для администрирования системы (например,​ admin) включив ее в группу wheel, для которой разрешено использовать команду su. Если что-то упустили,​ всегда можно повторить,​ подключившись к консоли как root и набрав команду bsdconfig+Установка не сильно отличается от установки ​большинства binary based дистрибутивов Linux, для большинства экранов можно оставить значение по умолчанию. Здесь же можно настроить подключение к сети (для нашей задачи,​ система должна быть расположена так, что бы быть доступна "​снаружи"​ и, в свою очередь,​ иметь доступ "​внутрь"​). Сервер SSH, с необходимым ​для работы OPIE параметром ChallengeResponseAuthentication yes, будет запущен по умолчанию. Нюансом может показаться отсутствие sudo, поэтому,​ в процессе инсталляции надо будет задать пароль root а так же, создать учетную запись для администрирования системы (например,​ admin) включив ее в группу wheel, для которой разрешено использовать команду su. Если что-то упустили,​ всегда можно повторить,​ подключившись к консоли как root и набрав команду bsdconfig
  
-По окончании процесса инсталляции подключаемся учетной записью администратора и поднимаем себе привилегии ​+По окончании процесса инсталляции подключаемся учетной записью администратора и поднимаем себе привилегии:
  
 <​code>​ <​code>​
Line 31: Line 32:
 </​code>​ </​code>​
  
-Теперь,​ нашей задаче,​ во FreeBSD уже "из коробки"​ библиотека PAM для сервиса sshd настроена на +Теперь, ​ближе к нашей задаче,​ во FreeBSD уже "из коробки"​ библиотека PAM (Pluggable Authentication Modules) ​для сервиса sshd поддерживает OPIE
 <​code>​ <​code>​
 root@bsdgate:​~ # cat /​etc/​pam.d/​sshd root@bsdgate:​~ # cat /​etc/​pam.d/​sshd
Line 38: Line 39:
 ... ...
 </​code>​ </​code>​
-Это позволяет,​ даже не задавая unix пароль,​ задать для пользователя user1 "​мастер"​ пароль для генерации одноразовых паролей ​OPIE+Это позволяет,​ даже не задавая unix пароль ​(с этой точки зрения ученая запись будет выгладить как заблокированная), задать для пользователя user1 "​мастер"​ пароль ​OPIE (в документации - "​защищенный пароль"​) который будет использоваться ​для генерации одноразовых паролей:
 <​code>​ <​code>​
 root@bsdgate:​~ # su - user1 root@bsdgate:​~ # su - user1
Line 62: Line 63:
 </​code>​ </​code>​
  
-Получить его можно, например,​ используя телефон с Android ​в программе OTPdroid+Получить его можно, например,​ используя телефон с Android ​и программы OTPdroid
  
 https://​play.google.com/​store/​apps/​details?​id=de.ub0r.android.otpdroid https://​play.google.com/​store/​apps/​details?​id=de.ub0r.android.otpdroid
- 
  
 Для удобства,​ можно нажать на Enter, что позволит вводить одноразовый пароль с отображением его на экране,​ а так же не обязательно делать это в верхнем регистре:​ Для удобства,​ можно нажать на Enter, что позволит вводить одноразовый пароль с отображением его на экране,​ а так же не обязательно делать это в верхнем регистре:​
Line 79: Line 79:
 </​code>​ </​code>​
  
-В заключение могу порекомендовать поменять порт ssh сервера на какой ни будь другой и усилить в систему сервисом fail2ban. Про работу самого механизма OPIE хорошо ​написано в системе документации к FreeBSD - Handbook+Магия в том, ​что "​мастер" пароль хранится только в "голове"​ пользователя (ну или в программе OTPdroid на его телефоне), его НЕТ ​во FreeBSD!  
 + 
 +В системе есть такой файл: 
 + 
 +<​code>​ 
 +root@bsdgate:​~ # cat /​etc/​opiekeys 
 +user1 0499 bs6909 ​          ​dabea335c94a38c3 ​ Jan 30,2023 10:10:36 
 +</​code>​ 
 + 
 +и на этом этапе в нем хранится хэш 499-й итерации функции MD5 над ключом и "​мастер"​ паролем. От пользователя в этот момент потребуется 498 пароль, над ним произведут операцию MD5 и сравнят со значением в /​etc/​opiekeys. Если значения совпадут, пользователя "​пустят" ​в систему ​(на самом деле, успешно отработает подсистема auth библиотеки PAM :) и в /​etc/​opiekeys запишется ​хэш 498-го пароля: 
 + 
 +<​code>​ 
 +root@bsdgate:​~ # cat /​etc/​opiekeys 
 +user1 0498 bs6909 ​          ​b4b034101201c6b1 ​ Jan 30,2023 10:59:38 
 +</​code>​ 
 + 
 +а для следующего подключения потребуется уже 497-й пароль. Красиво,​ правда?​ 
 + 
 +Все это ​хорошо ​описано в системе документации к FreeBSD - Handbook
  
 https://​docs.freebsd.org/​doc/​8.4-RELEASE/​usr/​share/​doc/​freebsd/​ru_RU.KOI8-R/​books/​handbook/​one-time-passwords.html https://​docs.freebsd.org/​doc/​8.4-RELEASE/​usr/​share/​doc/​freebsd/​ru_RU.KOI8-R/​books/​handbook/​one-time-passwords.html
 +
 +В заключение могу только порекомендовать поменять порт ssh сервера на какой ни будь другой и усилить в систему сервисом fail2ban.
 +
 +Спасибо,​ что дочитали до конца, буду рад, если кому то пригодится!
безопасное_подключение_с_чужого_компьютера.1675055022.txt.gz · Last modified: 2023/01/30 08:03 by val