Ubuntu 22.04 5 分钟设置 UFW 防火墙
本页介绍如何在 Ubuntu 22.04 LTS 服务器或桌面上使用 UFW 设置防火墙。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 防火墙 |
操作系统兼容性 | Debian • Linux • Mint • Ubuntu |
预计阅读时间 | 5 分钟 |
Ubuntu 22.04 LTS 5 分钟设置 UFW 防火墙
设置OpenVPN的步骤如下:
步骤 1 - 设置默认 UFW 策略
让我们查看当前状态:
$ sudo ufw status
默认策略防火墙对于服务器和桌面来说效果非常好。关闭服务器上的所有端口并仅打开所需的 TCP 或 UDP 端口始终是一个好策略。让我们阻止所有传入连接并仅允许来自 Ubuntu 22.04 LTS 云服务器的传出连接:
确保也启用了 IPv6 支持。运行grep 命令:
否则,编辑 /etc/default/ufw:
按如下方式设置:
$ sudo ufw default allow outgoing
$ sudo ufw default deny incoming
$ grep IPV6 /etc/default/ufw
$ sudo nano /etc/default/ufw
IPV6=yes
步骤 2 – 使用 ufw 打开 SSH TCP 端口 22
下一个合理步骤是允许默认 TCP 端口 22 上的传入 SSH 连接,如下所示:
$ sudo ufw allow ssh
假设您在 TCP 端口 4242 上运行 OpenSSH 服务器,那么:
$ sudo ufw allow 4242/tcp
您也可以按如下方式限制 ssh 端口访问:有关更多信息,
$ sudo ufw limit ssh
请参阅“如何在 Ubuntu Linux 上使用 ufw 限制 SSH(TCP 端口 22)连接”。
步骤 3 – 打开防火墙
这就是所需的全部内容。现在为您的 Ubuntu Linux 22.04 LTS 机器打开防火墙保护。例如:
$ sudo ufw enable
您需要通过键入y并随后键入[Enter]键来确认操作:
$ sudo ufw status
请注意,一旦启用 UFW,它将在系统重启后运行。您可以使用 systemctl 命令轻松验证:
$ sudo systemctl status ufw.service
● ufw.service - Uncomplicated firewall Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled) Active: active (exited) since Fri 2022-08-26 01:02:24 UTC; 20min ago Docs: man:ufw(8) Process: 433 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS) Main PID: 433 (code=exited, status=0/SUCCESS) CPU: 2ms Aug 26 01:02:24 localhost systemd[1]: Starting Uncomplicated firewall... Aug 26 01:02:24 localhost systemd[1]: Finished Uncomplicated firewall.
步骤 4 - 打开(允许)TCP 或 UDP 端口
现在您已设置了防火墙策略并打开了 TCP 端口 22 以用于 ssh,现在是时候根据应用程序的需求打开其他服务端口了。例如,为 Nginx 或 Apache Web 服务器打开 TCP 端口 80 和 443,如下所示:以下
是如何打开 WireGuard VPN UDP 端口 41194,键入:
ufw 注释关键字添加注释,这有助于理解防火墙规则。
$ sudo ufw allow 80/tcp comment 'Allow Apache HTTP'
$ sudo ufw allow 443/tcp comment 'Allow Nginx HTTPS'
$ sudo ufw allow 41194/udp comment 'Allow WireGuard VPN'
打开 TCP 和 UDP 端口范围
$ sudo ufw allow 4000:4200/tcp
$ sudo ufw allow 6000:7000/udp
允许来自单个 IP 或 CIDR 的连接
在此示例中,您要允许来自 IP 地址 1.2.3.4 的所有连接,请输入:
$ sudo ufw allow from 1.2.3.4
让我们允许来自 IP 地址 1.2.3.4 到我们的端口 25 的连接,请输入:
$ sudo ufw allow from 1.2.3.4 to any port 25 proto tcp
并且您也可以为端口 25 设置目标 IP 222.222.222.222:sudo
ufw allow from 1.2.3.4 to 222.222.222.222 port 25 proto tcp
如何允许特定接口上的连接
仅为 wg0 接口打开 TCP 端口 22:
$ sudo ufw allow in on wg0 to any port 22
假设您想允许从 10.105.28.22 连接到 lxdbr0 接口上的 TCP 端口 3306,然后添加:
$ sudo ufw allow in on lxdbr0 from 10.105.28.22 to any port 3306 proto tcp
步骤 5 - 阻止 TCP 或 UDP 端口和连接
您想关闭端口并阻止某些 IP 地址吗?拒绝访问的语法如下。换句话说,只是忽略对端口 23 的访问:
$ sudo ufw deny 23/tcp comment 'Block telnet'
以下是如何拒绝来自名为 1.2.3.4 的 IP 地址的所有连接,请输入:
$ sudo ufw deny from 1.2.3.4
时钟 IP/子网 (CIDR) 名为 103.13.42.42/28,请输入:
$ sudo ufw deny from 103.13.42.42/28
最后,拒绝对端口 22 上的 1.1.1.2(比如坏人或黑客 IP 地址)的访问?尝试:
$ sudo ufw deny from 1.1.1.2 to any port 22 proto tcp
步骤 6 – 查看防火墙规则
您可以将防火墙状态视为规则的编号列表:
$ sudo ufw status numbered
步骤 7 - 删除 ufw 防火墙规则
以编号列表格式获取所有当前规则的列表:
$ sudo ufw status numbered
输出:
Status: active To Action From -- ------ ---- [ 1] 22/tcp ALLOW IN Anywhere [ 2] 80/tcp ALLOW IN Anywhere # Allow Apache HTTP [ 3] 443/tcp ALLOW IN Anywhere # Allow Nginx HTTPS [ 4] 41194/udp ALLOW IN Anywhere # Allow WireGuard VPN [ 5] 23/tcp DENY IN Anywhere # Block telnet [ 6] Anywhere DENY IN 103.13.42.32/28 [ 7] 22/tcp (v6) ALLOW IN Anywhere (v6) [ 8] 80/tcp (v6) ALLOW IN Anywhere (v6) # Allow Apache HTTP [ 9] 443/tcp (v6) ALLOW IN Anywhere (v6) # Allow Nginx HTTPS [10] 41194/udp (v6) ALLOW IN Anywhere (v6) # Allow WireGuard VPN [11] 23/tcp (v6) DENY IN Anywhere (v6) # Block telnet
要删除防火墙规则#6,请输入命令:有关更多信息,
请参阅如何在 Ubuntu / Debian Linux 教程中删除 UFW 防火墙规则。
$ sudo ufw delete 6
$ sudo ufw status numbered
步骤 8 - 停止并删除 UFW
如果您不再需要 ufw,请按照以下方法禁用它:
$ sudo ufw disable
$ sudo ufw reset
步骤 9 – 查看防火墙日志
默认情况下,所有 UFW 条目都记录到 /var/log/ufw.log 文件中。使用grep / less / more和其他命令查看 ufw 日志。例如:
让我们打印所有试图通过 SSH 端口登录但被 UFW 丢弃的 IP 地址的列表:
最后,以下是如何显示规则列表:
$ sudo more /var/log/ufw.log
$ sudo tail -f /var/log/ufw.log
$ grep 'DPT=22' /var/log/ufw.log |\
egrep -o 'SRC=([0-9]{1,3}[\.]){3}[0-9]{1,3}' |\
awk -F'=' '{ print $2 }' | sort -u
$ sudo ufw show listening
$ sudo ufw show added
总结
是不是很简单?现在您知道如何保护您的 Ubuntu 22.04 LTS Linux 服务器了。请在线阅读 ufw 命令文档或使用man 命令(ufw help命令),如下所示:
$ man ufw
$ ufw help
- 在Ubuntu 16.04 LTS服务器上安装 UFW 防火墙
- 在 Ubuntu/Debian Linux 上使用 ufw 打开 ssh 端口 22
- 配置 ufw 将端口 80/443 转发到 LAN 上托管的内部服务器
- 在 Ubuntu Linux 服务器上使用 ufw 阻止 IP 地址
- 在 Ubuntu Linux 上使用 ufw 限制 SSH(TCP 端口 22)连接
- 使用 UFW 的 Ubuntu Linux 防火墙打开端口命令
- 在 Ubuntu/Debian Linux 上使用 ufw 打开 DNS 端口 53
- 在Ubuntu 18.04上使用 UFW 设置防火墙
- 删除 UFW 防火墙规则
- 在Ubuntu 20.04 LTS上使用 UFW 配置防火墙
- 向 UFW 规则添加评论
- Ubuntu 22.04 LTS 5 分钟设置 UFW 防火墙