中小型企业级 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记录拦截限制访问

相关文章
相关标签/搜索