1. 介绍
IDS(入侵检测系统):入侵检测系统是一种根据特定的安全策略监视网络或系统的运行状态并试图检测可能的各种攻击企图、攻击或攻击的网络安全设备或应用程序。结果,发出安全警告。
IPS(入侵防御系统):除了IDS的监控和检测功能外,入侵防御系统还可以深度感知和检测数据流量,丢弃恶意数据包,并检测到这些异常或有害的网络行为。
NSM:网络安全监控系统,用于收集、发现和分析网络安全数据。 IDS 通常是其组件之一。
IPS入侵防御系统在IDS入侵检测系统的基础上,增加了事件处理和安全防护能力,能够主动响应安全事件。
2. 分类
2.1. IDS分类
IDS 根据两种方法进行分类:按数据源分类和按入侵检测策略分类。
2.1.1. 按照数据来源分类
基于主机的入侵检测系统(HIDS) 基于网络的入侵检测系统(NIDS) 分布式入侵检测系统(DIDS)
2.1.2. 按照入侵检测策略分类
欺诈检测异常检测完整性分析
2.2. IPS功能组成
数据收集:收集和捕获流量数据。 入侵检测:分析流量和日志数据以检测异常安全行为并发出警报。 结果显示:用于分析IDS警报并以易于理解的方式显示它们。常见的IDS警报分析工具有Snorby、Sguil、Base等安全防御工具。它主动响应安全事件并采取丢弃数据包等措施来防止异常网络行为,例如与iptables 结合使用时。
3. Suricata NIDS介绍
Suricata是一个多线程入侵检测系统,支持IDS和IPS。与传统的Snort相比,Suricata的多线程和模块化设计使其在效率和性能上都超越了原始的Snort。这是一项CPU 密集型且详尽的数据包检查工作。分成多个并发任务并行完成。这种并行检测可以充分利用多核硬件来提高入侵检测系统的吞吐量,从而在数据包的详细检测中获得更好的效果。此外,Suricata兼容现有的Snort规则签名,增加了对IPv6的支持,逐渐成为传统Snort入侵检测系统的替代品。 (开源)
4. 安装Suricata
4.1. Yum安装Suricata
EPEL 存储库适用于RedHat Enterprise Linux 7 和CentOS 7。
登录后复制
yum 安装epel-release -y
yum 安装suricata-y
1.2.
4.2. 源码安装Suricata
4.2.1. 预安装要求
仅限CentOS 6:CentOS 6 需要EPEL 软件包存储库。
登录后复制
yum 安装epel-release -y
1.
在构建Suricata 之前,请确保通过运行以下命令安装所有依赖项:
登录后复制
sudo yum -y install gcc libpcap-devel pcre-devel libyaml-devel 文件开发\\
zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make \\
libnetfilter_queue-devel lua-devel
1.2.3.
4.2.2. 下载和构建Suricata
登录后复制
安装yum -y wget
wget http://www.openinfosecfoundation.org/download/suricata-3.1.tar.gz
tar -xvzf suricata-3.1.tar.gz
CD Surikata-3.1
1.2.3.4.5.6。
不使用IPS 功能进行编译(默认IDS)
登录后复制
./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var
1.
使用IPS 功能进行编译
登录后复制
./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var –enable-nfqueue
1.
常规配置选项
登录后复制
–禁用-gccmarch-native
1.
不要针对二进制文件所针对的硬件进行优化。如果您的二进制文件是可移植的或者您在虚拟机上使用Suricata,请添加此标志。
登录后复制
–前缀=/usr/
1.
将Suricata 二进制文件安装到/usr/bin/。默认/usr/local/
登录后复制
–sysconfdir=/等
1.
将Suricata 配置文件安装到/etc/suricata/。默认/usr/local/etc/
登录后复制
–localstatedir=/var
1.
配置Suricata 以记录到/var/log/suricata/。默认/usr/local/var/log/suricata
登录后复制
–启用lua
1.
使Lua支持发现和输出。
登录后复制
–启用geopip
1.
启用GeoIP 对发现的支持。
登录后复制
–禁用生锈
1.
禁用Rust 支持。当Rustc/cargo 可用时,Rust 支持默认启用。
登录后复制
创建安装配置
1.
将运行正常的“make install”,并自动创建/设置所有必需的目录和suricata.yaml。
登录后复制
创建安装规则
1.
将运行常规“make install”以自动下载并设置Suricata 中可用的新威胁的最新规则集。
登录后复制
完全安装
1.
结合上述所有内容(安装配置和安装规则),Suricata 已准备好运行(配置和设置)。
至此默认安装完成,可以直接启动。
5. 优化配置
Suricata 配置文件路径为/etc/suricata/suricata.yaml。
登录后复制
sudo vim /etc/suricata/suricata.yaml
1.
您应该注意以下重要参数:
HOME_NET:指定Suricata监控的本地网络,可以根据自己的网络情况进行修改。
登录后复制
HOME_NET: \'[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]\’
1.
EXTERNAL_NET 变量!$HOME_NET 表示本地网络以外的网络。
default-log-dir:日志文件的存储路径。默认值为/var/log/suricata。
输出:输出选项中有很多配置选项,例如警告、检测到的数据包、生成的结果等,您可以根据自己的需要进行配置。
fast.log:默认警告输出文件。 eve.json:JSON格式文件输出。 Unified2.alert:数据包输出文件。以二进制格式存储整个数据包。 http.log:HTTP 日志,包括HTTP 请求、HOST 字段、URI 字段和用户代理字段。 syslog:此选项确定是否将Suricata 警告输出到syslog 文件。 Drop.log:当Suricata工作在IPS模式时,可以使用丢弃操作规则,并且丢弃的数据包信息保存在Drop.log文件中。
max-pending-packets:设置Suricata 可以同时处理的数据包数量。最小值为1。最大值取决于内存的大小。设置较大的值会改善默认值。 1024.
default-packet-size:限制处理的每个数据包的大小。默认值为1514,这也是TCP数据包的最大长度(如果数据超过此长度,则使用TCP数据包重组技术)。
6. 启动Suricata
开始
登录后复制
suricata -c /etc/suricata/suricata.yaml -i eth0
1.
参数:
登录后复制
–init-错误-致命
1.
我们强烈建议测试您的错误规则
添加开机自动启动
登录后复制
echo \’suricata -c /etc/suricata/suricata.yaml -i eth0 /dev/null 21 \’ /etc/rc.local
1.
7. 安装更新规则工具
注意:suricata-update 与Suricata 4.1 及更高版本捆绑在一起。即使适用于旧版本。在这种情况下,您需要单独安装它。使用yum 安装suricata。您需要安装pyyaml。运行pip install pyyaml。
手动安装
登录后复制
yum 安装-y python-pip
pip install –upgrade suricata-update
1.2.
目录和权限
suricata-update 需要以下权限才能正常运行:
目录/etc/suricata:读访问目录/var/lib/suricata/rules:读/写访问目录/var/lib/suricata/update:读/写访问
一种选择是简单地以root 身份运行suricata-update 或以root 身份运行sudo。
8. 更新规则
如果您不进行任何配置,suricata-update 的默认操作是使用Emerging Threats Open 规则集。
例子:
登录后复制
折纸更新
1.
该命令执行以下操作:
在suricata路径中找到该程序并检查其版本。搜索/etc/suricata/enable.conf、/etc/suricata/disable.conf、/etc/suricata/drop.conf 和/etc/suricata/modify.conf 以查找要应用于下载规则的过滤器。这些文件是可选的,不需要存在。下载适合您的Suricata 版本的新兴威胁开放规则集。如果未找到,则默认为4.0.0。启用、禁用、删除或修改上面加载的过滤器。编写规则/var/lib/suricata/rules/suricata.rules。在测试模式下运行suricata/var/lib/suricata/rules/suricata.rules。
9. 规则集管理
使用Oinkmaster 进行规则管理
或者,从此处下载规则集并将其解压缩到您选择的目录(或yaml 配置设置)。
登录后复制
http://rules.emergingthreats.net/open/suricata/
1.
或者,如果您愿意,也可以下载并使用VRT 规则集。
登录后复制
Suricata 更新在哪里?
echo \’0 0 * * 1 /usr/local/bin/suricata-update /dev/null 21 \’ /var/spool/cron/root
1.2.
规则每周一中午12点更新
我们建议经常更新您的规则。新威胁每天都会变化,VRT 每周更新。
10. 网络边缘部署情况
10.1. 设备接入部署
111.230.173.69111.230.194.241193.112.121.73203.195.139.126203.195.139.139111.230.169.164111.230.170.136
10.2. Nginx部署
119.29.9.233119.29.9.168119.29.116.47
11. 事件可视化
11.1. 数据采集
11.1.1. 配置Redis
登录后复制
猫/data/redis/ossec_redis.confEOF
绑定10.104.154.91 127.0.0.1
保护模式是
端口6579
TCP 积压511
超时0
TCP 保活300
守护进程,是的
没有监督
pid文件/var/run/redis_6579.pid
日志级别通知
日志文件“/data/redis/log/ossec_redis.log”
数据库16
始终显示徽标是
节省900 1
节省300 10
节省60 10000
bgsave 出错时停止写入是
RDB 压缩是
rdb 校验和是
db文件名转储.rdb
目录/data/redis/ossec
副本服务旧数据是
副本只读是
repl-diskless-sync 否
repl-无盘同步延迟5
repl-禁用-tcp-nolay 否
副本优先级100
2018年请求路径
最大内存1G
懒惰-自由-懒惰-驱逐否
懒惰免费- 懒惰- 已过期否
Lazyfree-lazy-server-del 否
副本-惰性闪存否
仅添加否
附加文件名“appendonly.aof”
每秒追加一次同步
no-appendfsync-on-rewrite 否
自动aof 重写百分比100
自动aof 重写最小大小64mb
aof 加载截断是
aof-使用-rdb-前导码是
Lua时间限制5000
慢日志- 日志- 慢于10000
慢日志最大范围128
延迟监控阈值0
通知键空间事件\’\’
哈希最大ziplist 条目512
ziplist 哈希最大值64
列表最大拉链列表大小-2
列表压缩深度0
设置最大插入条目512
zset-max-ziplist-条目128
zset-max-ziplist-值64
hll-稀疏-最大字节3000
流节点最大字节数4096
流节点条目最大数量100
主动重新散列是
客户端输出缓冲区限制通常0 0 0
客户端输出缓冲区限制副本256MB 64MB 60
客户端输出缓冲区限制pubsub 32mb 8mb 60
10赫兹
动态赫兹是
aof-rewrite-incremental-fsync 是
rdb-保存增量-fsync 是
结束后
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.4 4.45.46.47.48.49.50 51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66。
11.1.2. 启动Redis
开始
登录后复制
/data/redis/src/redis-server /data/redis/oss
ec_redis.conf
1.
添加开机自启动
登录后复制
echo \”/data/redis/src/redis-server /data/redis/ossec_redis.conf >/dev/null 2>&1 &\” >> /etc/rc.local
1.
11.1.3. 配置Elasticsearch
集群其中一台配置,如下所示。
登录后复制
cat >/data/es/config/elasticsearch.yml<<EOF
cluster.name: clife-es
node.name: es-redis
path.data: /data/es/data
path.logs: /data/es/log
network.host: 10.104.154.91
http.port: 9200
path.repo: [\”/es_back_data/es_data_back\”]
discovery.zen.ping.unicast.hosts: [\”10.104.199.117\”,\”10.104.154.91\”,\”10.104.45.13\”]
EOF
1.2.3.4.5.6.7.8.9.10.
11.1.4. 启动Elasticsearch
登录后复制
/data/elasticsearch-6.4.3/bin/elasticsearch -d
1.
11.1.5. 检查Elasticsearch运行状态
每5分钟检查一次Elasticsearch集群状态
登录后复制
*/5 * * * * /data/elasticsearch-6.4.3/bin/elasticsearch-certutil cert –pem -ca –keep-ca-key >> /tmp/es_cert.log 2>&1
1.
11.1.6. 配置Logstash
登录后复制
cat >/data/logstash-6.4.3/config/logstash.conf<<EOF
input {
redis {
host => \”10.104.154.91\”
port => 6579
password => \”es2018\”
data_type => \”list\”
key => \”ossec-alerts\”
type => \”ossec-alerts\”
}
}
filter {
if [type] == \”ossec-alerts\” {
json {
source => \”message\”
}
}
}
output {
if [type] == \”ossec-alerts\” {
elasticsearch {
hosts => [\”10.104.154.91:9200\”]
index => \”ossec-%{+YYYY.MM.dd}\”
}
}
}
EOF
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.
11.1.7. 启动Logstash
登录后复制
/data/logstash-6.4.3/bin/logstash -f /data/logstash-6.4.3/config/logstash.conf
1.
添加开机自启动
登录后复制
echo \”/data/logstash-6.4.3/bin/logstash -f /data/logstash-6.4.3/config/logstash.conf >/dev/null 2>&1 &\” >> /etc/rc.local
1.
11.2. Kibana可视化
11.2.1. 配置Kibana
登录后复制
cat >/data/kibana-6.4.3-linux-x86_64/config/kibana.yml<<EOF
server.port: 5601
server.host: \”10.104.154.91\”
elasticsearch.url: \”http://10.104.154.91:9200\”
EOF
1.2.3.4.5.
11.2.2. 启动Kibana
登录后复制
/data/kibana-6.4.3-linux-x86_64/bin/kibana
1.
添加开机自启动
登录后复制
echo \”/data/kibana-6.4.3-linux-x86_64/bin/kibana >/dev/null 2>&1 &\” >> /etc/rc.local
1.
至此,Suricata的部署、规则更新、事件可视化环境就已经全部准备就绪了。接下来就可以访问Kibana的Web界面( http://10.104.154.91:5601)进行数据可视化分析了。
#以上关于IDS/IPS入侵检测与防御系统的相关内容来源网络仅供参考,相关信息请以官方公告为准!
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92046.html