首页 > 其他分享 >UFW 要点:常见防火墙规则和命令

UFW 要点:常见防火墙规则和命令

时间:2024-01-05 14:35:31浏览次数:30  
标签:added IP sudo 防火墙 203.0 要点 允许 UFW ufw

前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站

UFW 要点:常见防火墙规则和命令

介绍

UFW(uncomplicated fire wall)是一个运行在iptables之上的防火墙配置工具,默认包含在 Ubuntu 发行版中。它提供了一个简化的界面,用于通过命令行配置常见的防火墙用例。

下来将说明常见 UFW 使用案例和命令的快速参考,包括如何按端口、网络接口和源 IP 地址允许和阻止服务的示例。

验证 UFW 状态

要检查是否ufw已启用,请运行:

sudo ufw status
OutputStatus: inactive

输出将展示防火墙是否处于活动状态。

启用UFW

如果ufw status在运行时显示Status: inactive,则表示系统上尚未启用防火墙。需要运行命令才能启用它。

默认情况下,启用 UFW 后将阻止对服务器上所有端口的外部访问。实际上,如果通过 SSH 连接到服务器并在允许通过 SSH 端口访问之前启用ufw,SSH连接将被断开。

要在系统上启用 UFW,请运行:

sudo ufw enable

将看到如下输出:

OutputFirewall is active and enabled on system startup

要查看当前阻止或允许的内容,可以ufw status在运行时使用verbose参数,如下所示:

sudo ufw status
OutputStatus: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

禁用 UFW

如果由于某种原因需要禁用 UFW,可以使用以下命令来执行此操作:

sudo ufw disable

请注意,此命令将完全禁用系统上的防火墙服务。

阻止 IP 地址

要阻止源自特定 IP 地址的所有网络连接,请运行以下命令,将下面的 IP 地址替换为要阻止的 IP 地址:

sudo ufw deny from 203.0.113.100
OutputRule added

在此示例中,from 203.0.113.100指定IP 地址“203.0.113.100”。

如果现在运行sudo ufw status,将看到指定的 IP 地址被列为拒绝:

OutputStatus: active

To                         Action      From
--                         ------      ----
Anywhere                   DENY        203.0.113.100         

指定 IP 地址的所有传入或传出连接都会被阻止。

阻止子网

如果需要阻止整个子网,可以使用子网地址作为命令from的参数。这将阻止示例子网中的所有 IP 地址203.0.113.0/24

sudo ufw deny from 203.0.113.0/24
OutputRule added

阻止网络接口的传入连接

要阻止从特定 IP 地址到特定网络接口的传入连接,请运行以下命令,将突出显示的 IP 地址替换为要阻止的 IP 地址:

sudo ufw deny in on eth0 from 203.0.113.100
OutputRule added

in参数指示ufw仅将规则应用于传入连接,并且该on eth0参数指定该规则仅应用于接口eth0。如果系统具有多个网络接口(包括虚拟接口)并且需要阻止对其中某些接口(但不是全部)的外部访问,这可能会有用。

允许 IP 地址

要允许源自特定 IP 地址的所有网络连接,请运行以下命令,将下面的 IP 地址替换为要允许访问的 IP 地址:

sudo ufw allow from 203.0.113.101
OutputRule added

将看到与此类似的输出:

OutputStatus: active

To                         Action      From
--                         ------      ----
...          
Anywhere                   ALLOW       203.0.113.101 

还可以通过为主机提供相应的子网掩码来允许来自整个子网的连接,例如203.0.113.0/24

允许网络接口的传入连接

要允许从特定 IP 地址到特定网络接口的传入连接,请运行以下命令,将下面的 IP 地址替换为要允许的 IP 地址:

sudo ufw allow in on eth0 from 203.0.113.102
OutputRule added

in参数指示ufw仅将规则应用于传入连接,并且该on eth0参数指定该规则仅应用于接口eth0

现在运行sudo ufw status,将看到类似于以下内容的输出:

OutputStatus: active

To                         Action      From
--                         ------      ----
...         
Anywhere on eth0           ALLOW       203.0.113.102            

删除 UFW 规则

要删除之前在 UFW 中设置的规则,请使用ufw delete后跟规则(allowdeny)和目标规范。以下示例将删除之前设置的允许来自 IP 地址 203.0.113.101的所有连接的规则:

sudo ufw delete allow from 203.0.113.101
OutputRule deleted

指定要删除的规则的另一种方法是提供规则 ID。可以使用以下命令获取此信息:

sudo ufw status numbered
OutputStatus: active

     To                         Action      From
     --                         ------      ----
[ 1] Anywhere                   DENY IN     203.0.113.100             
[ 2] Anywhere on eth0           ALLOW IN    203.0.113.102             

从输出中,可以看到有两个活动规则。第一条规则具有突出显示的值,拒绝来自该 IP 地址的所有连接。第二条规则允许eth0接口上来自 IP 地址的连接。

因为默认情况下 UFW 已经阻止所有外部访问,除非明确允许,所以第一条规则是多余的,因此可以将其删除。要按 ID 删除规则,请运行:

sudo ufw delete 1

系统将提示确认操作并确保提供的 ID 引用了您要删除的正确规则。

OutputDeleting:
 deny from 203.0.113.100
Proceed with operation (y|n)? y
Rule deleted

如果使用sudo ufw status 再次列出规则,将看到该规则已被删除。

列出可用的应用程序配置文件

安装后,依赖网络通信的应用程序通常会设置 UFW 配置文件,可以使用该配置文件允许来自外部地址的连接。这通常与运行相同ufw allow from,优点是提供一种快捷方式,可以抽象服务使用的特定端口号,并为引用的服务提供用户友好的命名法。

要列出当前可用的配置文件,请运行以下命令:

sudo ufw app list

如果安装了 Web 服务器或其他依赖于网络的软件等服务,并且配置文件在 UFW 中不可用,请首先确保该服务已启用。对于远程服务器,通常可以随时使用 OpenSSH:

OutputAvailable applications:
  OpenSSH

启用应用程序配置文件

要启用 UFW 应用程序配置文件,请运行ufw allow,后跟要启用的应用程序配置文件的名称,可以通过命令sudo ufw app list获取该名称。在以下示例中,我们将启用 OpenSSH 配置文件,该配置文件将允许默认 SSH 端口上的所有传入 SSH 连接。

sudo ufw allow “OpenSSH”
OutputRule added
Rule added (v6)

请记住引用由多个单词组成的配置文件名称,例如Nginx HTTPS.

禁用应用程序配置文件

要禁用之前在 UFW 中设置的应用程序配置文件,需要删除其相应的规则。例如:

sudo ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                               
Nginx Full                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)                   
Nginx Full (v6)            ALLOW       Anywhere (v6)        

此输出表明Nginx Full应用程序配置文件当前已启用,允许通过 HTTP 和 HTTPS 与 Web 服务器进行任何和所有连接。如果只想允许来自和发往 Web 服务器的 HTTPS 请求,则必须首先启用最严格的规则(在本例中为Nginx HTTPS ),然后禁用当前活动的Nginx Full规则:

sudo ufw allow "Nginx HTTPS"
sudo ufw delete allow "Nginx Full"

请记住,可以使用sudo ufw app list 列出所有可用的应用程序配置文件。

允许 SSH

使用远程服务器时,需要确保 SSH 端口对连接开放,以便能够远程登录到服务器。

以下命令将启用 OpenSSH UFW 应用程序配置文件并允许到服务器上默认 SSH 端口的所有连接:

sudo ufw allow OpenSSH
OutputRule added
Rule added (v6)

另一种语法是指定 SSH 服务的确切端口号,通常默认设置为22

sudo ufw allow 22
OutputRule added
Rule added (v6)

允许来自特定 IP 地址或子网的传入 SSH

要允许来自特定 IP 地址或子网的传入连接,将包含一个from指令来定义连接源。这将要求使用to参数指定目标地址。要将此规则仅锁定到 SSH,需要将proto(协议)限制为tcp,然后使用该port参数并将其设置为22的默认端口。

以下命令将仅允许来自该 IP 地址的 SSH 连接203.0.113.103

sudo ufw allow from 203.0.113.103 proto tcp to any port 22
OutputRule added

还可以使用子网地址作为from参数来允许来自整个网络的传入 SSH 连接:

sudo ufw allow from 203.0.113.0/24 proto tcp to any port 22
OutputRule added

允许来自特定 IP 地址或子网的传入 Rsync

Rsync程序在端口873 上运行,可用于将文件从一台计算机传输到另一台计算机。

要允许rsync来自特定 IP 地址或子网的传入连接,请使用from参数指定源 IP 地址,并使用port参数设置目标端口873。以下命令将仅允许来自该 IP 地址的 Rsync 连接203.0.113.103

sudo ufw allow from 203.0.113.103 to any port 873
OutputRule added

要允许整个203.0.113.0/24子网能够使用rsync访问我们的服务器,请运行:

sudo ufw allow from 203.0.113.0/24 to any port 873
OutputRule added

允许 Nginx HTTP/HTTPS

Nginx Web 服务器会在服务器内设置一些不同的 UFW 配置文件。安装 Nginx 并将其作为服务启用后,请运行以下命令来确定哪些配置文件可用:

sudo ufw app list | grep Nginx
Output  Nginx Full
  Nginx HTTP
  Nginx HTTPS

要同时启用 HTTP 和 HTTPS 流量,请选择Nginx Full。如果选择Nginx HTTP仅允许 HTTP 或Nginx HTTPS仅允许 HTTPS。

以下命令将允许服务器上的 HTTP 和 HTTPS 流量(端口80443):

sudo ufw allow "Nginx Full"
OutputRule added
Rule added (v6)

允许 Apache HTTP/HTTPS

Apache Web 服务器会在服务器内设置一些不同的 UFW 配置文件。安装 Apache 并将其作为服务启用后,请运行以下命令来确定哪些配置文件可用:

sudo ufw app list | grep Apache
Output  Apache
  Apache Full
  Apache Secure

要同时启用 HTTP 和 HTTPS 流量,请选择Apache Full

以下命令将允许服务器上的 HTTP 和 HTTPS 流量(端口80443):

sudo ufw allow "Nginx Full"
OutputRule added
Rule added (v6)

允许所有传入 HTTP(端口80

Web 服务器(例如 Apache 和 Nginx)通常侦听端口 80上的 HTTP 请求。如果传入流量的默认策略设置为丢弃或拒绝,则需要创建 UFW 规则以允许端口80 上的外部访问。我们可以使用端口号或服务名称作为此命令的参数。

要允许所有传入 HTTP(端口80)连接,请运行:

sudo ufw allow http
OutputRule added
Rule added (v6)

另一种语法是指定 HTTP 服务的端口号:

sudo ufw allow 80
OutputRule added
Rule added (v6)

允许所有传入 HTTPS(端口443

HTTPS 通常在端口 443上运行。如果传入流量的默认策略设置为丢弃或拒绝,则需要创建 UFW 规则以允许端口443 上的外部访问。可以使用端口号或服务名称作为此命令的参数。

要允许所有传入 HTTPS(端口443)连接,请运行:

sudo ufw allow https
OutputRule added
Rule added (v6)

另一种语法是指定 HTTPS 服务的端口号:

sudo ufw allow 443
OutputRule added
Rule added (v6)

允许所有传入 HTTP 和 HTTPS

如果想要同时允许 HTTP 和 HTTPS 流量,可以创建一条允许这两个端口的规则。此用法还要求使用参数proto定义协议,在本例中将其设置为tcp

要允许所有传入 HTTP 和 HTTPS(端口80443)连接,请运行:

sudo ufw allow proto tcp from any to any port 80,443
OutputRule added
Rule added (v6)

允许来自特定 IP 地址或子网的 MySQL 连接

MySQL 监听端口 3306上的客户端连接。如果远程服务器上的客户端正在使用 MySQL 数据库服务器,需要创建 UFW 规则以允许该访问。

要允许来自特定 IP 地址或子网的传入 MySQL 连接,请使用from参数指定源 IP 地址,并使用port参数设置目标端口3306

以下命令将允许 IP 地址203.0.113.103连接到服务器的 MySQL 端口:

sudo ufw allow from 203.0.113.103 to any port 3306
OutputRule added

要允许整个203.0.113.0/24子网能够连接到 MySQL 服务器,请运行:

sudo ufw allow from 203.0.113.0/24 to any port 3306
OutputRule added

允许来自特定 IP 地址或子网的 PostgreSQL 连接

PostgreSQL 侦听端口5432 上的客户端连接。如果远程服务器上的客户端正在使用 PostgreSQL 数据库服务器,则需要确保允许该流量。

要允许来自特定 IP 地址或子网的传入 PostgreSQL 连接,请使用参数指定源from,并将端口设置为5432

sudo ufw allow from 203.0.113.103 to any port 5432
OutputRule added

要允许整个203.0.113.0/24子网能够连接到 PostgreSQL 服务器,请运行:

sudo ufw allow from 203.0.113.0/24 to any port 5432
OutputRule added

阻止传出 SMTP 邮件

邮件服务器(例如 Sendmail 和 Postfix)通常使用SMTP 流量的端口25。如果服务器不想发送外发邮件,需要阻止此类流量。要阻止传出 SMTP 连接,请运行:

sudo ufw deny out 25
OutputRule added
Rule added (v6)

这会将防火墙配置为丢弃端口 25上的所有传出流量。如果需要拒绝不同端口号上的传出连接,可以重复此命令并替换25为要阻止的端口号。

标签:added,IP,sudo,防火墙,203.0,要点,允许,UFW,ufw
From: https://blog.51cto.com/TiMi/9113972

相关文章

  • 构建高效外卖配送系统:技术要点与实际代码示例
    随着外卖服务需求的不断增长,构建一个智能化、高效的外卖配送系统成为餐饮业务成功的关键。在本文中,我们将重新审视外卖配送系统,着重思考技术架构,并提供一些实际代码示例,以展示系统中一些先进的技术要点。技术架构设计一个现代的外卖配送系统应该具备以下关键特性:实时配送调度、智能......
  • 构建高效外卖配送系统:技术要点与示例代码
    随着外卖服务的普及,构建一个高效的外卖配送系统成为餐饮业务成功的关键。在这篇文章中,我们将探讨外卖配送系统的关键技术要点,并提供一些示例代码,演示其中的一些实现方法。1.订单处理与管理在外卖配送系统中,订单处理是一个核心环节。以下是一个简化的订单类的示例代码,用Python语言......
  • OPNsense 23.7 - 基于 FreeBSD 的开源防火墙和路由平台
    OPNsense23.7-基于FreeBSD的开源防火墙和路由平台作者主页:sysin.orgpfSense和EndianFirewall都在走向商业化,虽然仍提供社区版本,但与商业版差异较多。OPNsense是一个纯粹的开源防火墙。关于OPNsenseOPNsense是一个开源、易于使用且易于构建的基于FreeBSD的防火墙和路......
  • 通过防火墙配置实现外部网络直接访问虚拟机IP的方法
    在虚拟化环境中,我们常常需要配置网络使得外部网络能够直接访问虚拟机的IP地址。通过防火墙配置,我们可以实现这一目标。以下是具体的步骤:步骤:1.启用IP转发:在宿主机上执行以下命令启用IP转发:sudosysctlnet.ipv4.ip_forward=1你还可以编辑/etc/sysctl.conf文件,将net.ipv4.ip......
  • 防火墙
    是一种特殊编程的路由器,安装在一个网点和网络的其余部分之间。目前是实施访问控制策略。这个访问控制策略是由使用防火墙的单位自行制定的。防火墙的功能有两个,一个是阻止,一个是允许。阻止是阻止某种类型的流量通过防火墙(从外部网络到内部网络)。防火墙技术有两类:①网络级防火墙用来......
  • 华为云耀云服务器L实例-大数据学习-hadoop前置准备3-防火墙、 SElinux 、时间同步等系
     华为云耀云服务器L实例-大数据学习-hadoop前置准备3-防火墙、 SElinux 、时间同步等系统设置  产品官网:https://www.huaweicloud.com/product/hecs-light.html  今天我们采用可靠更安全、智能不卡顿、价优随心用、上手更简单、管理特省心的华为云耀云服务器L实......
  • 【年度盘点】监控告警复盘要点总结
    转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。前言监控告警是业务稳定性建设非常重要的一环,告警项的配置、告警阈值的设置、告警信息的发送和响应,都影响着业务稳定性。随着系统版本迭代,监控告警工具的变更,人员的变动等诸多因素......
  • Firewall 防火墙产品链接汇总
    Firewall防火墙产品链接汇总作者主页:sysin.org本站提供的防火墙软件全部为官方原版“试用版”或者“免费版”,部分是特定硬件的系统固件,仅供学习和研究使用(sysin)。请先了解Gartner魔力象限GartnerMagicQuadrantforNetworkFirewalls2022GartnerMagicQuadrantforNe......
  • SciTech-Wireless-WiFi-WDS(无线路由桥接扩网)两个路由器无线桥接(WDS)要点
    两个路由器无线桥接(WDS)要点当上网点距离路由器有好几道墙,连接WiFi信号很差时:可用另外一个路由器无线桥接(大多数路由器的WDS功能)到主路由器(连光猫连接的路由器),扩大主WiFi路由器的信号范围。这个桥接的路由器称为桥路由器;现在一直用两个路由器桥接,很稳定,不会掉线:说明......
  • Linux设置防火墙,只允许特定IP访问指定端口
    一、概述1、目的服务器A使用端口1521,只有允许指定IP应用才可以访问,其它未经允许服务器ip地址无法正常访问。2、方法步骤启用防火墙。检查端口与关闭端口访问。添加设置特定ip访问特定端口。3、注意事项启用防火墙的时候,一定要注意,如果是远程访问的话,一定要先添加远程端口的......