CentOS FTP Server 安全加固实操指南
一 基础安全配置
sudo yum install -y vsftpd && sudo systemctl start vsftpd && sudo systemctl enable vsftpdanonymous_enable=NOlocal_enable=YES,并按需开启 write_enable=YESchroot_local_user=YES 并配合用户列表;如需写入,建议通过专用可写子目录而非将主目录设为可写,避免 allow_writeable_chroot=YES 带来的风险userlist_enable=YES、userlist_file=/etc/vsftpd.userlist、userlist_deny=NOusermod -s /sbin/nologin ftpuserxferlog_enable=YES、xferlog_std_format=YES,并持续关注 /var/log/secure 与 /var/log/vsftpd.log 的异常行为二 加密传输与端口规划
ssl_enable=YESallow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YESssl_tlsv1=YES,并禁用不安全协议 ssl_sslv2=NO、ssl_sslv3=NOrsa_cert_file=/etc/letsencrypt/live/yourdomain.com/fullchain.pemrsa_private_key_file=/etc/letsencrypt/live/yourdomain.com/privkey.pempasv_min_port=30000、pasv_max_port=31000sudo firewall-cmd --permanent --add-port=21/tcpsudo firewall-cmd --permanent --add-port=990/tcp(FTPS 显式端口)sudo firewall-cmd --permanent --add-port=30000-31000/tcpsudo firewall-cmd --reloadopenssl s_client -connect yourdomain.com:21 -starttls ftp三 身份鉴别与权限控制
password requisite pam_pwquality.so retry=5 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1sudo useradd -m ftpuser && sudo passwd ftpuserusermod -s /sbin/nologin ftpuserchown ftpuser:ftpuser /data/ftp/pub && chmod 755 /data/ftp && chmod 775 /data/ftp/pubsudo setsebool -P ftp_home_dir onsemanage fcontext 与 restorecon 进行持久化标记四 防火墙与系统加固
sudo firewall-cmd --permanent --add-port=21/tcp、sudo firewall-cmd --permanent --add-port=990/tcp、sudo firewall-cmd --permanent --add-port=30000-31000/tcp、sudo firewall-cmd --reloadsudo yum update 与安全补丁更新,降低漏洞利用风险五 快速核查清单
| 检查项 | 期望配置/状态 |
|---|---|
| 匿名访问 | anonymous_enable=NO |
| 本地用户 | local_enable=YES,write_enable 按需 |
| 用户隔离 | chroot_local_user=YES,配合 /etc/vsftpd.userlist 白名单 |
| 加密传输 | ssl_enable=YES、force_local_data_ssl=YES、force_local_logins_SSL=YES,禁用 SSLv2/3 |
| 被动端口 | pasv_min_port=30000、pasv_max_port=31000 且已放行 |
| 防火墙 | 已放行 21/tcp、990/tcp、30000–31000/tcp |
| 日志 | xferlog_enable=YES,审计 /var/log/secure 与 /var/log/vsftpd.log |
| 账户安全 | FTP 专用账户 nologin Shell,目录权限最小化 |
| 系统维护 | 定期 yum update,配置与数据定期备份 |