Iptables的规则语法
(一)
基本语法
iptables-t filter -A INPUT -p icmp -j DROP
高级语法
iptables-t filter -A INPUT -m mac –mac-source 00:1C:23:3B:2E:B1 -j DROP
区别高级语法与基本语法的不同:首先filter的机制是由iptables_filter.ko模块所提供的功能,而这个模块本身就已提供了一些简单的匹配的过滤方式,而所谓的基本语法是指只使用iptable_filter.ko模块自身所提供的功能。高级语法必须调用其它模块的功能。以高级语法的范例为例,“-mmac”就是告知iptables工具,我们要动用xt_mac.ko模块的功能,由于是调用其它的模块,因此,语法的部分将会随着不同的模块而有所改变,而且每一个模块的语法也不一样,这就是所谓的“高级语法”。
举例1:将222.24.21.195送到本机的ICMP封包丢弃
语法:iptables-A INPUT -p icmp -s 222.24.21.195 -j DROP
语法解释:
-AINPUT
|
保护对象 |
因为本范例所使用的是INPUTChain,故其保护的对象为本机 |
-picmp
|
原文 |
-pProtocol(协议) |
|
目的 |
匹配某个特定协议封包,本范例是匹配icmp的封包 |
|
语法 |
-p icmp、-ptcp、 -pudp -p all等 |
-s222.24.21.195
|
原文 |
-s Source |
|
对应的参数 |
-dDestination |
|
目的 |
匹配封包中“来源”或“目的”端的IP |
|
语法 |
-s222.24.21.195 -s www.baidu.com等,由例子可知,IP位置的表示方法可以用单一IP或标准的CID网段,至于QDN的部分,实际上iptables是把FQDN送至DNS去执行解析,最后加入到规则之中的还是IP |
-j
|
目的 |
JUMP |
|
语法 |
将符合以上两项条件的封包以特定的方式来“处理” |
较常见的处理方式:
|
ACCEPT |
允许通过 |
|
DROP |
将封包丢弃调,这种处理方式将导致来源端误以为封包丢失,而不断重新发送封包,这个动作将持续到连接Timeout为止 |
|
REJECT |
将封包丢弃掉,并回送一个DestinationUnreachable的ICMP封包给发送端,发送端的应用程序收到这个错误信息封包之后,会终止连接的动作 |
举例2:不允许222.24.21.195主机通过本机DNS服务来执行名称解析
语法:iptables-A INPUT -p udp -s 222.24.21.195 --dport 53 -j REJECT
语法解释:
--dport53
|
原文 |
--dportDestination Port |
|
对应的参数 |
--sportSource Port |
|
目的 |
匹配TCP、UDP包头中的“来源端Port”或“目的端Port”,这样即可判断连接所要访问的服务,例如:-pudp –dport 53 代表客户端要访问UDP的53port,而UDP的53port就是DNS服务 |
|
语法 |
--dport 80、--sport80,但请注意,当时用--dport或--sport参数时,一定要指明是tcp还是udp协议。注意一点:只要规则语法中用到“Port参数”时,一定要加上“-pudp或-ptcp”的参数。 |
举例3:允许192.168.1.0/24网段的主机对192.168.0.1提出任何的服务请求
语法:iptables-A INPUT -p all -s 192.168.1.0/24 -d 192.168.0.1 -j ACCEPT
语法解释:
-pall
|
目的 |
匹配所有的协议包 |
-s192.168.1.0/24
|
目的 |
匹配来源端IP为192.168.1.0/24网段的封包 |
-jACCEPT
|
目的 |
开放符合以上3项条件的封包进入 |
举例4:只允许用户端主机从eth1访问的本机SSH服务
语法: iptables-A INPUT -p tcp -i eth1 --dport 22 -j ACCEPT
语法解释:
-ieth1
|
原文 |
-iin-interface |
|
对应的参数 |
-oout-interface |
|
目的 |
匹配封包的出入接口 |
|
语法 |
-i eth1 -oeth2 |
举例5:不允许本机的应用程序从eth0接口送出封包去访问www.baidu.com网站
语法:iptables-A OUTPUT -o eth0 -p tcp -d www.baidu.com --dport 80 -j REJECT
语法解释:
-AOUTPUT
|
限制的对象 |
因为该例子使用的OUTPUChain,所以目的是限制本机对外的连接 |
(二)
有上面几个例子了解了iptables的基本语法,下面对参数进行整理总结。
(1)接口的匹配参数
|
参数名称 |
-i 、-o |
|
参数值 |
参数值会因为防火墙主机所使用的物理接口不同而有所改变,下面列出常见的网络接口名称: * eth0 :以太网络的接口名称。 * ppp0:PPP接口的名称。 * lo :LocalLoopback接口。 * fddi0:光线接口 |
|
使用范例 |
-i eth0:匹配从eth0接口送入的封包 |
|
意义 |
匹配封包的进出接口 |
|
补充 |
可搭配“!”来代表反向,例如,“-i!eth0”即表示匹配不是从eth0接口进入的封包 |
(2)上层协议(UpperLayer Protocal)的匹配参数
|
参数名称 |
-p |
|
参数值 |
这些参数会因为匹配的上层协议的不同而有所差异,一般常见的参数如下: * tcp :匹配的上层协议为TCP协议。 * udp :匹配的上层协议为UDP协议。 * icmp :匹配的上层协议为ICMP协议。 * all :匹配所有的上层协议。 关于其它的上层协议可以参考/etc/protocols文档,现在取出一部分内容: ip 0 IP hopopt 0 HOPOPT icmp 1 ICMP igmp 2 IGMP ggp 3 GGP ipencap 4 IP-ENCAP tcp 6 TCP 注:其中第一和第二字段是给系统来使用的,比如说我们写-ptcp还可以写为-p6。因为tcp的代码就是6,第三个字段用于管理员来识别用。 |
(3)匹配来源/目的的IP地址
|
参数名称 |
-s -d |
|
参数值 |
来源及目的IP地址匹配,其可接受的IP地址格式如下: *192.168.0.1 :匹配单一IP。 *172.10.0.0/16 :匹配一个Class B的网段。 *192.168.0.0/24 :匹配一个ClassC的网段。 *192.168.0.0/28 :也可以是任何标准CIDR的网段。 * www.qq.com : 也可以是网址,但最后存放到Chain里的值还是IP |
|
使用范例 |
-s192.168.0.1 :匹配从192.168.0.1主机送来的封包 -s192.168.0.0/24 :匹配从192.168.0.0/24网段所送来的封包 -d192.168.0.10 :匹配要送往192.168.0.10主机的封包 |
|
意义 |
匹配封包来源或目的IP地址 |
|
补充 |
可搭配“!”来代表反向,例如:“-s!192.168.0.0/24”即代表匹配来源端IP不是192.168.0.0/24网段的封包 |
(4)匹配来源/目的的Port位置
|
参数名称 |
--sport–dport |
|
参数值 |
我们可以用—sport或—dport来匹配所要访问的服务,例如我们可以用--dport80参数匹配访问WebServer的封包,另外,也可以使用 --sport80参数匹配有WebServer回应给客户端的封包 |
|
使用范例 |
--dport 80 :匹配访问的WebServer的封包。 --sport 110:匹配由POP3 Server 回应给客户端的封包。 |
|
意义 |
匹配封包来源或目的的Port |
|
补充 |
可以搭配”!“来代表反向,如”--sport! 80“代表匹配不是从WebServer送来的封包 |
(5)处理方式
|
参数名称 |
-j |
|
参数值 |
较为常见的3种处理方式,分别如下: * ACCEPT:允许 * DROP :将封包丢弃 * REJECT :将封包丢弃,并回应发送端一个ICMP封包 |
|
使用范例 |
-j ACCEPT 允许 -j DROP 将封包丢弃 |
|
意义 |
以特定的方式来处理符合条件的封包 |
Iptables的规则语法的更多相关文章
- iptables原理及防火墙规则语法基础
Iptables 防火墙 学习总结: 三张表介绍: filter负责过滤数据包,包括的规则链有,input(进),output(出)和forward(转发); nat则涉及到网络地址转换,包括的规则 ...
- [转] Linux下防火墙iptables用法规则详及其防火墙配置
from: http://www.cnblogs.com/yi-meng/p/3213925.html 备注: 排版还不错,建议看以上的链接. iptables规则 规则--顾名思义就是规矩和原则,和 ...
- Iptables防火墙规则使用梳理
iptables是组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤.封包重定向和网络地址转换(NAT)等功能 ...
- Iptables防火墙规则使用
iptables是组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤.封包重定向和网络地址转换(NAT)等功能 ...
- Linux下防火墙iptables用法规则详及其防火墙配置
转:http://www.linuxidc.com/Linux/2012-08/67952.htm iptables规则 规则--顾名思义就是规矩和原则,和现实生活中的事情是一样的,国有国法,家有家规 ...
- Iptables用法规则及防火墙配置
[转载]http://www.cnblogs.com/yi-meng/p/3213925.html iptables规则 即防火墙规则,在内核看来,规则就是决定如何处理一个包的语句.如果一个包符合条 ...
- Makefile规则③规则语法、依赖、通配符、目录搜寻、目标
规则语法 通常规则的语法格式如下: TARGETS : PREREQUISITES COMMAND ... 或者: TARGETS : PREREQUISITES ; COMMAND COMMAND ...
- [moka同学摘录]iptables防火墙规则的添加、删除、修改、保存
文章来源:http://www.splaybow.com/post/iptables-rule-add-delete-modify-save.html 本文介绍iptables这个Linux下最强大的 ...
- IIS rewrite映射规则语法格式
IIS rewrite映射规则语法格式,特殊符号:&请用& amp;代替,否则异常. <configuration> <system.webServer> &l ...
随机推荐
- P 1008 说反话
转跳点:
- doc转docx
# -*- coding: utf-8-*- import win32com from win32com.client import Dispatch w = win32com.client.Disp ...
- oracle函数创建与调用
函数的定义: CREATE OR REPLACE FUNCTION FUNCTION_TEST(PARAMER1 IN VARCHAR, -- 参数的类型不写长度 PARAMER2 OUT VARCH ...
- 面向对象第二个特征-继承(Inheritance)
面向对象第二个特征-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.java中的继承概述 1>.继承概述 多个类种存在相同属性和行为时,讲这 ...
- PHP日期函数
在正式学习日期函数前大家得了解几个概念: 1.时区 2.世界时 3.unix时间戳 时区 这个概念,之前大家听说过很多.我们来啰嗦两句,我们现实生活中使用的实区,在电脑里面也是一样有规定的.1884年 ...
- 目标检测算法的总结(R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD、FNP、ALEXnet、RetianNet、VGG Net-16)
目标检测解决的是计算机视觉任务的基本问题:即What objects are where?图像中有什么目标,在哪里?这意味着,我们不仅要用算法判断图片中是不是要检测的目标, 还要在图片中标记出它的位置 ...
- Python学习——购物车程序
问题需求: 1.启动程序,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时退出,退出时,打印已购买的商品和余 ...
- centos 7.4 安装docker 19.03.6 版本。附带离线安装包
说明: 1.此环境为未安装过docker服务的环境, 如果已经安装,则自行卸载. 2.以下环境中上传的包及离线yum源默认为/home目录下,如无特殊说明,以此目录为准 步骤一:下载docker离线安 ...
- 自定义alert
参考:https://www.cnblogs.com/st-leslie/articles/5279864.html 把window.alert=function(){}指向新的方法,即相当于重写 w ...
- mysql第四篇--SQL逻辑查询语句执行顺序
mysql第四篇--SQL逻辑查询语句执行顺序 一.SQL语句定义顺序 SELECT DISTINCT <select_list> FROM <left_table> < ...