在安装FTP服务前,建议先更新系统包以确保兼容性:
sudo yum update -y
vsftpd是CentOS默认的FTP服务器软件,使用yum包管理器安装:
sudo yum install vsftpd -y
安装完成后,立即启动服务并配置为开机自动启动:
sudo systemctl start vsftpd # 启动服务
sudo systemctl enable vsftpd # 设置开机自启
编辑vsftpd的主配置文件/etc/vsftpd/vsftpd.conf,修改以下关键参数以提升安全性和功能性:
sudo vi /etc/vsftpd/vsftpd.conf
关键配置项说明:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=50000 # 被动模式最小端口(建议设为高位端口)
pasv_max_port=50010 # 被动模式最大端口
pasv_address=公网IP # 若服务器在NAT后,需填写公网IP
修改完成后,保存并退出编辑器(vi中按:wq)。
CentOS默认使用firewalld作为防火墙,需放行FTP控制端口(21)和被动模式端口范围(如50000-50010):
sudo firewall-cmd --permanent --add-service=ftp # 放行FTP服务(自动包含21端口)
sudo firewall-cmd --permanent --add-port=50000-50010/tcp # 放行被动模式端口范围
sudo firewall-cmd --reload # 重新加载防火墙规则
若SELinux处于Enforcing模式,需调整策略以允许FTP访问用户家目录:
sudo setsebool -P ftp_home_dir 1 # 允许FTP访问用户家目录
sudo semanage port -a -t ftp_port_t -p tcp 50000-50010 # 放行被动模式端口范围
创建专用于FTP访问的系统用户,并配置其主目录权限:
sudo useradd -m ftpuser # 创建用户(-m自动生成家目录)
sudo passwd ftpuser # 设置用户密码
sudo chmod 750 /home/ftpuser # 设置家目录权限(所有者可读写执行,组和其他用户只读)
sudo chown ftpuser:ftpuser /home/ftpuser # 确保目录归属正确
sudo systemctl restart vsftpd
使用FTP客户端(如FileZilla或命令行)连接服务器,验证配置是否成功:
ftp localhost
输入用户名ftpuser和密码,执行put test.txt(上传文件)和ls(查看目录)命令,确认文件上传成功。vsftpd-ssl包配置加密连接,避免数据明文传输。sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="21" accept')。vsftpd版本最新,修复安全漏洞。以上步骤涵盖了CentOS下FTP服务的基本配置,可根据实际需求调整参数(如修改默认端口、添加更多用户等)。