Назад | Перейти на главную страницу

Найти пользователей, которые в данный момент вошли в систему с помощью ldap?

У нас есть Openldap настроен здесь, и пользователи могут использовать ldap для входа на клиентские машины. Но есть ли способ проверить пользователей, которые в настоящее время вошли в систему с помощью LDAP? Я хотел бы узнать, какой пользователь выполнил вход на какой компьютер с помощью LDAP?

AFAIK LDAP не реализует управление сеансами - он просто предоставляет службу каталогов - и его данные могут быть сильно кэшированы в другом месте. Также он может предоставлять информацию, отличную от аутентификации. Так что не существует такой вещи, как «авторизация в LDAP», и нет возможности ее практически измерить.

Предположительно, вы поддерживаете свою реализацию LDAP, чтобы ваши пользователи могли получить доступ к приложениям - вам нужно будет посмотреть на эти приложения, чтобы определить, у кого в настоящее время есть открытый сеанс (при условии, что приложения сохраняют состояние, а HTTP - нет).

Я в основном согласен с ответом symcbean (Найти пользователей, которые в данный момент вошли в систему с помощью ldap?), но...

Вы можете попробовать разобрать журналы безопасности DC, но это вернет много данных. В зависимости от того, что вы хотите делать с данными в долгосрочной перспективе, возможно, стоит отправить их в базу данных.

===

Я не уверен насчет OpenLDAP, но в AD вы можете установить групповую политику и / или сценарий входа в систему (в Windows Batch):

echo logon %username% %computername% %date% %time% >> \\shared\path\FILE_LOCATION.txt

Либо проанализируйте имя пользователя или имя компьютера из FILE_LOCATION.txt, либо: Сохраните по имени компьютера:

echo logon %username% %computername% %date% %time% >> \\shared\path\%computername%.txt

Аналогичным образом сохраните по имени пользователя с помощью:

echo logon %username% %computername% %date% %time% >> \\shared\path\%username%.txt

Цитируя symcbean, «не существует такой вещи, как вход в ldap». Но есть такое понятие, как пользователи, которые проходят аутентификацию через ldap.

В частности, когда вы настраиваете свой хост для использования бэкэнд аутентификации, такого как ldap, переключатель службы имен (nsswitch) может (и, возможно, должен) кэшировать вашу пользовательскую информацию, чтобы вы могли войти в свою систему. На самом деле, с моей точки зрения, не имеет значения, кэшируются ли данные, это все еще информация, поступающая из этого бэкэнда.

Пользователи независимо от того, принадлежат ли они к серверной части NIS, Unix или ldap, имеют UID. В правильно настроенной системе UID из одного бэкэнда не должен совпадать с таковым в другом бэкэнде (обычно бэкенды unix и ldap живут вместе).

Чтобы наконец выразить мою точку зрения, у вас есть /etc/passwd, а вывод getent passwd, что не должно совпадать (ldap расширяет бэкэнд unix), поэтому вы знаете, какие пользователи существуют только на ldap. Наконец, у вас есть last : D, которая сообщит вам, кто и откуда входил в систему, помимо функции авторизации системного журнала для двойной проверки. Вы можете написать простой скрипт, который сообщит вам, какие пользователи ldap вошли в систему с этой информацией для каждого хоста.

ПРИМЕЧАНИЕ: если у вас есть дублированные пользователи в unix и ldap с одинаковыми идентификаторами, то вы сами :)

Как правило, нельзя. Вы можете попробовать реализовать его, чтобы некоторые атрибуты LDAP обновлялись каждый раз, когда пользователь входит в приложение и выходит из него, но это перебор. Исходя из вопроса, я предполагаю, что OpenLDAP используется в качестве центрального каталога, и пользователи с учетными данными, хранящимися в нем, входят в систему на нескольких Linux-машинах в вашей сети. Если это так, то вам нужно установить что-то вроде Палец а затем «пальцем» по каждой машине в сети, чтобы увидеть, кто вошел в систему.

Возможно, клиентские машины должны пройти аутентификацию через РАДИУС вместо этого - помимо аутентификации, он ведет учет.

Вы можете добиться этого с помощью LDAP + kerberos, но не каждое приложение, которое может войти в LDAP, может использовать kerberos для аутентификации.

Вы можете использовать FreeIPA, чтобы получить его в виде простого в использовании пакета.

Лично мне нравится, куда идет gWaldo, но, как сказал mfinni, мы можем говорить о машинах с Linux.

Это может быть излишним, но ... Barracuda Web Filter может это сделать, IIRC.

Я думаю, что вы можете сделать что-то подобное с веб-фильтром barracuda, который использует аутентификацию LDAP. IIRC барракуда ведет список всех, кто в настоящее время аутентифицирован для него. Я использовал его в среде AD, но он должен работать со всеми разновидностями LDAP.

Для нас команда:

users

сделали свое дело.

В нем перечислены учетные записи локальных пользователей, пользователей LDAP и SSH. Насколько я могу судить, он не сообщает только о том, что root вошел в систему. У нас есть Ubuntu 12.04 на клиентах и ​​на сервере.

У нас есть OpenLDAP, поддерживающий нашу аутентификацию через PAM и NSSwitch с установленными домашними каталогами NFS. Вероятно, важно, чтобы ваш /etc/idmapd.conf был отсортирован с помощью объявления домена. (до того, как наша организация сделала это, ls -l вернула бы владельца файла и группу как никто: никто на клиентах, но в то время)

Извините, что отвечаю на такой старый вопрос, но у меня была такая же проблема, и я пришел сюда, чтобы получить ответ, прежде чем я разобрался сам. Пожалуйста, не голосуйте против моего ответа, если это не сработает для вас.