Linux UFW防火墙完全使用手册

Linux UFW(Uncomplicated Firewall)使用教程

引言

Linux 系统中的防火墙是一项重要的安全功能,它能帮助管理员控制网络流量,防止未经授权的访问。UFW(Uncomplicated Firewall)是一个旨在简化 Linux 防火墙管理的工具,特别适合那些没有深入学习 iptables 的用户。UFW 是基于 iptables 的前端工具,它通过更简洁的命令集来管理防火墙规则,使得管理防火墙变得更加方便和直观。

本文将详细介绍如何在 Linux 系统中使用 UFW,帮助你快速上手并理解如何配置防火墙规则。

1. 安装 UFW

在大多数基于 Debian 和 Ubuntu 的 Linux 发行版中,UFW 通常是预安装的。如果没有安装,你可以通过以下命令来安装它:

在 Ubuntu/Debian 系统上安装 UFW

bash
sudo apt update
sudo apt install ufw

在 CentOS/RHEL 系统上安装 UFW

CentOS/RHEL 默认并不提供 UFW 包,但可以通过 EPEL(Extra Packages for Enterprise Linux)仓库来安装它:

bash
sudo yum install epel-release
sudo yum install ufw

安装完成后,你可以通过以下命令验证 UFW 是否安装成功:

bash
ufw --version

2. 启用和禁用 UFW

启用 UFW

在开始配置 UFW 之前,你需要首先启用它。可以通过以下命令启用 UFW:

bash
sudo ufw enable

启用后,UFW 将会立即生效并开始过滤网络流量。

禁用 UFW

如果你需要暂时关闭 UFW,可以使用以下命令:

bash
sudo ufw disable

3. 基本的防火墙规则配置

查看当前 UFW 状态

在开始配置之前,先查看当前 UFW 的状态以及已启用的规则:

bash
sudo ufw status

如果 UFW 已启用,你会看到类似下面的输出,列出了当前规则:

```
Status: active

To Action From
-- ------ ----
22 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
```

如果 UFW 没有启用,则会显示:

Status: inactive

允许指定端口

为了允许某些服务的流量通过防火墙,你需要显式允许指定的端口。例如,要允许 HTTP(端口 80)和 HTTPS(端口 443)流量,你可以使用以下命令:

bash
sudo ufw allow 80
sudo ufw allow 443

也可以一次性同时允许多个端口:

bash
sudo ufw allow 80,443

你还可以通过指定协议(TCP/UDP)来精确控制规则。例如,要允许特定协议的流量,可以使用:

bash
sudo ufw allow 80/tcp
sudo ufw allow 123/udp

拒绝某个端口的流量

如果你想要阻止某个端口的流量(例如,阻止 SSH 端口 22),可以使用以下命令:

bash
sudo ufw deny 22

删除规则

如果你不再需要某条规则,可以通过以下命令删除它。例如,要删除允许端口 80 的规则:

bash
sudo ufw delete allow 80

4. 高级配置

限制 SSH 连接

默认情况下,UFW 会允许 SSH 端口(22)上的流量,但为了增加安全性,建议限制 SSH 连接的速率,防止暴力破解攻击。可以使用以下命令:

bash
sudo ufw limit ssh

这将限制每分钟的连接尝试次数。如果超过此次数,IP 会被暂时封禁。

设置默认规则

UFW 允许你设置默认的流量策略。在没有匹配任何规则的情况下,默认规则会决定流量的处理方式。默认有两种策略:allowdeny

  • 默认允许所有传入连接:

bash
sudo ufw default allow incoming

  • 默认拒绝所有传入连接:

bash
sudo ufw default deny incoming

你通常会选择设置默认拒绝传入连接,并允许特定的服务(如 SSH、HTTP、HTTPS 等)流量。

bash
sudo ufw default deny incoming
sudo ufw default allow outgoing

设置规则在特定接口或IP上生效

你可以通过指定特定的接口或 IP 地址来更精细地控制规则。例如,要允许从特定 IP 地址(例如,192.168.1.100)访问 SSH:

bash
sudo ufw allow from 192.168.1.100 to any port 22

你也可以通过指定网络接口来限制流量。例如,允许通过 eth0 接口的 HTTP 流量:

bash
sudo ufw allow in on eth0 to any port 80

配置应用程序

UFW 还支持配置应用程序服务规则。例如,你可以通过以下命令查看系统中已经定义的应用程序配置:

bash
sudo ufw app list

此命令会列出当前所有已知的应用程序配置(如 OpenSSH、Apache、Nginx 等)。要允许某个应用程序的流量,可以使用类似以下命令:

bash
sudo ufw allow 'Apache'

或者你也可以使用应用程序配置文件来允许特定服务(如 SSH):

bash
sudo ufw allow 'OpenSSH'

5. 日志记录

启用 UFW 后,可以通过以下命令查看防火墙的日志:

bash
sudo ufw logging on

默认情况下,UFW 会将日志记录在 /var/log/ufw.log 文件中。如果你需要查看日志,可以使用以下命令:

bash
sudo tail -f /var/log/ufw.log

你可以根据需要调整日志级别,查看更详细的日志信息。

6. 重置 UFW

如果你想要清除所有规则并将 UFW 设置为初始状态,可以使用以下命令:

bash
sudo ufw reset

这会禁用 UFW 并删除所有现有规则。之后,你可以重新启用 UFW 并设置新的规则。

7. 高级命令

禁止访问特定 IP

如果你需要阻止某个特定的 IP 地址访问你的服务器,可以使用以下命令:

bash
sudo ufw deny from 192.168.1.100

这将禁止来自 192.168.1.100 的所有访问。

查看日志

查看日志文件以监控被 UFW 阻止的流量:

bash
sudo tail -f /var/log/ufw.log

结语

通过本教程的学习,你应该已经掌握了 UFW 的基本用法,包括如何安装、配置和管理防火墙规则。UFW 提供了一个简洁而强大的方式来确保你的 Linux 系统的安全性。合理配置防火墙规则、限制不必要的服务和访问可以有效提升你的系统防护能力。

THE END