Linux 防火墙配置(iptables和firewalld)
目录
防火墙基本概念
Iptables讲解
Iptables表
Iptables规则链
Iptables控制类型
Iptables命令配置
firewalld讲解
Firewalld区域概念
Firewalld两种配置方法
firewall-cmd命令行基础配置
firewall-config图形化配置
防火墙基本概念
防火墙就是根据系统管理员设定的规则来控制数据包的进出,主要是保护内网的安全
目前Linux系统的防火墙类型主要有两种:分别是iptables和firewalld
Iptables-静态防火墙
早期的Linux系统中默认使用的是iptables防火墙,配置文件在/etc/sysconfig/iptables
主要工作在网络层
使用链式规则,只可以过滤互联网的数据包,无法过滤从内网到内网的数据包
Iptables只可以通过命令行进行配置
Iptables默认是允许所有,需要通过拒绝去做限制
Iptables在修改了规则之后必须得全部刷新才可以生效,还会丢失连接(无法守护进程)
Firewalld-动态防火墙
取代了之前的iptables防火墙,配置文件在/usr/lib/firewalld和/etc/fiewalld中
主要工作在网络层
新增区域概念,不仅可以过滤互联网的数据包,也可以过滤内网的数据包
Firewalld不仅可以通过命令行进行配置,也可以通过图形化界面配置
Firewalld默认是拒绝所有,需要通过允许去放行
Firewalld可以动态修改单条规则,动态管理规则集(允许更新规则而不破环现有会话和连接,可以守护进程)
注意事项
iptables和firewaldl都只是linux防火墙的管理程序,真正的防火墙执行者是位于内核的netfilter,只不过firwalld和iptables的结果以及使用方法不一样
在配置防火墙时,不建议两种配置方法结合使用(建议只使用其中的一种)
Iptables讲解
Iptables配置防火墙依靠四个部分实现:表、规则链、规则(匹配条件)、控制类型组成
Iptables表
处理优先级由高到低,表与表之间都是独立的
raw表
是否对某个数据包进行状态追踪(包含OUTPUT、PREAUTING两个规则链)
mangle表
修改数据包内容;可以做流量整形、对数据包设置标记(包含所有规则链)
nat表
负责地址转换功能;修改数据包中的源目IP地址或端口(包含IN、OU、PR、PO三个规则链)
filter表
负责过滤数据包;对数据包时允许放行还是不允许放行(包含IN、OU、FO三个规则链)
Iptables规则链
什么是规则链
很多个规则组成一个规则链
数据包从上往下做匹配,匹配成功就结束匹配,并执行相应的控制类型(建议需要将精准的策略放在上面)
规则链类型
INPUT 处理入站的数据包(处理目标是本机的数据包)
OUTPUT 处理出站的数据包(处理源是本机的数据包,一般不在此链上做规则)
PREROUTING 在进行路由选择前处理数据包(一般用来做NAT Server)
POSTROUTING 在进行路由选择后处理数据包(一般用来做源NAT)
FORWARD 处理转发的数据包(处理经过本机的数据包)
Iptables控制类型
ACCEPT 允许数据包通过
DROP 丢弃数据包(不给对方回应,一般工作时用这个)
REJCET 拒绝数据包通过(会给对方回应,对方知道自己被拒绝)
SNAT 修改数据包的源地址
DNAT 修改数据包的目的地址
MASQUERADE 伪装程一个非固定的公网IP地址
LOG 在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则
数据包到达防火墙根据下图进行匹配
iptables进行数据处理关心的是四表五链以及流量的进出
Iptables命令配置
配置iptables防火墙时需要将防火墙服务开启
systemctl start firewalld 开启防火墙
systemctl status firewalld 查看防火墙状态
Iptables命令查看防火墙
iptables -nL -t nat 查看nat表的规则链
-n 使用数字形式显示输出结果(如:通过IP地址)
-L 查看当前防火墙有哪些策略
-t 指定查看iptables的哪个表(默认是filter表)
Iptables命令配置防火墙
iptables -P INPUT DROP 将INPUT规则链的默认流量更改为拒绝
-P 设置/修改默认策略
iptables -t filter -I INPUT -s 192.168.10.0/24 -j ACCEPT 在filter表下的INPUT规则链中配置规则
-I num 插入规则(大写i,默认在链的开头加入规则,可以指定序号)
-i 从这块网卡流入的数据
-o 从这块网卡流出的数据
-s 源地址(加!表示取反)
-d 目的地址
-j 限制动作
iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT 拒绝 tcp端口号为1000~1024的数据包
-A 在链的末尾加入规则
-p 指定协议类型
--sport 源端口
--dport 目的端口
iptables -D INPUT 1 删除INPUT规则链的第一条规则
-D num 删除规则链
-R 修改规则
iptables -F 清空已有的策略
iptables-save 来保存防火墙策略
注意事项
当创建的规则内容与已有规则一致时,不会覆盖原先的规则,会直接加入到现有规则链中(即此时此规则链下有两条一摸一样的规则,只是顺序不同)
以上关于防火墙的配置是runtime模式,即配置成功后立即生效,但是重启后会失效(需要将配置保存,重启后才不会失效)
firewalld讲解
frewalld是服务名称,firewall-cmd和firewall-config是配置工具名称
firewall-cmd 基于命令行配置
firewall-config基于图形化界面配置(这两个配置方式实时同步)
Firewalld区域概念
默认所有网卡都是public区域,可以根据需要将网卡设置为不同的区域
Trust 信任区域
允许所有流量(所有的网络连接都可以接受)
Public 公共区域
仅接受ssh、dhcpv6-client服务连接(默认区域)
External 外部区域
仅接收ssh服务连接(默认通过此区域转发的IPv4流量将会进行地址伪装)
Home 家庭区域
仅接受ssh、msdns、ipp-client、samba-client、dhcpv6-client服务网络连接
Internal 内部区域
同home区域
Work 工作区域
仅接受ssh、ipp-client、dhcpv6-client服务连接
Dmz 隔离区域(非军事区域)
仅接收ssh服务连接
Block 限制区域
拒绝所有传入流量(有回应)
Drop 丢弃区域
丢弃所有传入流量(无回应)
数据包到达防火墙匹配规则
firewall进行数据处理只关心区域
- 根据数据包的源IP地址匹配,根据源地址绑定区域的区域规则进行匹配(如果没有绑定区域则匹配默认区域的规则)
- 根据传入的网络接口匹配,进入此接口绑定区域的区域规则进行匹配(如果没有绑定区域则匹配默认区域的规则)
绑定源地址的区域规则>网卡绑定的区域规则>默认区域的规则
Firewalld两种配置方法
临时配置(runtime 当前生效表)
立即生效,重启后失效
不中断现有连接
无法修改服务配置
永久配置(permanent 永久生效表)
不立即生效,重启后生效,或者立即同步后生效
会终端现有连接
可以修改服务配置
firewall-cmd命令行基础配置
如何实现永久配置
--permanent 表示此配置加入到永久生效(默认临时生效)
或者在配置结束后执行此命令 firewall-cmd --runtime-to-permanent将临时更改为永久
永久配置完成后需要立即同步 firewall-cmd --reload 立即同步永久配置
查看默认区域并进行更改
firewall-cmd --get-zones 查询可用的区域
firewall-cmd --get-default-zone 查询默认区域的名称
firewall-cmd --get-active-zone 显示当前正在使用的区域与网卡名称
firewall-cmd --set-default-zone=trusted 设置默认区域为trusted区域
将网卡/子网与区域绑定(允许/拒绝此子网通过)
firewall-cmd --zone=drop --add-source=192.168.20.0/24 将此子网与drop区域绑定(拒绝从此子网发来的流量)
firewall-cmd --zone=trusted--add-interface=ens160 将此网卡与trusted区域绑定(允许从此网卡发来的流量)
--remove-source 删除子网与区域的绑定
--change-source 更改子网与区域的绑定
配置区域允许/拒绝的协议/端口号
firewall-cmd --list-all 显示当前区域的端口号、网卡、服务等信息
--list-all-zones 显示所有区域的
firewall-cmd --get-services 列举出来当前所有被允许的协议
firewall-cmd --zone=public --add-service http 配置public区域允许通过http协议
--remove-service ssh 拒绝通过ssh协议
--add-port=123/tcp 允许通过tcp的123端口
--remove-port=123/tcp 拒绝通过tcp的123端口
cat /etc/services 保存的协议类型和端口号
配置协议端口转换(端口映射)
firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.1
将192.168.10.1主机的tcp 22端口号转为888端口号(public区域接收ssh)
--remove-forward-port 删除此端口映射
其它配置
--panic-on 紧急模式,切断一切的网络连接(特殊情况去使用)
--panic-off 恢复一切的网络连接
配置富规则rich(更复杂、更详细的防火墙策略配置)
优先级最高(高于默认规则,两个并不冲突)
能够根据源目地址、端口号来限制用户
firewall-cmd --zone=public --list-rich-rule 显示public区域已经配置的富规则
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.100.1/24" service name="ssh" accept" 允许来自192.168.100.1的主机访问22端口
--add-rich-rule 添加一个富规则
--remove-ruch-rule 删除一个富规则
reject 拒绝访问
firewall-config图形化配置
安装firewall-config
配置Yum源(软件仓库)
Linux 软件包安装_静下心来敲木鱼的博客-CSDN博客https://blog.csdn.net/m0_49864110/article/details/129150924?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22129150924%22%2C%22source%22%3A%22m0_49864110%22%7D
安装软件 dnf install firewall-config
系统界面讲解
1:选择运行时(Runtime)或永久(Permanent)模式的配置
2:选择区域
3:当前正在使用的区域(黑色加粗)
4:管理当前被选中区域中的服务
5:管理当前被选中区域中的端口
6:设置允许被访问的协议
7:设置允许被访问的端口
8:开启或关闭SNAT(源网络地址转换)技术
9:设置端口转发策略
10:控制请求icmp服务的流量
11:被选中区域的服务,若勾选了相应服务前面的复选框,则表示允许与之相关的流量
12:管理防火墙的富规则
13:网卡信息(网卡与区域绑定信息)
14:子网信息(子网与区域绑定信息)
15:查看常用的服务协议列表
16:主机地址的黑白名单
相关文章:
Linux 防火墙配置(iptables和firewalld)
目录 防火墙基本概念 Iptables讲解 Iptables表 Iptables规则链 Iptables控制类型 Iptables命令配置 firewalld讲解 Firewalld区域概念 Firewalld两种配置方法 firewall-cmd命令行基础配置 firewall-config图形化配置 防火墙基本概念 防火墙就是根据系统管理员设定的…...
深度学习基础(一)
记得17年第一次阅读深度学习相关文献及代码觉得不是很顺畅,做客户端开发时间久了,思维惯性往往觉得比较迷茫。 而且文章中涉及的数学公式及各种符号又觉得很迷惑,虽然文章读下来了,代码也调试过了,意识里并没有轻松的…...
Maven 常用命令
mvn archetype: create :创建Maven 项目mvn compile :编译源代码。mvn deploy:发布项目。mvn test-compile :编译测试源代码mvn test:运行应用程序中的单元测试mvn site:生成项目相关信息的网站mvn clean:清除项目目录中的生成结果mvn package:根据项目生成的iar/war等mvn inst…...
2023年100道最新Android面试题,常见面试题及答案汇总
除了需要掌握牢固的专业技术之外,还需要刷更多的面试去在众多的面试者中杀出重围。小编特意整理了100道Android面试题,送给大家,希望大家都能顺利通过面试,拿下高薪。赶紧拿去吧~~文末有答案Q1.组件化和arouter原理Q2.自定义view&…...
[JavaEE系列] 详解面试中HTTP协议HTTPS协议
文章目录HTTP不安全HTTPS中的加密算法对称加密非对称加密混合加密HTTPS中的摘要算法HTTPS中的数字证书SSL /TLS握手TCP建立连接(三次握手)三次握手中常见的面试题:TCP断开连接(四次挥手)四次挥手中常见的面试题&#x…...
mac 好用的类似Xshell工具
下载royal TSX 5.1.1 http://share.uleshi.com/f/9490615-685692355-33bf1e修改mac的etc/hosts文件权限访达(鼠标右键) -> 前往文件夹 ->输入/private --> 打开etc/hosts --> 显示简洁(鼠标右键) --> 权限改成读和写hosts文件写入如下内容:# Royal T…...
浅谈SQL中的union和union all
文章目录概念基础语法使用技巧区别总结概念 MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。 UNION 操作符选取不同的值,如果允许得到重复的值,可以使用 UNION ALL 基础语法 -- u…...
P6软件应用的核心收益
卷首语 提供了多用户、多项目的功能模块,支持多层次项目等级划分,资源分配计划,记录实际数据,自定义视图,并具有用户定义字段的扩展功能。 利用最佳实践,建立企业模板库 P6软件支持用户使用模板编制项目…...
性能测试中,我遇到的8个常见问题总结
性能压测中我们需要明白以下几点: 1、好的开始是成功的一半,前期的准备非常重要; 2、过程中,关注每个细节,多个维度监控; 3、在调优中多积累经验; 4、对结果负责,测试报告要清晰…...
kafka架构体系
Kafka简介 Kafka是一个由Scala和Java编写的企业级的消息发布和订阅系统,最早是由Linkedin公司开发,最终开源到Apache软件基金会的项目。Kafka是一个分布式的,支持分区的,多副本的和多订阅者的高吞吐量的消息系统,被广…...
【Kafka】三.Kafka怎么保证高可用 学习总结
Kafka 的副本机制 Kafka 的高可用实现主要依赖副本机制。 Broker 和 Partition 的关系 在分析副本机制之前,先来看一下 Broker 和 Partition 之间的关系。Broker 在英文中是代理、经纪人的意思,对应到 Kafka 集群中,是一个 Kafka 服务器节…...
Python学习笔记7:再谈抽象
再谈抽象 对象 多态 即便你不知道变量指向的是哪种对象,也能够对其执行操作封装 向外部隐藏不必要的细节。继承 类 class Person: def set_name(self, name): self.name name def get_name(self): return self.name def greet(self): print("Hello, world…...
钣金行业mes解决方案,缩短产品在制周期
钣金加工行业具有多品种、小批量离散制造行业的典型特点。一些常见的下料车间、备料车间、冲压车间、冲剪生产线等。一般来说,核心业务是钣金加工的生产单位。 一般来说,与大规模生产相比,这种生产方式效率低、成本高,自动化难度…...
【Linux】——git和gdb的简单使用技巧
目录 1.\r&&\n 2.缓冲区 3.做一个Linux的小程序——进度条 1.makefile代码: 2.proc.h代码 3.proc.c代码 4.main.c代码 4.git(上传做好的小程序) 5.Linux调试器-gdb使用 1.\r&&\n 在Linux中,可以将\r看成…...
Fiddler的简单使用
目录 1.断点应用 2.网络限速测试 2.1.为什么需要弱网测试 2.2.Fiddler弱网测试配置 1.断点应用 通过断点功能,可以在测试时方便的篡改request,response以达到测试的目的,如果:在请求头中的参数修改成错误的,或在响应…...
MySql 事务
概述 事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 注意: 默认MySQL的事务是自动提交的,也就是…...
微信社区小程序/h5/圈子论坛贴吧交友/博客/社交/陌生人社交/宠物/话题/私域/同城交友
内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 小程序/app/H5多端圈子社区论坛系统,交友/博客/社交/陌生人社交,即时聊天,私域话题,社区论坛圈子,信息引流小程序源码,广场/微校园/微小区/微同城/ 圈子论坛社区系统,含完整…...
Python os和sys模块
一、os模块 os 模块是 Python中的一个内置模块,也是 Python中整理文件和目录最为常用的模块。 该模块提供了非常丰富的方法用来处理文件和目录。比如:显示当前目录下所有文件/删除某个文件/获取文件大小 1、获取当前的工作路径 在 Python 中࿰…...
JS中数组如何去重(ES6新增的Set集合类型)+经典two sum面试题
现在有这么一个重复数组:const arr [a,a,b,a,b,c]只推荐简单高效的方法,复杂繁琐的方法不做推荐方法一:const res [...new Set(arr)]Set类型是什么呢?Set 是ES6新增的一种新集合类型。具体知识点可以看下面附录:根据…...
HDLC简介及相应hdlc实训
HDLC简介 HDLC 协议 高级数据链路控制(HDLC,High-level Data Link Control)是一种面向比特的链路层协议, 其最大特点是对任何一种比特流,均可以实现透明的传输。HDLC协议具有以下优点。 透明传输:HDLC不…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...













