snort是一种强大的网络入侵检测系统。其主要有三大功能,不过今天在centos系统里我们主要采用其入侵检测功能,即把snort作为入侵检测系统来采集告警日志,以备后续使用。
要是直接在centos主机上安装,倒也不那么麻烦,下载snort需要的依赖包和snort安装包,然后make&&make install;接着修改配置文件,调通虚拟机与外网和主机之间的互相访问;第三步是自己要写一两条alert规则,然后进行测试:用其他主机ping这台虚拟机,如果终端显示有日志,则说明没有问题。
snort的安装有三种方式:
这三种方法我都试了。可行的是后两种。不过大部分人都喜欢用源代码的方式安装,方便以后学习研究代码,也可以自行调试snort,编写snort规则,测试snort功能。下面会一一介绍这两种方式的下载安装过程。
首先介绍wget+下载链接方式。手动下载需要敲很多行命令。
sudo yum install -y gcc flex bison zlib libpcap pcre libdnet tcpdump
从源代码在 CentOS 上设置 Snort 包括几个步骤:下载代码、配置它、编译代码、将其安装到适当的目录,最后配置检测规则。
在开始之前,除了已经安装的先决条件之外,您还需要以下开发包。
sudo yum install -y zlib-devel libpcap-devel pcre-devel libdnet-devel openssl-devel libnghttp2-devel luajit-devel
准备好后,在您的主目录中创建一个临时下载文件夹,然后使用以下命令更改为该文件夹。
mkdir ~/snort_src && cd ~/snort_src
使用下面的 wget 命令从Snort网站下载最新的DAQ源包。如果有更新的源可用,请替换命令中的版本号。
wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz
解压daq的源码包,此时直接安装daq会有报错,缺少各种各样的依赖包,所以要先安装依赖包,于是先用以下命令安装libpcap。
wget http://www.tcpdump.org/release/libpcap-1.7.4.tar.gz
然后对libpcap压缩包进行解压。之后再进到libpcap目录,对libpcap进行编译运行:
tar -xzvf libpcap-1.7.4.tar.gz
cd libpcap-1.7.4
./configure && make && sudo make install
然后继续回到daq的安装。
cd ../daq-2.0.7
./configure && sudo make && sudo make install
docker安装snort简单多了。首先是先在centos系统中输入docker命令,发现提示该command not found。
于是先安装docker。一行就完事儿:yum install docker
安装好以后,再执行docker pull linton/docker-snort
就安装好了。
启动snort前一定要先打开docker服务。
systemctl start docker
然后启动snort docker:
docker -it --rm --net-host linton/docker-snort /bin/bash
在启动snort时,要提前配置好snort的告警规则。snort的配置文件在/etc/snort/rules/local.rules,可以把想验证的规则放在该文件里,以给入侵检测系统提供规则。
对于测试snort的入侵检测功能,添加下面这条规则到/etc/snort/rules/local.rules:
alert icmp any any -> any any (msg:"Pinging...";sid:1000004;)
运行snort并将告警输出到屏幕上:
$ snort -i eth0 -c /etc/snort/etc/snort.conf -A console
运行snort并将告警输出到UNIX socket:
$ snort -i eth0 -A unsock -l /tmp -c /etc/snort/etc/snort.conf
Ping 容器然后警告消息将显示在控制台上:
Ping in the container then the alert message will show on the console
ping 8.8.8.8
添加以上规则后,snort输出的告警日志格式为:
06/28-22:38:51.673951 ** ICMP ** {ICMP} 192.168.56.1 -> 192.168.56.103
前提是已经做了docker服务和容器随服务器开机而自启动。
容器开机自启动:--restart=always:创建容器时加入该选项即可实现容器开机启动。
将现有容器
1.2 参考文档
1.2.1 环境部署搭建文档
https://blog.csdn.net/u013816144/article/details/53729153
https://www.cnblogs.com/zlslch/p/7306632.html
https://klionsec.github.io/2017/09/22/snortpentest/
1.2.2 规则编写文档
https://blog.csdn.net/qq_28210869/article/details/78886604
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有