【命令操作】UFW:轻松掌控信创终端防火墙|统信|麒麟|方德

文摘   2024-12-09 00:00   上海  

使


UFW是什么?





UFW 全称为 “Uncomplicated Firewall”,即“不复杂的防火墙”,是 Ubuntu 及许多基于 Debian 的发行版默认提供的防火墙管理工具。传统的 Linux 防火墙通常需要使用 iptables 命令或编写复杂的规则文件,这对新手或普通用户而言较为复杂。UFW 的设计目标是简化这一过程,为用户提供更直观、更易用的命令行界面,轻松实现端口、服务和协议级的访问控制。




UFW的特性:

简化的语法:通过简单直观的命令来启用、禁用以及配置规则,而无需直接书写繁琐的 iptables 规则。

易于启用或禁用:只需一行命令即可开启或关闭防火墙功能,并在启动后自动加载配置规则。

预定义服务配置:UFW 内置了许多常见服务的应用配置文件,如 OpenSSH、HTTP、HTTPS、SAMBA 等,用户无需记忆端口号即可快速配置防火墙访问权限。

日志与监控功能:可以轻松开启日志记录以监控防火墙的工作情况。


01

UFW 的安装与基础操作


大多数基于 Debian/Ubuntu 的发行版默认已安装 UFW。如果您的系统中未安装,可通过以下方式安装:

pdsyw@pdsyw-PC:~/Desktop$ sudo apt-get  update  pdsyw@pdsyw-PC:~/Desktop$ sudo apt-get install ufw



查看 UFW 状态:
pdsyw@pdsyw-PC:~/Desktop$ sudo ufw status

在默认情况下,如果防火墙未启用,状态会显示为 inactive。



启用 UFW:
pdsyw@pdsyw-PC:~/Desktop$ sudo ufw enablepdsyw@pdsyw-PC:~/Desktop$ sudo ufw status

执行后,UFW 将启动并在系统重启时自动加载规则。


禁用 UFW:
pdsyw@pdsyw-PC:~/Desktop$ sudo ufw disablepdsyw@pdsyw-PC:~/Desktop$ sudo ufw status

此命令将停用 UFW 的所有防火墙规则。




02

基本规则配置


UFW 的核心在于创建“允许(allow)”和“拒绝(deny)”规则。设置规则时,可以基于端口(port)、服务名称(service),以及指定协议(TCP/UDP)和来源IP地址等。

默认策略:

在设置单独的规则之前,通常建议先为入站和出站流量设置一个默认策略。例如,只允许必要的入站连接并拒绝其他所有输入:

# 将入站流量默认拒绝pdsyw@pdsyw-PC:~/Desktop$ sudo ufw default deny incoming# 将出站流量默认允许pdsyw@pdsyw-PC:~/Desktop$ sudo ufw default allow outgoing

这些默认策略使得当您未指定规则时,入站流量会被拒绝,而出站连接则默认放行。



03

基于服务和端口的规则配置


允许某服务的入站访问:

UFW 内置了常见服务的配置文件,您可以直接使用服务名称开启访问权限。例如,要允许 SSH(默认22端口)访问:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw allow ssh

此命令相当于 sudo ufw allow 22/tcp,但更为直观。当您想要允许 HTTP (80端口)、HTTPS (443端口) 时,可直接使用:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw allow httppdsyw@pdsyw-PC:~/Desktop$ sudo ufw allow https


允许特定端口:

如果要对特定端口开放访问(如 8080 端口),可以直接指定:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw allow 8080

如果需要指定协议,如只允许 TCP 协议:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw allow 8080/tcp



拒绝某服务或端口:

拒绝规则与允许规则类似。若要拒绝某个端口的访问,例如拒绝 25 端口的访问:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw deny 25



04

指定来源IP和子网


您也可以对特定来源 IP 的访问进行限定。例如,只允许来自 192.168.1.10 的客户端通过 SSH 访问:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw allow from 192.168.1.10 to any port 22

如果您想允许某个子网,例如 192.168.1.0/24 网段访问内网 HTTP 服务:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw allow from 192.168.1.0/24 to any port 80

同理,可以针对来源进行拒绝规则。




05

IPv6 支持


UFW 支持 IPv6,只需在配置文件中启用即可。默认情况下,UFW 会同时处理 IPv4 和 IPv6。您可以在配置文件 /etc/default/ufw 中找到 IPV6=yes 设置项。当 IPv6 启用后,UFW 会对 IPv4 和 IPv6 流量同时应用规则。

pdsyw@pdsyw-PC:~/Desktop$ sudo vim /etc/default/ufwpdsyw@pdsyw-PC:~/Desktop$ grep IPV6=yes /etc/default/ufwIPV6=yes




06

删除和管理规则


查看当前规则:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw status numbered

numbered 参数会显示规则的编号,从而方便您根据编号进行删除。


删除规则:

例如,您要删除第3条规则:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw delete 3


禁用或修改规则:

如果您添加错了一条规则,可以先删除再重新添加。


07

UFW 的日志记录与监控


开启日志:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw logging on

也可以设置日志级别(low、medium、high、full),默认为 low。更详细的日志有助于问题定位,但也会产生更多日志量:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw logging medium

UFW 的日志通常记录在 /var/log/ufw.log 中(有的系统会将日志写入系统日志中)。通过查看日志可以了解被阻断或通过的连接情况。

pdsyw@pdsyw-PC:~/Desktop$ sudo head /var/log/ufw.log


在 UFW 中,日志级别(ufw logging)可分为 off、low、medium、high、full 几种。其中每个级别代表日志输出的详细程度和范围,越往后级别越详细。大致含义如下:

off:

    关闭日志记录,不产生任何日志输出。

low:

    低级别日志。
        记录所有被阻止(deny/drop)的数据包(不匹配默认策略的阻挡信息),以及对于已允许的 TCP 连接会记录其新建连接情况。
        简单来说,low 只关注关键的安全事件和基础连接建立的日志。

medium:

    中等详细级别日志。

    包含 low 级别的所有内容。
        额外会记录已允许的 UDP 数据包。
        相比 low,medium 提供了更多有关允许流量的细节。

high:
        高级别日志。
        包含 medium 级别的所有内容。
        额外会记录已允许的 ICMP(如 ping 请求)数据包。
        这样不仅能看到 TCP 和 UDP 的允许情况,还能追踪 ICMP 流量。

full:
        最详细级别日志。
        包含 high 级别的所有内容。
        此级别会对更多类型的数据包进行日志记录,几乎记录所有经过防火墙的流量事件。
        使用 full 会产生大量日志,对问题排查有帮助,但也会给系统日志带来较大负载。




08

高级配置与应用配置文件


UFW 在 /etc/ufw 目录下有一些配置文件和应用描述文件(位于 /etc/ufw/applications.d)。应用描述文件定义了某些常用服务的端口和协议映射,方便您使用 sudo ufw allow <service-name> 来快速开放相应端口。

pdsyw@pdsyw-PC:~/Desktop$ ls /etc/ufw/applications.d/


列出已知的应用服务:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw app list


查看某个应用服务的具体配置:

pdsyw@pdsyw-PC:~/Desktop$ sudo ufw app info OpenSSH

此命令会显示 “OpenSSH” 应用服务使用的端口和协议详情。



09

故障排除与注意事项


权限问题:UFW 的所有命令基本需要使用 sudo 或在 root 权限下执行。

已启用防火墙后远程访问问题:如果在一台远程服务器上启用 UFW,但未提前允许 SSH 端口,则可能导致无法远程连接,需要在启用前先 sudo ufw allow ssh。

防火墙策略顺序:UFW 是基于 iptables 的前端工具。当需要更高级的规则或自定义复杂策略时,可以通过编辑 /etc/ufw/*.rules 文件实现更深入的配置,但一般不推荐新手直接修改这些文件。

UFW 将复杂的 iptables 配置简化为直观的命令,让用户可以轻松管理 Linux 防火墙规则。通过理解 UFW 的默认策略、规则添加、删除方式,以及熟练使用内置的服务配置和日志监控功能,您可以快速构建安全、有效的防火墙策略。

在生产环境中使用 UFW 时,建议在启用前谨慎添加必要规则,确保远程管理不受阻,并通过日志与必要的测试来验证配置正确性。



扫码添加

添/加/好/友

进/群/交/流

鹏大圣运维
统信UOS/麒麟KYLINOS/deepin/openkylin/openeuler/OpenAnolis等国产化操作系统使用经验分享。
 最新文章