linux防火墙(三)—— iptables语法之匹配条件
2016-10-26 19:55
615 查看
一、iptables规则的匹配条件类型有三类
1、通用匹配:可直接使用,不依赖于其他条件或扩展,包括网络协议、IP地址、网络接口等条件2、隐含匹配:要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类型等条件
3、显式匹配:要求以“-m 扩展模块”的形式明确指出类型,包括多端口、MAC地址、IP范围、数据包状态等条件
二、通用匹配规则
1、协议匹配:-p 协议名2、地址匹配:-s 源地址、-d 目的地址
3、接口匹配:-i 入站网卡、-o 出站网卡
例1:iptables -A FORWARD ! -p icmp -j ACCEPT(除了icmp协议的数据包,别的协议的包都能转发)
例2:在网关型防火墙设置如下:
~]#iptables -I FORWARD -s 192.168.1.11 -o eth1 -p tcp --sport 80 -j ACCEPT
注:192.168.1.11是企业内部的web服务器,eth1是网关防火墙的外网网卡,意思是:源地址为192.168.1.11的这台服务器tcp80端口可以回应外网请求,因为eth1是外网网卡,FORWARD转发链也对其ACCEPT了。
三、隐含匹配条件
之所有叫隐含,是因为它依赖某种协议才能搭配使用。1、端口匹配:--sport [源端口] --dport [目的端口]
例:iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT(因为设置的链是FORWARD,所以一般是网关型防火墙中设置的,源ip为192的主机可以访问其他网络的udp53端口,注意源和目的的身份切换一定要弄懂)
iptables -A FORWARD -d 192.168.4.0/24 -p udp --sport 53 -j ACCEPT(网关型防火墙中设置的,来自于udp53端口的数据包可以访问我们的192主机)
iptables -A INPUT -p tcp --dport 20:23 -j ACCEPT(一般是主机型防火墙设置的,我们电脑的20到23端口可以被访问)
2、TCP标记匹配:--tcp-flags [检查范围] [被设置的标记]
例:iptables -I INPUT -i eth1 -p tcp --tcp-flags SYN,RST,ACK SYN -j DROP
检查到有SYN的数据包,就丢弃
3、ICMP类型匹配:--icmp-type ICMP类型(ICMP类型有8、0、3)
例: iptables -A INPUT -p icmp --icmp-type 8 -j DROP (别人ping我主机的请求被丢弃,8代表请求)
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT (我ping别人时,回来的包被允许(一去一回才知道ping没ping通),0带表回来的icmp包)
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT(3也是代表请求,主机不可达,不常用)
iptables -p icmp -h (查看ICMP类型)
四、显示匹配条件
(1)多端口匹配:-m multiport --sports 源端口列表-m multiport --sports 目的端口列表
例:iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT
(2)IP范围匹配:-m iprange --src-range IP范围
例:iptables -A FORWARD -p tcp -m iprange --src-range 192.168.4.21-192.168.4.28 -j ACCEPT
(3)MAC地址匹配:-m mac --mac-source MAC地址
例:iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j DROP
(4)状态匹配:-m state --state 连接状态
NEW:与任何连接无关的
ESTABLISHED:响应请求或已建立连接的
RELATED:与已有连接有相关性的,如FTP数据连接
例:只开放本机的Web服务,但对发给本机的TCP应答报文予以放行,其他入站报文均丢弃
iptables -P INPUT DROP
iptables -I INPUT -p tcp -m multiport --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
相关文章推荐
- iptables原理;编写语法;通用匹配条件;显示匹配条件;隐藏匹配条件;
- 防火墙 之 iptables 匹配条件讲解
- linux防火墙(二)—— iptables语法之选项和控制类型
- linux下iptables命令选项、条件匹配及动作目录说明及案例实训
- Iptables语法详解
- linux防火墙(一)—— iptables架构介绍
- ClassSearcher - 扫描符合给定匹配条件的class文件
- Iptables的规则语法
- Win32高级语法 条件测试语句与分支语句
- 实现多条件查询 匹配数据库字段中多个数据
- SQL Server和Access中的条件判断语法(case when和iff)
- XSL学习笔记4 XSLT模式匹配的语法
- iptables的基本语法格式
- Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法
- SQL高级语法- INNER JOIN 关键字 在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
- grep 和 perl多个条件匹配
- 多条件匹配的精简写法
- Spring AOP中pointcut expression表达式解析 及匹配多个条件
- if条件和for循环语句、while、do..while、switch语法
- Python条件分支语法