Centos7 minimal 安装 PF

编程入门 行业动态 更新时间:2024-10-25 08:17:58

Centos7 <a href=https://www.elefans.com/category/jswz/34/1713024.html style=minimal 安装 PF"/>

Centos7 minimal 安装 PF

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

文章目录

  • Centos7 minimal 安装 PF_RING + suricata(开启IPS)
      • 0、首先给上参考连接:
      • 1、安装依赖
      • 2、下载PF_RING安装包
      • 3、检测linux的内核版本
      • 4、安装PF_RING
      • 5、安装Luajit
      • 6、在安装好上面的环境后,安装suricata 6.0.0
        • (1)首先下载好surica包,解压,并且安装好依赖,依赖全都在官网写着。
        • (2)编译与安装配置
        • (3)安装规则文件
      • 7、测试运行
      • 8、测试IDS实列
      • 9、测试IPS实列


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

0、首先给上参考连接:

官网pfring+suricata安装文档:.html

安装pfring:.html

suricata普通安装看官方文档才给力:.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 .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 -fmake 
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 .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 cargoyum install -y rustc cargocd 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 查看文件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 ,就无法接收到请求的响应数据了。

更多推荐

Centos7 minimal 安装 PF

本文发布于:2024-02-25 02:47:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1697531.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:minimal   PF

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!