Настройка взаимодействия с RADIUS-сервером для аутентификации при подключении пользователя через SSH
Настоящий документ содержит описание способа совместного использования Продуктов компании ООО
«С-Терра СиЭсПи» и Продуктов третьих производителей.
ООО «С-Терра СиЭсПи» осуществляет сопровождение настоящего сценария в части настроек Продуктов Компании. Упоминание наименований, продуктов, торговых марок третьих организаций исключительно неформально и не является поддержкой, рекомендацией, либо рекламой. ООО «С-Терра СиЭсПи» не несет какой-либо ответственности в отношении работоспособности и использования этих Продуктов.
Документ имеет статус вспомогательного материала, который может быть использован технологическими партнерами, компаниями-интеграторами, при разработке собственных решений.
Решения, разработанные на базе данного сценария, могут применяться в действующих сетях/системах
только после тестовой и/или опытной эксплуатации.
Данный документ описывает настройку взаимодействия с RADIUS сервером для аутентификации при подключении пользователя через SSH.
Схема стенда (Рисунок 1):
Рисунок 1
При попытке подключения к шлюзу по протоколу SSH будет отправлен запрос на RADIUS сервер и, в зависимости от ответа, аутентификация пользователя завершится успехом или неудачей. При недоступности RADIUS сервера будет произведена попытка аутентификации с локальным паролем.
При локальном подключении к шлюзу, аутентификация с помощью RADIUS производится не будет.
Для работы аутентификации с использованием RADIUS сервера в системе должны быть созданы все пользователи, от которых будет вестись работа.
Важно! Последнее также относится и к пользователю root. Если он отсутствует на RADIUS сервере, который в свою очередь в данный момент доступен, удаленное подключение пользователем root будет невозможно. Следует либо добавить соответствующую настройку на RADIUS сервере, либо подключаться пользователем root только локально.
Для аутентификации используются модули PAM
(pluggable authentication module). На шлюзе за локальную
аутентификацию отвечает модуль pam_unix, а за аутентификацию через
RADIUS сервер отвечает модуль pam_radius_auth.
1. Предполагается, что инициализация шлюза пройдена, заданы корректные сетевые настройки и RADIUS сервер доступен по сети.
2. Настройте доступ к RADIUS серверу. Для этого измените файл /etc/pam_radius_auth.conf. В данном файле необходимо указать адрес и порт RADIUS сервера (в данном случае - 192.168.1.5:1645), пароль для доступа к нему (в данном случае - secret1) и таймаут в секундах (3). Остальные строки закомментируйте или удалите.
root@sterragate:~# vim.tiny /etc/pam_radius_auth.conf
192.168.1.5:1645 secret1 3
3. Измените настройки аутентификации для SSH. Для этого в файле /etc/pam.d/sshd пропишите использование модуля pam_radius_auth.so в самой верхней строке сразу после первого комментария. Остальные строки трогать не следует.
root@sterragate:~# vim.tiny /etc/pam.d/sshd
# PAM configuration for the Secure Shell service
auth [success=done authinfo_unavail=ignore ignore=ignore default=bad] pam_radius_auth.so
...
4. Опционально: отредактируйте файл /etc/hosts, добавив туда следующую строку:
192.168.1.1 GW1
где:
· 192.168.1.1 - IP адрес шлюза (этот адрес будет использоваться в качестве NAS-IP-Address)
· GW1 - имя шлюза (можно посмотреть в выводе команды hostname или в файле /etc/hostname)
Этот шаг может понадобиться для обеспечения совместимости с некоторыми RADIUS-серверами (например, Efros Access Control Server), которым требуется атрибут NAS-IP-Address
Действий, описанных выше, достаточно для успешной аутентификации с помощью RADIUS сервера для пользователей, уже существующих на шлюзе (при условии наличия записей для них на RADIUS сервере). Создать пользователя на шлюзе можно в cisco-like консоли используя следующие команды:
sterragate(config)#username testing secret 0 password
sterragate(config)#username testing privilege 15
где:
· username testing - команда для добавления пользователя с именем testing;
· secret 0 password - у создаваемого пользователя будет локальный пароль password, который будет храниться в зашифрованном виде;
· privilege 15 - у создаваемого пользователя будет сразу доступ к привилегированному режиму.
Заданные настройки будут использоваться со следующей попытки подключения к шлюзу по SSH. Сервис sshd перезапускать нет необходимости.
1. Проведите попытку подключения по SSH к шлюзу с пользователем testing консоли cisco-like (RADIUS пользователь testing) с устройства IPHost1:
root@Host1:~# ssh testing@192.168.1.1
testing@192.168.1.1's password:
S-Terra Gate 4.3.XXXXX (amd64)
sterragate#
При этом в системных логах будут следующие записи:
root@sterragate:~# cat /var/log/auth.log
Aug 15 09:15:06 sterragate sshd[1095]: Accepted password for testing from 192.168.1.1 port 34472 ssh2
Aug 15 09:15:06 sterragate sshd[1095]: pam_unix(sshd:session): session opened for user testing by (uid=0)
Aug 15 09:15:06 sterragate sshd[1095]: lastlog_openseek: Couldn't stat /var/log/lastlog: No such file or directory
root@sterragate:~# cat /var/log/cspvpngate.log
Aug 15 09:15:06 localhost cs_console: 0072500b Command interpreter started
Aug 15 09:15:06 localhost cs_console: 00725001 Cisco-like console started by user "testing"
2. Проведите попытку подключения по SSH к шлюзу с пользователем root консоли linux bash (RADIUS пользователь root) с устройства IPHost1:
root@Host1:~# ssh root@192.168.1.1
root@192.168.1.1's password:
S-Terra Gate 4.3.XXXXX (amd64)
root@sterragate:~#
Логи операционной системы:
root@sterragate:~# cat /var/log/auth.log
Aug 15 09:23:30 sterragate sshd[1142]: Accepted password for root from 192.168.1.1 port 34474 ssh2
Aug 15 09:23:30 sterragate sshd[1142]: pam_unix(sshd:session): session opened for user root by (uid=0)Aug 15 09:23:30 sterragate sshd[1169]: lastlog_openseek: Couldn't stat /var/log/lastlog: No such file or directory
Для тестирования можно создать RADIUS сервер (пример для Debian 9).
1. Скачаем информацию по пакетам, обновим систему и установим пакет freeradius (опция -y автоматически отвечает положительно на все вопросы apt):
root@Radius1:~# apt -y update && apt -y upgrade && apt -y install freeradius
2. В начало файла /etc/freeradius/3.0/mods-config/files/authorize добавим следующую строку:
testing Cleartext-Password := "password"
root Cleartext-Password := "password"
где:
· testing - имя пользователя;
· password - пароль
3. В конец файла /etc/freeradius/3.0/clients.conf добавим следующие строки:
client test {
ipaddr = 192.168.1.1
secret = secret1
}
где:
· test - имя настройки (можно задать любое);
· ipaddr - адрес клиента (в данном случае адрес GW1);
· secret - пароль доступа (должен совпадать с заданным в пункте 2 раздела «Настройка шлюза GW1»)
4. Перезапустите сервис freeradius и поставьте его на автозагрузку:
root@Radius1:~# systemctl restart freeradius.service
root@Radius1:~# systemctl enable freeradius.service
Для получения отладочной информации следует остановить сервис:
root@Radius1:~# systemctl stop freeradius.service
И выполнить команду:
root@Radius1:~# freeradius -X