【linux】ufw 的基本使用

碎碎念

所有的云平台的网络流量的进出基本上有三层,首先是虚拟网的流量控制,一般是通过子网访问控制列表来控制vpc也好子网也好的流量出入,其次是安全组控制一层,通过安全组规则控制一类/一组主机(指EC2/ECS/VM/CE这些资源)的流量出入,最后是主机内部的防火墙

redhat系默认使用firewalld服务,ubuntu默认使用ufw,一部分debian系和小众发行版还在使用默认的iptables,不管是哪一种本质上都是在iptables层面上设置的,只不过ufw是更加容易使用的一种封装而已

ufw下载

debian系

更新,安装,启动 ufw

sudo apt update
sudo apt install ufw
sudo ufw enable

redhat系

如果是从redhat下载的镜像可能还需要先用subscription-manager进行注册

sudo yum install epel-release
sudo yum update
sudo yum install ufw
sudo ufw enable

ufw的基本使用

对于流量,有入方向和出方向两种,ufw提供的一般格式为

ufw [allow/deny/reject] [ip/port/service] [incoming/outgoing]

[incoming/outgoing] 指定了流量的方向是出还是入

[ip/port/service] 指定了流量的目标或者来源

[allow/deny/reject] 指定了某个目标(或者来源)的入方向(或者出方向)流量是被接受还是拒绝

启动 / 停止 ufw

激活ufw
ufw enable禁用ufw
ufw disable

以上都是在系统重启的时候生效 要启动ufw或者修改之后发现网络设置不生效可以用

ufw reload

查看已经存在的规则

ufw status

可以列出所有已经存在的规则

其中可以看到ssh已经被允许通过了,但是具体来说是允许进入还是允许出去并没有显示出来

如果使用

ufw status numbered

的话可以看到被允许的流量方向以及规则的标号

 

 

允许 / 拒绝 特定的端口

以4396为例,先用status查看是否开放了这个端口,然后使用命令ufw allow

ufw allow 4396

果然已经添加成功了

如果要禁用端口4396的话只需要使用命令ufw deny即可

ufw deny 4396

同样是拒绝 deny 与 reject

deny和reject都是拒绝的动作,但是对于数据包的处理稍有不同,deny是把被拒绝的数据包直接丢弃掉,并不返回错误信息,通常被拒绝的发送者会等待超时,但是reject拒绝之后可以提供一条错误响应

所以从网络测试来说返回的错误响应有助于调试程序,从安全性来说直接丢弃更加隐蔽

取决于实际使用时的需求,在这里先默认使用deny,因为二者的写法格式是相同的

允许 / 拒绝 特定的IP地址

和端口的写法略有不同的是:

端口只需要一个端口号就可以,IP地址多了两个关键词,以 192.168.0.10为例

允许出方向的写法是

ufw allow to 192.168.0.10

允许入方向的写法是

ufw allow from 192.168.0.10

拒绝也是同理

如果同时指定了目标和源的话也可以,比如可以允许从192.168.0.9到any

ufw allow from 192.168.0.10 to any

 

允许 / 拒绝  特定的子网

如果不是特定的单一IP,而是针对一整个子网允许或者拒绝的话,就要把IP地址换成CIDR地址

比如来自10.0.0.1~10.0.0.255的访问全部都拒绝的话,那也就是拒绝了10.0.0.0/24这个子网

ufw deny from 10.0.0.0/24

允许 / 拒绝  组合的情况

如果不仅仅是IP地址或者端口的情形,而是上述的简单情形组合在一起的时候

端口和协议的组合

只要在端口号的后面用 / 并且加上协议名称就行

允许通过tcp的4396端口
ufw allow 4396/tcp

IP和端口的组合

ps:ufw的规则基于源地址、目标地址和端口,但不包括源端口,所以如果想指定从

10.0.0.1 port xxx 到 10.0.0.2 port xxx 的话要么等新版本要么得用iptables进行更加精细的设置

ufw allow from 10.0.0.1 to 10.0.0.2 port 4396

IP 端口 协议的组合

ufw allow proto tcp from 10.0.0.1 to 10.0.0.2 port 7777

子网 端口的组合

ufw allow from 10.0.0.0/24 to 10.0.1.0/24 port 4396

允许 / 拒绝  特定的网络接口

比如要允许流量从宽带进入但是拒绝从wifi进入的流量(这要求也是少见)

其中 wifi的接口是 wlan0,宽带的接口是eth0

on后接网络接口名,in是指入站流量,如果是出站的话就是改成out

ufw allow in on eth0
ufw deny in on wlan0

删除规则

对于已经允许的端口,如果需要使用默认规则(而非禁用这个端口)的话,就可以删除掉之前添加的规则,而写法比较鬼畜,就是用 delete 加上那条规则本身

比如已经允许了 4396端口

ufw allow 4396

删除它的命令就应该是

ufw delete allow 4396

这种写法对于上述组合的情况而言比较麻烦,所以通常来说是使用

ufw status numbered

先查看带序号的规则然后根据序号删除规则,假如是要删除的是规则7

ufw delete 7

重设规则

由于某种情况,想要放弃掉所有的规则还原到最初的防火墙设定的话

ufw reset

基本的使用就是以上几种,其中最常用的可能就是端口的情形,对于云平台中的流量控制有NACls和安全组,没有特别设计的情况下本地防火墙的设置通常是保持默认规则

祝大家玩得开心

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/594478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言结构体学习

文章目录 前言一、结构体的声明1,什么叫结构体?2,结构体的类型3,结构体变量的创建和初始化4,结构体的类型5,结构体的初始化 二、结构体的访问1,结构体成员的点操作符访问2,结构体体成员的指针访问 三、结构…

rime中州韵小狼毫 inputShow lua Filter 输入字符透传滤镜

在 rime中州韵小狼毫 inputShow lua Translator 一文中,我们通过 inputShow.lua 定制了 inputShow_translator,这使得我们的输入方案可以将用户输入的字符透传到候选列表中来。如下👇: 👆上图中我们在候选列表中看到了…

基于ssm+vue服装商城购物系统

摘要 在基于SSM框架和Vue.js的服装商城购物系统中,整合了多种先进的技术,为电子商务领域的发展提供了有力支持。该系统不仅仅是技术层面的整合,更是对于业务流程和用户体验的深入考虑。以下是对该系统扩展的一些关键方面的讨论,以…

synchronized锁

synchronized 类锁:给类的静态方法加上synchronized 关键字进行修饰, 锁的是当前类class,一个静态同步方法拿到锁,其他静态同步方法就会等待静态同步方法和普通同步方法间是没有竞争的 对象锁:给类的方法加上synchron…

elasticsearch如何操作索引库里面的文档

上节介绍了索引库的CRUD,接下来操作索引库里面的文档 目录 一、添加文档 二、查询文档 三、删除文档 四、修改文档 一、添加文档 新增文档的DSL语法如下 POST /索引库名/_doc/文档id(不加id,es会自动生成) { "字段1":"值1", "字段2&q…

基于头脑风暴算法优化的Elman神经网络数据预测 - 附代码

基于头脑风暴算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于头脑风暴算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于头脑风暴优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&…

Vue3 的 emit 该怎么写, vue2 对比

Vue3 的 emit 该怎么写&#xff0c; vue2 对比 这是个新手问题&#xff0c;从 vue2 转到 vue3 之后&#xff0c;一时间不知道该怎么用它了。 vue2 用法 vue2 在 template 中 和 在方法中的用法如下&#xff1a; <template><button click"$emit(clicked, 要传…

贝锐花生壳全新功能:浏览器一键远程访问SSHRDP远程桌面

为了满足特定场景的远程访问需求&#xff0c;如&#xff1a;远程群晖NAS设备、远程SQL Server数据库/MySQL数据库、3389远程桌面&#xff08;RDP远程桌面&#xff09;、远程SSH、我的世界游戏联机…… 贝锐花生壳推出了场景映射服务&#xff0c;不仅提供满足相应场景的网络带宽…

在 2024 年搜索中提升排名的 7 项内容调整

忘掉关键词填充和算法追逐。2024 年的重点是 EEAT&#xff0c;宝贝&#xff01;谷歌希望最专业、最权威、最值得信赖&#xff08;EEAT&#xff09;的内容能够排名靠前&#xff0c;这就意味着您的内容需要成为专业知识、参与度和信任度的交响乐。 准备好让搜索引擎和人类都无法…

YOLOv5算法进阶改进(10)— 更换主干网络之MobileViTv3 | 轻量化Backbone

前言:Hello大家好,我是小哥谈。MobileViTv3是一种改进的模型架构,用于图像分类任务。它是在MobileViTv1和MobileViTv2的基础上进行改进的,通过引入新的模块和优化网络结构来提高性能。本节课就给大家介绍一下如何在主干网络中引入MobileViTv3网络结构,希望大家学习之后能够…

基于Java SSM框架实现四六级在线考试系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现四六级在线考试系统演示 摘要 随着现在网络的快速发展&#xff0c;网上管理系统也逐渐快速发展起来&#xff0c;网上管理模式很快融入到了许多学院的之中&#xff0c;随之就产生了“四六级在线考试系统”&#xff0c;这样就让四六级在线考试系统更加方便…

kbdnso.dll文件缺失,软件或游戏报错的快速修复方法

很多小伙伴遇到电脑报错&#xff0c;提示“kbdnso.dll文件缺失&#xff0c;程序无法启动执行”时&#xff0c;不知道应该怎样处理&#xff0c;还以为是程序出现了问题&#xff0c;想卸载重装。 首先&#xff0c;先要了解“kbdnso.dll文件”是什么&#xff1f; kbdnso.dll是Win…

2007-2022年上市公司数字化转型数据(区分年报和管理层讨论)(含原始数据+处理代码+结果)

2007-2022年上市公司数字化转型数据&#xff08;年报和管理层讨论&#xff09;&#xff08;含原始数据处理代码结果&#xff09; 1、时间&#xff1a;2007-2022年 2、指标&#xff1a;统计年度、证券代码、人工智能技术、区块链技术、云计算技术、大数据技术、数字技术应用、…

requests库中Session对象超时解决过程

引言 在使用Python进行网络请求时&#xff0c;requests库是一个非常常用的工具。它提供了Session对象来管理和持久化参数&#xff0c;例如cookies、headers等。但是&#xff0c;对于一些需要长时间运行的请求&#xff0c;我们需要设置超时时间来避免长时间等待或者无限期阻塞的…

浏览器使用隧道代理HTTP:洞悉无界信息

在信息爆炸的时代&#xff0c;互联网已经成为获取信息的首选渠道。然而&#xff0c;在某些地区或情况下&#xff0c;访问某些网站可能会受到限制。这时&#xff0c;隧道代理HTTP便成为了一个重要的工具&#xff0c;帮助用户突破限制&#xff0c;洞悉无界信息。 一、隧道代理HT…

上海AI lab大模型微调

教程链接&#xff1a;InternLM学习教程链接 命令行演示结果&#xff1a; web演示结果

书生·浦语大模型全链路开源开放体系

书生浦语大模型全链路开源开放体系 大模型成为热门关键词书生浦语大模型开源历程书生浦语20B开源大模型性能从模型到应用书生浦语全链路开源开放体系数据预训练微调评测部署智能体 大模型成为热门关键词 大模型成为发展通用人工智能的重要途径 书生浦语大模型开源历程 书生浦语…

Apipost多Host服务配置

最近Apipost新增同环境下多host服务的配置功能&#xff0c;本篇文章带来该功能的使用场景及使用方法。 配置方法&#xff1a; 点击右上角眼睛标识进入环境管理 点击添加服务&#xff0c;输入服务名和URL 配置完成后需要在接口目录中选择该目录下需要使用的host服务&#xff0…

架构设计系列之分布式系统 11,12,13,14,15,16,17,18

架构设计系列之分布式系统 11&#xff1a;架构理论 第二部分 引 言 前面的几部分介绍了关于软件架构设计的基本概念、基本理论、演化史、常见架构相关的内容&#xff0c;同时还专门介绍了架构设计相关的组织文化保障、遵循定律以及一个程序员应该如何转型成为架构师&#xf…

灰度发布及声明式资源管理(yaml文件)

一、三种常见的项目发布方式 1&#xff09;蓝绿发布 2&#xff09;灰度发布【常用】 3&#xff09;滚动发布 应用程序升级&#xff0c;面临最大的问题是新旧业务之间的切换 立项-定稿-需求发布-开发-测试-发布&#xff0c;测试上线后&#xff0c;再完美也会有问题&#xff0c;为…