UFW:仅允许来自特定 IP 的应用程序/配置文件

UFW:仅允许来自特定 IP 的应用程序/配置文件

我想将外部访问(例如 Dovecot)限制为特定源 IP。允许应用程序配置文件完全没问题,但连接的来源从未受到限制(“来自:任何地方”):

$ sudo ufw status

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx Full                 ALLOW       Anywhere                  
Postfix                    ALLOW       Anywhere                  
Dovecot IMAP               ALLOW       Anywhere      

但是我如何将 Dovecot IMAP 限制到特定的源 IP?

我试过:

$ sudo ufw allow "Dovecot IMAP" from 1.1.1.1
ERROR: Wrong number of arguments

所以这似乎不起作用......

要求 Ubuntu 20.04 LTS、ufw 0.36

答案1

简短的回答是:

sudo ufw allow from <IP adress>/<subnet mask> to any app <profile name>

在您的情况下,请记住引用“Dovecot IMAP”。

长答案:

我试过了:$ sudo ufw 允许“Dovecot IMAP”从 1.1.1.1

虽然这是最直观的命令,但语法有点棘手。

我不知道Dovecot IMAP是的,所以我将以 OpenVPN 为例。


我们希望通过 ufw 允许应用程序配置文件仅有的如果它来自某个 IP/子网。

假设我们有以下内容ufw 应用程序配置文件在 /etc/ufw/applications.d/ 中命名开放VPN(这里的配置文件名很重要):

[OpenVPN]
title=OpenVPN server
description=This rule allows connections to VPN server at <servername>.
ports=8880/udp

笔记:我们在这里为 OpenVPN 使用自定义端口。

现在使用以下命令将规则添加到 ufw:

 sudo ufw allow from 10.0.0.0/24 to any app openvpn

这会打开端口指定于/etc/ufw/applications.d/openvpn对于传入来自的连接10.0.0.0/24。

并检查:

sudo ufw status verbose

如果它有效,你应该得到如下输出:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), allow (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
8880/udp (OpenVPN)         ALLOW IN    10.0.0.0/24

请小心配置文件名和服务名称。

sudo ufw allow from 10.0.0.0/24 proto udp to any port openvpn

这是一个非常相似的语法,也是正确的。但它适用于 /etc/services 中的服务端口配置,这可能不是您想要允许的端口(例如我们将 OpenVPN 端口更改为 8880)。在这种情况下,我们在 /etc/services 中仍然有以下内容:

openvpn         1194/tcp
openvpn         1194/udp

Ufw 承认开放VPN作为服务,除非我们另有说明。

任何端口 openvpn (<- 服务)

任何应用程序 openvpn (<- 应用程序配置文件)

因此发布sudo ufw allow from 10.0.0.0/24 proto udp to any port openvpn结果是:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), allow (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
1194/udp                   ALLOW IN    10.0.0.0/24

这边走我们有效地打开了一个端口对于 OpenVPN,但不是我们指定的端口在我们的 /etc/ufw/applications.d/openvpn 应用程序配置文件中。

从未尝试过,但如果您更改 /etc/services 中的端口,它应该可以工作(冒着破坏其他东西的风险)。

您可以检查这个 Ubuntu 手册页有关 ufw 命令的详细信息。

希望能帮助到你。

相关内容