Centos7 minimal 安装 PF_RING + suricata(开启IPS)

Centos7 minimal 安装 PF_RING + suricata(开启IPS)



安装pfring直接参考官方文档在Centos7 最小安装上可能不管用,因为依赖库不全,内核版本也会出现问题。
同样的方法,我在ubantu18.04上安装非常顺利,没遇见什么坑。
本次安装,全程使用root账户,所以不需要sudo

0、首先给上参考连接:

官网pfring+suricata安装文档:https://www.ntop.org/guides/pf_ring/thirdparty/suricata.html

安装pfring:https://www.huaweicloud.com/kunpeng/software/pfring.html

suricata普通安装看官方文档才给力:https://suricata.readthedocs.io/en/latest/install.html
尤其是需要的依赖,官网说得非常全,其他人写的可能就不齐全了。
  

1、安装依赖

# 依赖可能不止这么点,缺什么就安装什么
yum install -y flex bison kernel-devel kernel-headers gcc gcc-c++ make wget

# 注意:安装后我这显示安装了最新版3.10.0-1160.6.1.el7.x86_64

2、下载PF_RING安装包

安装包可以从网上下也可以从github下,我在官网上点击不出URL当时服务器可能出问题了,所以直接github上下。

注意,不要从gitee上下载,因为那里的并不是最新版本,我下载看了一下6年前的版本,6年前!

yum -y install git
git clone https://github.com/ntop/PF_RING.git

3、检测linux的内核版本

uname -r

# 我的版本如下
3.10.0-1127.el7.x86_64

4、安装PF_RING

cd PF_RING
make
# 这里可能会报错
# 说找不到……3.10.0-1127.el7.x86_64/build
# 上面已经显示过我的内核文件头为3.10.0-1160.6.1……
# 这个错是因为build是个软连接,连接的是3.10.0-1127.el7.x86_64版本的文件头,但系统没有这个文件头,需要手动更改
# 所以要更改一下kernel文件里面的软连接如下:
ln -s /usr/src/kernels/3.10.0-1160.6.1.el7.x86_64 /lib/modules/3.10.0-1127.el7.x86_64/build -f

make 
cd kernel 
make && make install

# 加载pf_ring模块
insmod pf_ring.ko

# Libpfring和Libpcap安装
cd ../userland/lib
./configure && make && make install
cd ../libpcap 
./configure && make && make install

# 运行验证是否成功
cd ../examples && make
./pfcount -i eth0

测试后我又遇见了一个问题,错误提示翻译为中文就是“内核版本是17,而pfring库是18”
这个问题我找了好久都没找到原因,最后reboot重启了下系统,问题就解决了。虽然不知道原理,也好歹也算解决了问题。
./pfcount -i eth0 的eth0要改为自己的网卡名称,成功就会开始每秒每秒的读取流量。
还可以用modinfo pf_ring 指令查看,我安装的为目前最新的7.9.0版

在这里插入图片描述

5、安装Luajit

wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz
tar -xzvf LuaJIT-2.0.4.tar.gz
cd LuaJIT-2.0.4
make && make install 

6、在安装好上面的环境后,安装suricata 6.0.0

(1)首先下载好surica包,解压,并且安装好依赖,依赖全都在官网写着。
yum install -y libpcap zlib libyaml libpcap-devel jansson-devel pcre-devel lua-devel libmaxminddb-devel epel-release  libnetfilter_queue-devel nss-devel libyaml-devel zlib-devel luajit-devel rustc cargo

yum install -y rustc cargo

cd suricata 6.0.0
LIBS="-lrt" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-pfring --with-libpfring-includes=/usr/local/pfring/include --with-libpfring-libraries=/usr/local/pfring/lib --enable-geoip  --enable-luajit --with-libluajit-includes=/usr/local/include/luajit-2.0/ --with-libluajit-libraries=/usr/local/lib/ --with-libhs-includes=/usr/local/include/hs/ --with-libhs-libraries=/usr/local/lib/ --enable-profiling --enable-nfqueue

上面一步执行后,在依赖齐全的环境下,可能会报错
在这里插入图片描述
解决办法是在 ./configure之前添加LIBS="-lrt -lnuma"
如果添加了还不能解决,换一个pfring的版本试试,我安装7.6.0就失败了,换为7.9.0就解决了

安装好后,界面是这样的:
在这里插入图片描述

同时往上翻看,这pf_ring 和nfqueue 必须yes,否则suricata 就不能支持pfring和ips模式

在这里插入图片描述

(2)编译与安装配置
make clean && make && make install && ldconfig
make install-conf

直接输入 suricata 查看是否安装好,可能遇见找不到libpfing共享库的问题:

在这里插入图片描述
解决办法:

vi /etc/ld.so.conf
# 然后在该文件中添加一行
/usr/local/lib
# 在suricata 6.0.0 目录中执行
ldconfig

(3)安装规则文件
cd suricata 6.0.0
make install-rules

在这个版本中,执行上一步可能会报错,说是没有安装suricata-update
解决办法:

yum install -y python3-pip 
python3 -m pip install --upgrade suricata-update
cd  # 进入到root的主目录
suricata-update
vi /etc/suricata/suricata.yaml

然后将.yaml的内容,default-rule-path 路径设置位下图所示。
在这里插入图片描述

7、测试运行

首先测试ips模式运行:

suricata -c /etc/suricata/suricata.yaml -q 0

在这里插入图片描述


然后测试pf_ring模式运行:

suricata --pfring-int=eth0 --pfring-cluster-id=99 --pfring-cluster-type=cluster_flow -c /etc/suricata/suricata.yaml

运行成功截图:
在这里插入图片描述

8、测试IDS实列

由于要检测http协议,所以在配置文件中开启http请求监测。

vi /etc/suricata/suricata.yaml

在这里插入图片描述

在当前目录创建一个.rules文件,写入检测http协议的规则,检测到“baidu”则发出警告。

alert http any any -> any any (msg:"This is an HTTP attack !"; content:"baidu";)

在这里插入图片描述
从新打开一个终端输入:curl www.baidu.com 查看文件http日志
在这里插入图片描述

9、测试IPS实列

与上面同样的方法,创建rules文件写入:

drop http any any -> any any (msg:"This is an HTTP attack !"; content:"baidu";)

先在suricata.yaml文件中修改一下网卡配置,改为自己的网卡
在这里插入图片描述

IPS模式首先要输入两条指令,然后再开启。

iptables -I INPUT -j NFQUEUE
iptables -I OUTPUT -j NFQUEUE
suricata -c /etc/suricata/suricata.yaml -s ips-http.rules -q 0

当 curl http://www.baidu.com的时候,就无法接收到请求的响应数据了。

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值