当前位置: 首页 > news >正文

linux-网络管理-防火墙配置

Linux 网络管理:防火墙配置

1. 防火墙概述

防火墙是保护计算机系统和网络免受未经授权访问和网络攻击的安全机制。Linux 系统中,防火墙通过控制进入和离开网络的数据包,实现网络流量的过滤和管理。

Linux 上的防火墙配置工具有多种,其中最为常用的是 iptables 和现代 firewalld,以及一些其他如 ufw 这样的简化管理工具。

2. Linux 防火墙的基本原理

防火墙的基本工作原理是根据设定的规则对网络数据包进行过滤和处理,规则通常包括以下几部分:

  • 源地址:数据包的来源地址,可以是 IP 或网络段。
  • 目标地址:数据包的目的地址。
  • 协议类型:如 TCP、UDP、ICMP 等。
  • 源端口和目标端口:与传输协议相关联的端口号,如 HTTP 服务的 80 端口。

防火墙通过(Chains)和规则(Rules)来定义如何处理数据包:

  • 链(Chains):防火墙规则的处理路径,通常分为三类:
      - INPUT:进入系统的数据包(例如从外部网络到本地主机)。
      - FORWARD:转发通过本地系统的数据包(例如路由设备的功能)。
      - OUTPUT:从本地系统发送出去的数据包。
  • 规则(Rules):每个链上可以设置多条规则,定义了如何处理特定的数据包。常见的动作包括:
      - ACCEPT:允许数据包通过。
      - DROP:丢弃数据包,不给出响应。
      - REJECT:拒绝数据包并返回错误信息。
3. iptables:经典的防火墙工具

iptables 是 Linux 内核中的网络数据包过滤框架,提供了强大的防火墙功能,主要管理 IPv4 的防火墙规则。

3.1 iptables 基本语法

iptables 命令的基本格式如下:

iptables [选项] 链名 [条件匹配] -j 动作
  • 链名:指定在哪个链上操作(如 INPUT、FORWARD、OUTPUT)。
  • 条件匹配:指定数据包匹配条件,如源地址、目标地址、协议等。
  • 动作:定义匹配规则后的处理动作,如 ACCEPT、DROP、REJECT。
3.2 常用 iptables 命令
  • 查看当前规则
iptables -L
  • 允许某个端口的流量

允许 80 端口的 HTTP 流量:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  • 拒绝特定 IP 地址

阻止来自 192.168.1.100 的所有流量:

iptables -A INPUT -s 192.168.1.100 -j DROP
  • 删除特定规则

假设想删除特定的规则,可以使用 -D 参数:

iptables -D INPUT -p tcp --dport 80 -j ACCEPT
  • 保存规则

iptables 的规则默认在系统重启后会丢失,因此需要手动保存。根据不同的发行版,保存命令可能不同:
  
在基于 Debian 系列的系统中,可以通过 iptables-save 命令保存规则:

iptables-save > /etc/iptables/rules.v4

然后,通过 iptables-restore 恢复:

iptables-restore < /etc/iptables/rules.v4

在基于 CentOS 或 RHEL 的系统中,保存规则可以使用以下命令:

service iptables save
3.3 iptables 的表和链

iptables 使用不同的表来管理不同类型的防火墙规则,每个表包含多个链:

  • filter 表:默认表,管理最常见的输入、输出和转发规则。常用链包括:
      - INPUT:处理进入本机的数据包。
      - FORWARD:处理通过本机转发的数据包。
      - OUTPUT:处理本机发送的数据包。

  • nat 表:处理与网络地址转换相关的规则。常用链包括:
      - PREROUTING:在数据包进入路由前处理。
      - POSTROUTING:在数据包路由后处理。
      - OUTPUT:处理本地生成的需要 NAT 的数据包。

  • mangle 表:用于修改数据包的服务类型、TTL 等特性。

例如,配置 NAT 地址转换时:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
4. firewalld:现代防火墙管理工具

firewalldiptables 的一个更高级的替代品,提供了动态防火墙管理。它简化了防火墙规则的管理,并支持区域概念,允许根据网络接口或源地址设置不同的防火墙策略。

4.1 firewalld 的基本概念
  • 区域(Zones):每个网络接口或源地址可以分配到一个区域,区域定义了不同的信任级别。例如,public 区域默认会拒绝大部分的入站流量,而 trusted 区域则允许所有流量。
  • 服务(Services)firewalld 通过预定义的服务(如 HTTP、SSH)来简化规则管理。服务包含了默认端口、协议的定义,用户可以通过启用或禁用服务来管理网络访问。
  • 即时与永久规则firewalld 允许即时应用规则(不重启生效),并区分永久规则和即时规则。永久规则在重启系统后依然有效。
4.2 firewalld 基本操作
  • 查看防火墙状态
sudo firewall-cmd --state
  • 查看当前区域和规则
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --list-all
  • 启用或禁用服务

例如,启用 HTTP 服务:

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

这里 --permanent 使规则永久生效,--reload 用于重新加载配置。

  • 添加端口规则

除了预定义的服务,用户也可以通过端口号直接添加规则。例如,允许 8080 端口的流量:

sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
  • 删除规则

删除某个服务或端口规则:

sudo firewall-cmd --remove-service=http --permanent
sudo firewall-cmd --reload
4.3 区域配置

每个网络接口可以分配到不同的区域,默认情况下,所有接口分配到 public 区域。可以使用以下命令查看接口所属区域:

sudo firewall-cmd --get-active-zones

更改接口所属区域:

sudo firewall-cmd --zone=trusted --change-interface=eth0 --permanent
sudo firewall-cmd --reload
5. ufw:简化的防火墙管理工具

ufw(Uncomplicated Firewall)是 Ubuntu 系统上简化防火墙管理的工具,它是 iptables 的前端工具,旨在提供更加用户友好的命令来管理防火墙。

5.1 ufw 基本命令
  • 启用防火墙
sudo ufw enable
  • 查看防火墙状态
sudo ufw status
  • 允许某个服务或端口

允许 HTTP 服务:

sudo ufw allow http

允许 22 端口的 SSH 流量:

sudo ufw allow 22/tcp
  • 拒绝特定 IP 地址的连接
sudo ufw deny from 192.168.1.100
  • 禁用防火墙
sudo ufw disable
5.2 配置文件管理

ufw 的配置文件位于 /etc/ufw/ufw.conf,可以在这里启用或禁用防火墙启动时自动加载。

6. 防火墙策略配置示例

假设我们要为一台 Web 服务器配置防火墙,目标是允许 HTTP(80)和 HTTPS(443)流量,同时阻止其他所有入站流量。我们可以使用 iptablesfirewalld 配置如下:

使用 iptables 配置:
iptables -P INPUT DROP            # 默认丢弃所有入站流量
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT         # 允许所有出站流量
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 允许现有连接
iptables -A INPUT -p tcp --dport 80 -j ACCEPT   # 允许 HTTP 流量
iptables -A INPUT -p tcp --dport 443 -j ACCEPT  # 允许 HTTPS 流量
使用 firewalld 配置:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
7. 总结

Linux 的防火墙工具如 iptablesfirewalldufw 提供了灵活强大的网络安全管理手段。通过配置和管理防火墙规则,可以有效控制网络流量,防止不必要的外部访问,同时保护系统免受潜在的网络攻击。不同工具适合不同场景,iptables 提供了细粒度的控制,firewalld 提供了动态防火墙管理,而 ufw 则简化了配置过程。

相关文章:

linux-网络管理-防火墙配置

Linux 网络管理&#xff1a;防火墙配置 1. 防火墙概述 防火墙是保护计算机系统和网络免受未经授权访问和网络攻击的安全机制。Linux 系统中&#xff0c;防火墙通过控制进入和离开网络的数据包&#xff0c;实现网络流量的过滤和管理。 Linux 上的防火墙配置工具有多种&#x…...

【springboot】实现文件上传和下载

目录 1. 新建一个springboot项目2. 配置文件application.propertiesapplication.yml 3. 控制类实现文件上传和下载4. 测试 1. 新建一个springboot项目 新建一个springboot项目&#xff0c;选择web&#xff0c;默认即可. 主要pom配置文件如下&#xff1a; <parent><gr…...

【RabbitMQ】RabbitMQ如何保证数据的可靠性,RabbitMQ如何保证数据不丢失,数据存储

【RabbitMQ】RabbitMQ如何保证数据的可靠性&#xff0c;RabbitMQ如何保证数据不丢失&#xff0c;数据存储 RabbitMQ通过一系列机制来确保数据&#xff08;即消息&#xff09;在传输和处理过程中不丢失。这些机制主要包括以下几个方面&#xff1a; 1. 消息持久化 持久化消息&a…...

Redis 篇-初步了解 Redis 持久化、Redis 主从集群、Redis 哨兵集群、Redis 分片集群

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 分布式缓存概述 2.0 Redis 持久化 2.1 RDB 持久化 2.1.1 RDB 的 fork 原理 2.2 AOF 持久化 2.3 RDB 与 AOF 之间的区别 3.0 Redis 主从集群 3.1 搭建主从集群 3.2…...

算法基础-二分查找

左闭右闭 [ left&#xff0c;right ] [1,1]可以 while( left < right ) if( a[mid] > target ) right mid - 1 else if( a[mid] < target ) left mid 1 左闭右开 [ left&#xff0c;right ) …...

LeetCode:1184. 公交站间的距离 一次遍历数组,复杂度O(n)

1184. 公交站间的距离 today 1184 公交站间的距离 题目描述 环形公交路线上有 n 个站&#xff0c;按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离&#xff0c;distance[i] 表示编号为 i 的车站和编号为 (i 1) % n 的车站之间的距离。 环线上的公交车都…...

牛客周赛 Round 60(A,B,C,D,E,F)

比赛链接 官方题解 这场基本都是数学题&#xff0c;官方题解讲的还不错&#xff0c;F能听懂的话其实不难。E是一个球盒模型的组合问题&#xff0c;F是化简递推式&#xff0c;成环时的解决方法很不错。 A 困难数学题 思路&#xff1a; 一个数异或两次结果为 0 0 0&#xff…...

vueCropper裁剪图片(不模糊)以及记录使用方法

需求&#xff1a;上传限定比例的图片。前端框架是vue3 element plus。 问题&#xff1a;使用vueCropper后比例固定。但是上传后的图片很模糊 vueCropper官网 解决办法 vueCropper中有一个full和high两个参数&#xff0c;记得开启 const options: any reactive({img: , // 原…...

【HTML】HTML页面和常见标签

文章目录 什么是前端HTML 页面编写如何快速生成代码框架常见标签注释标签标题标签段落标签换行标签格式化标签 什么是前端 Web 前端&#xff0c;用来直接给以用户呈现的一个一个的网页。一个软件通常是由 后端前端 完成的 后端&#xff1a;通过 Java/C等语言&#xff0c;完成相…...

鸿蒙 ArkUI组件二

ArkUI组件&#xff08;续&#xff09; 文本组件 在HarmonyOS中&#xff0c;Text/Span组件是文本控件中的一个关键部分。Text控件可以用来显示文本内容&#xff0c;而Span只能作为Text组件的子组件显示文本内容。 Text/Span组件的用法非常简单和直观。我们可以通过Text组件来显…...

PHP 实现 redis 分布式锁

分布式锁 如果是强一致性保证&#xff0c;在获取锁或者失败后引入数据库存储扫表、mq 等方式进行补偿 如果可以容忍少量异常就不需要考虑了 像这里的代码&#xff0c;没吃建立一个链接铺货&#xff0c;性能损耗时间延迟也是很大的&#xff0c;也可在一块代码中进行服务&…...

vue3 自定义el-tree树形结构样式

这里样式设置主要用到了 windcss 实现效果 模拟数据 这里也可以用模拟的数据,下面用的是后端请求的真实数据 [{"id": 5,"rule_id": 0,"status": 1,"create_time": "2019-08-11 13:36:09","update_time": "…...

【网络安全】分享4个高危业务逻辑漏洞

未经许可,不得转载。 文章目录 正文逻辑漏洞1逻辑漏洞2逻辑漏洞3逻辑漏洞4其它正文 该目标程序是一家提供浏览器服务的公司,其核心功能是网页抓取和多账户登录操作,类似于浏览器中的隐身模式,但更加强大和高效。通过该平台,用户可以轻松管理并同时运行数百个隐身浏览器实…...

【装机教程】Visual Studio Community 2019离线安装

Visual Studio 2019离线安装 由于现在 官网只支持在线安装最新版的Visual Studio 2022&#xff0c;因此 Visual Studio Community 2019需要离线安装。 下载离线安装镜像&#xff0c;并解压。点击vs_setup.exe运行。 选择安装位置&#xff0c;四处位置需要确定。 选择语言包&…...

NumPy 线性代数

NumPy 线性代数 NumPy 是 Python 中用于科学计算的核心库之一&#xff0c;它提供了一个强大的数学函数库&#xff0c;特别是在处理大型多维数组和矩阵时表现出色。线性代数是 NumPy 的一个重要组成部分&#xff0c;它包含了大量的函数和运算符&#xff0c;用于执行矩阵和向量的…...

家装材料之水泥,最容易被忽视的基础材料!

由于水泥在装修中扮演辅料的角色&#xff0c;很多业主往往会忽视它们的质量。事实上&#xff0c;装修无小事&#xff0c;不能抱有抓大放小的态度。      更何况水泥是装修工程的基础材料&#xff0c;在家居装修中&#xff0c;地面、墙面的找平以及瓷砖、大理石的铺贴&#…...

openstack之keystone介绍

功能 keystone在OpenStack中负责&#xff1a; 管理&#xff1a;用户、租户和权限&#xff1b; 认证&#xff1a;组件相互访问的身份认证&#xff1b; 鉴权&#xff1a;提供 RBAC&#xff08;Role Based Access Control&#xff09; 权限体系&#xff1b; 服务注册与发现&#…...

【图像拼接】基于SIFT/SURF特征算法的图像拼接,matlab实现

博主简介&#xff1a;matlab图像代码项目合作&#xff08;扣扣&#xff1a;3249726188&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于SIFT/SURF特征算法的图像拼接&#xff0c;用matlab实现。 一、案例背景和算法介…...

《微信小程序实战(2) · 组件封装》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…...

LaTex2024 下载安装运行HelloWorld—全流程笔记

LaTex安装教程&#x1f680; 这是读博之后写的第一篇文章&#xff0c;来到新课题组之后&#xff0c;新课题组主要是用Latex&#xff0c;在之前的课题组&#xff0c;还是比较常用world&#xff0c;所以就研究了一下Latex的下载和安装&#xff0c;虽然网上已经有了不少教程&#…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...