如何使用UFW配置Ubuntu防火墙(ubuntu如何设置防火墙)

如何使用UFW配置Ubuntu防火墙(ubuntu如何设置防火墙)

浏览次数:
信息来源: 用户投稿
更新日期: 2025-12-27
文章简介

防火墙是用于监控所有传入和传出流量的网络安全系统。它根据预定义的安全规则允许或阻止数据包。如果您正在运行生产系统,了解如何配置防火墙对您来说至关重要。受防火墙保护的系统不太可能被有害信息感染,因为它们

2025阿里云双十一服务器活动

防火墙是用于监控所有传入和传出流量的网络安全系统。它根据预定义的安全规则允许或阻止数据包。如果您正在运行生产系统,了解如何配置防火墙对您来说至关重要。受防火墙保护的系统不太可能被有害信息感染,因为它们很少暴露在Internet上,因为传入和传出流量都根据安全规则进行严格过滤。

UFW,也称为UncomplicatedFirewall,是一个前端框架,它提供了一个简单的界面,用于使用iptables实用程序来管理netfilter-默认的Linux内核数据包过滤系统。它是Ubuntu20.04内置的防火墙系统,可以简化复杂的iptables命令,让您更轻松地创建基本的防火墙配置。

UFW使用带有少量简单命令的命令行界面。它支持所有基本的防火墙规则、各种网络协议、日志记录和更多功能。您可以查看官方UFW文档中的大量功能列表。

要配置UFW,您需要事先准备好以下内容:

  • 具有root权限的Ubuntu20.04系统
  • 命令行界面(CLI)的基础知识
  • 注意:?本教程不仅适用于Ubuntu20.04,也适用于其他LTS版本。UFW的早期版本从Ubuntu12.04开始可用。

    UFW预装了Ubuntu操作系统。您可以通过尝试使用以下命令安装它来确保您拥有最新版本的UFW:

    现在您已经安装了最新版本的UFW,让我们使用以下命令检查其状态:

    如您所见,默认情况下UFW处于非活动状态。我们将在首先进行一些重要更改后启用它。

    如果您是第一次使用UFW,最好仔细检查默认的防火墙策略。为此,请检查UFW的默认配置文件:

    默认情况下,UFW配置为拒绝所有传入流量并允许所有传出流量。这意味着没有人能够访问您的系统,而您可以从任何应用程序或服务发出传出请求。

    可以使用以下命令模式更改默认UFW策略:

    ufwdefault<policy><chain>

    例如,如果要允许所有传入流量,请使用以下命令:

    虽然以下命令将拒绝所有传出流量:

    每次政策更改后都会显示一条确认消息,例如:

    默认情况下,UFW将阻止所有传入流量,包括SSH和HTTP。如果您在设置例外之前启用防火墙,您当前的远程会话将被终止,您将无法再连接到您的服务器。

    为避免这种情况,您需要使用以下命令允许传入的SSH连接:

    它将打开端口22,这是默认端口。可以看到,分别为IPv4和IPv6协议添加了两条新的防火墙规则:

    如果您已将SSH配置为使用其他端口,请使用更具体的命令为SSH连接创建允许规则。例如,如果您有ssh服务侦听端口4422,请使用以下命令:

    此防火墙规则允许TCP连接到端口4422。

    现在您的UFW已经配置完毕,您需要使用以下命令启用它:

    这将立即启动UFW守护进程并在系统启动时启用它。通过键入y接受给定的提示,然后按ENTER继续。

    您可以使用systemctl服务管理器仔细检查它是否正在运行:

    您可以通过UFW将各种防火墙规则应用于您的系统:

  • deny–静默丢弃流量
  • reject–拒绝流量并将错误数据包发送回发件人
  • limit–限制来自在过去30秒内尝试发起6个或更多连接的特定IP地址的连接
  • 您可以在通用或更具体的范围内应用这些防火墙规则。通用范围将UFW规则应用于传入和传出流量。您可以将它与以下命令模式一起使用:

    另一方面,您可能希望将规则专门应用于传入或传出流量。在这种情况下,您应该相应地使用以下命令模式:

    稍后我们将通过一些实际示例,以便您可以看到一些现实生活中的应用程序。

    UFW防火墙规则可以在许多不同的目标上运行。您可以将服务名称、IP地址、端口甚至网络接口作为目标。现在让我们逐一了解这些目标模式,看看有什么可能。

    安装ufw后,大多数依赖网络进行通信的应用程序都会向ufw注册它们的配置文件,从而允许用户快速允许或拒绝对该应用程序的外部访问。

    您可以使用以下命令检查哪些应用程序已在UFW注册:

    要允许对这些应用程序中的任何应用程序进行传入和传出访问,请使用以下命令模式:

    例如,您可以使用以下命令允许OpenSSH连接:

    此防火墙规则允许OpenSSH应用程序的所有传入和传出流量。您可以更具体,只允许使用以下命令传入的SSH流量:

    尽管如此,在远程服务器中启用SSH访问的最佳实践是使用限制规则集。它只允许在30秒窗口内来自同一IP地址的6个连接,使您免受潜在的暴力攻击。在生产环境中对OpenSSH应用程序使用限制而不是允许规则集:

    在UFW中,您可以使用以下命令模式允许或拒绝特定IP地址:

    ufw[rule]from[ip_address]

    例如,如果您看到来自IP地址192.168.100.20的一些恶意活动,您可以使用以下命令阻止来自它的所有流量:

    ufwdenyfrom192.168.100.20

    尽管您已阻止来自此恶意IP地址的所有传入流量,但在某些情况下它仍可能到达您的服务器。这可能是因为UFW从上到下应用其规则。例如,您的第一个规则可能allow是所有传入流量到端口22,您的denyfrom192.168.100.20规则可能是一步失败。

    为了避免这种情况,请使用该prepend选项将最具体的防火墙规则添加到规则列表的最顶部。最终命令如下所示:

    ufwprependdenyfrom192.168.100.20

    您还可以使用UFW定位特定端口或端口范围。例如,您可以允许使用任何协议连接到端口8080:

    通常,您可能想要更具体,并且只允许使用特定网络协议连接到特定端口。例如,您可以仅使用以下命令允许TCP连接到端口8080:

    有时您的应用程序可能会针对不同的活动使用一系列端口。在这种情况下,您可以使用以下命令将端口范围列入白名单:

    还记得定位IP地址的可能性吗?如果您不想阻止来自某个IP地址的所有流量,您可能会更具体一些,只阻止到特定端口的流量:

    ufwdenyfrom192.168.100.20toanyport53protoudp

    如何使用UFW配置Ubuntu防火墙,ubuntu如何设置防火墙

    一些系统配置了多个网络接口,可能需要不同的防火墙规则。幸运的是,UFW允许您针对特定的网络接口并仅对其应用防火墙规则。让我们试试看。

    使用以下命令列出系统的网络接口:

    如您所见,目前在Ubuntu20.04系统上配置了三个网络接口。让我们瞄准第二个名为eth0.?为此,您应该oneth0在UFW命令中使用该选项:

    ufwallowinoneth0from192.168.100.255

    现在所有来自192.168.100.255的流量只允许流向eth0网络接口:

    现在您已经完成添加防火墙规则,最好仔细检查规则表以查看结果。您可以使用以下命令检查您的活动UFW规则:

    要查看UFW防火墙规则的更详细版本,请使用以下verbose选项:

    如果您只想以您第一次键入规则的方式查看规则列表,请使用以下命令:

    与相比ufwstatus,ufwshow命令即使在禁用UFW时也会显示防火墙规则。

    现在您已经完成添加防火墙规则,如果您想删除其中的一些怎么办?为此,我们有两种方法可用:您可以通过规则编号删除规则,或通过名称删除规则。让我们逐一分析。

    您可以通过对规则表进行编号来删除UFW规则,然后使用其关联编号删除特定规则。

    使用以下命令检查UFW规则的编号列表:

    如您所见,您的防火墙规则现在有一个与之关联的编号,您可以使用这些编号来定位它们。例如,现在让我们使用以下命令删除第6条规则:

    只需按y接受确认提示,规则3将被删除。

    删除UFW规则的第二种方法是通过名称指定它。首先以您第一次输入规则的方式列出规则:

    假设您要删除拒绝来自192.168.100.20IP地址的所有流量的规则。为此,您必须使用delete带有规则名称的命令denyfrom192.168.100.20。最终命令如下所示:

    ufwdeletedenyfrom192.168.100.20

    UFW支持多个日志记录级别,因此您可以仔细查看您的网络活动。默认情况下,UFW会记录所有不符合定义策略的被阻止的数据包,以及符合您定义的规则的数据包。这是low您可以根据需要修改的日志记录级别。

    您可以使用以下命令仔细检查您的日志记录活动:

    输出的第二行显示日志记录已打开,日志记录级别设置为低。

    有五个UFW日志记录级别。他们每个人都有不同的日志记录策略,并收集越来越多的数据。请注意,中等以上的日志级别可能会生成大量日志输出,并且可能会在繁忙的系统上快速填满磁盘,因此请谨慎使用。

  • off-禁用UFW管理的日志记录。
  • low-记录所有不匹配默认策略的被阻止的数据包,以及匹配预设规则的数据包。
  • medium-同上,加上所有不符合定义策略的允许数据包、所有无效数据包和所有新连接。
  • high-与上面相同,只是没有速率限制,加上所有具有速率限制的数据包。
  • full-同上,只是没有速率限制。
  • 您可以使用以下命令模式更改默认的低日志记录级别:

    例如,使用以下命令将日志记录级别更改为中等:

    通过这种方式,您可以启用中等日志记录级别并增加日志记录范围。

    日志文件存储在/var/log/目录中。您可以使用ls命令列出UFW创建的所有日志文件:

    您现在可以检查您的日志文件以查找有关UFW活动的相关信息,例如:

    如您所见,有大量信息可供您了解UFW活动。单行可能如下所示:

    Jan200:00:14ubuntu-sandboxkernel:[142705.160851][UFWBLOCK]IN=eth0OUT=MAC=52:54:21:9a:ca:d7:fe:54:21:9a:ca:d7:08:00SRC=198.144.159.22DST=5.199.162.56LEN=40TOS=0x00PREC=0x00TTL=239ID=61187PROTO=TCPSPT=49194DPT=10164WINDOW=1024RES=0x00SYNURGP=0

    现在让我们剖析这行UFW日志以更好地理解其含义。信息量最大的变量可能是SRC和DSTIP地址及其相关端口号SPT和DPT,但了解所有这些变量很有用:

  • [UFWBLOCK]:表示数据包被阻塞
  • IN=eth0:传入流量设备。
  • OUT=:传出流量设备为空,因为流量是传入的。
  • MAC=52:54:21:9a:ca:d7:fe:54:21:9a:ca:d7:08:00:设备的MAC地址。
  • SRC=198.144.159.22:数据包发送方的源IP地址。
  • DST=5.199.162.56:用于接收数据包的目标IP地址。在这种情况下,它是我的IP地址。
  • LEN=40:数据包长度。
  • TOS=0x00和PREC=0x00:不推荐使用的不相关的变量并设置为0。
  • TTL=239:一次换一个包。每个数据包在终止之前只能通过给定数量的路由器反弹。
  • ID=61187:IP数据报的唯一ID,由同一数据包的片段共享。
  • PROTO=TCP:使用的协议。
  • SPT=49194:连接的源端口。该端口可能表明是什么服务发起了连接尝试。
  • DPT=10164:连接的目标端口。该端口可能表明什么服务是用来接收连接尝试的。
  • WINDOW=1024:发送方愿意接收的数据包大小。
  • RES=0x00:该位保留供将来使用。它目前无关紧要并设置为0。
  • SYNURGP=0:SYN表示这个连接需要三次握手,URGP代表紧急指针相关性是无关紧要的,设置为0。
  • 有时您需要从头开始配置。如果您想将UFW配置重置为默认设置,可以使用以下命令:

    出现提示时输入y并按下ENTER以重置所有活动的防火墙规则并关闭UFW守护进程。如您所见,UFW会自动为您刚刚重置的规则创建备份文件,以防您改变主意或想在将来查看它们。

    标签:
    raksmart2月促销云服务器享7折(raksmart服务器怎么样)
    « 上一篇
    返回列表
    下一篇 »

    如本文对您有帮助,就请抽根烟吧!