温馨提示×

如何限制debian ftpserver用户

小樊
38
2026-10-27 07:43:23
栏目: 智能运维

在 Debian 上限制 FTP(S) 用户(通常指 vsftpd,也可以是 proftpd / pure-ftpd),常见需求包括:

  • 禁止用户登录系统(仅能 FTP)
  • 限制只能访问自己的目录(chroot)
  • 限制上传/下载/写权限
  • 限制用户列表(允许/禁止哪些人)

下面以 vsftpd(Debian 最常见) 为主说明。


一、安装 vsftpd(如未安装)

sudo apt update
sudo apt install vsftpd

二、禁止 FTP 用户登录系统(仅 FTP)

创建用户时不给 shell:

sudo useradd -m -s /usr/sbin/nologin ftpuser
sudo passwd ftpuser

或已有用户:

sudo usermod -s /usr/sbin/nologin ftpuser

✅ /usr/sbin/nologin 允许 FTP,但不允许 SSH/Shell 登录


三、限制用户只能访问自己目录(chroot)

编辑配置文件:

sudo nano /etc/vsftpd.conf

关键配置:

chroot_local_user=YES
allow_writeable_chroot=YES

重启服务:

sudo systemctl restart vsftpd

⚠ 如果用户 home 目录可写,必须加 allow_writeable_chroot=YES


四、只允许指定 FTP 用户(白名单)

userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.allowed_users

创建白名单:

sudo nano /etc/vsftpd.allowed_users

内容:

ftpuser

重启:

sudo systemctl restart vsftpd

✅ 只有白名单中的用户能登录


五、禁止某些用户(黑名单)

userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.denied_users

六、限制写权限(只读 FTP)

write_enable=NO

或针对用户:

write_enable=YES
# 然后 chmod 目录为只读

七、限制 FTP 用户访问其他目录(更安全)

建议:

  • 用户家目录:/home/ftpuser
  • 子目录:/home/ftpuser/files
sudo chown root:root /home/ftpuser
sudo chmod 755 /home/ftpuser
sudo mkdir /home/ftpuser/files
sudo chown ftpuser:ftpuser /home/ftpuser/files

八、使用 FTPS(加密,推荐)

ssl_enable=YES

并配置证书(可用 Let’s Encrypt 或自签)


九、常见安全建议

✅ 禁用匿名登录

anonymous_enable=NO

✅ 限制被动端口范围(防火墙友好)

pasv_min_port=30000
pasv_max_port=31000

如果你用的是 proftpd / pure-ftpd,或想限制:

  • 带宽
  • 并发数
  • 每个用户不同权限

可以告诉我,我给你对应配置。

0 踩