轉(zhuǎn)帖|行業(yè)資訊|編輯:龔雪|2016-06-23 09:59:55.000|閱讀 340 次
概述:本文將會介紹在入侵檢測技術(shù)系統(tǒng)(Intrusion Detection )中,如何通過使用相關(guān)工具軟件,進(jìn)行系統(tǒng)即時消息推送的設(shè)置。本文將介紹一種叫做Monit的新工具,以及兩個常用軟件Pushover和Slack。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
近日,來自Gartner公司(一家從事信息技術(shù)研究和分析的IT公司)的最新研究成果向我們展示了APM(應(yīng)用程序管理系統(tǒng))的全貌;同時,近些年來,人們已經(jīng)逐漸意識到了維護(hù)APM系統(tǒng)安全的重要性。這不禁就會讓我們聯(lián)想到企業(yè)應(yīng)用管理服務(wù)商AppDynamics公司提供的高效APM產(chǎn)品。
今年,信息安全公司Inversoft曾發(fā)表了一系列的安全文章,統(tǒng)稱為《2016用戶數(shù)據(jù)安全指南》。本文就是該指南中關(guān)于介紹服務(wù)器安全連載系列中的第10篇。
雖然大部分的網(wǎng)絡(luò)服務(wù)器都不支持用戶頻繁地進(jìn)行登錄和注銷,但當(dāng)有用戶登錄到網(wǎng)絡(luò)服務(wù)器中時,作為管理員,你必須在第一時間就要獲得通知,知曉該用戶的情況。有很多方法可以做到這一點。接下來,我們將會介紹一種叫做Monit的消息推送工具,來幫助服務(wù)器管理員實現(xiàn)這一目的。你可通過Monit來瀏覽一些系統(tǒng)日志文件,從中獲得一些包含特定文檔的消息;同時,Monit會根據(jù)這些消息的安全性,向系統(tǒng)發(fā)出警報。安裝Monit的第一步是:在系統(tǒng)的root命令窗口下,執(zhí)行下列代碼:
$ apt-get install monit
在安裝完成后,你可以創(chuàng)建一個系統(tǒng)配置文件,來監(jiān)控SSH的登錄狀態(tài)。同時需要將之前創(chuàng)建的配置文件復(fù)制粘貼到路徑為/etc/monit/conf.d/ssh-logins的文件夾下:
check file ssh_logins with path /var/log/auth.log
# Whitelist IPs here if you want # ignore match "/etc/monit/whitelist_ips.regex" if match "Accepted keyboard-interactive/pam" then
該配置文件要求Monit必須要時刻監(jiān)控著文件/var/log/auth.log;同時,一旦Monit檢測到含有“Accepted keyboard-interactive/pam”字樣的命令行,那么它就會立刻報警。在你完成了上述的兩個步驟之后,SSH系統(tǒng)就會向文件中增加一條與上述配置相匹配的日志記錄。如果你沒有開啟雙重身份驗證功能,或是僅僅使用密鑰驗證方式,那么你的配置信息就需要進(jìn)行修改,必須與字符串“Accepted publickey”相一致。
你也可以撤銷白名單上的某些特定IP地址的匹配設(shè)置,同時創(chuàng)建一個/etc/monit/whitelist_ips.regex文件。該文件將會包含為白名單上的每一個IP地址單獨設(shè)置的命令行語句。
編譯/etc/monit/monitrc文件是整個配置過程的最后一步。向配置文件中加入帶有能向管理員發(fā)送報警郵件的代碼。這一配置過程會根據(jù)你所使用的SMTP電子郵件服務(wù)器、SMTP服務(wù)器要求的驗證方式以及你的電子郵件地址等的不同,而出現(xiàn)一些變化。在下面的示例中,我所使用的是自己的電郵地址,以及Sendgrid公司提供的郵件服務(wù)器。
set mailserver smtp.sendgrid.net port 587 username "<sendgrid-username>" password "<sendgrid-password>" using tlsv12 set brian@inversoft.com not on { instance, action }
其中的第二行代碼是給Monit下達(dá)一個指令,即:只要系統(tǒng)發(fā)出警報,都必須在第一時間以郵件的方式通知我,同時要忽略我自行設(shè)置的警報。如果你選擇使用Monit來執(zhí)行系統(tǒng)監(jiān)控、系統(tǒng)重啟等任務(wù)時,上述的設(shè)置將會大大減少你所收到的垃圾郵件的數(shù)量。
你肯定想要在第一時間就接到來自Monit的消息通知。在系統(tǒng)默認(rèn)的情況下,Monit每2分鐘進(jìn)行一次檢查。如果覺得這一周期過長的話,你可以修改其默認(rèn)設(shè)置,將檢查周期改為5秒。配置代碼就是/etc/monit/monitrc 文件的第一行代碼,如下所示:
set daemon 5
最后,重啟Monit,它就會執(zhí)行你所修改的配置了。相關(guān)代碼是:
$ service monit restart
此外,我還想說的是,你還可以讓Monit給你的移動終端設(shè)備或Slack,發(fā)送即時消息通知。如果想要接收推送通知,你需要使用Pushover服務(wù)器。同時,你需要對/etc/monit/conf.d/ssh-logins文件中的最后一行代碼進(jìn)行修改,將原先的代碼改為:
if match "Accepted keyboard-interactive/pam" then exec "/etc/monit/monit-slack-pushover.rb"
之后,將這個Ruby腳本拷貝到/etc/monit/monit-slack-pushover.rb文件中:
#!/usr/bin/ruby require 'net/https' require 'json' slack_webhook_url="" slack_enabled=true pushover_application="" pushover_user="" pushover_enabled=true def log(message) open('/var/log/monit.log', 'a') { |f| f.puts message } end if slack_enabled begin uri = URI.parse(slack_webhook_url) Net::HTTP.start(uri.host, uri.port, {use_ssl: true}) { |http| request = Net::HTTP::Post.new(uri.request_uri, {'Content-Type' => 'application/json'}) request.body = { :text => "[#{ENV['MONIT_HOST']}] #{ENV['MONIT_SERVICE']} - #{ENV['MONIT_DESCRIPTION']}" }.to_json response = http.request(request) log("Response from Slack [#{response.code}] [#{response.body}]") } rescue Exception => e log("Exception while calling Slack [#{e.message}]") end end if pushover_enabled begin uri = URI.parse("//api.pushover.net/1/messages.json") Net::HTTP.start(uri.host, uri.port, {use_ssl: true}) { |http| request = Net::HTTP::Post.new(uri.request_uri, {'Content-Type' => 'multipart/form-data'}) request.set_form_data(token: pushover_application, user: pushover_user, message: "[#{ENV['MONIT_HOST']}] #{ENV['MONIT_SERVICE']} - #{ENV['MONIT_DESCRIPTION']}") response = http.request(request) log("Response from Pushover [#{response.code}] [#{response.body}]") } rescue Exception => e log("Exception while calling Pushover [#{e.message}]") end end
與此同時,你必須對文件頂部的Pushover和Slack工具變量,進(jìn)行配置,使其能正常運行。在使用Pushover集成工具時,你需要創(chuàng)建一個Pushover賬號和Pushover應(yīng)用程序。Pushover應(yīng)用程序的創(chuàng)建視圖如下所示:
之后,給你的Pushover應(yīng)用程序起個名字,加入一定的描述信息以及相應(yīng)的URL。
從“類型選擇框”中選擇“Script”選項。
在創(chuàng)建完成后,Pushover應(yīng)用程序會給你提供一個與帳戶對應(yīng)的ID。你需要將應(yīng)用程序的編譯代碼和用戶ID分別加入到pushover_application和pushover_user兩個變量中。在腳本中,將pushover_enabled選項改為“true”,進(jìn)而激活Pushover功能。
對于Slack,相關(guān)的配置步驟如下:
為了確保你在上述的Ruby腳本中所做的配置,能夠正確運行,你必須在進(jìn)行配置前,就要安裝好Ruby;同時,也要確保在輸入下面的代碼后,該腳本能夠運行:
$ apt-get install ruby $ chmod +x /etc/monit/monit-slack-pushover.rb
最后,輸入下列代碼,重啟Monit:
$ service monit restart
上述所有的配置步驟就是AppDynamics公司提供的APM系統(tǒng)產(chǎn)品的配置過程。我想要強調(diào)的是,根據(jù)Gartner公司發(fā)布的,關(guān)于APM系統(tǒng)的全面介紹,再次提醒我們應(yīng)當(dāng)對APM引起重視。
本文來源:360安全播報
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn