CentOS FTP安全设置指南(基于vsftpd)
首先更新系统并安装vsftpd(vsftpd是CentOS下常用的安全FTP服务器软件):
sudo yum update -y sudo yum install vsftpd -y  编辑核心配置文件/etc/vsftpd/vsftpd.conf,调整以下关键参数以提升安全性:
anonymous_enable=NO  local_enable=YES  write_enable=YES  chroot将用户限制在自己的主目录,防止访问系统其他文件。chroot_local_user=YES allow_writeable_chroot=YES # 若用户主目录需写入,设置为YES(需注意安全风险)  pasv_enable=YES pasv_min_port=1024 pasv_max_port=1048  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.crt rsa_private_key_file=/etc/pki/tls/private/vsftpd.key  使用firewalld开放FTP相关端口(命令端口21、被动模式端口范围),允许合法流量通过:
# 开放FTP服务(自动包含21端口) sudo firewall-cmd --permanent --add-service=ftp # 开放被动模式端口范围 sudo firewall-cmd --permanent --add-port=1024-1048/tcp # 重新加载防火墙规则 sudo firewall-cmd --reload  sudo useradd -m ftpuser # 创建用户并生成家目录 sudo passwd ftpuser # 设置强密码(包含大小写字母、数字、特殊字符)  user_list文件控制允许访问FTP的用户(需配合userlist_enable=YES和userlist_deny=YES,默认配置)。# 编辑/etc/vsftpd/user_list,添加允许访问的用户名(每行一个) echo "ftpuser" | sudo tee -a /etc/vsftpd/user_list  开启详细日志记录,便于监控FTP活动(如登录、文件传输等),及时发现异常行为:
xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES  定期更新vsftpd及系统组件,修复已知安全漏洞:
sudo yum update vsftpd -y sudo yum update -y  若对安全性要求极高,建议使用SFTP(SSH File Transfer Protocol),它基于SSH协议,无需额外配置FTP服务,安全性更高:
# 安装OpenSSH服务器(若未安装) sudo yum install openssh-server -y # 启动SSH服务 sudo systemctl start sshd sudo systemctl enable sshd # 创建SFTP专用用户(限制其只能使用SFTP) sudo useradd -m sftpuser sudo passwd sftpuser # 配置SSH限制用户访问(编辑/etc/ssh/sshd_config) echo "Match User sftpuser" | sudo tee -a /etc/ssh/sshd_config echo " ChrootDirectory /home/sftpuser" | sudo tee -a /etc/ssh/sshd_config echo " ForceCommand internal-sftp" | sudo tee -a /etc/ssh/sshd_config echo " AllowTcpForwarding no" | sudo tee -a /etc/ssh/sshd_config echo " X11Forwarding no" | sudo tee -a /etc/ssh/sshd_config # 重启SSH服务 sudo systemctl restart sshd  通过以上步骤,可显著提升CentOS FTP服务器的安全性,防范未授权访问、数据泄露等风险。需根据实际需求调整配置,并定期进行安全审计。