如何在 Debian 9 上使用 UFW 设置防火墙

2023-11-18

Debian 包含多个软件包,这些软件包提供了用于管理防火墙的工具,其中 iptables 作为基本系统的一部分安装。对于初学者来说,学习如何使用 iptables 工具正确配置和管理防火墙可能很复杂,但 UFW 简化了它。

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

在本教程中,我们将向您展示如何在 Debian 9 上使用 UFW 设置防火墙。

先决条件#

在继续本教程之前,请确保您登录的用户已须藤权限 .

安装UFW#

Debian 9 中默认没有安装 UFW。您可以安装ufw通过键入以下内容进行打包:

sudo apt install ufw

检查 UFW 状态#

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

sudo ufw status verbose

输出将如下所示:

Status: inactive

默认情况下,UFW 处于禁用状态。安装不会自动激活防火墙以避免服务器被锁定。

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

UFW 默认政策#

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

默认策略定义在/etc/default/ufw文件并可以使用更改sudo ufw default <policy> <chain>命令。

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

应用简介#

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

要列出您的系统上可用的所有应用程序配置文件,请输入:

sudo ufw app list

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

Available applications:
  DNS
  IMAP
  IMAPS
  OpenSSH
  POP3
  POP3S
  Postfix
  Postfix SMTPS
  Postfix Submission
  ...

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

sudo ufw app info OpenSSH
Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.

Port:
  22/tcp

A上面的输出告诉我们 OpenSSH 配置文件打开了端口22.

允许 SSH 连接#

在首先启用 UFW 防火墙之前,我们需要允许传入的 SSH 连接。

如果您从远程位置连接到服务器(几乎总是这种情况),并且在明确允许传入 SSH 连接之前启用 UFW 防火墙,您将无法再连接到 Debian 服务器。

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

sudo ufw allow OpenSSH
Rules updated
Rules updated (v6)

如果 SSH 服务器是监听端口除了默认端口 22 之外,您还需要打开该端口。

例如,您的 ssh 服务器侦听端口8822,然后您可以使用以下命令来允许该端口上的连接:

sudo ufw allow 8822/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 连接,只需键入y并击中Enter.

允许其他端口上的连接#

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

以下是如何允许某些最常见服务的传入连接的几个示例:

打开端口 80 - HTTP#

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

sudo ufw allow http

而不是http配置文件,您可以使用端口号,80:

sudo ufw allow 80/tcp

打开端口 443 - HTTPS#

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

sudo ufw allow https

为了达到同样的目的而不是https您可以使用端口号,443:

sudo ufw allow 443/tcp

开放8080端口#

如果你跑Tomcat或任何其他侦听端口 8080 的应用程序,您可以允许传入连接:

sudo ufw allow 8080/tcp

允许端口范围#

使用 UFW,您还可以允许访问端口范围。当允许使用 UFW 的端口范围时,您必须指定协议,tcp or udp.

例如,允许来自以下端口的端口7100 to 7200双方tcp and udp,运行以下命令:

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

允许特定 IP 地址#

如果要允许从特定 IP 地址访问所有端口,请使用ufw allow from命令后跟 IP 地址:

sudo ufw allow from 64.63.62.61

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

要允许访问特定端口,假设 IP 地址为 64.63.62.61 的工作计算机的端口 22,请使用以下命令:

sudo ufw allow from 64.63.62.61 to any port 22

允许子网#

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

sudo ufw allow from 192.168.1.0/24 to any port 3306

允许连接到特定网络接口#

要允许访问特定端口(假设端口)3360在特定的网络接口上eth2, 使用allow in on命令后跟接口名称:

sudo ufw allow in on eth2 to any port 3306

拒绝连接#

所有传入连接的默认策略设置为deny这意味着 UFW 将阻止所有传入连接,除非您专门打开连接。

假设您打开了端口80 and 443并且您的服务器正受到来自23.24.25.0/24网络。拒绝来自的所有连接23.24.25.0/24,运行以下命令:

sudo ufw deny from 23.24.25.0/24

如果您只想拒绝对端口的访问80 and 443 from 23.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

编写拒绝规则与编写允许规则相同,只需替换allow with deny.

删除 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

结论#

您已经学习了如何在 Debian 9 计算机上安装和配置 UFW 防火墙。请务必允许系统正常运行所需的所有传入连接,同时限制所有不必要的连接。

如果您有疑问,请随时在下面发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Debian 9 上使用 UFW 设置防火墙 的相关文章

随机推荐

  • 如何在 Debian 9 上添加交换空间

    交换空间是磁盘上的空间 当物理 RAM 内存已满时使用 当 Linux 系统耗尽 RAM 时 非活动页面将从 RAM 移至交换空间 交换空间可以采用专用交换分区或交换文件的形式 通常 运行 Debian 虚拟机时不存在交换分区 因此唯一的选
  • Linux 中的 Tcpdump 命令

    tcpdump是一个命令行实用程序 可用于捕获和检查进出系统的网络流量 它是网络管理员最常用的工具 用于解决网络问题和安全测试 尽管它的名字 与tcpdump 您还可以捕获非 TCP 流量 例如 UDP ARP 或 ICMP 捕获的数据包可
  • 如何在 CentOS 8 上安装 Jenkins

    Jenkins是最流行的基于 Java 的开源自动化服务器 可让您轻松设置持续集成和持续交付 CI CD 管道 持续集成 CI 是一种 DevOps 实践 团队成员定期将代码更改提交到版本控制存储库 然后运行自动化构建和测试 持续交付 CD
  • 在 CentOS 7 上安装 MariaDB

    MariaDB 是一个开源关系数据库管理系统 向后兼容 是 MySQL 的二进制直接替代品 它是由 MySQL 的一些原始开发人员和社区中的许多人开发的 随着 CentOS 7 的发布 MySQL 被 MariaDB 取代作为默认数据库系统
  • 如何在 CentOS 7 上安装 Sublime Text 3

    崇高的文字是一个专有的跨平台多功能文本和源代码编辑器 用于网络和软件开发 它速度非常快 并且具有许多开箱即用的强大功能 您可以通过安装新插件和创建自定义设置来增强其功能 本教程概述了在 CentOS 7 Linux 系统上安装 Sublim
  • 如何在 Ubuntu 18.04 上安装和配置 VNC

    本指南介绍了在 Ubuntu 18 04 上安装和配置 VNC 服务器所需的步骤 我们还将向您展示如何通过 SSH 隧道安全地连接到 VNC 服务器 虚拟网络计算 VNC 是一种图形桌面共享系统 允许您使用键盘和鼠标远程控制另一台计算机 它
  • 如何在 CentOS 8 上安装和使用 PHP Composer

    Composer是 PHP 的依赖管理器 就像 npm 的作用一样 Node js or pip是Python Composer 将提取您的项目所依赖的所有必需的 PHP 包并为您管理它们 它用于所有现代 PHP 框架和平台 例如 Lara
  • 如何在 Ubuntu 中添加 apt 存储库

    使用 Ubuntu 软件中心或命令行实用程序 例如apt or apt get这些软件包是从一个或多个 apt 软件存储库下载的 APT 存储库是网络服务器或本地目录 其中包含 APT 工具可读的 deb 包和元数据文件 虽然默认 Ubun
  • 如何在 Ubuntu 18.04 上安装 Visual Studio Code

    视觉工作室代码是微软开发的开源跨平台代码编辑器 它有一个内置的调试支持 嵌入式Git控制 语法突出显示 代码完成 集成终端 代码重构和片段 在 Ubuntu 计算机上安装 Visual Studio Code 最简单且推荐的方法是启用 VS
  • 如何在 CentOS 7 上安装 Atom 文本编辑器

    Atom是由GitHub开发的开源跨平台代码编辑器 它有一个内置的包管理器 嵌入Git控制 智能自动完成 语法突出显示和多个窗格 从本质上讲 Atom 是一个基于 Electron 构建的桌面应用程序 使用 HTML JavaScript
  • 如何在 Ubuntu 20.04 上安装 Git

    Git 是世界上最流行的分布式版本控制系统 被许多开源和商业项目使用 它允许您与其他开发人员协作进行项目 跟踪代码更改 恢复到之前的阶段 创建分支 和更多 Git 最初是由莱纳斯 托瓦尔兹Linux内核的创建者 本指南介绍如何在 Ubunt
  • 如何在 Ubuntu 18.04 上安装 VirtualBox 来宾添加

    虚拟盒子是一款开源 跨平台虚拟化软件 允许您同时运行多个来宾操作系统 虚拟机 VirtualBox 提供了一组可以安装在来宾操作系统中的驱动程序和应用程序 VirtualBox Guest Additions 来宾添加为来宾计算机提供了多种
  • Linux 类型命令

    The type命令用于显示有关命令类型的信息 它将向您展示在命令行上键入给定命令时将如何解释 在这篇文章中 我们将解释如何使用Linuxtype命令 如何使用 type 命令 type是 Bash 和其他 shell 如 Zsh 和 Ks
  • 如何在 CentOS 7 上使用 Apache 安装和保护 phpMyAdmin

    phpMyAdmin 是一个基于 PHP 的开源工具 用于通过基于 Web 的界面管理 MySQL 和 MariaDB 服务器 phpMyAdmin 允许您与 MySQL 数据库交互 管理用户帐户和权限 执行 SQL 语句 以各种数据格式导
  • 如何在 Ubuntu 20.04 上设置 Nginx 服务器块

    服务器块是一种 Nginx 指令 它定义特定域的设置 允许您在一台服务器上运行多个网站 对于每个网站 您可以设置网站文档根目录 包含网站文件的目录 创建单独的安全策略 使用不同的 SSL 证书等等 本文介绍如何在 Ubuntu 20 04
  • 如何在 CentOS 7 上添加和删除用户

    CentOS 以及所有其他 Linux 发行版都是一个多用户操作系统 每个用户可以对各种命令行和 GUI 应用程序拥有不同的权限级别和特定设置 了解如何添加和删除用户是每个 Linux 用户应该了解的基本技能之一 在本教程中 我们将解释如何
  • 如何在树莓派上安装和使用 Docker

    Docker 是一个容器化平台 允许您快速构建 测试和部署应用程序作为可移植 自给自足的容器 几乎可以在任何地方运行 在本教程中 我们将解释如何在 Raspberry Pi 上安装 Docker 并探索基本的 Docker 概念和命令 先决
  • 如何在 Ubuntu 18.04 上使用 Apache 安装和配置 Nextcloud

    下一云是一个开源 自托管的文件共享和协作平台 类似于 Dropbox 它捆绑了媒体播放器 日历和联系人管理 Nextcloud 可通过应用程序进行扩展 并拥有适用于所有主要平台的桌面和移动客户端 在本教程中 我们将向您展示如何在 Ubunt
  • 了解 /etc/passwd 文件

    Linux 系统上可以使用多种不同的身份验证方案 最常用和标准的方案是针对 etc passwd and etc 影子 files etc passwd是一个基于纯文本的数据库 包含系统上所有用户帐户的信息 这是owned第 644 章权限
  • 如何在 Debian 9 上使用 UFW 设置防火墙

    Debian 包含多个软件包 这些软件包提供了用于管理防火墙的工具 其中 iptables 作为基本系统的一部分安装 对于初学者来说 学习如何使用 iptables 工具正确配置和管理防火墙可能很复杂 但 UFW 简化了它 UFW Unco