如何部署Suricata开源IDS/IPS引擎

图片[1]-如何部署Suricata开源IDS/IPS引擎-FancyPig's blog

编译安装部署

编译安装在生产环境中会比较稳定,而且针对企业,需要进行二次开发,因此编译安装会比较合适。

这里我们以Ubuntu镜像为例,展示一下编译安装的全过程

依赖环境安装

  • 我们在官方文档基础上补充了libnss3-devlibnspr4-devlibnspr4-devrustc cargopython-distutils-extra模块的安装,否则会产生报错
sudo apt-get -y install python-distutils-extra libpcre3 libpcre3-dbg libpcre3-dev \
build-essential autoconf automake libtool libpcap-dev libnet1-dev \
libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev libcap-ng0 \
make libmagic-dev libjansson-dev libjansson4 libnss3-dev libnspr4-dev libnspr4-dev rustc cargo pkg-config
cd /etc/apt/
sudo vi sources.list

文件最前面添加(后面其他的镜像源可以#注释掉)

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

然后更新本地索引之后,重新使用apt-get install相关命令安装依赖

sudo apt-get update

更换完阿里的镜像源速度还是非常可观的

图片[2]-如何部署Suricata开源IDS/IPS引擎-FancyPig's blog

Suricata编译安装

先将suricata-6.0.4.tar.gz 最新版文件下载到桌面上,解压缩相关文件

wget https://www.openinfosecfoundation.org/download/suricata-6.0.4.tar.gz
tar xzvf suricata-6.0.4.tar.gz
图片[3]-如何部署Suricata开源IDS/IPS引擎-FancyPig's blog

进入suricata目录

cd suricata-6.0.4

编译

./configure && make && make install-full

安装完成后相关文件的默认路径

以上是正常部署步骤,如果有特殊的需求,可以按需修改相关配置文件部署的路径

  • --prefix=/usr/将 Suricata 二进制文件安装到 /usr/bin/ 中。默认/usr/local/
  • --sysconfdir=/etc将 Suricata 配置文件安装到 /etc/suricata/。默认/usr/local/etc/
  • --localstatedir=/var设置 Suricata 以登录到 /var/log/suricata/。默认/usr/local/var/log/suricata
  • --localstatedir=/var启用 Lua 支持检测和输出
  • --enable-geoip启用 GeoIP 支持以进行检测。

运行suricata 进行流量网卡监听测试

我们这里为了验证功能是否可以正常运行,选择监听网卡模式

查看要监听的网卡

我们先查看自己虚拟机里开放的网卡口

ip a

这里看到可以使用ens33网卡

图片[4]-如何部署Suricata开源IDS/IPS引擎-FancyPig's blog

然后我们运行suricata,并把流量日志记录到桌面fancypig文件夹下

创建好存储结果的文件夹

这里需要在桌面上使用mkdir fancypig先创建好fancypig文件夹

图片[5]-如何部署Suricata开源IDS/IPS引擎-FancyPig's blog

开始监听

suricata  -c /usr/local/etc/suricata/suricata.yaml -i ens33 -l /home/fancypig/Desktop/fancypig

然后就可以跑起来了

图片[6]-如何部署Suricata开源IDS/IPS引擎-FancyPig's blog

我们可以进一步到桌面我们创建好的fancypig文件夹下去寻找相应的日志,后面我会详细介绍!

图片[7]-如何部署Suricata开源IDS/IPS引擎-FancyPig's blog

以下内容本文不做详细介绍,方法与上面类似,而且比上面的更简单,如果有问题欢迎在文末留言。

极速安装部署

Ubuntu

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update
sudo apt-get install suricata

Debian

sudo apt-get install suricata

稳定版本通常不是最新版本,因此,我们可以参考下面的命令使用备用节点,添加最新的版本

echo "deb http://http.debian.net/debian buster-backports main" > \
    /etc/apt/sources.list.d/backports.list
apt-get update
apt-get install suricata -t buster-backports

参考链接

  • 以下内容来自suricata官方安装文档(官方最新的只有英文版的)

https://suricata.readthedocs.io/en/latest/install.html

Docker方式部署

当然,你如果只是体验一下功能,Docker方式部署会减少您的很多时间。

Docker部署Suricata

  • 拉取最新镜像
docker pull jasonish/suricata:latest

注:如果有特殊的架构,如amd64、arm64v8可以使用下面的命令

#针对amd64架构的服务器
docker pull jasonish/suricata:latest-amd64
#针对arm64v8的服务器
docker pull jasonish/suricata:6.0.4-arm64v8
  • 启动容器

<interface>要填你的网卡,如果不知道那款网卡,专家建议通过ip a查看UP状态的网卡名称

docker run --rm -it --net=host \
    --cap-add=net_admin --cap-add=sys_nice \
    -v $(pwd)/logs:/var/log/suricata \
	jasonish/suricata:latest -i <interface>

常见目录

Suricata 容器相关文件夹:

  • /var/log/suricata - Suricata 日志目录
  • /var/lib/suricata - 规则、Suricata-Update 缓存和其他运行时数据可能有助于在运行之间保留。
  • /etc/suricata - 配置目录

参考链接

详细用法参考https://github.com/jasonish/docker-suricata

报错问题如何解决

完全安装如果出现下面的问题

make install-rules
make[1]: Entering directory '/home/fancypig/Desktop/suricata-6.0.4'
error: rules not installed as suricata-update not available
make[1]: *** [Makefile:932: install-rules] Error 1
make[1]: Leaving directory '/home/fancypig/Desktop/suricata-6.0.4'
make: *** [Makefile:913: install-full] Error 2
root@ubuntu:/home/fancypig/Desktop/suricata-6.0.4# make install-rules
error: rules not installed as suricata-update not available
make: *** [Makefile:932: install-rules] Error 1
root@ubuntu:/home/fancypig/Desktop/suricata-6.0.4# 

一般情况下,你需要单独输入./configure进行检测,我这里看到的是由于没有安装python的distutils模块

  Python support:                          yes
  Python path:                             /usr/bin/python3
  Python distutils                         no
  Python yaml                              yes
  Install suricatactl:                     no, requires distutils
  Install suricatasc:                      no, requires distutils
  Install suricata-update:                 no, requires distutils

因此,我们在Ubuntu安装上即可,我这里使用的是下面的命令

sudo apt-get install python-distutils-extra

如果使用我上面提供的命令无法安装,您可以参考下面的命令

sudo apt-get install python-distutils
sudo apt-get install python3-distutils

然后,我们再运行./configure发现缺的模块已经补上,suricata-update也可以正常编译了

  Python support:                          yes
  Python path:                             /usr/bin/python3
  Python distutils                         yes
  Python yaml                              yes
  Install suricatactl:                     yes
  Install suricatasc:                      yes
  Install suricata-update:                 yes

然后重新运行

make && make install-full

这里发现规则也自动加载上了

图片[8]-如何部署Suricata开源IDS/IPS引擎-FancyPig's blog

附录:如何手动上传ET规则

开源ET规则手动下载(如果你正常编译安装了suricata-update,则无需看下面的教程)

最新版ET规则下载链接需要将[Version]替换为你的suricata版本号

https://rules.emergingthreats.net/open/suricata-[Version]/emerging.rules.tar.gz

我们使用的是最新的6.0.4版本,因此链接如下

https://rules.emergingthreats.net/open/suricata-6.0.4/emerging.rules.tar.gz

我们这里在进行下载

cd /usr/local/var/lib/suricata/rules
wget https://rules.emergingthreats.net/open/suricata-6.0.4/emerging.rules.tar.gz

下载完成后进行解压

tar -zxvf emerging.rules.tar.gz

然后将其重命名,为了后面规则可以分门别类的列出,我们这里把他改成idsrules文件夹

这里将刚解压缩的rules文件夹名称修改为idsrules

mv rules idsrules

引入规则suricata.yaml配置

然后需要修改配置suricata.yaml,引入idsrules文件夹

cd /usr/local/etc/suricata
gedit suricata.yaml

添加

- idsrules/*.rules
图片[9]-如何部署Suricata开源IDS/IPS引擎-FancyPig's blog

实际上上方的一个相对链接:[default-rule-path] + idsrules 拼凑出的绝对路径

当然如果你直接输入绝对路径也是没问题的!因此你想把他放到桌面上当然也是没问题的咯

例如,- /home/fancypig/Desktop/idsrules/*.rules 也是可以的哦!

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容