centos虚拟机系统下载安装snort指南

2022-03-10 21:30:54 浏览数 (1)

snort是一种强大的网络入侵检测系统。其主要有三大功能,不过今天在centos系统里我们主要采用其入侵检测功能,即把snort作为入侵检测系统来采集告警日志,以备后续使用。

要是直接在centos主机上安装,倒也不那么麻烦,下载snort需要的依赖包和snort安装包,然后make&&make install;接着修改配置文件,调通虚拟机与外网和主机之间的互相访问;第三步是自己要写一两条alert规则,然后进行测试:用其他主机ping这台虚拟机,如果终端显示有日志,则说明没有问题。

一、wget源码安装、配置与使用方法

snort的安装有三种方式:

  • yum源方式
  • wget 下载链接方式
  • 还有一种是docker打包好的snort

这三种方法我都试了。可行的是后两种。不过大部分人都喜欢用源代码的方式安装,方便以后学习研究代码,也可以自行调试snort,编写snort规则,测试snort功能。下面会一一介绍这两种方式的下载安装过程。

1.1 wget 下载链接方式

首先介绍wget 下载链接方式。手动下载需要敲很多行命令。

代码语言:shell复制
sudo yum install -y gcc flex bison zlib libpcap pcre libdnet tcpdump

从源代码在 CentOS 上设置 Snort 包括几个步骤:下载代码、配置它、编译代码、将其安装到适当的目录,最后配置检测规则。

在开始之前,除了已经安装的先决条件之外,您还需要以下开发包。

代码语言:shell复制
sudo yum install -y zlib-devel libpcap-devel pcre-devel libdnet-devel openssl-devel libnghttp2-devel luajit-devel

准备好后,在您的主目录中创建一个临时下载文件夹,然后使用以下命令更改为该文件夹。

代码语言:shell复制
mkdir ~/snort_src && cd ~/snort_src

使用下面的 wget 命令从Snort网站下载最新的DAQ源包。如果有更新的源可用,请替换命令中的版本号。

代码语言:shell复制
wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz

解压daq的源码包,此时直接安装daq会有报错,缺少各种各样的依赖包,所以要先安装依赖包,于是先用以下命令安装libpcap。

代码语言:shell复制
wget http://www.tcpdump.org/release/libpcap-1.7.4.tar.gz

然后对libpcap压缩包进行解压。之后再进到libpcap目录,对libpcap进行编译运行:

代码语言:shell复制
    tar -xzvf  libpcap-1.7.4.tar.gz
    cd libpcap-1.7.4
    ./configure && make && sudo make install

然后继续回到daq的安装。

代码语言:shell复制
cd ../daq-2.0.7
./configure && sudo make && sudo make install

二、docker安装

1.2 docker-snort安装

docker安装snort简单多了。首先是先在centos系统中输入docker命令,发现提示该command not found。

于是先安装docker。一行就完事儿:yum install docker

安装好以后,再执行docker pull linton/docker-snort

就安装好了。

启动snort前一定要先打开docker服务。

代码语言:shell复制
systemctl start docker

然后启动snort docker:

代码语言:shell复制
docker -it --rm --net-host linton/docker-snort /bin/bash

在启动snort时,要提前配置好snort的告警规则。snort的配置文件在/etc/snort/rules/local.rules,可以把想验证的规则放在该文件里,以给入侵检测系统提供规则。

三、添加规则

对于测试snort的入侵检测功能,添加下面这条规则到/etc/snort/rules/local.rules:

代码语言:shell复制
alert icmp any any -> any any (msg:"Pinging...";sid:1000004;)

运行snort并将告警输出到屏幕上:

代码语言:shell复制
$ snort -i eth0 -c /etc/snort/etc/snort.conf -A console

运行snort并将告警输出到UNIX socket:

代码语言:shell复制
$ 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

代码语言:shell复制
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

https://www.cnblogs.com/lasgalen/p/4512755.html

https://www.cnblogs.com/Lthis/p/4949766.html

0 人点赞