一.概念
典型的防火墙设置有两个网卡:一个流入,一个流出。iptables读取流入和流出数据包的报头,将它们与规则集(Ruleset)相比较,将可接受的数据包从一个网卡转发至另一个网卡,对被拒绝的数据包,可以丢弃或按照所定义的方式来处理。
通过向防火墙提供有关对来自某个源地址、到某个目的地或具有特定协议类型的信息包要做些什么的指令,规则控制信息包的过滤。通过使用iptables系统提供的特殊命令iptables建立这些规则,并将其添加到内核空间特定信息包过滤表内的链中。关于添加、去除、编辑规则的命令,一般语法如下:
iptables [-t table] command [match] [target]
1.表(table)
[-t table]选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。有三个可用的表选项:filter、nat和mangle。该选项不是必需的,如果未指定,则filter作为缺省表。
.命令(command)
command部分是iptables命令最重要的部分。它告诉iptables命令要做什么,例如插入规则、将规则添加到链的末尾或删除规则。
-N:new新建 -x:删除一条 -F:flush -z :zero -P:policy -E:重命名
3.匹配(match)
iptables命令的可选match部分指定信息包与规则匹配所应具有的特征(如源地址、目的地址、协议等)。匹配分为通用匹配和特定于协议的匹配两大类。这里将介绍可用于采用任何协议的信息包的通用匹配:
基本匹配: -s,–src,–source:匹配数据包的源地址 -d,–dst,–destinnation:匹配数据包的目标地址 -i:指定数据包的流入接口 -o:指定数据包的流出接口 -p:协议匹配(tcp,udp,icmp)扩展匹配: 隐含扩展: -p tcp –sport源端口 –dport目的端口 –tcp-flags 标志位 ,匹配数据包类型SYN,ACK,RST,FIN,URG,PSH,ALL,NONE –syn -p udp –sport –dport -p icmp –icmp-type echo-request,8 echo-reply,0
显示扩展: -m state –state:对数据包状态规则检测 NEW,ESTABLISHED,RELATED,INVALID(无法识别的)
-m multiport –sports 22,80,90(指定多个源端口,中间用“,”隔开,最多15个) –dports 指定多个目标端口 –ports -m conlimit(并发连接数) –cornlimit-above 5 (超过5个) ! –cornlimit-above 5(少于5个) -m string (基于字符串匹配) –algo(kmp|bm) –string pattern -m time –timestart 07:10 –timestop 23:59:59
4.目标(target)
目标是由规则指定的操作,对与那些规则匹配的信息包执行这些操作。除了允许用户定义的目标之外,还有许多可用的目标选项:
-j ACCEPT:当信息包与具有ACCEPT目标的规则完全匹配时,会被接受。 DROP:当信息包与具有DROP目标的规则完全匹配时回忆阻塞该信息包,并不做任何处理
REJECT:该目标工作方式与DROP相同,但对数据包不会直接丢弃,而是将错误信息返回。
以上就是为各位朋友分享的相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多等着你!