CGI中的身份驗證和授權
介紹
本文檔描述了Nagios Core CGI如何決定誰有權查看監視和配置信息,以及誰可以通過Web界面向Nagios Core守護程序提交命令。
定義
在繼續之前,重要的是要了解經過身份驗證的用戶和經過身份驗證的聯系人的含義和區別:
- 經過身份驗證的用戶是指已使用用戶名和密碼向Web服務器進行身份驗證并被授予訪問Nagios Core Web界面訪問權限的用戶。
- 經過身份驗證的聯系人是經過身份驗證的用戶,其用戶名與聯系人定義的簡稱匹配。
設置經過身份驗證的用戶
假設您已按照快速入門指南中的說明配置了Web服務器,則在訪問Nagios Core CGI之前,應該要求您進行身份驗證。您還應該擁有一個可以訪問CGI的用戶帳戶(nagiosadmin)。
當您定義更多聯系人以接收主機和服務通知時,您很可能希望讓他們訪問Nagios Core Web界面。您可以使用以下命令來添加其他可以向CGI進行身份驗證的用戶。將替換為要添加的實際用戶名。在大多數情況下,用戶名應與已定義的聯系人的簡稱匹配。
htpasswd /usr/local/nagios/etc/htpasswd.users <用戶名>
在CGI中啟用身份驗證/授權功能
接下來需要做的是確保將CGI配置為使用身份驗證和授權功能來確定用戶可以訪問哪些信息和/或命令。通過將CGI配置文件中的use_authentication變量設置為非零值來完成此操作。例:
use_authentication = 1
好的,您現在已經完成了在CGI中設置基本身份驗證/授權功能的工作。
CGI信息的默認權限
那么,啟用身份驗證/授權功能后,用戶默認在CGI中具有哪些默認權限?
| CGI數據 | 經過身份驗證的聯系人* | 其他經過身份驗證的用戶* |
|---|---|---|
| 主機狀態信息 | 是 | 沒有 |
| 主機配置信息 | 是 | 沒有 |
| 主機歷史 | 是 | 沒有 |
| 主機通知 | 是 | 沒有 |
| 主機命令 | 是 | 沒有 |
| 服務狀態信息 | 是 | 沒有 |
| 服務配置信息 | 是 | 沒有 |
| 服務歷史 | 是 | 沒有 |
| 服務通知 | 是 | 沒有 |
| 服務命令 | 是 | 沒有 |
| 所有配置信息 | 沒有 | 沒有 |
| 系統/過程信息 | 沒有 | 沒有 |
| 系統/過程命令 | 沒有 | 沒有 |
- 授權查看服務狀態信息
- 授權查看服務配置信息
- 授權查看服務的歷史記錄和通知
- 授權發布服務命令
對于經過身份驗證的聯系人[\,](https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/cgiauth.html#definitions)*將為其作為聯系人的每個**主機**(但對于不是其聯系人的主機)授予以下權限…
- 授權查看主機狀態信息
- 授權查看主機配置信息
- 授權查看主機的歷史記錄和通知
- 授權發布主機命令
- 授權查看主機上所有服務的狀態信息
- 授權查看主機上所有服務的配置信息
- 授權查看主機上所有服務的歷史記錄和通知信息
- 授權為主機上的所有服務發出命令
重要的是要注意,默認情況下,沒有人被授權進行以下操作…
- 通過showlog CGI查看原始日志文件
- 通過擴展信息CGI查看Nagios過程信息
- 通過命令CGI發出Nagios過程命令
- 通過配置CGI查看主機組,聯系人,聯系人組,時間段和命令定義
毫無疑問,您將要訪問此信息,因此,您將必須為自己(可能還有其他用戶)分配其他權限,如下所述。
向CGI信息授予其他權限
您可以通過將經過身份驗證的聯系人或其他經過身份驗證的用戶添加到CGI配置文件中的各種授權變量中,來授予其對CGI中其他信息的權限。我意識到,可用選項不允許真正明確特定權限,但是總比沒有好。
通過將用戶添加到CGI配置文件中的以下變量中,可以向用戶授予其他授權…
- authorized_for_system_information
- authorized_for_system_commands
- authorized_for_configuration_information
- authorized_for_all_hosts
- authorized_for_all_host_commands
- authorized_for_all_services
- authorized_for_all_service_commands
CGI授權要求
如果您對訪問CGI中各種信息所需的授權感到困惑,請按照此處所述閱讀每個CGI 的“ 授權要求”部分。
安全的Web服務器上的身份驗證
如果您的Web服務器位于安全域中(即,在防火墻后面),或者您使用的是SSL,則可以定義可用于訪問CGI的默認用戶名。這是通過在CGI配置文件中定義default_user_name選項來完成的。通過定義可以訪問CGI的默認用戶名,您可以允許用戶訪問CGI,而不必向Web服務器進行身份驗證。您可能要使用它來避免使用基本的Web身份驗證,因為基本身份驗證會通過Internet以明文形式傳輸密碼。
重要說明:待辦事項不,除非你正在運行一個安全的Web服務器,并確保每個人誰有權訪問的的CGI已經以某種方式被驗證定義默認的用戶名。如果定義此變量,則未通過Web服務器身份驗證的任何人都將繼承您分配給該用戶的所有權限!
Nagios Core中文使用教程
推薦文章: