
Я установил и настроил RADIUS-сервер на своем локальном хосте — он делегирует аутентификацию удаленному LDAP-серверу.
Поначалу все выглядит хорошо: я могу протестировать через консоль:
# export user=skemp
# export pass=xxx
# radtest $user $pass localhost 1812 $secret
Sending Access-Request of id 185 to 127.0.0.1 port 1812
User-Name = "skemp"
User-Password = "xxx"
NAS-IP-Address = 192.168.1.168
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=185,
Аналогично я могу использовать инструмент входа в систему, чтобы сделать то же самое:
bash-4.0# /usr/libexec/auth/login_radius -d -s login $user radius
Password: $pass
authorize
Однако удаленные входы через SSH терпят неудачу, как и вызовы "login", запущенные root. Просматривая /var/log/radiusd.log, я не вижу никакого фактического журнала успеха/неудачи, который я вижу при использовании любого из предыдущих инструментов.
Вместо этого sshd просто регистрирует:
sshd[23938]: Failed publickey for skemp from 192.168.1.9
sshd[23938]: Failed keyboard-interactive for skemp from 192.168.1.9 port 36259 ssh2
sshd[23938]: Failed password for skemp from 192.168.1.9 port 36259 ssh2
В /etc/login.conf у меня есть это:
# Default allowed authentication styles
auth-defaults:auth=radius:
...
radius:\
:auth=radius:\
:radius-server=localhost:\
:radius-port=1812:\
:radius-timeout=1:\
:radius-retries=5:
решение1
У меня были похожие проблемы с настройкой OpenBSD для делегирования аутентификации на сервер ldap. Единственный способ заставить это работать — добавить пользователя в локальную базу данных, например
useradd -s /bin/ksh -L ldap новый_пользователь
В вашем случае это будет что-то вроде
useradd -s /bin/ksh -L радиус новый_пользователь2
Однако, поскольку вам придется вручную создавать запись пользователя для каждой машины, использующей ldap для аутентификации, это подорвет необходимость в централизованном сервере аутентификации ldap. У меня также нет идей.