【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.rhkb.cn/news/229942.html

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

相关文章

深度学习在语义分割中的进展与应用

埃弗顿戈梅德(Everton Gomede) 一、说明 语义分割是计算机视觉领域的一项关键任务,涉及将图像中的每个像素分类为预定义的类。这项任务在从自动驾驶汽车到医学成像的各种应用中都具有深远的影响。深度学习的出现显著提高了语义分割模型的功能…

LeetCode 每日一题 Day 28293031 ||三则模拟||找循环节(hard)

1185. 一周中的第几天 给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。 输入为三个整数:day、month 和 year,分别表示日、月、年。 您返回的结果必须是这几个值中的一个 {“Sunday”, “Monday”, “Tuesday”, “Wednesday…

MT8766安卓核心板规格参数_MTK8766核心板模块方案定制

MT8766安卓核心板:高性能、稳定可靠、集成度高的一体化解决方案 MT8766安卓核心板采用联发科MTK8766四核4G模块方案,是一款高度集成的安卓一体板。四核芯片架构,主频可达到2.0GHz,支持国内4G全网通。12nm制程工艺,支持…

MAC电脑安装java开发工具

一、安装brew 1.1、官网地址 链接 1.2、更新地址 二、安装 java brew install openjdk11 三、安装gradle Gradle安装与配置教程 - 知乎 四、GIT 4.1、GIT安装 brew install git 4.2、rsa ssh-keygen -t rsa -C "jhestarbucks.com" 五、自动搭建一个springBoot…

接口自动化测试要做什么?

如果是,那先了解下接口测试流程: 1、需求分析 2、Api文档分析与评审 3、测试计划编写 4、用例设计与评审 5、环境搭建(工具) 6、执行用例 7、缺陷管理 8、测试报告 了解了接口测试的工作流程,那"接口自动化测试&q…

vue-vuex持久化处理

在src/utils文件夹下,创建storage.js文件 // 约定一个通用的键名 const INFO_KEY hm_shopping_info// 获取个人信息 export const getInfo () > {const defaultObj { token: , userId: }const result localStorage.getItem(INFO_KEY)return result ? JSON…

HTTP 错误 401.3 - Unauthorized 由于Web服务器上此资源的访问控制列表(ACL)配置或加密设置。

用IIS 发布网站,不能访问且出现错误: HTTP 错误 401.3 - Unauthorized 由于Web服务器上此资源的访问控制列表(ACL)配置或加密设置。您无权查看此目录或页面 解决办法: 1.打开IIS界面,选中发布的网站,右键—>编辑…

鸿蒙HarmonyOS- 弹框组件库

简介 今天介绍一个基于ArkUI框架开发的弹框组件库,该库基于ArkUI的弹框基础功能和自定义能力。针对通用的弹框业务场景,该库提供了丰富的组件弹窗功能。 包括确认输入弹窗、列表展示选择弹窗、自定义底部/顶部弹窗、自定义动画弹窗、自定义全屏弹窗、消息…

Ribbon相关面试及答案(2024)

1、Ribbon是什么,它在微服务架构中扮演什么角色? Ribbon是一个客户端负载均衡器,它在微服务架构中扮演着关键性的角色。Ribbon的设计理念是在客户端进行服务发现和负载均衡,这种方式不同于传统的通过中心化的负载均衡器&#xff…

Jenkins基础教程

目录 第一章、快速了解Jenkins1.1)Jenkins中一些概念介绍1.2)Jenkins和maven用途上的区别1.3)为什么使用Jenkins1.4)学习过程中的疑问 第二章、安装Jenkins2.1)安装之前的准备2.2)Windows中Jenkins下载安装…

java servlet软件缺陷库管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet软件缺陷库管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean(mvc模式),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOM…

什么是安全信息和事件管理(SIEM),有什么用处

安全信息和事件管理(SIEM)对于企业主动识别、管理和消除安全威胁至关重要。SIEM 解决方案采用事件关联、AI 驱动的异常检测以及机器学习驱动的用户和实体行为分析 (UEBA) 等机制来检测、审查和应对网络安全威胁。这些功能使 SIEM …

14:00面试,14:06就出来了,问的问题有点变态

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%,…

mpi 与 nccl 多进程多卡单机示例结果验证

做了部分注释&#xff0c;比较乱 本示例结构&#xff1a; 1&#xff0c;源代码 #include <stdio.h> #include "cuda_runtime.h" #include "nccl.h" #include "mpi.h" #include <unistd.h> #include <stdint.h> #include <…

如何正确使用docker搭建靶场--pikachu

在Linux中搭建靶场——pikachu 1.开启docker systemctl start docker 2.查看docker状态 systemctl status docker 3.查看docker存在那些镜像 docker images 4.拉取镜像&#xff0c;这里是以pikachu为例因此需要一个php5的版本 &#xff08;1&#xff09;打开代理&#xff…

照片怎么抠图换背景?不会的伙伴看这里!

随着数字技术的日新月异&#xff0c;抠图换背景技术已成为图像处理的翘楚。它是指将图片中的主体与背景分离&#xff0c;再将其置于新的背景之上。这一技艺在广告、摄影和设计等领域中占据着举足轻重的地位。本文将为您揭示三种抠图换背景的秘籍&#xff0c;助您轻松掌握这一技…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切&#xff08;ROI&#xff09;功能&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的图像剪切&#xff08;ROI&#xff09;功能的技术背景CameraExplorer如何使用图像剪切&#xff08;ROI&#xff09;…

electron预加载脚本

webPreferences 指定预加载脚本,可以使用部分node脚本 webPreferences: {preload: path.join(__dirname, "preload.js"),},创建preload.js 中 测试文件读取功能 const fs require(fs) const text fs.readFileSync(package.json, utf-8)console.log(text)报错,为了…

基于果蝇算法优化的Elman神经网络数据预测 - 附代码

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

Windows搭建RTSP视频流服务(EasyDarWin服务器版)

文章目录 引言1、安装FFmpeg2、安装EasyDarWin3、实现本地\虚拟摄像头推流服务4、使用VLC或PotPlayer可视化播放器播放视频5、RTSP / RTMP系列文章 引言 RTSP和RTMP视频流的区别 RTSP &#xff08;Real-Time Streaming Protocol&#xff09;实时流媒体协议。 RTSP定义流格式&am…