凌峰创科服务平台

CentOS如何快速安装配置FTP服务器?

在CentOS系统中搭建FTP服务器通常使用vsftpd(Very Secure FTP Daemon)软件,该软件以安全性高、性能稳定著称,以下是详细的安装与配置步骤,涵盖环境准备、安装部署、用户管理及防火墙设置等关键环节。

CentOS如何快速安装配置FTP服务器?-图1
(图片来源网络,侵删)

环境准备

在开始安装前,建议更新系统软件包以确保兼容性和安全性,执行以下命令更新系统:

sudo yum update -y

检查系统是否已安装其他FTP服务(如vsftpd、proftpd等),避免冲突:

rpm -qa | grep vsftpd

若输出结果中包含vsftpd,需先卸载旧版本:

sudo yum remove vsftpd -y

安装vsftpd

通过yum包管理器安装vsftpd,命令如下:

CentOS如何快速安装配置FTP服务器?-图2
(图片来源网络,侵删)
sudo yum install vsftpd -y

安装完成后,启动vsftpd服务并设置为开机自启:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

检查服务状态,确保运行正常:

sudo systemctl status vsftpd

配置vsftpd

vsftpd的主配置文件位于/etc/vsftpd/vsftpd.conf,建议先备份原配置文件:

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

使用vim编辑器打开配置文件:

CentOS如何快速安装配置FTP服务器?-图3
(图片来源网络,侵删)
sudo vim /etc/vsftpd/vsftpd.conf

根据需求修改以下关键参数(以下为常用配置示例):

参数 说明 推荐值
anonymous_enable 是否允许匿名用户登录 NO(禁止匿名访问)
local_enable 是否允许本地用户登录 YES(启用本地用户)
write_enable 是否允许文件写入 YES(启用写权限)
chroot_local_user 是否限制本地用户仅可访问家目录 YES(增强安全性)
allow_writeable_chroot 是否允许chroot目录可写 YES(需配合chroot_local_user使用)
pasv_enable 是否启用被动模式 YES(推荐用于穿透防火墙)
pasv_min_port 被动模式最小端口 10000(自定义范围)
pasv_max_port 被动模式最大端口 10100(自定义范围)
userlist_enable 是否启用用户列表文件 YES
userlist_file 用户列表文件路径 /etc/vsftpd/user_list
tcp_wrappers 是否启用TCP Wrappers访问控制 YES

保存配置文件后,创建用户列表文件并添加允许访问的用户(例如添加用户ftpuser):

echo "ftpuser" | sudo tee -a /etc/vsftpd/user_list

创建FTP用户并设置权限

创建专用的FTP用户(如ftpuser),并设置家目录和登录shell:

sudo useradd -m -d /home/ftpuser -s /sbin/nologin ftpuser

为用户设置密码:

sudo passwd ftpuser

若需限制用户仅能通过FTP访问(禁止SSH登录),确保用户shell为/sbin/nologin

防火墙与SELinux配置

防火墙设置

CentOS默认使用firewalld,需开放FTP相关端口(主动模式21端口,被动模式10000-10100端口):

sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=10000-10100/tcp
sudo firewall-cmd --reload

SELinux配置

若启用SELinux,需设置FTP的布尔值允许匿名上传和本地用户写入:

sudo setsebool -P ftpd_full_access on

或使用以下命令为用户目录设置SELinux上下文:

sudo semanage fcontext -a -t public_content_rw_t "/home/ftpuser(/.*)?"
sudo restorecon -Rv /home/ftpuser

重启服务并测试

完成所有配置后,重启vsftpd服务使配置生效:

sudo systemctl restart vsftpd

使用FTP客户端(如FileZilla)测试连接,输入用户名、密码及服务器IP,确认可正常访问文件目录。


相关问答FAQs

问题1:如何禁止FTP用户删除和重命名文件?
解答:在vsftpd.conf配置文件中添加以下参数:

deny_file_writes=YES  

或通过文件系统权限控制,例如设置家目录权限为755,用户文件权限为644

chmod 755 /home/ftpuser  
chmod 644 /home/ftpuser/*  

问题2:FTP连接时提示“530 Login incorrect”如何解决?
解答:可能原因及解决方案如下:

  1. 用户名或密码错误:确认用户名拼写及密码是否正确,可通过sudo passwd ftpuser重置密码。
  2. 用户被拒绝登录:检查/etc/vsftpd/user_list/etc/vsftpd/ftpusers文件,确保用户未被列入黑名单。
  3. SELinux或防火墙拦截:执行sudo setsebool -P ftpd_full_access on开启SELinux权限,或检查防火墙规则是否放行FTP端口。
  4. 配置文件错误:确认vsftpd.conflocal_enable=YES已启用,并重启服务。
分享:
扫描分享到社交APP
上一篇
下一篇