9.2.2 RHEL 5开机时默认的防火墙规则

来源:互联网 发布:js qq在线客服 编辑:程序博客网 时间:2024/05/21 19:37

9.2.2  RHEL 5开机时默认的防火墙规则

Linux系统中,可以通过使用iptables命令构建各种类型的防火墙。RHEL 5操作系统默认安装时,iptables防火墙已经安装,并且开机后会自动添加了一些规则,这些规则实际上是由/etc/sysconfig目录中的iptables文件决定的。可以通过“iptables -L”命令查看这些默认添加的规则。

 

# iptables -L

Chain INPUT (policy ACCEPT)                  #INPUT链中的规则

target                prot opt source                destination        

RH-Firewall-1-INPUT  all  --  anywhere             anywhere        #规则1

 

Chain FORWARD (policy ACCEPT)               # FORWARD链中的规则

target                prot opt source               destination         

RH-Firewall-1-INPUT  all  --  anywhere             anywhere            #规则2

 

Chain OUTPUT (policy ACCEPT)                # OUTPUT链中的规则

target                prot opt source               destination        

 

Chain RH-Firewall-1-INPUT (2 references)    #自定义的RH-Firewall-1-INPUT
                                             
中的规则,被其他链引用两次

target        prot opt  source               destination        

ACCEPT     all   --  anywhere             anywhere                      #规则3

ACCEPT     icmp --  anywhere             anywhere     icmp any          #规则4

ACCEPT     esp  --  anywhere             anywhere                        #规则5

ACCEPT     ah   --  anywhere             anywhere                         #规则6

ACCEPT     udp  --  anywhere             224.0.0.251   udp dpt:mdns     #规则7

ACCEPT     udp  --  anywhere             anywhere     udp dpt:ipp       #规则8

ACCEPT     tcp   --  anywhere             anywhere     tcp dpt:ipp      #规则9

ACCEPT     all  --  anywhere  anywhere  state RELATED,ESTABLISHED  #规则10

ACCEPT     tcp   --  anywhere  anywhere    state NEW tcp dpt:ftp    #规则11

ACCEPT     tcp   --  anywhere  anywhere     state NEW tcp dpt:ssh   #规则12

ACCEPT     tcp   --  anywhere   anywhere     state NEW tcp dpt:http #规则13

ACCEPT     tcp   --  anywhere    anywhere    state NEW tcp dpt:smtp  #规则14

REJECT     all    --  anywhere      anywhere  reject-with icmp-host-
                                                    prohibited     #
规则15

#

 

由于上面的iptables命令没有用-t选项指明哪一张表,也没有指明是哪一条链,因此默认列出的是filter表中的规则链。由以上结果可以看出,filter表中总共有4条链。其中,INPUTFORWARDOUTPUT链是内置的,而RH-Firewall-1-INPUT链是用户自己添        加的。

1.规则列

在前面列出的防水墙规则中,每一条规则列出了5项内容。target列表示规则的动作目标。prot列表示该规则指定的上层协议名称,all表示所有的协议。opt列出了规则的一些选项。source列表示数据包的源IP地址或子网,而destination列表示数据包的目的IP地址或子网,anywhere表示所有的地址。除了上述5列以外,如果存在,每一条规则的最后还要列出一些子选项,如RH-Firewall-1-INPUT链中的规则4等。

如果执行iptables命令时加了-v选项,则还可以列出每一条规则当前匹配的数据包数、字节数,以及要求数据包进来和出去的网络接口。如果加上-n选项,则不对显示结果中的IP地址和端口做名称解析,直接以数字的形式显示。还有,如果加上“--line-number”选项,可以在第一列显示每条规则的规则号。

2.规则解释

INPUT链中的规则1target列的内容是RH-Firewall-1-INPUTopt列是allsourcedestination列均为anywhere,表示所有的数据包都交给自定义的RH-Firewall-1-INPUT链去处理。FORWARD链的规则2与规则1完全一样。OUTPUT链中没有规则。

在自定义的RH-Firewall-1-INPUT链中,列出了很多的规则,规则3表示接收所有的数据包。需要注意的是,如果在iptables中加-v选项列出这条规则时,将会看到in列是lo,即要求数据包是从环回接口中进来的,而不是任意网络接口进来的数据包都接收。

规则4表示所有icmp数据包都接收,即其他计算机ping本机时,予以接收,而且在OUTPUT链中没有规则,因此本机的ICMP回复数据包也能顺利地进入网络,被对方收到。规则5和规则6表示接收所有的espah协议的数据包,这两种协议属于IPv6协议。

规则7表示目的地址是224.0.0.251,目的端口是mdnsUDP数据包允许通过。224.0.0.251是一种组播地址,mdns是端口号的一种名称。如果执行iptables命令时加了-n选项,则会显示数字5353,它是组播地址的DNS端口。

规则8和规则9表示允许所有目的端口是ippUDPTCP数据包通过,ipp是端口631的名称解析,它是用于网络打印服务的端口。规则10表示所有状态是RELATEDESTABLISHED的数据包通过,RELATED状态表示数据包要新建一个连接,而且这个要新建的连接与现存的连接是相关的,如FTP的数据连接。ESTABLISHED表示本机与对方建立连接时,对方回应的数据包。

规则11至规则14表示允许目的端口是ftpsshhttpsmtp,状态是NEWTCP数据包通过,状态为NEW即意味着这个TCP数据包将与主机发起一个TCP连接。这几条规则的端口对应的都是最常见的网络服务,它们的端口号分别是21228025。最后一条规则15表示拒绝所有的数据包,并向对方回应icmp-host-prohibited数据包。

3.补充解释

需要再次提醒的是,这些规则是有次序的。当一个数据包进入RH-Firewall-1-INPUT链后,将依次与规则3至规则15进行比较。按照这些规则的目标设置,如果数据包能与规则314中的任一条匹配,则该数据包将被接收。如果都不能匹配,则肯定能和规则15匹配,于是数据包被拒绝。

由于RH-Firewall-1-INPUT链是被INPUT链调用的,如果要返回到INPUT链,需要执行名为RETURN的目标动作。

%说明:FORWARD链中也调用了RH-Firewall-1-INPUT链,即数据包如果不是发送给本机的,当经过FORWARD链时,还要进入RH-Firewall-1-INPUT链,与规则3到规则15再次进行匹配。