在 Ubuntu 上限制 vsftpd 访问可以通过多种方式实现,包括配置防火墙、使用 PAM(可插拔认证模块)以及编辑 vsftpd 配置文件。以下是一些基本步骤:
安装 vsftpd(如果尚未安装):
sudo apt update
sudo apt install vsftpd
配置防火墙: 如果你使用的是 UFW(Uncomplicated Firewall),可以设置规则来限制访问。
允许 FTP 访问:
sudo ufw allow 21/tcp
如果你需要被动模式,还需要允许一系列端口(例如 50000-50050):
sudo ufw allow 50000:50050/tcp
然后启用防火墙:
sudo ufw enable
编辑 vsftpd 配置文件: 打开 vsftpd 的配置文件以进行更详细的设置。
sudo nano /etc/vsftpd.conf
在配置文件中,你可以设置以下选项来限制访问:
listen=YES
:让 vsftpd 在独立模式下运行。listen_ipv6=NO
:如果你只使用 IPv4,可以禁用 IPv6。anonymous_enable=NO
:禁止匿名用户登录。local_enable=YES
:允许本地用户登录。write_enable=YES
:允许 FTP 写入权限(根据需要设置)。chroot_local_user=YES
:将本地用户锁定在其主目录中。allow_writeable_chroot=YES
:如果需要,允许 chroot 环境写入。userlist_enable=YES
和 userlist_file=/etc/vsftpd.userlist
:指定一个用户列表文件,只有列表中的用户才能登录。userlist_deny=NO
:设置为 YES
将拒绝列表中的用户。保存并关闭文件。
配置 PAM: 如果你想基于用户组或其他更复杂的规则来限制访问,可以编辑 PAM 配置文件。
sudo nano /etc/pam.d/vsftpd
根据你的需求添加或修改行。例如,要限制特定用户组登录,可以使用以下行:
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd.userlist onerr=succeed
这将拒绝 /etc/vsftpd.userlist
文件中列出的用户登录。
重启 vsftpd 服务: 应用更改后,重启 vsftpd 服务以使配置生效。
sudo systemctl restart vsftpd
测试配置: 使用 FTP 客户端尝试连接到服务器,确保配置按预期工作。
请记住,这些步骤可能需要根据你的具体需求进行调整。始终确保你的服务器安全,避免不必要的开放端口和服务。如果你不熟悉这些配置,建议在进行更改之前咨询专业人士。