Iptables 使用简介
Iptables是一种功能强大的基于包过滤的网络工具,本文简单介绍了iptables的使用方法,以及如何利用它来构建一个网络防火墙。
Iptables由两个子系统组成,即内核模块和用户接口应用程序,它可以被编译进系统内核,也可以编译成可装卸的内核模块,之后还可以选择安装一些能够完成一定功能的部件,这些部件实现了IP地址伪装,端口映射,包过滤等等一系列功能。
安装iptables
iptables很多组件的配置、编译是与内核的配置、编译相关联的,一些Linux发行版已经预先安装好了iptables,如RedHat,RedFlag等。但是您还是有可能需要自己安装。
首先您需要2.4.X以上版本的内核,可以从http://Kernel.org下载。
您还需要iptables的用户空间程序,它可以从Netfilter主页下载。
当您做好准备工作后就开始编译内核,在Networking Options下找到 Network packet filtering子项,选择Network packet filtering replaces ipchains并进行配置。
使用新内核引导后编译iptables的用户空间程序,安装程序会将可执行文件拷贝到/usr/local/sbin目录。
如果一切都很顺利,我们就已经在内核中成功地安装了对iptables和Netfilter的支持了。
用户可以通过service iptables start启动服务。
表和链
这里我们讨论一下数据包在iptables的各个链和表之间是怎么传递的。
举例来说,一个从外部主机发往本机的数据包需要经过以下的途径才能被应用程序接收:
1. 数据包从网络传入,并由网卡接收
2. 随后转入mangle表的PREROUTING链。
3. 再转入nat表的PRETOUTING链,这个链主要用来做DNAT,即目的地址转发。