Encontre usuários atualmente logados usando o ldap?

2

Temos o Openldap configurado aqui e os usuários podem usar o ldap para fazer login em máquinas clientes. Mas alguma maneira de verificar os usuários atualmente conectados em máquinas usando o LDAP? Gostaria de saber qual usuário fez login em qual máquina usando o LDAP?

    
por nitins 14.09.2010 / 13:06

8 respostas

14

O AFAIK LDAP não implementa o gerenciamento de sessões - ele apenas fornece um serviço de diretório - e seus dados podem ser armazenados em cache em outro lugar. Também pode fornecer informações diferentes de autenticação. Portanto, não existe algo como "logado no LDAP" e não há como praticamente medi-lo.

Presumivelmente, você mantém sua implementação LDAP para que seus usuários possam acessar os aplicativos - você precisaria examinar esses aplicativos para determinar quem atualmente tem uma sessão aberta (assumindo que os aplicativos sejam stateful - HTTP não é).

    
por 14.09.2010 / 13:58
1

Citando o symcbean, "não existe algo conectado ao ldap". Mas existe algo como usuários que autenticam através do ldap.

Mais especificamente, quando você configura seu host para usar um back-end de autenticação, como o ldap, o Name Service Switch (nsswitch) pode (e provavelmente deve) armazenar em cache as informações do usuário para permitir o login no sistema. Na verdade, do meu ponto de vista, não importa se os dados estão sendo armazenados em cache, ainda são informações provenientes desse backend.

Os usuários que pertencem ao NIS, Unix ou backend do ldap têm um UID. Em um sistema configurado corretamente, o UID de um backend não deve corresponder aos de outro back-end (geralmente os backends unix e ldap convivem juntos).

Para finalizar meu argumento, você tem um /etc/passwd e a saída de getent passwd , que não deve corresponder (o ldap estende o unix backend), portanto você sabe quais usuários existem somente no ldap. Por último, você tem last : D, que vai te dizer quem logou quando de onde, além da autenticação do syslog facility para checar novamente. Você pode criar um script simples que informa quais usuários do ldap efetuaram login com essas informações por host.

NOTA: se você tem usuários duplicados em unix e ldap, com os mesmos IDs, você está sozinho:)

    
por 02.11.2010 / 05:21
1

Concordo em grande parte com a resposta da symcbean ( Localizar usuários atualmente conectados usando o ldap? ), mas ...

Você pode tentar analisar os logs de segurança do DC, mas isso retornará muitos dados. Dependendo do que você deseja fazer com os dados a longo prazo, pode valer a pena enviá-los para um banco de dados.

===

Não tenho certeza sobre o OpenLDAP, mas no AD, você pode definir a Diretiva de Grupo e / ou um script de login para ser executado (no Windows Batch):

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

Analise o nome de usuário ou nome de computador de FILE_LOCATION.txt ou: Salvar por nome de usuário por:

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

Da mesma forma, salve pelo nome de usuário com:

echo logon %username% %computername% %date% %time% >> \shared\path\%username%.txt
    
por 02.11.2010 / 18:14
0

Geralmente você não pode. Você poderia tentar implementá-lo, para que algum atributo LDAP seja atualizado toda vez que um usuário fizer o login e o logout de um aplicativo, mas isso é um exagero. A partir da pergunta, estou assumindo que o OpenLDAP é usado como um diretório central e os usuários com credenciais armazenadas nele fazem login em várias máquinas linux em sua rede. Se for esse o caso, é necessário instalar algo como dedo e, em seguida, "dedo" todas as máquinas na rede para ver quem está logado.

    
por 01.11.2010 / 12:18
0

Talvez as máquinas clientes devam autenticar via RADIUS em vez disso - faz contabilidade além da autenticação.

    
por 05.11.2010 / 21:35
0

Você pode consegui-lo usando LDAP + kerberos, mas nem todo aplicativo que pode efetuar logon no LDAP pode usar o kerberos para autenticação.

Você pode usar o FreeIPA para obtê-lo em um pacote fácil de usar.

    
por 06.11.2010 / 18:05
0
Pessoalmente, gosto de onde o gWaldo está indo, mas, como mfinni disse, podemos estar falando sobre máquinas linux.

Isso pode ser um exagero, mas ... um Barracuda Web Filter pode fazer isso, IIRC.

Acho que você pode fazer algo assim com um filtro da Web barracuda que usa a autenticação LDAP. IIRC o barracuda mantém uma lista de todos os que estão autenticados no momento. Eu usei em um ambiente AD, mas deve funcionar com todos os tipos de LDAP.

    
por 23.05.2011 / 11:49
0

Para nós, o comando:

users

fez o truque.

Ele lista logins de usuários locais, LDAP e SSH. Tanto quanto eu posso dizer que só não reporta se o root está logado. Temos o Ubuntu 12.04 nos clientes e no servidor.

Temos o OpenLDAP fazendo backup de nossa autenticação via PAM e NSSwitch com diretórios iniciais montados em NFS. É provavelmente importante que seu /etc/idmapd.conf seja resolvido com uma declaração de domínio é importante. (antes de nossa organização fazer isso, ls -l retornaria o proprietário e o grupo do arquivo como nobody: nobody em clientes, mas naquele momento)

Desculpe responder a uma pergunta tão antiga, mas eu tive o mesmo problema e acabei aqui por uma resposta antes de resolver o problema sozinha. Por favor, não baixe a minha resposta se isso não funcionar para você.

    
por 14.11.2013 / 08:06