Nagios – Verificando o status dos usuários no Ative Directory
Quando temos bastantes utilizadores na nossa organização, ou sobretudo, quando são um pouco distraídos, podemos tentar controlar as suas contas do Active Directory, para prevenir e monitorizar possíveis falhas, Isso é, podremos controlar si las cuentas de usuario están deshabilitadas, han caducado sus contraseñas o están cerca de caducar, así como si han llegado a bloquearse, entre otras más opciones.
Gracias a Nagios o Centreon entre otros, podremos monitorizar esto de una forma bastante sencilla y obtener notificaciones en tiempo real en caso que tengamos alguna cuenta de usuario afectada. Mediante NRPE podremos ejecutar un script de PowerShell en cualquier máquina Windows que checkeará el Directorio Activo en búsqueda de usuarios con problemas. Si no tienes ‘check_nrpe’ o necesitas saber cómo instalar el agente necesario, visita este documento Nagios – Monitorizando con NRPE.
Nos basamos en el script ‘lotp_check_ad_accounts.ps1’, que podremos descargar de Exchange Nagios, desde esta misma URL: https://exchange.nagios.org/directory/Plugins/Operating-Systems/Windows-NRPE/Check-Active-Directory-Accounts/details
Podremos verificar:
- Cuentas deshabilitadas –> AccountDisabled
- Cuentas de usuario caducadas –> AccountExpired
- Cuentas de usuario a punto de caducar –> AccountExpiring
- Cuentas inactivas –> AccountInactive
- Cuentas bloqueadas –> LockedOut
- Contas com palavras-passe expiradas –> PasswordExpired
- Contas cujas palavras-passe nunca expiram –>PasswordNeverExpires
Se quisermos testar isto a partir de um PowerShell, devemos executar o comando com o seguinte formato:
[Código-fonte]lotp_check_ad_accounts.ps1 AccountDisabled 'dc=openservices',dc=local’ subtree 2 3[/Código-fonte]
Onde os argumentos anteriores seriam, o primeiro o tipo de verificação que será feito, seguido da cadeia de pesquisa, o âmbito da pesquisa (podendo ser Base/OneLevel/Subtree) e em números, os valores máximos de resultados para um Aviso e Crítico.
Se modificarmos a seguinte linha do script, poderemos gerar uma saída dos utilizadores afetados em questão,:
[Código-fonte]$output=$state+&Quot;: &Quot;+$result.Count+&Quot; &Quot;+$action+&Quot;|&Quot;+$action+&Quot;=&Quot;+$result.Count+&Quot;;&Quot;+$maxWarn+&Quot;;&Quot;+$maxCrit[/Código-fonte]
Por esta:
[Código-fonte]$output=$state+&Quot;: &Quot;+$result.Count+&Quot; &Quot;+$action+&Quot; &Quot;+$result+&Quot;|&Quot;+$action+&Quot;=&Quot;+$result.Count+&Quot;;&Quot;+$maxWarn+&Quot;;&Quot;+$maxCrit[/Código-fonte]
Poço! Começou! Editamos o ficheiro nsclient.ini como já sabemos! debemos primero definir el alias y luego el script en cuestión que ejecutará:
[Código-fonte][/configurações/scripts externos/scripts]
check_cuentas = cmd /c echo scripts\\lotp_check_ad_accounts.ps1 $ARG1$ &Quot;$ARG2&Quot; subtree $ARG3$ $ARG4$; sair ($lastexticode) | powershell.exe –
[/configurações/scripts externos/alias]
check_cuentas = check_cuentas[/Código-fonte]
Como podemos ver, le podremos pasar 4 Argumentos, aún que cada uno puede hacer como quiera! Recordar reiniciar el servicio NSClient ++ tras la modificación del fichero de configuración.
Y luego ya bastará con crear el Servicio que monitorizará cada checkeo sobre los usuarios de nuestro Directorio Activo. Creamos este servicio como es habitual y lo enlazaremos al servidor que ejecutará el script de PowerShell, usaremos el comando chech_nrpe y en mi caso no tengo definidos los argumentos por separado, podremos meterle el churro con todos directamente, o definir el comando check_nrpe para que admita argumentos. Poço, para o assunto, en este escenario, quedaría así definido el servicio que checheará en este caso las Cuentas bloqueadas, vamos a “Configuration” > "Serviços" > “Add” o clonamos uno y le indicamos los siguientes datos al menos:
- Descrição: El nombre con el que le veremos desde la monitorización, definirá el checkeo realizado, Neste caso, ‘AD – Cuentas bloqueadas me valdrá’.
- Modelo: Normalmente, selecionamos 'generic-active-service-custom'.
- Comando Check: Selecionamos da lista de comandos, 'check_nrpe'.
- Argumentos: Devemos preencher aqui o alias que definimos no ficheiro INI, en este documento pasaremos mediante NRPE el check ‘check_cuentas’. Y seguido de un ‘-a’ para pasarle argumentos, ficaria da seguinte forma: check_cuentas -a LockedOut “dc=openservices,dc=local” 2 3
Y grabamos con “Salvar”! Cearemos tantos servicios como tipo de checkeos queramos hacer en nuestro entorno!
Oh, bem, como de costume, se exportarmos os dados do Centreon e reiniciarmos o engine, podremos ya desde “Monitoring” > “Status Details” comprobar cada servicio monitorizado, teremos já controladas e monitorizadas as contas de utilizador do nosso Active Directory com Nagios ou Centreon! Evitaremos sustos indevidos, verdadeiro?? Espero que vos seja útil, gracias a todos por compartir!












































