当前位置:首页文章笔记服务运维如何在 Ubuntu 18.04 上使用 UFW 设置防火墙

如何在 Ubuntu 18.04 上使用 UFW 设置防火墙

正确配置的防火墙是整体系统安全性最重要的方面之一。

如何在 Ubuntu 18.04 上使用 UFW 设置防火墙

默认情况下,Ubuntu 带有一个名为 UFW(简单防火墙)的防火墙配置工具。

UFW 是用于管理 iptables 防火墙规则的用户友好型前端,其主要目标是使 iptables 管理更容易或顾名思义并不复杂。

先决条件

在开始本教程之前,请确保您使用具有 sudo 权限的用户帐户或 root 用户登录到服务器。最佳做法是以 sudo 用户而不是 root 身份运行管理命令。如果您的 Ubuntu 系统上没有 sudo 用户,您可以按照这些说明创建一个。

安装 UFW

默认情况下,应该在 Ubuntu 18.04 中安装简单的防火墙,但如果系统上没有安装它,您可以通过键入以下内容来安装该软件包:

sudo apt install ufw

检查 UFW 状态

安装完成后,您可以使用以下命令检查 UFW 的状态:

sudo ufw status verbose

默认情况下禁用 UFW。如果您以前从未激活过 UFW,则输出将如下所示:

Status: inactive

如果激活了 UFW,则输出将类似于以下内容:

如何在 Ubuntu 18.04 上使用 UFW 设置防火墙

UFW 默认策略

默认情况下,UFW 将阻止所有传入连接并允许所有出站连接。这意味着除非您专门打开端口,否则任何尝试访问您的服务器的人都将无法连接,而服务器上运行的所有应用程序和服务都将能够访问外部世界。

默认策略在文件中定义,可以使用命令进行更改。/etc/default/ufwsudo ufw default <policy> <chain>

防火墙策略是构建更详细和用户定义的规则的基础。在大多数情况下,初始 UFW 默认策略是一个很好的起点。

应用配置文件

使用 apt 命令安装软件包时,它会将应用程序配置文件添加到目录中。配置文件描述服务并包含 UFW 设置。/etc/ufw/applications.d

您可以通过键入以下内容列出服务器上可用的所有应用程序配置文件:

sudo ufw app list

根据系统上安装的软件包,输出将类似于以下内容:

Available applications:
  Dovecot IMAP
  Dovecot POP3
  Dovecot Secure IMAP
  Dovecot Secure POP3
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

若要查找有关特定配置文件和包含的规则的详细信息,请使用以下命令:

sudo ufw app info 'Nginx Full'
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server

Ports:
  80,443/tcp

从上面的输出中可以看出,“Nginx Full”配置文件打开端口和.80443

允许 SSH 连接

在启用 UFW 防火墙之前,我们需要添加一个允许传入 SSH 连接的规则。如果您从远程位置连接到服务器(几乎总是如此),并且在明确允许传入 SSH 连接之前启用 UFW 防火墙,您将无法再连接到 Ubuntu 服务器。

若要将 UFW 防火墙配置为允许传入的 SSH 连接,请键入以下命令:

sudo ufw allow ssh
Rules updated
Rules updated (v6)

如果将 SSH 端口更改为自定义端口而不是端口 22,则需要打开该端口。

例如,如果 ssh 守护程序侦听端口 ,则可以使用以下命令允许该端口上的连接:4422

sudo ufw allow 4422/tcp

启用 UFW

现在您的 UFW 防火墙已配置为允许传入的 SSH 连接,我们可以通过键入以下内容来启用它:

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

系统将警告您启用防火墙可能会中断现有的 ssh 连接,只需键入并点击 .yEnter

允许在其他端口上进行连接

根据服务器上运行的应用程序和您的特定需求,您还需要允许对其他一些端口的传入访问。

下面我们将向您展示一些有关如何允许传入连接到一些最常见服务的示例:

打开端口 80 – HTTP

可以使用以下命令允许 HTTP 连接:

sudo ufw allow http

您可以使用端口号 80 代替 HTTP:

sudo ufw allow 80/tcp

或者您可以使用应用程序配置文件,在本例中为“Nginx HTTP”:

sudo ufw allow 'Nginx HTTP'

打开端口 443 – HTTPS

可以使用以下命令允许 HTTP 连接:

sudo ufw allow https

要实现相同的而不是配置文件,您可以使用端口号:https443

sudo ufw allow 443/tcp

或者您可以使用应用程序配置文件“Nginx HTTPS”:

sudo ufw allow 'Nginx HTTPS'

打开端口 8080

如果运行 Tomcat 或任何其他侦听端口以允许传入连接的应用程序,请键入:8080

sudo ufw allow 8080/tcp

允许端口范围

UFW 不只是允许访问单个端口,它可以允许我们访问端口范围。使用 UFW 允许端口范围时,必须指定协议。例如,如果要允许端口从7100 到7200之间,可以运行以下命令:

sudo ufw allow 7100:7200/tcpsudo ufw allow 7100:7200/udp

允许特定 IP 地址

要允许从 IP 地址为 163.63.xx.xx 的家用计算机访问所有端口,请指定后跟要列入白名单的 IP 地址:from

sudo ufw allow from 164.63.xx.xx

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

要允许从 IP 地址为 22.64.63.62 的工作计算机访问特定端口,假设端口 61,请使用后跟端口号:to any port

sudo ufw allow from 64.63.62.61 to any port 22

允许子网

允许连接到 IP 地址子网的命令与使用单个 IP 地址时的命令相同,唯一的区别是您需要指定网络掩码。例如,如果要允许访问从 192.168.1.1 到 192.168.1.254 到端口 3360 (MySQL) 的 IP 地址,您可以使用以下命令:

sudo ufw allow from 192.168.1.0/24 to any port 3306

允许连接到特定网络接口

要允许访问特定端口,假设端口 3360 仅访问特定网络接口,那么您需要指定网络接口的名称:eth2allow in on

sudo ufw allow in on eth2 to any port 3306

拒绝连接

所有传入连接的默认策略设置为 如果尚未更改它,UFW 将阻止所有传入连接,除非您专门打开连接。deny

假设您打开了端口,并且您的服务器受到网络攻击。要拒绝来自您的所有连接,可以使用以下命令:8044323.24.25.0/2423.24.25.0/24

sudo ufw deny from 23.24.25.0/24

如果只想拒绝对端口的访问,则可以使用以下命令:8044323.24.25.0/24

sudo ufw deny from 23.24.25.0/24 to any port 80sudo ufw deny from 23.24.25.0/24 to any port 443

编写拒绝规则与编写允许规则相同,只需替换为 .allowdeny

删除 UFW 规则

有两种不同的方法可以删除 UFW 规则:按规则编号和指定实际规则。

按规则编号删除 UFW 规则更容易,尤其是当您不熟悉 UFW 时。要首先按规则编号删除规则,您需要找到要删除的规则编号,您可以使用以下命令执行此操作:

sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 8080/tcp                   ALLOW IN    Anywhere

若要删除规则编号 3(允许连接到端口 8080 的规则),请使用以下命令:

sudo ufw delete 3

第二种方法是通过指定实际规则来删除规则,例如,如果您添加了打开端口的规则,则可以通过以下方式删除它:8069

sudo ufw delete allow 8069

禁用 UFW

如果出于任何原因您想停止 UFW 并停用您可以使用的所有规则:

sudo ufw disable

稍后,如果您想重新启用 UTF 并激活所有规则,只需键入:

sudo ufw enable

重置 UFW

重置 UFW 将禁用 UFW,并删除所有活动规则。如果要还原所有更改并重新开始,这将非常有用。

要重置 UFW,只需键入以下命令:

sudo ufw reset
温馨提示:

文章标题:如何在 Ubuntu 18.04 上使用 UFW 设置防火墙

文章链接:https://www.wuyanshuo.cn/5614.html

更新时间:2023年06月01日

本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:service@wuyanshuo.cn我们将第一时间处理! 资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。 所有资源仅限于参考和学习,版权归原作者所有,更多请阅读无言说网络服务协议

给TA打赏
共{{data.count}}人
人已打赏
服务运维

如何在 Ubuntu 18.04 上启用 SSH

2023-6-1 15:26:11

服务运维

如何卸载宝塔面板?几个常见的卸载宝塔面板命令

2023-10-26 17:38:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'