如何提升Nagios服務(wù)器安全
如何提升Nagios服務(wù)器安全?
Nagios是一種監(jiān)控軟件,能夠幫助用戶迅速了解主機(jī)和互聯(lián)網(wǎng)上出現(xiàn)的問題,并且可以將其配置為在任何網(wǎng)絡(luò)使用。在任何版本的Linux操作系統(tǒng)上安裝Nagios服務(wù)器都是非??焖俚倪^程,不過安全的安裝則要花費(fèi)一些功夫。本文將重點(diǎn)探討如何提高Nagios的安全性問題,而不會(huì)講解如何安裝Nagios的問題,因?yàn)橐呀?jīng)太多類似文章。
你可能會(huì)疑惑為什么需要考慮Nagios服務(wù)器的安全問題?因?yàn)槿绻鸑agios受到攻擊的話,黑客將獲取大量信息。下文的示例都是在Ubuntu環(huán)境進(jìn)行的,不過這些示例能夠幫助任何環(huán)境下的用戶提高Nagios服務(wù)器的安全性,因?yàn)榛靖拍钍且恢碌摹?/p>
Web界面
如果你按照互聯(lián)網(wǎng)上提供的快速安裝指南安裝Nagios,很可能只是安裝了web界面,因?yàn)镹agios使用Apache顯示出很多其他安全選項(xiàng)。
下面是Nagios web界面的apache配置的例子:
Options:ExecCGI
AllowOverride:None
Order allow:deny
Allow from:all
AuthName:"Nagios Access"
AuthType:Basic
AuthUserFile:/usr/local/nagios/etc/htpasswd.users
Require:valid-user
“Allow from”選項(xiàng)是用來明確只能向某些IP地址和/或網(wǎng)絡(luò)提供訪問權(quán)限的,上面例子中允許所有IP地址訪問該web界面。其他安全選項(xiàng)是用于身份驗(yàn)證的,“AuthType”定義了使用哪種身份驗(yàn)證類型,只有兩種類型可供選擇Basic或者Digest,基本驗(yàn)證(Basic)會(huì)將用戶密碼和用戶名作為純文本提交,而Digest驗(yàn)證的密碼則會(huì)作為MD5 digest提交,很明顯后者更加安全。
為了提高安全性我們需要進(jìn)行如下修改:
Options:ExecCGI
AllowOverride:None
Order allow:deny
Allow from:192.168.4.
AuthName:"Nagios Access"
AuthType:Digest
AuthDigestFile:/usr/local/nagios/etc/htpasswd.users
Require:valid-user
這個(gè)配置中,只有192.168.4.0網(wǎng)絡(luò)的電腦可以訪問該web界面,并且我們現(xiàn)在使用Digest驗(yàn)證取代了不安全的基本驗(yàn)證方法。
現(xiàn)在我們需要添加允許訪問web網(wǎng)絡(luò)的用戶以及密碼,使用下列命令來為digest驗(yàn)證添加新用戶:
- # htdigest -c /usr/local/nagios/etc/htpasswd.users realm username
Digest驗(yàn)證確實(shí)比Basic驗(yàn)證更加安全,不過保護(hù)用戶名和密碼安全最好的方法還是使用SSL。
進(jìn)行任何配置更改后都必須重新啟動(dòng)apache,命令如下:.
- # /etc/init.d/apache2 restart
最佳做法
本節(jié)將列舉出一些安裝Nagios服務(wù)器的最佳安全做法,具體如下:
· 不要以root身份運(yùn)行Nagios。需要有一個(gè)名為nagios的普通用戶,如果Nagios作為root運(yùn)行,那么當(dāng)Nagios受到攻擊時(shí),攻擊者就能夠?qū)τ脩粝到y(tǒng)為所欲為了。.
· 鎖定Check Result Directory。 確保只有nagios用戶擁有對(duì)check result directory的讀取/寫入權(quán)限,否則攻擊者將可能發(fā)送偽造的主機(jī)和服務(wù)檢查結(jié)果,該目錄通常位于這個(gè)位置:/usr/local/nagios/var/spool/checkresults。
· 在Command Definitions中使用完整路徑。當(dāng)定義命令時(shí),請(qǐng)明確完整的路徑,而不是與正在執(zhí)行的任何腳本或者二進(jìn)制相關(guān)的路徑。
· 保護(hù)遠(yuǎn)程代理安全。遠(yuǎn)程代理包括NRPE,、NSClient以及SNMP等,下文中我們將介紹保護(hù)NRPE遠(yuǎn)程代理的步驟。
保護(hù)遠(yuǎn)程代理(remote agent)
本節(jié)我們將研究如何保障NRPE安全的問題。該遠(yuǎn)程代理用于在遠(yuǎn)程主機(jī)上執(zhí)行檢查程序(檢查負(fù)載或者磁盤使用等),我們不會(huì)希望任何程序或者用戶能夠在遠(yuǎn)程機(jī)器上執(zhí)行命令,因此保障NRPE的安全性是非常重要的。
由于NRPE附帶有對(duì)TCP wrappers的支持,我們可以定義哪些主機(jī)允許訪問NRPE:
- /etc/hosts.allow
- nrpe:192.168.1.91
以上示例中,只有192.168.1.91可以在該主機(jī)上使用這個(gè)遠(yuǎn)程代理,你可以將你的Nagios客戶端IP地址取代192.168.1.91,請(qǐng)注意應(yīng)該同時(shí)用于你的Nagios服務(wù)器和客戶端。
NRPE絕不能作為root或者任何其他superuser來運(yùn)行,它只能作為nagios用戶組中的nagios用戶來運(yùn)行,可以在/etc/nagios/nrpe.cfg位置查看NRPE是否作為nagios運(yùn)行:
- part of /etc/nagios/nrpe.cfg
- nrpe_user=nagios
- nrpe_group=nagios
NRPE的另一部分也可能成為安全漏洞,即允許command arguments。我們當(dāng)然不希望看到攻擊者通過發(fā)送惡意arguments攻擊我們的系統(tǒng),確實(shí)有時(shí)候需要允許Nagios發(fā)送command arguments,但如果大部分時(shí)候不需要啟用此功能,那么一定要禁用。
禁用此功能需要編輯/etc/nagios/nrpe.cfg 并確保你執(zhí)行下列命令:
- dont_blame_nrpe=0
用戶進(jìn)行任何配置更改后都必須重新啟動(dòng)nrpe.cfg,想要了解更多關(guān)于NRPE安全的信息請(qǐng)閱讀數(shù)據(jù)包源文件中的SECURITY文件。
保護(hù)通信渠道安全
在網(wǎng)絡(luò)進(jìn)行通信時(shí),必然要涉及到通信安全問題,這也正是SSL的用武之地。
NRPE可以允許你啟用SSL功能,但是數(shù)據(jù)包必須已經(jīng)配置為–enable-ssl option(啟用SSL選項(xiàng)),如果NRPE配置為使用SSL功能,請(qǐng)注意客戶端和服務(wù)器都必須同時(shí)啟用。.
下一步我們還需要配置SSL以提高其安全性,這樣才不至于發(fā)送簡(jiǎn)單的純文本web界面密碼:
- # openssl genrsa -des3 -out server.3des-key 1024
- # openssl rsa -in server.3des-key -out server.key
- # openssl req -new -key server.key -x509 -out server.crt -days 365
- # chmod 600 server.key
- # rm server.3des-key
- # mv server.crt /etc/ssl/
- # mv server.key /etc/ssl/private/
現(xiàn)在我們已經(jīng)生成了證書,需要告訴Apache來使用這些證書。
在Apache配置中,需要添加SSLRequireSSL選項(xiàng),例如:
- SSLRequireSSL
- Options:ExecCGI
- AllowOverride:None
- Order allow:deny
- Allow from:192.168.4.
- AuthName:"Nagios Access"
- AuthType:Digest
- AuthDigestFile:/usr/local/nagios/etc/htpasswd.users
- Require:valid-user
請(qǐng)記住重新啟動(dòng)Apache:
- # /etc/init.d/apache2 restart
現(xiàn)在Nagios服務(wù)器已經(jīng)很安全了,下一步就是即使進(jìn)行安全更新。Nagios服務(wù)器安全的提升就講述到這里了。
【編輯推薦】