我已经阅读了很多设置指南,但不知道如何配置 VSFTPD 以实现仅限 LAN 的访问,以及如何限制对单个目录的访问(例如:~/Downloads)。
如果可能的话,我什至不想将它的存在暴露在互联网上。任何帮助是极大的赞赏。
PC:Ubuntu Mate 19.04 64 位。
我已经阅读了很多设置指南,但不知道如何配置 VSFTPD 以实现仅限 LAN 的访问,以及如何限制对单个目录的访问(例如:~/Downloads)。
如果可能的话,我什至不想将它的存在暴露在互联网上。任何帮助是极大的赞赏。
PC:Ubuntu Mate 19.04 64 位。
仅限 LAN 访问
这最好通过防火墙规则来完成。我们将为此使用简单
ufw
的防火墙。首先我们检查状态
ufw
如果您看到,请
Status: inactive
使用以下命令启用ufw
:如以下链接所述,我们将允许端口 20 和 21 用于基本的 VSFTPD 访问。我们不会使用简单的 ufw 规则,例如:
因为这将允许从任何地方访问。为了允许 LAN-Only 访问,我们将使用高级语法:
这
from 192.168.0.0/24
是 LAN-Only 部分。你的可能不一样。一些家庭路由器在 192.168.0.x 范围内分配 IP 地址,而另一些在 192.168.1.x 范围内分配 IP 地址,其中 x 介于 2-255 之间。/24
子网掩码表示允许该范围内的任何 x 值。这
to any
意味着分配给这台计算机的任何 IP 地址都可以。由于这台计算机不充当路由器,因此此设置没问题。(
port 20
或21
)是此规则打开的端口。这
proto tcp
是唯一可以使用tcp
的协议(不是协议)。udp
如果我们想按照下面的教程将端口 990 和 40,000 到 50,000 端口添加到防火墙,我们可以使用一个命令来做到这一点:
关于 IPv6 的注意事项
我对 IPv6 本地地址和子网掩码知之甚少,无法编写包含 IPv6 ufw 规则的答案。如果没有任何 IPv6允许规则,任何使用 IPv6 地址访问
ftp
站点的尝试都将被拒绝。这个问题的答案表明 IPv6 可能没有一个简单的解决方案:如何在 ufw 中允许本地 IPv6 子网?
对于它的价值,以下允许规则语法(基于对上述问题的回答)被接受
ufw
:这应该允许从以
fe80
.将用户限制在单个目录
这在Digital Ocean 教程中有很好的描述。主要步骤复制如下:
在此示例中,用户名是
sammy
。基本概念是用户sammy
不能对用户可访问目录的基目录具有写访问权限。创建ftp
文件夹,设置其所有权,并确保使用以下命令删除写入权限:接下来,我们创建可以上传文件的目录并将所有权分配给用户:
接下来我们在 nano 中编辑 VSFTPD 配置文件:
并进行以下更改/添加:
完成更改后,保存并退出文件。
然后,我们创建并将我们的用户添加到文件中。我们将使用 -a 标志附加到文件:
Funally 我们重新启动守护程序以加载配置更改:
希望这可以帮助