加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Iptables防火墙规则匹配条件(二)

(2014-03-21 21:35:14)
标签:

杨德兵

linux

iptables

分类: 防火墙系列系列

 

Iptables防火墙规则匹配条件(二)

------------杨德兵

 

 

规则的匹配条件

 

对于同一条防火墙规则,可以指定多个匹配条件,表示这些条件必须都满足规则才会生效,根据数据包的各种特征,结合iptables的模块结构,匹配条件的设置包括三大类:通用匹配、隐含匹配、显示匹配。

http://s15/middle/001OrCgDzy6HujT1GFgae&690

  1. 通用匹配

     

通用匹配也称为常规匹配,这种匹配方式可以独立使用,不依赖于其他条件或扩展模块。常见的通用匹配包括协议匹配、地址匹配、网络接口匹配。

 

(1)、协议匹配

 

iptables规则时使用"-p 协议名'的形式指定,用于检查数据包所使用的网络协议,如tcp、udp、icmp、all等。协议存放在/etc/procotols文件中。

 

列如;丢弃通过icmp协议访问防火墙本机的数据包,允许转发进过防火墙的除icmp协议以外的数据包。

 

http://s12/middle/001OrCgDzy6HujT389B6b&690

 

(2)、地址匹配

 

Iptables规则时使用"-s 源地址" 或 "-d 目标地址" 的形式指定,用来检查数据包的源地址(source)或目标地址(destination)。IP地址、网段地址等红豆是可以接受,但不建议使用主机名、域名地址。

 

列如;要拒绝转发源地址为192.168.1.3的数据包,允许转发源地址位于192.168.2.0/24网段的数据。

http://s5/middle/001OrCgDzy6HujT6CCEd4&690

 

当遇到小规模的网络扫描或攻击时,封IP地址是比较有效的方式。

 

列如;

监测到某个网段的频换扫描登录穷举等不良企图,可立即添加防火墙规则进行封锁。

 

http://s3/middle/001OrCgDzy6HujT8w4q62&690

 

(3)、网络接口匹配

 

Iptables规则时使用"-i 接口名" 和"-o 接口名"的形式,用于检查数据包从防火墙的那一个节后进入或发出,分别对应入站网卡,出站网卡。

列如;要丢弃从外网接口(eth1)访问防火墙本机且源地址为私有地址的数据包。

 

http://s10/middle/001OrCgDzy6HujTafEZe9&690

 

  1. 隐含匹配

     

这种匹配方式要求以指定的协议匹配作为前提条件,相当于子条件,因此无法独立使用,其对应的功能由iptables在需要时自动载入内核,常见的隐含匹配包括端口匹配,TCP标记匹配,ICMP类型匹配。

 

(1)、端口匹配

 

Iptables规则时使用"--sport" 源端口 或 "—dport 目标端口"的形式,针对协议为TCP或UDP,用来检测数据包的源端口或目标端口。单个端口号或者以冒号":"分隔的端口范围都是可以接受的,但是连续的多个端口不能采用这种方式。

 

列如;允许为网段192.168.1.0/24转发DNS查询数据包。

 

http://s7/middle/001OrCgDzy6HujTdVPM16&690

 

列如;构建Vsftpd服务器时,若要开放20,21端口,以及用于被动模式的端口范围200~300

http://s16/middle/001OrCgDzy6HujTfbCn0f&690

 

(2)、TCP标记匹配

 

Iptables规则时使用"—tcp_flags 检查范围 被设置的标记" 的形式,针对的协议为TCP,用来检查数据包的标记位。其中"检查范围"指出需要检查数据包的哪几个标记,"被设置的标记"则明确匹配对应值为1的标记,多个标记之间以逗号进行分隔。

 

列如;若要拒绝从外网接口(eth1)直接访问防火墙本机的TCP请求,单其它主机发给防火墙的TCP响应等数据包应允许。

 

http://s1/middle/001OrCgDzy6HujTfXRS90&690

http://s9/middle/001OrCgDzy6HujTiNSg68&690

http://s1/middle/001OrCgDzy6HujTlkK4e0&690

 

上述防火墙规则操作中,"--syn"的用法是兼容旧版本iptables的形式,等同于第二条规则中的"—tcp-flags SYN,RST,ACK SYN".

 

(3)、ICMP类型匹配

 

Iptabels规则时使用"--icmp-type ICMP类型"的形式,针对的协议为ICMP用来检查ICMP数据包的类型。ICMP类型使用字符串货数字代码表示,如"Echo-Rwquest" (代码为8)、"Echo-Reply" (代码为0)、"Destunation-Unreachable"(代码为3)、分别对应ICMP协议的请求、回显、目标不可达。

 

例如;若要禁止从其他主机ping本机,但是允许本机ping其他主机。

 

http://s2/middle/001OrCgDzy6HujTp8cx71&690

ICMP协议类型,可以执行"iptables –p icmp -h"命令,在帮助信息的最后部分列出了所有支持的类型。

 

http://s13/middle/001OrCgDzy6HujTrMCM5c&690

  1. 显式匹配

     

这种匹配方式要求又额外的内核模板提供支持,必须以手动以"-m模块名称"的形式调用相应的模块,然后方可设置匹配条件。添加了带显式匹配条件的规则以后,可以执行"lsmod | grep xt_" 命令查看到相关的内核扩展模板。常见的显式匹配包括多端口匹配、IP范围匹配、MAC地址匹配、状态匹配。

 

(1)、多端口匹配

 

Iptbales规则时使用"-m multiport –dports 端口列表"、"-m multiport –sports 端口列表"的形式,用来检查数据包的源端口,多个端口之间以逗号进行分隔。

 

列如;若要允许本机开放25、80、110、143、端口,以便提供邮件服务。

 

http://s6/middle/001OrCgDzy6HujTtVHf85&690

 

(2)、IP范围匹配

 

Iptables规则时使用"-m iprange –src-range IP 范围"、"-m iprange –dst-range IP 范围"的形式,用来检查数据包的源地址,目标地址,其中IP范围采用"起始地址-结束地址"的形式表示。

 

列如;若要禁止转发源IP地址位于192.168.1.5与192.168.2.5之间的TCP数据包。

 

http://s14/middle/001OrCgDzy6HujTvA5fed&690

 

(3)、MAC地址匹配

 

Iptables规则时使用"-m mac –mac-source MAC地址"的形式,用来检查数据包的源MAC地址。由于MAC地址本身的局限性,此类匹配条件一般只适用于内部网络。

 

列如;若要根据,MAC地址封锁主机,禁止访问本机的任何应用。

 

http://s3/middle/001OrCgDzy6HujTwbFo42&690

 

(4)状态匹配

 

Iptabls规则时使用"-m state –state连接状态"的形式,基于iptables的状态跟踪机制用来检查数据包的链接状态(State)。常见的连接状态包括NEW(与任何连接无关的)、EXTABLISHED(响应请求或者已建立连接的)和RELATED(与已有连接相关性的,如FTP数据连接。)

 

列如;禁止转发与正常TCP连接无关的非—syn请求数据包。

 

http://s4/middle/001OrCgDzy6HujTycFR53&690

 

列如;若只开放本机的WEB服务(80端口),但对发给本机的TCP应答数据包予以放行,其它入站数据包均丢弃。

 

http://s5/middle/001OrCgDzy6HujTz8i074&690

 

 

 

更多技术博客http://blog.sina.com.cn/ydb8032

 

网络工程师交流QQ群:220447842

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有