Iptables防火墙 基础知识
位置
使用vim /usr/sysconfig/iptables
启动、关闭、保存
service iptables stop
service iptables start
service iptables restart
service iptables save
结构
iptables –> tables –> chains –>rules
iptables的表与链
iptables具有Filter,NAT,Mangle,Raw四种内建表
Filter表
filter表示iptables的默认表,它具有三种内建链:
input chain - 处理来之外部的数据
output chain - 处理向外发送的数据
forward chain- 将数据转发到本机的其它网卡上
NAT表
NAT有三种内建的链:
prerouting - 处理刚到达本机并在路由转发前的数据包,它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。
postrouting - 处理即将离开本机数据包,它会转换数据包中的源目标IP地址(source ip address),通常SNAT(source NAT)
output - 处理本机产生的数据包
Mangle表
Mangle表用于指定如何处理数据包,它能改变TCP头中的Qos位,Mangle表具有5个内建链
prerouting
output
forward
input
postrouting
Raw表
raw表用户处理异常,它具有2个内建链
prerouting chain
output chain
Iptables规则(Rules)
rules包括一个条件和一个目标(target)
如果满足条件就执行目标target中规则或者特定值
如果不满足条件,就判断下一条Rules
目标值
accept - 允许防火墙接收数据包
drop - 防火墙丢弃数据包
queue - 防火墙将数据包移交到用户空间
return - 防火墙停止执行当前链中的后续rules规则,并返回到调用链(the calling chain)
命令
#iptables -t filter -L 查看filter表
#iptables -t nat -L 查看nat表
#iptables -t mangel -L 查看mangel表
#iptables -t raw -L 查看Raw表
例如 以下例子表明在filter表的input链, forward链, output链中存在规则:
# iptables --list
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain RH-Firewall-1-INPUT (2 references)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
10 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
字段说明
num:编号
target:目标
prot:协议
source:数据包的源IP地址
destination:数据包的目标地址
4.1 清空所有的规则
#iptables –flush