Thank you for reading this post, don't forget to subscribe!
В инфраструктуре с большим количеством сервером Linux, для управления серверами удобнее использовать централизованные механизмы аутентификации. Рассмотрим пример централизованной аутентификации при подключении к серверам по протоколу ssh с помощью сервера Radius.
В качестве Radius сервера использовать будем уже настроенный open-source Freeradius сервер с адресом 10.45.91.210. Настройку ssh будем производить на CentOs7
Ставим необходимые зависимости
sudo yum install gcc wget pam pam-devel
Собираем pam модуль для авторизации через radius
Исходники pam модуля можно взять по адресу ftp://ftp.freeradius.org/pub/radius/
cd /usr/src
wget ftp://ftp.freeradius.org/pub/radius/pam_radius-1.4.0.tar.gz
Распаковываем скаченный пакет
tar xzf pam_radius-1.4.0.tar.gz
И производим сборку
cd pam_radius-1.4.0
sudo ./configure
sudo make
Копируем собранную библиотеку в директорию /lib64/security
sudo cp pam_radius_auth.so /lib64/security/
Создаем файл настроек для подключения к radius серверу
sudo mkdir /etc/raddb
cp pam_radius_auth.conf /etc/raddb/server
Прописываем в нем настройки
cat /etc/raddb/pam_radius_auth.conf
1 2 3 |
# server[:port] shared_secret timeout (s) 10.45.91.210 testing123 3 |
Редактируем файл /etc/pam.d/sshd, добавляем "auth sufficient pam_radius_auth.so" перед строкой с "password-auth"
cat /etc/pam.d/sshd
1 2 3 4 5 6 |
#%PAM-1.0 auth required pam_sepermit.so auth sufficient pam_radius_auth.so auth substack password-auth ..... |
Добавляем пользователя, который есть на radius сервере:
sudo useradd radius
Перезапускаем демон sshd
sudo systemctl restart sshd
Пробуем залогиниться по ssh
ssh radius@localhost
id
1 |
uid=1000(radius) gid=1000(radius) группы=1000(radius) |