Захотелось попробовать сие дело в действии, да и централизованное хранение паролей тоже не помешает, хотя есть и свои минусы, но когда оборудования реально дохрена, то на каждый сервер ставить пас, потом менять его ручками, становится слегка геморно, хотя можно юзать ключи для ssh, но ведь зачастую авторизация не только по ssh необходима, в общем решил потестить как себя будет вести данная связка.
Начнем со сборки pam модуля для radius авторизации на машине которую переводим на данную авторизацию:
# wget ftp://ftp.freeradius.org/pub/radius/pam_radius-1.3.17.tar.gz
# tar -xvf pam_radius-1.3.17.tar.gz
# cd pam_radius-1.3.17
# make
если получаем Error 1, то читаем как побороть тут
после в текущей директории получим файлик:
pam_radius_auth.so
копируем его куда надо:
# cp pam_radius_auth.so /lib64/security
либо для 32 битной оси
# cp pam_radius_auth.so /lib/security
Далее создадим файл настроек для конекта к радиус серверу:
# mkdir /etc/raddb/
# cp pam_radius_auth.conf /etc/raddb/server
# vi /etc/raddb/server
приводим к такому виду:
# Radius Server IP address Secret Timeout
192.168.100.1 supersecret 3
где
192.168.100.1 — радиус сервер
supersecret — секретная фраза для конекта
3 — таймаут
Настраиваем ssh
# vi /etc/pam.d/sshd
перед строкой
auth include password-auth
вставляем строку:
auth sufficient pam_radius_auth.so
получаем нечто похожее на нижнее:
auth sufficient pam_radius_auth.so
auth include password-auth
Добавлем юзера в систему который предварительно заведен на радиус сервере
# adduser test
рестартим sshd
# service sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
и пробуем залогиниться.
Для того чтобы работал sudo, правим
# vi /etc/pam.d/sudo
до такого вида:
#%PAM-1.0
auth sufficient pam_radius_auth.so
auth include system-auth
account include system-auth
password include system-auth
session optional pam_keyinit.so revoke
session required pam_limits.so