Linux防火墙之iptables(下)

news/2024/11/15 21:31:13/

目录

一、通用匹配

1)协议匹配

2)地址匹配 

3)接口匹配

二、隐含匹配

1)端口匹配

 2)TCP标志位的匹配 

3)ICMP的类型匹配

①请求规则设置

②回显匹配

②显示目的不可达匹配

三、显示匹配

1 )多端口匹配

2)IP范围匹配

3)MAC匹配

4)状态匹配

四、备份与还原iptables规则设置

1)备份iptables设置

2)一键导出,设置为当前防火墙设置 

3)修改iptables的默认设置


一、通用匹配

直接指定目的网段,IP地址,出入站网卡,从而直接对该类主机进行权限设置操作

通用的匹配方式一般为三种:

协议匹配-p 协议名
地址匹配-s 源地址、-d 目的地址 。可以是IP、网段、域名、空(任何地址
接口匹配-i 入站网卡、-o 出站网卡

1)协议匹配

上文中运用的实例基本都是协议匹配完成,协议匹配中还存在一个取反匹配

[root@localhost ~]#iptables -A  INPUT   ! -p icmp -j ACCEPT
[root@localhost ~]#iptables -nL

测试结果:

2)地址匹配 

直接对IP地址,源地址,目的地址或则网段中的主机进行权限操作

[root@localhost ~]#iptables -A INPUT -s 192.168.73.110 -j DROP
[root@localhost ~]#iptables -nL

 

 测试结果:

3)接口匹配

可以认为是对地址匹配的进一步设置,具体化到防火墙主机的网卡设置

[root@localhost ~]#iptables -A INPUT  -i ens33  -s 192.168.73.0/24  -j DROP

二、隐含匹配

要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类 型等条件

1)端口匹配

--sport源端口
--dport目的端口
对于端口的指定可以为单一,也可以为一个范围--sport 100    指定的就是匹配源端口100--sport  100:200  就是指定100-200这个范围--sport  100:  就是指定100及其100以上的端口--sport  200:  就是指定200及其200以下的源端口 
[root@localhost ~]#iptables -A INPUT  -p tcp   --dport 20:21 -j REJECT

 2)TCP标志位的匹配 

 --tcp-flags   TCP    标记
[root@localhost ~]# iptables -I INPUT -p tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH  SYN,ACK  -j  REJECT
[root@localhost ~]# iptables -I OUTPUT -p tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH  SYN,ACK  -j  REJECT

3)ICMP的类型匹配

ICMP类型可以是字符串、数字代码:

ICMP类型含义
Echo-Request (代码为8)表示请求
Echo- -Reply (代码为0)表示回显
Dest ination-Unreachable (代码为3)表示目标不可达

--icmp-type ICMP类型

①请求规则设置

[root@localhost ~]#iptables  -A INPUT -p  icmp   --icmp-type 8 -j REJECT

其他主机ping本机测试:

②回显匹配

[root@localhost ~]#iptables  -A INPUT -p  icmp   --icmp-type 0 -j REJECT

其他主机ping本机测试:

 

如果设置到出站数据包处理链(OUTPUT上),就是双方无法进行平命令,且没有信息的回显  

②显示目的不可达匹配

[root@localhost ~]# iptables -A INPUT -p icmp   --icmp-type 3     -j ACCEPT

三、显示匹配

要求以“-m扩展模块”的形式明确指出类型,包括多端口、MAC地址、IP范围、数据包状态等条件

1 )多端口匹配

  • -m multiport --sport 源端口列表
  • -m multiport --dport 目的端口列表
[root@localhost ~]#iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT
[root@localhost ~]#iptables -A INPUT -p udp -m multiport --dport 53 -j ACCEPT

2)IP范围匹配

  • -m iprange --src-range 源IP范围
  • -m iprange --dst-range 目的IP范围
[root@localhost ~]# iptables -A FORWARD  -p udp -m iprange --src-range 192.168.73.150-192.168.73.200 -j DROP

3)MAC匹配

该方式范围过于有限,且操作不方便,所以并不受行内推崇使用

-m mac -- -mac- source MAC地址
iptables -A FORWARD -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP#禁止来自某MAC地址的数据包通过本机转发

4)状态匹配

格式:-m state --state连接状态
状态含义
NEW主机连接目标主机,在目标主机上看到的第一个想要连接的包
ESTABLISHED主机已与目标主机进行通信,判断标准只要目标主机回应了第一个包,就进入该状态
RELATED主机已与目标主机进行通信,目标主机发起新的链接方式,一般与ESTABLISHED配合使用
INVALID无效的封包,例如数据破损的封包状态
[root@localhost ~]# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 443,80,22,21,20,53 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p udp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@localhost ~]# iptables -P INPUT DROP

最后一步设置为白名单:代表只有通过层层筛选最终能够建立联系的主机,才能够与本机进行所有端口的连接使用

四、备份与还原iptables规则设置

我们对iptables命令行中的设置,都是临时设置,只要遇到服务器关机,或者服务重启时,所有的设置都会清空且还原为原本的设置。为此,我们可以对已经测试完毕符合我们需求的防火墙设置进行备份,在必要时,可以一键还原

1)备份iptables设置

格式: iptables-save >/指定的文件 
[root@localhost ~]#iptables-save >/opt/iptables.bak

2)一键导出,设置为当前防火墙设置 

[root@localhost ~]#iptables-restore </opt/iptables.bak 

 

3)修改iptables的默认设置

iptables的默认配置文件存在于    /etc/sysconfig/iptables

 

若想永久修改只需要将备份的iptables文件重定向输入到默认配置文件(覆盖)

cat /opt/iptables.bak >/etc/sysconfig/iptables

或则将当前的设置修改为默认配置

iptables-save >/etc/sysconfig/iptables

注意:无论时什么要修改方式,谨记修改重要配置先备份的原则,修改iptables默认设置前先进行备份


http://www.ppmy.cn/news/75909.html

相关文章

3、EasyExcel介绍

文章目录 EasyExcel介绍1、 导出示例2、 导入示例3、EasyExcel集成3.1 添加依赖 EasyExcel介绍 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存&#xff0c;poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题&am…

物业管理可视化大屏

物业管理可视化大屏是一种可视化的智能物业管理&#xff0c;它可以将物业管理中的各种数据进行可视化展示&#xff0c;帮助物业管理人员更好地管理社区或园区。 什么是物业可视化数据大屏&#xff1f; 物业可视化数据大屏就是利用大数据技术&#xff0c;将物业管理中的各种信…

箭头函数的多线程在开发中的常用配置类

拿Runable实现多线程举例&#xff0c;需要实体类继承runnable的接口。然后重新run方法。再新建一个Thread类去执行。我们也可以使用内部类及箭头函数去简化。 内部类 Runnable runnable new Runnable() {Overridepublic void run() {//操作体} }; Thread thread new Thread…

面试:浏览器从输入url到渲染页面,发生了什么

用户输入阶段合成 URL&#xff1a;浏览区会判断用户输入是合法 URL&#xff0c;比如用户输入的是搜索的关键词&#xff0c;默认的搜索引擎会合成新的&#xff0c;如果符合url规则会根据url协议&#xff0c;在这段内容加上协议合成合法的url 查找缓存 网络进程获取到 URL&am…

第2章 编写高质量代码-测验题-作业

1.单选题 (1分) 下面的&#xff08; &#xff09;不是良好编码的原则。 A 在开始编码之前建立单元测试 B 建立一种有助于理解的直观布局 C 确保注释与代码完全一致 D 保持变量名简短以便代码紧凑 正确答案&#xff1a;D 2.单选题 (1分) 下面的&#xff08; &#xff09;…

C语言基础知识:C语言中的进制与进制转换

目录 常用进制类型 二进制&#xff08;binary&#xff09;&#xff1a; 八进制&#xff08;Octal&#xff09;&#xff1a; 十进制&#xff08;Decimal System&#xff09;&#xff1a; 十六进制&#xff08;Hexadecimal&#xff09;&#xff1a; 进制转换 转换原则&…

R语言混合效应(多水平/层次/嵌套)模型及贝叶斯实现教程

详情点击链接&#xff1a;R语言混合效应&#xff08;多水平/层次/嵌套&#xff09;模型及 贝叶斯实现 一&#xff1a;回归与混合效应&#xff08;多水平/层次/嵌套&#xff09;模型 1.1一般线性模型&#xff08;lm&#xff09; 1&#xff09;基本形式、基本假设、估计方法、…

大数据数据湖技术Hudi0.12.0版本源码编译

0 介绍 Apache Hudi&#xff08;Hadoop Upserts Delete and Incremental&#xff09;是下一代流数据湖平台。Apache Hudi将核心仓库和数据库功能直接引入数据湖。Hudi提供了表、事务、高效的upserts/delete、高级索引、流摄取服务、数据集群/压缩优化和并发&#xff0c;同时保…