一、安装vsftpd软件包
在CentOS上搭建FTP服务器前,需先安装vsftpd(Very Secure FTP Daemon)——一款轻量、安全的FTP服务软件。通过以下命令完成安装:
sudo yum update -y && sudo yum install vsftpd -y
安装完成后,系统会生成默认配置文件/etc/vsftpd/vsftpd.conf。
二、配置vsftpd.conf文件
编辑配置文件以定义FTP服务器的行为,关键参数设置如下(需根据实际需求调整):
sudo vi /etc/vsftpd/vsftpd.conf
local_enable=YES(允许本地系统用户登录);anonymous_enable=NO(禁止匿名用户登录,提升安全性);write_enable=YES(允许用户上传、删除文件)。chroot_local_user=YES(将用户锁定在其主目录,防止访问系统其他文件);allow_writeable_chroot=YES(允许chroot目录可写,避免上传文件时因目录不可写报错)。pasv_enable=YES(启用被动模式);pasv_min_port=50000、pasv_max_port=50010(指定被动模式的数据端口范围,需在防火墙中放行)。userlist_enable=YES(启用用户列表);userlist_file=/etc/vsftpd/user_list(指定用户列表文件);userlist_deny=NO(允许列表中的用户登录,拒绝其他用户)。三、创建FTP用户并设置权限
ftpuser),并设置家目录:sudo useradd -m -d /home/ftpuser -s /sbin/nologin ftpuser
-s /sbin/nologin表示该用户无法登录系统shell,仅能通过FTP访问。sudo passwd ftpuser
输入两次密码完成设置。755),避免权限过高导致安全问题:sudo chmod 755 /home/ftpuser
sudo chown ftpuser:ftpuser /home/ftpuser
若需共享其他目录(如/data/ftp),可将用户家目录修改为该目录,并重复上述权限设置:sudo mkdir -p /data/ftp
sudo chown ftpuser:ftpuser /data/ftp
sudo usermod -d /data/ftp ftpuser
四、配置防火墙与SELinux
firewalld,需放行FTP服务端口(21)及被动模式端口范围(50000-50010):sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=50000-50010/tcp
sudo firewall-cmd --reload
sudo setsebool -P ftp_home_dir 1
sudo semanage port -a -t ftp_port_t -p tcp 50000-50010
五、启动并启用vsftpd服务
配置完成后,启动vsftpd服务并设置为开机自启:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
通过sudo systemctl status vsftpd检查服务状态,确保其运行正常(显示“active (running)”)。
六、测试FTP连接
使用FTP客户端(如Windows资源管理器、FileZilla或命令行)连接服务器:
ftp://服务器IP,输入用户名(ftpuser)和密码即可访问。ftp 服务器IP
输入用户名和密码后,使用put(上传)、get(下载)、ls(查看目录)等命令测试功能。七、可选:安全加固措施
vsftpd-ssl包,生成SSL证书,修改vsftpd.conf启用SSL(ssl_enable=YES、force_local_data_ssl=YES等),提升数据传输安全性。sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="21" accept')。