首先更新系统包列表,确保所有组件为最新版本,避免依赖冲突:
sudo yum update -y
安装vsftpd(Very Secure FTP Daemon),这是CentOS默认的FTP服务器软件,以安全性著称:
sudo yum install vsftpd -y
安装完成后,立即启动vsftpd服务,并配置其在系统开机时自动启动,确保服务持续可用:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
vsftpd的核心配置文件为/etc/vsftpd/vsftpd.conf,需通过文本编辑器(如vi或nano)修改以下关键参数,提升安全性与功能性:
sudo vi /etc/vsftpd/vsftpd.conf
常用配置项说明:
anonymous_enable=NO # 禁止匿名用户登录(默认YES,必须修改为NO)
local_enable=YES # 允许本地系统用户登录(默认YES)
write_enable=YES # 允许本地用户上传文件(默认NO,需开启)
chroot_local_user=YES # 将本地用户锁定在其主目录(防止越权访问系统文件)
allow_writeable_chroot=YES # 允许chroot目录可写(若chroot_local_user=YES,需开启,否则用户无法上传文件)
pasv_enable=YES # 启用被动模式(默认YES)
pasv_min_port=1024 # 被动模式最小端口(建议1024-1048)
pasv_max_port=1048 # 被动模式最大端口
listen=YES # 以独立模式运行(默认YES,监听21端口)
listen_ipv6=NO # 禁用IPv6(若无需IPv6支持)
local_umask=022 # 本地用户上传文件权限掩码(默认022,文件权限644)
xferlog_enable=YES # 启用传输日志(记录上传/下载行为,默认YES)
若系统启用了firewalld(CentOS默认防火墙),需开放FTP服务端口(21)及被动模式端口范围(1024-1048):
# 开放FTP服务(默认端口21)
sudo firewall-cmd --permanent --add-service=ftp
# 开放被动模式端口范围
sudo firewall-cmd --permanent --add-port=1024-1048/tcp
# 重新加载防火墙配置,使更改生效
sudo firewall-cmd --reload
创建专用于FTP登录的系统用户(避免使用root用户),并设置其主目录及密码:
# 创建FTP用户(如"ftpuser")
sudo useradd ftpuser
# 设置用户密码(按提示输入两次)
sudo passwd ftpuser
# 创建用户主目录(如/home/ftpuser/pub),并设置权限
sudo mkdir -p /home/ftpuser/pub
sudo chown ftpuser:ftpuser /home/ftpuser/pub # 将主目录所有者设为用户自身
sudo chmod 755 /home/ftpuser/pub # 设置主目录权限(755,用户可读写执行,其他用户仅读执行)
使用FTP客户端(如Windows的FileZilla、Linux的ftp命令)连接服务器,验证配置是否生效:
ftp localhost
输入创建的FTP用户名(如ftpuser)和密码,若能成功登录并执行ls、put/get等操作,则说明配置成功。若系统启用了SELinux(默认Enforcing模式),需调整SELinux策略,允许vsftpd访问用户主目录:
# 允许FTP访问用户主目录
sudo setsebool -P ftp_home_dir on
# 允许FTP用户写入其主目录(若chroot_local_user=YES)
sudo setsebool -P allow_ftpd_full_access on
# 更改用户主目录的SELinux上下文(可选,确保目录类型正确)
sudo chcon -Rv --type=ftp_home_t /home/ftpuser
为防止数据传输被窃听,建议启用SSL/TLS加密。需先安装vsftpd-ssl包,生成证书,再修改配置文件:
# 安装vsftpd-ssl(部分系统需单独安装)
sudo yum install vsftpd-ssl -y
# 生成自签名SSL证书(有效期365天)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/vsftpd.pem -out /etc/pki/tls/certs/vsftpd.pem
# 修改vsftpd.conf,启用SSL
sudo vi /etc/vsftpd/vsftpd.conf
添加以下配置:
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem
rsa_private_key_file=/etc/pki/tls/private/vsftpd.pem
重启vsftpd服务,使SSL配置生效:
sudo systemctl restart vsftpd
以上步骤涵盖了CentOS系统下vsftpd FTP服务器的基本配置流程,可根据实际需求调整参数(如修改端口、添加用户列表、限制带宽等)。配置完成后,建议定期检查日志文件(/var/log/vsftpd.log),监控FTP服务器的运行状态。