在Debian 12系统中部署FTP并配置多个用户,且每个用户只能访问各自的家目录,可以通过以下步骤完成:
- 安装vsftpd
首先,确保系统软件包列表是最新的,然后安装vsftpd。
sudo apt update
sudo apt install vsftpd -y
- 配置防火墙
允许FTP通过防火墙进行通信。
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 21100:21110/tcp
sudo ufw enable
- 修改SELinux设置(如果适用)
如果系统启用了SELinux,需要临时禁用它或者配置策略,以允许FTP正常工作。
sudo setenforce 0
或者永久关闭SELinux(不推荐):
sudo vi /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled
- 添加FTP用户并创建主目录
假设要添加两个用户user1和user2,他们的主目录分别为/home/user1/ftp和/home/user2/ftp。
sudo useradd -m -d /home/user1/ftp user1
sudo passwd user1
sudo useradd -m -d /home/user2/ftp user2
sudo passwd user2
- 修改vsftpd配置文件
编辑vsftpd的配置文件,以限制用户只能访问其家目录。
sudo vi /etc/vsftpd.conf
在文件中添加或修改以下内容:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
pam_service_name=vsftpd
listen_ipv6=NO
- 创建用户配置文件
为每个用户创建一个单独的配置文件,指定他们的根目录。例如,为user1和user2创建配置文件。
sudo vi /etc/vsftpd/user_config_dir/user1
在该文件中添加:
local_root=/home/user1/ftp
同样,为user2创建配置文件:
sudo vi /etc/vsftpd/user_config_dir/user2
在该文件中添加:
local_root=/home/user2/ftp
- 重启vsftpd服务
使配置生效。
sudo systemctl restart vsftpd
- 测试FTP连接
使用FTP客户端(如FileZilla)连接到服务器,使用user1和user2的凭据登录,验证他们只能访问各自的家目录。
注意事项
确保每个用户的主目录权限正确设置,以防止其他用户访问。例如:
sudo chmod 755 /home/user1 /home/user2
sudo chown -R user1:user1 /home/user1/ftp
sudo chown -R user2:user2 /home/user2/ftp
如果需要更复杂的权限管理,可以考虑使用FTP虚拟用户或结合其他安全措施。
通过以上步骤,您可以在Debian 12系统上成功部署FTP服务器,并配置多个用户,每个用户只能访问自己的家目录。