В этой статье мы поговорим об основных этапах настройки аутентификации в Linux SSH для замены парольной аутентификации одноразовыми паролями — в статье описан сценарий аутентификации в сессию SSH-подключения к Linux OS посредством одноразовых паролей с использованием устройства JaCarta WebPass.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 1 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 1](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH.jpg)
JaCarta WebPass разработки компании «Аладдин Р.Д.» представляет собой USB-токен с «OTP на борту» для двухфакторной аутентификации пользователей при доступе к защищённым информационным ресурсам с использованием одноразового пароля, либо хранимого в памяти токена многоразового пароля.
Предложенный в статье сценарий подразумевает использование RADIUS сервера для проверки подлинности введённого одноразового кода, а также системы проверки OTP-значения. В качестве системы управления OTP-ключами мы будем использовать JaCarta Authentication Server (JAS) также разработки «Аладдин Р.Д.».
Пользователь, при установленном SSH-соединении, на этапе аутентификации будет вводить OTP-значение вместо пароля. PAM модуль отправит переданное значение на RADIUS Server, который проверит его и разрешит, либо запретит аутентификацию.
Используемое для демонстрации окружение
В данной инструкции производится настройка для следующих версий операционных систем:
- Microsoft Windows Server 2012;
- Ubuntu Server 16;
- Microsoft Windows 7.
Требования к окружению
Для Windows Server необходимо создать домен, добавить роль NPS. Для этого следуйте советам ниже.
Откройте оснастку для добавления роли NPS.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 2 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 2](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-2.jpg)
При выборе служб и компонентов выберите Network Policy Server.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 3 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 3](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-3.jpg)
После этого вам станет доступна оснастка NPS.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 4 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 4](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-4.jpg)
Настройка на стороне RADIUS сервера
На стороне сервера необходимо выполнить следующие шаги:
- добавьте радиус клиента с IP-адресом, либо именем Linux сервера;
- выберите оснастку NPS на сервере.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 5 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 5](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-5.jpg)
В меню оснастки выберите пункт NPS – RADIUS Clients and Servers – RADIUS Clients, затем правым кликом вызовите контекстное меню и нажмите New.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 6 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 6](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-6.jpg)
Введите настройки клиента для подключения к RADIUS серверу: имя, отображаемое в оснастке, адрес либо имя клиента, общий секрет для клиента и сервера (необходимо придумать).
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 7 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 7](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-7.jpg)
Создайте доменного пользователя, имя которого будет использоваться для аутентификации на Linux сервере.
Подготовка JaCarta WebPass
Для инициализации JaCarta WebPass необходимо открыть приложение Web Pass Tool, которое входит в состав программного обеспечения «Единый Клиент JaCarta». Загрузить ПО можно по ссылке https://www.aladdin-rd.ru/support/downloads/jacarta/.
Откройте приложение JaCarta WebPass Tool, выберите вкладку ОТР.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 8 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 8](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-8.jpg)
Выберите слот для инициализации, затем нажмите в меню пункт Инициализация.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 9 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 9](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-9.jpg)
В настройках укажите Одноразовый пароль, первый механизм из выпадающего списка, отметьте Сохранение параметров инициализации и нажмите Далее.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 10 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 10](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-10.jpg)
Выберите формат файла JAS, а также путь до папки, куда будет сохранён файл инициализации. Этот файл потребуется для подключения ключа к JAS.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 11 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 11](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-11.jpg)
Введите PIN-код для ключа и нажмите Далее.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 12 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 12](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-12.jpg)
Настройка на стороне JAS
На стороне JAS необходимо выполнить перечисленные ниже шаги.
Добавьте устройство OTP в систему, привяжите пользователя к устройству. Для этого откройте оснастку JAS.
В оснастке выберите Импорт ключевых носителей.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 13 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 13](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-13.jpg)
Укажите путь до файла с данными инициализации JaCarta WebPass (файл можно получить при инициализации слота в приложении Web Pass Tool, который входит в состав программного обеспечения «Единый Клиент JaCarta». Загрузить ПО можно по ссылке https://www.aladdin-rd.ru/support/downloads/jacarta/).
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 14 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 14](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-14.jpg)
В случае успеха нажмите Далее.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 15 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 15](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-15.jpg)
Выберите добавленный ключ, нажмите Свойства в меню. Для привязки к пользователю следует указать имя и адрес электронной почты для доменного пользователя.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 16 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 16](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-16.jpg)
Перед активацией следует произвести синхронизацию устройства, для этого нажмите Синхронизация в меню, укажите в окно ОТР 1 и нажмите на кнопку устройства JaCarta WebPass, затем повторите с окном ОТР 2.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 17 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 17](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-17.jpg)
Для активации выберите пункт Включить.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 18 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 18](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-18.jpg)
Настройка на стороне Linux Server
На стороне Linux сервера все операции необходимо производить от имени root.
# sudo -i
# apt-get install libpam-radius-auth
Добавьте значения для вашего RADIUS сервера, IP-адрес, либо имя сервера, общий секрет в файл /etc/pam_radius_auth.conf.
# nano /etc/pam_radius_auth.conf
# The timeout field controls how many seconds the module waits before
# deciding that the server has failed to respond.
#
# server[:port] shared_secret timeout (s)
[SERVER IP] [Общий секрет] 3
В файле /etc/pam.d/sshd добавьте строку auth sufficient pam_radius_auth.so над include common-auth, как показано ниже.
# nano /etc/pam.d/sshd
# PAM configuration for the Secure Shell service
# Standard Un*x authentication.
auth sufficient pam_radius_auth.so
@include common-auth
# Disallow non-root logins when /etc/nologin exists.
Создайте локального пользователя с именем, соответствующим пользователю в AD.
Проверка решения
Для проверки воспользуемся операционной системой Microsoft Windows 7 с установленным SSH клиентом PUTTY.
Откроем Putty и укажем адрес интересующей нас машины на Linux.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 19 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 19](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-19.jpg)
Введите имя пользователя, Ввод, затем нажмите на кнопку устройства JaCarta WebPass, Ввод.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 20 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 20](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-20.jpg)
Далее введите команду SSH [Servername2], Ввод, нажмите кнопку на устройстве, Ввод.
![JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 21 JaCarta Authentication Server и JaCarta WebPass для OTP-аутентификации в Linux SSH - 21](https://www.pvsm.ru/images/2017/06/29/JaCarta-Authentication-Server-i-JaCarta-WebPass-dlya-OTP-autentifikacii-v-Linux-SSH-21.jpg)
Автор: doctorblack