【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和安全组,没有特别设计的情况下本地防火墙的设置通常是保持默认规则

祝大家玩得开心

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot整合ElasticSearch实现CRUD操作

本文来说下SpringBoot整合ES实现CRUD操作 文章目录 概述项目搭建ES简单的crud操作保存数据修改数据查看数据删除数据 本文小结 概述 SpringBoot支持两种技术和es交互。一种的jest,还有一种就是SpringData-ElasticSearch。根据引入的依赖不同而选择不同的技术。反正作…

SQL必知必会笔记(5~8章)

第五章 高级数据过滤 本章示例表为transcript成绩表,数据库软件选用SQLITE3,具体如下 1、高级过滤也是通过where条件子句实现,辅以and、or、in、not进行实现 2、and语句:and连接的多个条件为与的关系,例如 SELECT * FR…

洗地机怎么选?哪款洗地机好用?

选择洗地机前,我们需要对自己购买洗地机的需求做一个清洗的判断,吸尘器和扫地机智能解决地面基本的清洁问题,作为新兴的清洁工具洗地机越来越受大家的喜欢,洗地机的品类很多,洗地机到底该买哪款呢?我们先来看看挑选洗…

利用MATLAB绘制折线图

x20:20:140;%x轴上的数据,第一个值代表数据开始,第二个值代表间隔,第三个值代表终止a[0.85, 2.2, 3.45, 2.65, 1.5, 1.9, 1.25]; %a数据y值plot(x,a,-*b); %线性,颜色,标记 axis([0,160,0,4]) %确定x轴与y轴框图大小 …

安全防御之授权和访问控制技术

授权和访问控制技术是安全防御中的重要组成部分,主要用于管理和限制对系统资源(如数据、应用程序等)的访问。授权控制用户可访问和操作的系统资源,而访问控制技术则负责在授权的基础上,确保只有经过授权的用户才能访问…

K8S集群部署MySql

挂载MySQL数据卷 在k8s集群中挂载MySQL数据卷 需要安装一个NFS。 在主节点安装NFS yum install -y nfs-utils rpcbind 在主节点创建目录 mkdir -p /nfs chmod 777 /nfs 更改归属组与用户 chown -R nfsnobody:nfsnobody /nfs 配置共享目录 echo "/nfs *(insecure,rw,s…

半导体设备系列:半导体制造产能扩张,设备零部件需求旺盛

近年来国内半导体制造产能不断扩张,半导体设备厂商加速成长。我们认为下游发展将拉动上游本地化配套需求,半导体设备零部件迎来高增长阶段。 摘要 半导体设备零部件包含密封圈、EFEM、射频电源、静电吸盘、硅电极、真空泵、气体流量计、喷淋头等产品&a…

如何做好档案数字化前的鉴定工作

要做好档案数字化前的鉴定工作,可以按照以下步骤进行: 1. 确定鉴定目标:明确要鉴定的档案的内容、数量和性质,确定鉴定的范围和目标。 2. 进行档案清点:对档案进行全面清点和登记,包括数量、种类、状况等信…

【稳定检索|投稿优惠】2024年创新设计与经济发展国际学术会议(IACLDED 2024)

2024年创新设计与经济发展国际学术会议(IACLDED 2024) 2024 International Academic Conference on Innovative Design and Economic Development(IACLDED) 一、【会议简介】 2024年创新设计与经济发展国际学术会议(IACLDED 2024),将于繁华的成都盛大召开。本次会议…

Vue3 使用路由 Router

Vue3 使用路由 Router 之前几篇博文说了一下 vue 的基本语法和 vue 的传参,今天这篇博文稍微说一下 vue3 里面使用路由。 介绍 众所周知,vue 是用来构建单页面应用的前端框架,大于大多数此类型应用来讲,都推荐使用官方支持的 vue…

阿赵UE学习笔记——6、免费资源获取

阿赵UE学习笔记目录 大家好,我是阿赵。   接下来准备要往UE引擎里面放美术资源了。美术资源可以自己做,不过也有一些免费的资源可以供我们使用的,这里介绍一些获得免费美术资源的方法。 一、Quixel 1、Quixel网站下载 Quixel资源库&#…

小H靶场笔记:DC-3

DC-3 January 3, 2024 4:11 PM Tags:Joomla owner:只惠摸鱼 信息收集 探测靶机ip: 192.168.199.133 nmap 扫描端口、 系统版本 漏洞 发现只有80端口开发, 且有cve-2017-8917漏洞存在是Joomla的SQL注入漏洞 Joomla版本为3.7.0…

【Java】接口和抽象类有什么共同点和区别?

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 【Java】接口和抽象类有什么共同点和区别&…

李沐机器学习系列3---深度学习计算

1 层和块 1.1 定义块 用class表示层,并只需要实现构造函数和前向传播函数 class MLP(nn.Module):# 用模型参数声明层。这里,我们声明两个全连接的层def __init__(self):# 调用MLP的父类Module的构造函数来执行必要的初始化。# 这样,在类实…

流媒体学习之路(WebRTC)——GCC分析(4)

流媒体学习之路(WebRTC)——GCC分析(4) —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标:可以让大家熟悉各类Qos能力、带宽估计能力,提供每个环节关键参数调节接口并实现一个json全配置…

代码审查那些事

代码审查(code review)是指对源代码进行系统化地审查,是软件开发中的最佳实践之一,代码合并之前必须审查通过才行,可及时发现隐藏问题,提高代码质量。 1 为什么要代码审查 代码审查环节,或者流于形式,或者…

依赖注入实现原理

依赖注入实现原理 一、Autowire 流程图: Autowire的后置处理器类是AutowiredAnnotationBeanPostProcessor,在启动时会执行这里面的方法 步骤一:寻找注入点 在创建一个Bean的过程中,Spring会利用AutowiredAnnotationBeanPostPro…

Go Lang Fiber介绍

利用GoLang Fiber进行高性能Web开发 在不断发展的Web开发世界中,选择合适的框架至关重要。速度、简洁性和强大的功能集是每个开发者都追求的品质。在使用Go构建Web应用时,“Fiber”作为一个强大且轻量级的框架在众多选择中脱颖而出。在这份全面的指南中…

Contextcapture(iTwin capture)倾斜建模教程

Contextcapture(iTwin capture)倾斜建模教程 前言步骤1.1 准备数据1.2 新建项目1.3 新建Block1.4 空三 Submit Aerotriangulation1.5 查看空三结果1.6 提交三维重建1.6.1 编辑重建(Reconstruction)的空间框架(spatial …

谷歌Gemini模型,碾压GPT-4!

谷歌Gemini 1.0革新,推出Gemini Ultra、Gemini Pro和Gemini Nano模型。Gemini Ultra强大但慢,Gemini Pro通用,Gemini Nano高效。Gemini模型在多领域与ChatGPT竞争,尤其Gemini Pro已应用于Bard。Gemini模型预计将在2024年通过Bard …