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
发布评论