前言
iptables有三种log记录形式,分别是log、ulog、nflog。log用于将匹配的数据包记录到系统的syslog中去,用户也可以直接通过dmesg命令查看。log命令只记录包头的一些。ulog通过netlink套接字将数据包多播到指定netlink多播组,这样任何感兴趣的进程都可以通过建立netlink套接字来接受内核中的数据包信息。ulog可以将整个数据包拷贝并发送给应用程序,当然也可以指定发送方数据包的字节数。nflog类似于ulog,但是功能更加强大。nflog不仅可以接受来自iptables的数据,还可以向iptables通过netlink套接字发送控制数据。本文重点讲ulog。
一、iptables中的ulog设定
可以使用--ulog在某个链上添加ulog规则。
例如:
iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-nlgroup 2
在input链上把所有目的端口号为22的数据包发送到netlink多播组2中。
ulog还有以下几个选项:
--ulog-nlgroup: