测试环境:系统:
redhat 9.0
(内核为
2.4.35
)
软件:
iptables- 1.3.5
Snort_inline- 2.6.1 .5
snort_inline
是一个通过
Snort
修改而得的工具
,
它是把
Snort
透过
libpcap
撷取封包
,
改由透过
iptables
撷取封包
,
其用意主要是可以完全的监看到所有的封包
,
而会因为效能因素有丢封包的现象
.
并基於
Snort
规则的判断由
iptables
决定封包是否丢弃
,
转向
,
修改或通过
,
首先必须要为
iptables
加模块,选中
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers
这样才会在
Networking options ---> IP: Netfilter Configuration ---> <M> Userspace queueing via NETLINK (EXPERIMENTAL)
显示这个
queue
的模块。
因为运行
snort_inline
必须要要加载这个模块。然后编译安装内核。
安装snort_inline
首先必须要安装这些
RPM
包
libdnet-1.7-0.dag.rh90.i386.rpm
libpcap- 0.7.2 -7.9.1.i386.rpm
pcre-devel-3.9-10.i386.rpm
pcre-3.9-10.i386.rpm
然后进入
Snort_inline
的安装目录
./configure
Make
Make install
它安装会默认安装在
/usr/local
下,把
Snort_inline
目录下的
etc
的文件,移到
/usr/local/etc
下来。
按照自己的需要修改
snort_inline.conf
的配置文件
,
Echo “export PATH=$PATH:/usr/local/bin” >> /etc/profile
Source /etc/profile
以上命令是增加
snort_inline
的
PATH
路径
执行
snort_inline �CQc /usr/local/etc/snort_inline.conf
启动
snort_inline
安装中的
FAQ
:
1.
编译
snort_inline
时出错了,以下是我编译时提示的错误信息:
gcc -DHAVE_CONFIG_H -I. - I. -I../.. -I../.. -I../../src
-I/usr/include/pcap -I../../src/output-plugins
-I../../src/detection-plugins -I../../src/preprocessors -I/usr/include
-g -O2 -Wall -DGIDS -D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD
-DHAVE_NET_ETHERNET_H -DLIBNET_LIL_ENDIAN -c `test -f 'spo_alert_fast.c'
|| echo './'`spo_alert_fast.c
In file included from /usr/include/linux/netfilter_ipv4/ip_queue.h:10,
from /usr/include/libipq.h:37,
from ../../src/inline.h:8,
from ../../src/snort.h:38,
from spo_alert_fast.c:51:
/usr/include/linux/if.h:59: redefinition of `struct ifmap'
/usr/include/linux/if.h:77: redefinition of `struct ifreq'
/usr/include/linux/if.h:126: redefinition of `struct ifconf'
make[3]: *** [spo_alert_fast.o] Error 1
make[3]: Leaving directory
`/home/matt/src/BUILD/snort-
2.6.1
.5
/src/output-plugins'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/matt/src/BUILD/snort-
2.6.1
.5
/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/matt/src/BUILD/snort-
2.6.1
.5
'
make: *** [all] Error 2
答:你需要更新
glibc
中关于内核的头文件。快速解决方法是在
/usr/include
和内核源码目录之间创建一个链接。例如,如果你用的内核版本是
2.4.35
,你可以这样做:
cd /usr/include
mv linux linux.orig
ln -s /usr/src/linux- 2.4.35 /include/linux linux
现在,你可以进入
snort_inline
目录进行重编译了
2.
我在运行
snort_inline
时出错,以下是报错信息:
Reading
from iptables
Running in IDS mode
Log directory = /var/log/snort
Initializing Inline mode
InitInline: : Failed to send netlink message: Connection refused
答:这意味着
snort_inline
不能和
iptables
通讯,因为
ip_queue
模块未被载入。你可以用命令
lsmod
验证一下。如果在列出的内容中你没有看到
ip_queue
,你需要在启动
snort_inline
之前装载该模块,命令为:
insmod ip_queue.
|