防火墙是用于监控所有传入和传出流量的网络安全系统。它根据预定义的安全规则允许或阻止数据包。如果您正在运行生产系统,了解如何配置防火墙对您来说至关重要。受防火墙保护的系统不太可能被有害信息感染,因为它们很少暴露在Internet上,因为传入和传出流量都根据安全规则进行严格过滤。
UFW,也称为UncomplicatedFirewall,是一个前端框架,它提供了一个简单的界面,用于使用iptables实用程序来管理netfilter-默认的Linux内核数据包过滤系统。它是Ubuntu20.04内置的防火墙系统,可以简化复杂的iptables命令,让您更轻松地创建基本的防火墙配置。
UFW使用带有少量简单命令的命令行界面。它支持所有基本的防火墙规则、各种网络协议、日志记录和更多功能。您可以查看官方UFW文档中的大量功能列表。
要配置UFW,您需要事先准备好以下内容:
注意:?本教程不仅适用于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将各种防火墙规则应用于您的系统:
您可以在通用或更具体的范围内应用这些防火墙规则。通用范围将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允许您针对特定的网络接口并仅对其应用防火墙规则。让我们试试看。
使用以下命令列出系统的网络接口:
如您所见,目前在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日志记录级别。他们每个人都有不同的日志记录策略,并收集越来越多的数据。请注意,中等以上的日志级别可能会生成大量日志输出,并且可能会在繁忙的系统上快速填满磁盘,因此请谨慎使用。
您可以使用以下命令模式更改默认的低日志记录级别:
例如,使用以下命令将日志记录级别更改为中等:
通过这种方式,您可以启用中等日志记录级别并增加日志记录范围。
日志文件存储在/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,但了解所有这些变量很有用:
有时您需要从头开始配置。如果您想将UFW配置重置为默认设置,可以使用以下命令:
出现提示时输入y并按下ENTER以重置所有活动的防火墙规则并关闭UFW守护进程。如您所见,UFW会自动为您刚刚重置的规则创建备份文件,以防您改变主意或想在将来查看它们。
本文来源:国外服务器--如何使用UFW配置Ubuntu防火墙(ubuntu如何设置防火墙)
本文地址:https://www.idcbaba.com/guowai/3240.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



