Aqui, assumimos que o Nagios esteja instalado e funcional, com a autenticação habilitada (default).
Utilizamos neste cenário o
quickstart, encontrado em:
Se o Nagios e o
Apache foram instalados de forma diferente do demonstrado no
quickstart, talvez os arquivos estejam localizados em diretórios diferentes, porém, nada muda em relação à configuração, basta adaptar o path dos arquivos.
Primeiro, vamos configurar o Apache, que é o responsável em realizar a autenticação no AD.
Tenho o hábito de não substituir arquivos de configuração e sim renomeá-los (faça como preferir), então:
# mv /etc/httpd/conf.d/nagios.conf /etc/httpd/conf.d/nagios.conf.orig
Criamos um novo arquivo "nagios.conf" no mesmo local:
# vi /etc/httpd/conf.d/nagios.conf
E inserimos nele o conteúdo a seguir:
# Arquivo: /etc/httpd/conf.d/nagios.conf
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
# Autenticacao Active Directory
AuthBasicProvider ldap
AuthType Basic
AuthzLDAPAuthoritative off
# Mensagem da janela de autenticação
AuthName "Nagios - Active Directory Authentication"
# Caminho LDAP para a base do AD
AuthLDAPURL "ldap:// 10.100.1.2:3268/dc=pi4,dc=com,dc=br?sAMAccountName?sub?(objectClass=*)"
# Usuário que realiza as consultas no AD
AuthLDAPBindDN "cn=nagios,ou=nagios,dc=pi4,dc=com,dc=br"
# Senha do usuário acima (infelizmente ela fica explícita mesmo)
AuthLDAPBindPassword P@ssw0rd
# Grupo de usuários com permissão de acesso ao Nagios
Require ldap-group cn=nagiosusers,ou=nagios,dc=pi4,dc=com,dc=br
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
Options None
AllowOverride None
Order allow,deny
Allow from all
# Autenticacao Active Directory
AuthBasicProvider ldap
AuthType Basic
AuthzLDAPAuthoritative off
# Mensagem da janela de autenticação
AuthName "Nagios - Active Directory Authentication"
# Caminho LDAP para a base do AD
AuthLDAPURL "ldap:// 10.100.1.2:3268/dc=pi4,dc=com,dc=br?sAMAccountName?sub?(objectClass=*)"
# Usuário que realiza as consultas no AD
AuthLDAPBindDN "cn=nagios,ou=nagios,dc=pi4,dc=com,dc=br"
# Senha do usuário acima (infelizmente ela fica explícita mesmo)
AuthLDAPBindPassword P@ssw0rd
# Grupo de usuários com permissão de acesso ao Nagios
Require ldap-group cn=nagiosusers,ou=nagios,dc=pi4,dc=com,dc=br
</Directory>
# Fim do arquivo: /etc/httpd/conf.d/nagios.conf
Neste ponto, é necessário recarregar o Apache:
# service httpd reload
Pronto. O Apache já está pronto para autenticar os usuários no AD.
Agora configuraremos o arquivo do Nagios que determina os níveis de permissão de acesso.
Vamos fazer uma cópia do arquivo original:
# cp /usr/local/nagios/etc/cgi.cfg /usr/local/nagios/etc/cgi.cfg.orig
Editamos o arquivo:
# vi /usr/local/nagios/etc/cgi.cfg
E alteramos apenas as linhas necessárias:
# certifique-se que esta opção esteja setada para 1 pois ela determina que o acesso ao Nagios deve ser autenticado
use_authentication=1
# informar apenas os usuários que possuem permissão para visualizar informações do sistema (apenas os administradores neste cenário)
authorized_for_system_information=user1,user2
# informar apenas os usuários que possuem permissão para visualizar informações das configurações (apenas os administradores neste cenário)
authorized_for_configuration_information=user1,user2
# informar apenas os usuários que possuem permissão para executar comandos referentes ao sistema (apenas os administradores neste cenário)
authorized_for_system_commands=user1,user2
# informar os usuarios que tem permissao de visualizar os serviços (todos os usuários neste cenário)
authorized_for_all_services=user1,user2,user3,user4
# informar os usuarios que tem permissao de visualizar os hosts (todos os usuários neste cenário)
authorized_for_all_hosts=user1,user2,user3,user4
# informar os usuários que possuem permissão de executar comandos sobre os serviços (apenas os administradores neste cenário)
authorized_for_all_service_commands=user1,user2
# informar os usuários que possuem permissão de executar comandos sobre os hosts (apenas os administradores neste cenário)
authorized_for_all_host_commands=user1,user2
# informar os usuários com permissão read-only (apenas os operadores neste cenário)
authorized_for_read_only=user3,user4
Observe onde cada usuário está citado, para que a permissão seja dada corretamente.
Neste ponto, recarregamos o Nagios:
# service nagios reload
O Nagios também está pronto para autenticar seus usuários no AD e permitir acesso administrativo, ou
read-only, de acordo com cada permissão.