
ナギオス – Active Directory のユーザーのステータスを確認する
Cuando tenemos bastantes usuarios en nuestra organización, o sobre todo, cuando son un poco topos, podemos intentar y controlar sus cuentas del Directorio Activo, para prevenir y monitorizar posibles fallos, これは, 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 – 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
- Cuentas con contraseñas caducadas –> PasswordExpired
- Cuentas que nunca le caducan sus contraseñas –>PasswordNeverExpires
Si queremos probarlo desde una PowerShell, deberemos ejecutar el comando con el siguiente formato:
[ソースコード]lotp_check_ad_accounts.ps1 AccountDisabled ‘dc=openservices,dc = ローカル’ subtree 2 3[/ソースコード]
Donde los argumentos anteriores serían, el primero el tipo de checkequeo que se hará, seguido de la cadena de búsqueda, el ámbito de la busqueda (pudiendo ser Base/OneLevel/Subtree) y en números, los valores máximos de resultados para un Warning y Critical.
Si modificamos la siguiente línea del script, podremos hacer un output de los usuarios afectados en cuestión,:
[ソースコード]$output=$state+&クォート;: &クォート;+$result.Count+&クォート; &クォート;+$action+&クォート;|&クォート;+$action+&クォート;=&クォート;+$result.Count+&クォート;;&クォート;+$maxWarn+&クォート;;&クォート;+$maxCrit[/ソースコード]
Por la siguiente:
[ソースコード]$output=$state+&クォート;: &クォート;+$result.Count+&クォート; &クォート;+$action+&クォート; &クォート;+$result+&クォート;|&クォート;+$action+&クォート;=&クォート;+$result.Count+&クォート;;&クォート;+$maxWarn+&クォート;;&クォート;+$maxCrit[/ソースコード]
まぁ! 開始! Editamos el fichero nsclient.ini como ya sabemos! debemos primero definir el alias y luego el script en cuestión que ejecutará:
[ソースコード][/設定/外部スクリプト/スクリプト]
check_cuentas = cmd /c echo scripts\\lotp_check_ad_accounts.ps1 $ARG1$ &クォート;$ARG2&クォート; subtree $ARG3$ $ARG4$; 出口 ($lastexticode) | powershell.exe –
[/設定/外部スクリプト/エイリアス]
check_cuentas = check_cuentas[/ソースコード]
ご覧のとおり, le podremos pasar 4 引数, 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. まぁ, 主題に, このシナリオでは, quedaría así definido el servicio que checheará en este caso las Cuentas bloqueadas, vamos a “Configuration” > “Services” > “Add” o clonamos uno y le indicamos los siguientes datos al menos:
- 形容: El nombre con el que le veremos desde la monitorización, definirá el checkeo realizado, この場合, ‘AD – Cuentas bloqueadas me valdrá’.
- テンプレート: 通常であれば, 「generic-active-service-custom」を選択します.
- チェックコマンド: コマンドのリストから選択します, 「check_nrpe」.
- 引数: ここでは、INIファイルで定義するエイリアスを入力する必要があります, en este documento pasaremos mediante NRPE el check ‘check_cuentas’. Y seguido de un ‘-a’ para pasarle argumentos, 次のようになります。: check_cuentas -a LockedOut “dc=openservices,dc = ローカル” 2 3
Y grabamos con “セーブ”! Cearemos tantos servicios como tipo de checkeos queramos hacer en nuestro entorno!
あ、まあ, いつも通り, Centreonデータをエクスポートしてエンジンを再起動すると, podremos ya desde “Monitoring” > “Status Details” comprobar cada servicio monitorizado, tendremos ya controladas y monitorizadas las cuentas de usuario de nuestro Active Directory con Nagios o Centreon! Evitaremos sustos indebidos, 真?? Espero os sea de utilidad, gracias a todos por compartir!