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.
Graças ao Nagios ou Centreon entre outros, poderemos monitorizar isto de uma forma bastante simples e obter notificações em tempo real caso tenhamos alguma conta de utilizador afetada. Através do NRPE poderemos executar um script de PowerShell em qualquer máquina Windows que verificará o Diretório Ativo em busca de utilizadores com problemas. Se não tiveres ‘check_nrpe’ ou precisares de saber como instalar o agente necessário, visita este documento Nagios – Monitorizando con NRPE.
Baseamo-nos no script ‘lotp_check_ad_accounts.ps1’, que poderemos descarregar do Exchange Nagios, a partir desta mesma URL: https://exchange.nagios.org/directory/Plugins/Operating-Systems/Windows-NRPE/Check-Active-Directory-Accounts/details
Poderemos verificar:
- Contas desativadas –> AccountDisabled
- Contas de utilizador expiradas –> AccountExpired
- Contas de utilizador prestes a expirar –> AccountExpiring
- Contas inativas –> AccountInactive
- Contas 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!











































