安装vsftpd服务
在CentOS 6.4中,默认的FTP服务软件是vsftpd(Very Secure FTP Daemon),首先需要通过yum包管理器安装该服务,打开终端,执行以下命令:

sudo yum install vsftpd -y
安装完成后,系统会自动创建vsftpd服务配置文件,通常位于/etc/vsftpd/vsftpd.conf,安装后需启动服务并设置为开机自启:
sudo service vsftpd start sudo chkconfig vsftpd on
修改核心配置文件
vsftpd的行为由/etc/vsftpd/vsftpd.conf文件控制,使用文本编辑器(如vi或nano)打开该文件,根据需求调整关键参数:
- 允许匿名用户访问:默认允许匿名登录,若需禁用,设置
anonymous_enable=NO。 - 允许本地用户登录:启用
local_enable=YES以允许系统用户通过FTP登录。 - 限制用户访问目录:添加
chroot_local_user=YES,将用户限制在其主目录内,提升安全性。 - 启用上传功能:设置
write_enable=YES允许用户上传文件。 - 配置被动模式:为解决防火墙问题,启用被动模式并指定端口范围,
pasv_min_port=10000 pasv_max_port=10100
修改后保存文件,并重启vsftpd服务使配置生效:
sudo service vsftpd restart。
配置防火墙与SELinux
CentOS 6.4默认启用防火墙(iptables)和SELinux,需开放FTP相关端口。

- 防火墙设置:
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 10000:10100 -j ACCEPT sudo service iptables save sudo service iptables restart
- SELinux设置:若FTP功能异常,可能是SELinux限制所致,执行以下命令设置SELinux为允许FTP:
sudo setsebool -P ftpd_full_access on
创建FTP专用用户(可选)
出于安全考虑,建议创建独立的FTP用户而非使用系统用户,创建用户ftpuser并设置密码:
sudo useradd -d /home/ftpuser -s /sbin/nologin ftpuser sudo passwd ftpuser
若需限制该用户仅能通过FTP访问,可禁用其SSH登录(如上所示-s /sbin/nologin)。
测试FTP连接
使用FileZilla或命令行工具测试连接,在本地执行:
ftp localhost
输入用户名和密码后,若能成功列出目录,则配置成功,若被动模式连接失败,检查客户端是否启用了被动模式,并确保防火墙允许指定端口范围。

常见问题排查
- 无法登录:检查用户密码是否正确,确认
vsftpd.conf中local_enable和write_enable的值。 - 权限不足:确保用户对FTP目录有读写权限(如
chmod 755 /home/ftpuser)。 - SELinux报错:通过
grep avc /var/log/audit/audit.log查看SELinux拒绝日志,并调整策略。
FAQs
Q1: 如何禁止匿名用户上传文件?
A1: 在vsftpd.conf中设置anon_upload_enable=NO,若需完全禁止匿名访问,确保anonymous_enable=NO,修改后重启服务即可生效。
Q2: 如何限制特定用户访问FTP?
A2: 可通过user_list文件实现,在/etc/vsftpd/user_list中添加需限制的用户名,并在vsftpd.conf中设置userlist_enable=YES和userlist_deny=NO(仅允许列表中的用户)或userlist_deny=YES(禁止列表中的用户)。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复