CentOS FTP Server虚拟用户配置教程
导读:CentOS FTP Server虚拟用户配置教程(基于vsftpd) 本教程将指导你在CentOS系统上使用vsftpd(Very Secure FTP Daemon)配置FTP虚拟用户,实现多用户隔离访问。 一、前置准备 确保系统已联...
CentOS FTP Server虚拟用户配置教程(基于vsftpd)
本教程将指导你在CentOS系统上使用vsftpd(Very Secure FTP Daemon)配置FTP虚拟用户,实现多用户隔离访问。
一、前置准备
- 确保系统已联网,具备root或sudo权限;
- 准备至少2个虚拟用户名及密码(如
user1
/pass1
、user2
/pass2
)。
二、安装vsftpd
使用yum包管理器安装vsftpd:
sudo yum install -y vsftpd
安装完成后,启动vsftpd服务并设置开机自启:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
三、创建虚拟用户凭证文件
- 新建虚拟用户文本文件(存储用户名与密码):
sudo vim /etc/vsftpd/virtual_users.txt
- 按奇数行用户名、偶数行密码的格式添加虚拟用户(每行一个用户):
user1 pass1 user2 pass2
- 设置文件权限(防止未授权访问):
sudo chmod 600 /etc/vsftpd/virtual_users.txt
四、生成虚拟用户数据库
使用db_load
工具将文本文件转换为vsftpd可识别的数据库文件:
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
设置数据库文件权限:
sudo chmod 600 /etc/vsftpd/virtual_users.db
五、配置PAM认证
- 新建PAM服务文件(用于虚拟用户认证):
sudo vim /etc/pam.d/vsftpd.virtual
- 添加以下内容(替换为实际数据库路径):
auth required pam_userdb.so db=/etc/vsftpd/virtual_users account required pam_userdb.so db=/etc/vsftpd/virtual_users
- 备份原PAM配置文件(可选):
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
六、创建系统映射用户
虚拟用户需映射到系统用户(用于限制访问目录),创建专用系统用户:
sudo useradd -d /home/ftpuser -s /sbin/nologin ftpuser
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
七、配置vsftpd主文件
编辑vsftpd主配置文件:
sudo vim /etc/vsftpd/vsftpd.conf
确保以下关键配置项存在(删除或注释原有冲突配置):
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pam_service_name=vsftpd.virtual
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/$USER
八、创建虚拟用户目录
为每个虚拟用户创建专属目录(挂载到其local_root
):
sudo mkdir -p /home/user1 /home/user2
sudo chown ftpuser:ftpuser /home/user1 /home/user2
sudo chmod 755 /home/user1 /home/user2
九、重启服务并测试
- 重启vsftpd服务使配置生效:
sudo systemctl restart vsftpd
- 使用FTP客户端(如FileZilla)连接服务器:
- 主机:服务器IP地址
- 用户名:虚拟用户(如
user1
) - 密码:对应的虚拟密码(如
pass1
)
- 验证功能:
- 尝试上传/下载文件(确认
write_enable=YES
生效); - 检查是否限制在用户目录内(确认
chroot_local_user=YES
生效)。
- 尝试上传/下载文件(确认
十、常见问题排查
- 无法连接:
- 检查防火墙是否放行FTP端口(默认21):
sudo firewall-cmd --permanent --add-service=ftp sudo firewall-cmd --reload
- 若使用SELinux,开启FTP目录访问权限:
sudo setsebool -P ftp_home_dir on
- 检查防火墙是否放行FTP端口(默认21):
- 登录失败:
- 确认虚拟用户数据库路径正确(
/etc/vsftpd/virtual_users.db
); - 检查PAM配置文件语法(无多余空格或注释错误)。
- 确认虚拟用户数据库路径正确(
通过以上步骤,你已完成CentOS FTP Server虚拟用户的配置,可实现多用户安全隔离访问。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS FTP Server虚拟用户配置教程
本文地址: https://pptw.com/jishu/723376.html