红联Linux门户
Linux帮助

用iptables做端口镜像(复制报文)

发布时间:2016-07-19 09:50:41来源:linux网站作者:wesleyflagon
最近调试一个功能需要用到端口镜像技术,将一个网卡上经过的报文复制到另一个网卡上。试用了几个方法,发现iptables TEE不错。因为iptables能够指定各种规则,只复制需要的报文。这里介绍一下TEE的编译和使用。
操作系统是CentOS 6.3,64位(内核版本2.6.32-279),iptables版本是自带的v1.4.7。
 
首先去下载页面:
http://sourceforge.net/projects/xtables-addons/files/Xtables-addons/1.47/
用iptables做端口镜像(复制报文)
下载xtables-addons-1.47.1.tar.xz。不要下载2.x版本,因为我发现2.4版本没有TEE模块,奇怪。
 
编译之前需要安装iptables-devel。
tar xvf xtables-addons-1.47.1.tar.xz  
cd xtables-addons-1.47.1  
./configure  
 
先不要编译,打开当前目录下的mconfig文件,看看TEE模块是否配置上。没有的话,按如下修改:
build_TEE=m
 
好了,开始编译安装:
make && make install  
 
我们的调试机器上有两块网卡,eth0和eth1,eth0是局域网,eth1能够上互联网。现在我们要把经过eth1的上网报文通过eth0镜像到另一个监控机器上(192.168.2.55):
iptables -A INPUT -i eth1 -p tcp -m tcp --sport 80 -j TEE --gateway 192.168.2.55  
iptables -A OUTPUT -o eth1 -p tcp -m tcp --dport 80 -j TEE --gateway 192.168.2.55  
 
一切正常的话,在192.168.2.55上面就能抓到镜像出来的报文了。需要注意的是,192.168.2.55这台机器上最好关闭forward功能,不然可能对局域网造成奇怪的影响。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/22506.html