在《手动构建Snort系统》这门课中我们学习过Snort的原理和源码编译过程,Snort2是个单线程的IDS,但还是有一些同学想知道如何让Snort运行多线程,今天通过几个实验来实现。Snort3的情况我们下期再讨论。
实验环境我们在CentOS 7VM虚拟机中(Snort已安装配置完成)进行。
准别工作:
#yum install gdb psmisc sysvini-tools -y
我们先查看一下系统总线程数:
#grep 'processor' /proc/cpuinfo | sort -u | wc -l
接着执行下面的命令
# snort -G 1 --pid-path /var/run/snort/p1/ --create-pidfile -c /etc/snort/snort.conf -l /var/log/snort/instance-1/ -i ens33 -q -D
# snort -G 2 --pid-path /var/run/snort/p2/ --create-pidfile -c /etc/snort/snort.conf -l /var/log/snort/instance-2/ -i ens33 -q -D
进程启动时间
[root@localhost ~]# ps -ef |grep snort
root 1823 1 0 04:30 ? 00:00:00 snort -G 1 --pid-path /var/run/snort/p1/ --create-pidfile -c /etc/snort/snort.conf -l /var/log/snort/instance-1/ -i ens33 -q -D
root 1898 1830 0 04:39 pts/1 00:00:00 grep --color=auto snort
[root@localhost ~]# ps -eo pid,lstart,etime | grep 1823
1823 Mon Mar 14 04:30:46 2022 08:27
注释:taskset 查询或设置进程(线程)绑定CPU。通过 taskset 命令可将某个进程与某个CPU核心绑定,使得其仅在与之绑定的CPU核心上运行。
样方法启动第二个实例
snort -G 1 -A fast -U -b -d -e -u snort -g snort -c /etc/snort/snort.conf -l /var/log/snort/ -i ens33
snort -G 2 -A fast -U -b -d -e -u snort -g snort -c /etc/snort/snort.conf -l /var/log/snort/ -i ens33
检验成果:
我们用pstree –apnh |grep snort命令查看
好了这个简单的多线程实验就完成了,大家在实验过程中如有疑问可以留言。
2023年度 51CTO杰出讲师评选开始啦,期待大家投上宝贵一票! 李晨光的网络课堂,李晨光 网络管理,Linux 大讲堂 - 51CTO学堂