中小型企業級 IPS 部署

《構建基於Snort+Guardian+Iptables的IPS》

2020年的第三天,依舊如往常寫文章,分享最近作的項目繼《中小型企業級防火牆部署》以後的另外一部分《構建基於Snort+Guardian+Iptables的IPS》,後面會將整個完整項目開源分享出來,歡迎你們一塊兒交流分享html

IPS

IPS簡介

IPS是英文「Intrusion Prevention System」的縮寫,中文意思是「入侵防護系統」,是一種網絡安全設備或應用軟件,除了具備IDS的監控檢測功能以外,還具備深度感知檢測數據流量,對惡意報文進行丟棄,實現實時告警和阻斷的入侵防護系統。web

IPS功能組成

數據採集:採集和捕獲流量數據
入侵檢測:分析流量和日誌數據,發現安全異常行爲併發出警報,常見的有Snort、Suricata、Bro
結果展現:用於分析IDS警報並進行友好展現,常見的IDS警報分析工具備Snorby、Sguil、Base
安全防護:主動響應安全事件,阻斷攻擊者入侵行爲,經常使用iptables

IDS

IDS是英文「Intrusion Detection Systems」的縮寫,中文意思是「入侵檢測系統」,是一種網絡安全設備或應用軟件,能夠依照必定的安全策略,對網絡、系統的運行情況進行監視,儘量發現各類攻擊企圖、攻擊行爲或者攻擊結果,併發出安全警報。安全

IDS通用系統模型

(1)數據收集器(又稱探測器):主要負責收集數據。探測器的輸入數據流包括任何可能包含入侵行爲線索的系統數據,如各類網絡協議數據包、系統日誌文件和系統調用記錄等。探測器將這些數據收集起來,而後再發送到檢測器進行處理。
(2)檢測器(又稱分析器或檢測引擎):負責分析和檢測入侵的任務,並向控制器發出警報信號。
(3)知識庫:爲檢測器和控制器提供必需的數據信息支持。這些信息包括:用戶歷史活動檔案或檢測規則集合等。
(4)控制器:根據從檢測器發來的警報信號,人工或自動地對入侵行爲作出響應。服務器

IDS分類

IDS根據兩種方法進行分類:按照數據來源、按照入侵檢測策略。網絡

按照數據來源分類

基於網絡的入侵檢測系統(NIDS)
基於主機的入侵監測系統(HIDS)
分佈式入侵檢測系統(DIDS)

按照入侵檢測策略分類

濫用檢測
異常檢測
完整性分析

環境搭建

企業拓撲

環境準備

DMZ區:CentOS7 --- IP:192.168.9.100 Gateway:192.168.9.254
防火牆:kali --- ip1:211.67.93.254;ip2:192.168.9.254;ip3:192.168.33.254;
外網主機:win2003 --- IP:211.67.93.100  Gateway:211.67.93.254
內網主機:win2003 --- IP:192.168.33.100 Gateway:192.168.33.254

IDS Snort

Snort簡介

在1998年,Martin Roesch用C語言開發了開放源代碼(Open Source)的入侵檢測系統Snort。直至今天,Snort已發展成爲一個具備多平臺(Multi-Platform)、實時(Real-Time)流量分析、網絡IP數據包(Pocket)記錄等特性的強大的網絡入侵檢測/防護系統(Network Intrusion Detection/Prevention System),即NIDS/NIPS。Snort符合通用公共許可(GPL——GNU General Pubic License),在網上能夠經過免費下載得到Snort,而且只須要幾分鐘就能夠安裝並開始使用。
Snort有三種工做模式:嗅探器、數據包記錄器、網絡入侵檢測系統。嗅探器模式僅僅是從網絡上讀取數據包並做爲接二連三的流顯示在終端上。數據包記錄器模式把數據包記錄到硬盤上。網絡入侵檢測模式是最複雜的,並且是可配置的。咱們可讓snort分析網絡數據流以匹配用戶定義的一些規則,並根據檢測結果採起必定的動做。併發

Snort安裝

安裝系統Kali
Snort安裝方式通常分爲源碼編譯安裝與包管理器安裝兩種方式。使用源碼下載會比較複雜,可是文檔齊全,debug方便一些;而包管理器安裝很是方便,一條命令解決全部問題分佈式

apt-get install snort

Snort配置

設置規則路徑

修改配置文件工具

/etc/snort/snort.conf

查看規則
測試


PS:Linux默認安裝以後Snort日誌路徑等都會默認配置好,無需麻煩配置

Snort啓動

snort -i eth1 -c /etc/snort/snort.conf -A fast -l /var/log/snort

Snort測試

查看默認Snort ICMP規則
ui


測試外網ping DMZ區域Web服務器

查看IDS日誌記錄

分析日誌可知,Snort容許ICMP經過,而且記錄了ICMP的相關數據。

Guardian

Guardian實現Snort+Iptables聯動效應

Guardian下載

Guardian須要去官網下載

http://www.chaotic.org/guardian/

Guardian安裝

下載以後解壓

tar -zxvf guardian-1.7.tar.gz

移動guardian到snort下 && 建立名單 && 日誌

→ Qftm ← :~/桌面# mv guardian-1.7 /etc/snort/
→ Qftm ← :~/桌面# touch /etc/snort/guardian-1.7/guardian.ignore 建立白名單
→ Qftm ← :~/桌面# touch /etc/snort/guardian-1.7/guardian.target  建立黑名單
→ Qftm ← :~/桌面# touch /var/log/snort/guardian.log    guardian的日誌

複製block腳本

→ Qftm ← :/etc/snort/guardian-1.7# cp scripts/iptables_block.sh /usr/local/bin/guardian_block.sh
→ Qftm ← :/etc/snort/guardian-1.7# cp scripts/iptables_unblock.sh /usr/local/bin/guardian_unblock.sh

此操做是爲了知足在guardian.pl中設置的\(blockpath和\)unblockpath路徑


PS:

(1)Guardian的執行文件 guardian.pl 
(2)Guardian封鎖IP所要調用的外部程序 scripts/iptalbes_block.sh 
(3)Guardian解除對某一IP封鎖時,所須要調用的外部程序scripts/iptalbes_unblock.sh

Guardian配置

配置guardian.conf

Interface       eth1
HostGatewayByte  1
LogFile         /var/log/snort/guardian.log
AlertFile       /var/log/snort/alert              
IgnoreFile      /etc/snort/guardian-1.7/guardian.ignore
TargetFile      /etc/snort/guardian-1.7/guardian.target
TimeLimit    86400

PS:

TimeLimit:在多少秒後解除對IP的封鎖,86400秒也就是24小時以後解除對IP的封鎖。
AlertFile:警報信息,前提是snort以alert_fast輸出報警信息

配置guardian_block.sh和guardian_unblock.sh規則

Guardian啓動

→ Qftm ← :/etc/snort/guardian-1.7# perl guardian.pl -c guardian.conf

IPS測試

外網攻擊者對Web服務器進行攻擊

IPS檢測&攔截

IPS檢測

IPS攔截

由上可知,外部攻擊者被IPS記錄攔截限制訪問

相關文章
相關標籤/搜索