如何在Ubuntu和Debian上设置UFW防火墙

UFW(简单防火墙)是用于在Ubuntu和Debian发行版上配置和管理防火墙的最流行且易于使用的命令行工具。

正常运行的防火墙是整个Linux系统安全性最关键的方面之一。 默认情况下,Debian和Ubuntu发行版带有一个名为UFW简单防火墙 )的防火墙配置工具,它是用于在UbuntuDebian发行版上配置和管理防火墙的最流行且易于使用的命令行工具。

在本文中,我们将解释如何在UbuntuDebian发行版上安装和设置UFW防火墙。

先决条件

在开始阅读本文之前,请确保您已使用sudo用户或root帐户登录到Ubuntu或Debian服务器。 如果您没有sudo用户,则可以使用以下说明以root用户身份创建一个。

# adduser username
# usermod -aG sudo username 
# su - username
$ sudo whoami

在Ubuntu和Debian上安装UFW防火墙

应该在Ubuntu和Debian中默认安装UFW简单防火墙 ),如果不是,则使用以下命令使用APT软件包管理器进行安装。

$ sudo apt install ufw

检查UFW防火墙

安装完成后,您可以通过输入来检查UFW的状态。

$ sudo ufw status verbose

首次安装时,默认情况下,UFW防火墙处于禁用状态,输出将类似于以下内容。

Status: inactive

启用UFW防火墙

您可以使用以下命令激活或启用UFW防火墙,该命令应加载防火墙并使其在启动时启动。

$ sudo ufw enable

要禁用UFW防火墙,请使用以下命令,该命令卸载防火墙并禁用防火墙在启动时启动。

$ sudo ufw disable 

UFW默认策略

默认情况下,UFW防火墙拒绝每个传入连接并仅允许所有到服务器的出站连接。 这意味着,没有人可以访问您的服务器,除非您专门打开该端口,而服务器上的所有正在运行的服务或应用程序都可以访问外部网络。

默认的UFW防火墙策略位于/etc/default/ufw文件中,可以使用以下命令进行更改。

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

UFW应用程序配置文件

使用APT软件包管理器安装软件包时,它将在/etc/ufw/applications.d目录中包含一个应用程序配置文件,用于定义服务并保存UFW设置。

您可以使用以下命令列出服务器上的所有可用应用程序配置文件。

$ sudo ufw app list

根据系统上的软件包安装,输出将如下所示:

Available applications:
APACHE
APACHE Full
APACHE SECURE
CUPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission

如果您想获取有关特定配置文件和定义规则的更多信息,可以使用以下命令。

$ sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.
Ports:
80/tcp

使用UFW启用IPv6

如果您的服务器配置了IPv6 ,请确保您的UFW配置了IPv6IPv4支持。 要验证它,请使用您最喜爱的编辑器打开UFW配置文件。

$ sudo vi /etc/default/ufw

然后确保配置文件中的“IPV6”设置为"yes" ,如图所示。

IPV6=yes

保存并退出。 然后使用以下命令重新启动防火墙:

$ sudo ufw disable
$ sudo ufw enable

在UFW上允许SSH连接

如果您现在启用了UFW防火墙,它将阻止所有传入的连接,并且如果您通过SSH从远程位置连接到服务器,则将无法再连接它。

让我们启用SSH连接到我们的服务器,使用以下命令停止发生这种情况:

$ sudo ufw allow ssh

如果您使用自定义SSH端口(例如端口2222 ),则需要使用以下命令在UFW防火墙上打开该端口。

$ sudo ufw allow 2222/tcp

要阻止所有SSH连接,请输入以下命令。

$ sudo ufw deny ssh/tcp
$ sudo ufw deny 2222/tcp  [If using custom SSH port]

在UFW上启用特定端口

您还可以在防火墙中打开特定的端口,以允许通过它连接到某个服务。 例如,如果您要设置默认情况下监听端口80HTTP )和443HTTPS )的Web服务器。

以下是如何允许传入连接到Apache服务的几个例子。

在UFW上打开80端口HTTP
$ sudo ufw allow http     [By service name]
$ sudo ufw allow 80/tcp   [By port number]
$ sudo ufw allow 'Apache' [By application profile]
在UFW上打开Port 443 HTTPS
$ sudo ufw allow http
$ sudo ufw allow 443/tcp
$ sudo ufw allow 'Apache Secure'

在UFW上允许端口范围

假设您有一些应用程序想要在一系列端口( 5000-5003 )上运行,则可以使用以下命令添加所有这些端口。

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

允许特定的IP地址

如果要允许来自特定IP地址192.168.56.1的所有端口上的连接,则需要在IP地址之前指定。

$ sudo ufw allow from 192.168.56.1

允许特定端口上的特定IP地址

要允许从本地计算机的IP地址为192.168.56.1的特定端口(例如端口22 )进行连接,则需要在IP地址后面添加任何端口端口号 ,如图所示。

$ sudo ufw allow from 192.168.56.1 to any port 22

允许网络子网到特定的端口

要允许特定IP地址从192.168.1.1192.168.1.254到端口22SSH )的连接,请运行以下命令。

$ sudo ufw allow from 192.168.1.0/24 to any port 22

允许特定的网络接口

要允许连接到特定端口22SSH )的特定网络接口eth2 ,请运行以下命令。

$ sudo ufw allow in on eth2 to any port 22

在UFW上拒绝连接

默认情况下,除非您专门在UFW上打开连接,否则所有传入连接都会被阻止。 例如,您已打开端口80443,并且您的Web服务器受到来自未知网络11.12.13.0/24的攻击。

要阻止来自此特定11.12.13.0/24网络范围的所有连接,可以使用以下命令。

$ sudo ufw deny from 11.12.13.0/24

如果您只想阻止端口80443上的连接,则可以使用以下命令。

$ sudo ufw deny from 11.12.13.0/24 to any port 80
$ sudo ufw deny from 11.12.13.0/24 to any port 443

删除UFW规则

有两种方法可以按规则编号实际规则删除UFW规则。

要使用规则编号删除UFW规则,首先需要使用以下命令按数字列出规则。

$ sudo ufw status numbered
示例输出
Status: active
To                         Action      From
--                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

要删除规则编号1 ,请使用以下命令。

$ sudo ufw delete 1

第二种方法是使用实际规则删除规则,例如删除规则,使用协议指定端口号,如图所示。

$ sudo ufw delete allow 22/tcp

干运行UFW规则

您可以运行任何ufw命令,而无需使用--dry-run标志实际对系统防火墙进行任何更改,这只是显示假设发生的更改。

$ sudo ufw --dry-run enable

重置UFW防火墙

由于某种原因,如果您希望删除/重置所有防火墙规则,请输入以下命令,它将恢复所有更改并重新开始。

$ sudo ufw reset
$ sudo ufw status

UFW高级功能

UFW防火墙可以做任何iptables可以做的事情。 这可以通过使用不同的规则文件集来实现,这些文件无非是iptables-恢复相应的纯文本文件。

微调ufw和/或不允许通过ufw命令放置额外的iptables命令是编辑几个文本文件的问题。

  • / etc / default / ufw :默认策略,IPv6支持和内核模块的主要配置。
  • /etc/ufw/before[6].rules :这些文件中的规则是在通过ufw命令添加任何规则之前计算的。
  • /etc/ufw/after[6].rules :这些文件中的规则是在通过ufw命令添加任何规则之后计算的。
  • /etc/ufw/sysctl.conf :内核网络可调参数。
  • /etc/ufw/ufw.conf :设置启动时是否启用ufw并设置LOGLEVEL。

而已! UFWiptables的一个很好的前端,它具有易于使用的用户界面。 用户不需要记住复杂的iptables规则,因为UFW提供了一个易于使用的设置手册。

如果您有任何疑问或想法可以分享这篇ufw文章,请使用下面的评论表单与我们联系。


分享按钮