SSH + Радиус + LDAP

Я провел много исследований по ssh (openssh) и радиусу.

Что я хочу сделать:

SSH к оборудованию с учетными данными (имя пользователя и пароль), хранящимися на сервере радиуса или в хранилище ldap. Я читал в Интернете, и некоторые люди указывают на наличие сервера ldap, работающего в фоновом режиме вашего сервера радиуса. Это будет работать, но будет работать, только если пользователь найден на локальном компьютере.

Проблема: есть ли у меня способ подключиться через ssh (или telnet) к моему оборудованию, войдя в систему через радиус-сервер, содержащий учетные данные? если нет, то есть ли способ для клиента (компьютера, к которому я пытаюсь подключиться) получить обновленный список учетных данных и сохранить его локально из центрального расположения (будь то сервер радиуса или база данных sql и т. д.).

Мне удалось подключиться через Radius, но только на локальных учетных записях, но, например, если я пытаюсь подключиться к учетной записи, которая не существует локально (с точки зрения клиента), я получаю "неправильно"

Вот радиус вывода: Код:

rad_recv: Access-Request packet from host 192.168.4.1 port 5058, id=219, length=85  User-Name = "klopez"
    User-Password = "\010\n\r\177INCORRECT"
    NAS-Identifier = "sshd"
    NAS-Port = 4033
    NAS-Port-Type = Virtual
    Service-Type = Authenticate-Only
    Calling-Station-Id = "192.168.4.200"

Код:

[ldap] performing user authorization for klopez[ldap] WARNING: Deprecated conditional expansion ":-".  See "man unlang" for details
[ldap]     ... expanding second conditional
[ldap]     expand: %{User-Name} -> klopez
[ldap]     expand: (uid=%{Stripped-User-Name:-%{User-Name}}) -> (uid=klopez)
[ldap]     expand: dc=lab,dc=local -> dc=lab,dc=local
  [ldap] ldap_get_conn: Checking Id: 0
  [ldap] ldap_get_conn: Got Id: 0
  [ldap] performing search in dc=lab,dc=local, with filter (uid=klopez)
[ldap] No default NMAS login sequence
[ldap] looking for check items in directory...
  [ldap] userPassword -> Cleartext-Password == "somepass"
  [ldap] userPassword -> Password-With-Header == "somepass"
[ldap] looking for reply items in directory...
[ldap] user klopez authorized to use remote access
  [ldap] ldap_release_conn: Release Id: 0
++[ldap] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] Config already contains "known good" password.  Ignoring Password-With-Header
++[pap] returns updated
Found Auth-Type = PAP
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group PAP {...}
[pap] login attempt with password "?  INCORRECT"
[pap] Using clear text password "somepass"
[pap] Passwords don't match
++[pap] returns reject
Failed to authenticate the user.
  WARNING: Unprintable characters in the password.  Double-check the shared secret on the server and the NAS!
Using Post-Auth-Type Reject
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group REJECT {...}
[attr_filter.access_reject]     expand: %{User-Name} -> klopez
attr_filter: Matched entry DEFAULT at line 11
++[attr_filter.access_reject] returns updated
Delaying reject of request 3 for 1 seconds

У меня также установлен pam_radius, и он работает (могу войти в систему под учетной записью, которая существует локально). Хотя я читаю это и не знаю, насколько это точно на 100%:

http://freeradius.1045715.n5.nabble.com/SSH-authendication-with-radius-server-fails-if-the-user-does-not-exist-in-radius-client-td2784316.html и http://fhf.org/archives/713

tl: dr: мне нужно подключиться по ssh к машине, у которой нет локального пользователя / прохода, и эта комбинация будет храниться удаленно, например, радиус-сервер или ldap.

пожалуйста, порекомендуйте

PS

Решение предпочтительнее, используя радиус-сервер или ldap, но не обязательно. Если есть альтернатива, пожалуйста, сообщите.

Спасибо,

Kevin

1 ответ

Решение

Вы можете настроить SSH для аутентификации непосредственно на сервере LDAP с использованием PAM LDAP.

Я сам установил его в системах Debian: https://wiki.debian.org/LDAP/PAM https://wiki.debian.org/LDAP/NSS

Для работы SSH необходимо иметь PAM и NSS. Вам также необходимо включить PAM в вашей конфигурации SSH. Установите пакеты libnss-ldapd libpam-ldapd и nslcd в системе Debian (или Ubuntu).

Другие вопросы по тегам