在CentOS 7中搭建VSFTP服务器
·
CentOS 7 搭建VSFTP服务器完整指南
1. 安装VSFTP服务
yum install -y vsftpd
- 服务管理命令
systemctl start vsftpd # 启动服务
systemctl enable vsftpd # 设置开机自启
systemctl status vsftpd # 查看服务状态
- 防火墙配置
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
- 核心配置文件详解
配置文件路径:/etc/vsftpd/vsftpd.conf
基础配置
anonymous_enable=NO # 禁用匿名登录
local_enable=YES # 允许本地用户登录
write_enable=YES # 开启写权限
安全配置
chroot_local_user=YES # 锁定用户在主目录
allow_writeable_chroot=YES # 允许chroot写入
被动模式配置
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=45000
日志配置
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
- 用户管理
创建FTP专用用户
Bash
useradd -d /var/ftp/user1 -s /sbin/nologin user1
passwd user1
chmod 750 /var/ftp/user1
用户黑白名单配置
黑名单:/etc/vsftpd/ftpusers
用户限制列表:/etc/vsftpd/user_list
- SELinux配置
setsebool -P ftpd_full_access on
或针对特定目录
semanage fcontext -a -t public_content_rw_t "/var/ftp(/.*)?"
restorecon -Rv /var/ftp
- 被动模式防火墙
firewall-cmd --permanent --add-port=40000-45000/tcp
firewall-cmd --reload
- SSL加密配置(可选)
# 生成证书
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
配置文件添加
echo "rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES" >> /etc/vsftpd/vsftpd.conf
- 常见问题排查
检查防火墙规则
验证网络连通性
530 Login incorrect
检查/etc/pam.d/vsftpd配置
验证用户是否在禁止登录列表中
500 OOPS: cannot change directory
检查SELinux上下文
确认目录权限设置
被动模式失败
检查端口范围是否开放
确认配置文件中的IP设置
- 客户端连接示例
使用FileZilla连接时:
协议:FTP或SFTP
加密:显式FTP over TLS(如启用SSL)
端口:21(主动模式)或被动模式端口范围
温馨提示:生产环境建议使用SFTP(SSH文件传输)替代FTP以获得更好的安全性。
更多推荐
所有评论(0)