iptables是内核内置的功能,因此它的效率非常高,比较适合适合一般小型企业
因为iptables利用的是数据包过滤机制,所以它会分析数据包的表头数据,根据表头数据与定义的规则来决定该数据包是否可以进入主机。也就是说,拿数据包的分析结果来“比对”预定义的规则内容,若数据包数据与规则内容相同则进行操作,否则就继续下一条规则的比对,重点在比对与分析顺序。
之所以称为iptables,是因为防火墙软件里有多个表格(table),每个表格都定义出自己默认的策略和规则,且每个表格都用途不同。
默认情况下iptables至少有三个链,包括管理本机进出的filter,管理后端主机的NAT,管理特殊标记的mangle(较少使用)。当然我们也可以自己定义链。
filter:是默认的表,主要跟linux本机有关
INPUT:主要与数据包想要进入linux本机有关
OUTPUT:主要与linux本机所要送出的数据包有关
FORWARD:与linux本机没有关系,可以将数据包转发到后端的计算机中,只有当作路由器时才需要配置,同时还需要修改下面文件值为1,来打开内核转发文件
[root@test root]# more /proc/sys/net/ipv4/ip_forward
0
以上修改为1在机器重启后会还原为0 需要手动修改配置文件
[root@test root]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 0
修改这行的值为1。
规则的清除与观察
iptables
-t :后面接table(nat,filter)
-n :不进行ip与HOSTNAME的反查,显示信息速度会更快
-v :列出更多信息,包括通过该规则的数据包总个数,相关的网络接口等
-L :列出目前的规则
-F :清除所有的已定规则,
-X :清除所有用户“自定义”的链
-Z :将所有的chain的计数与流量统计都归零
iptables 规则的保存与恢复
iptables-save > filename
iptables-restore < filename
这两个命令一个是保存,一个是恢复,将filename文件存为/eyc/sysconfig/filename,并且利用chkconfig将iptables在开机时默认启动,那么一开机系统就会主动加载防火墙规则