如何防止CentOS FTP Server被攻击
导读:CentOS FTP Server 安全防护清单 一 基础加固 禁用匿名访问,仅允许本地系统用户:设置 vsftpd.conf 为 anonymous_enable=NO、local_enable=YES。 限制登录名单:启用 userl...
CentOS FTP Server 安全防护清单
一 基础加固
- 禁用匿名访问,仅允许本地系统用户:设置 vsftpd.conf 为 anonymous_enable=NO、local_enable=YES。
- 限制登录名单:启用 userlist_enable=YES,配合 userlist_file=/etc/vsftpd/user_list 与 userlist_deny=NO 实现白名单;同时将高危账户写入 /etc/vsftpd/ftpusers(该文件为禁止登录名单)。
- 锁定用户根目录:设置 chroot_local_user=YES;为降低风险,优先采用“可写子目录”方案,而非直接允许可写的根目录(见下文“chroot 可写的正确做法”)。
- 创建专用 FTP 用户并禁止 SSH 登录:例如
useradd -m ftpuser -s /sbin/nologin,仅用于 FTP。 - 目录与权限:家目录建议 0755,上传目录 0775,属主均为该 FTP 用户,避免越权访问。
- 服务最小化:仅开启必要功能,保持默认最小配置,逐项放开。
二 加密传输与端口管理
- 启用 TLS/SSL:在 vsftpd.conf 中设置 ssl_enable=YES、allow_anon_ssl=NO、force_local_data_ssl=YES、force_local_logins_ssl=YES;禁用不安全协议(如 ssl_sslv2=NO、ssl_sslv3=NO),优先 TLSv1.2/1.3(可用 ssl_tlsv1_2=YES)。
- 证书与密钥:使用受信任 CA 或生成自签名证书,放置于安全路径(如 /etc/pki/tls/certs/ 与 /etc/pki/tls/private/),并在配置中正确指向 rsa_cert_file 与 rsa_private_key_file。
- 被动模式端口范围:设置 pasv_min_port 与 pasv_max_port(如 40000–50000 或 30000–31000),便于防火墙精确放行。
- 防火墙放行:放行控制端口 21/TCP,必要时放行数据端口 20/TCP;对被动端口范围一次性放行(示例:
firewall-cmd --permanent --add-port=40000-50000/tcp --permanent后firewall-cmd --reload)。如使用 firewalld 的 ftp 服务模块,可结合模块加载与端口策略共同使用。 - 连接验证:使用支持 TLS 的客户端(如 FileZilla)测试,确保登录与数据传输均为加密通道。
三 访问控制与权限最小化
- 白名单登录:通过 userlist_deny=NO 仅允许 /etc/vsftpd/user_list 中的用户登录,其余拒绝。
- 禁止 root 与其他系统关键账户登录 FTP:将 root 等加入 /etc/vsftpd/ftpusers。
- chroot 可写的正确做法:
- 推荐:保持用户根目录不可写,在根目录下创建可写子目录(如 upload)供上传;必要时使用 user_sub_token=$USER 与 local_root=/home/$USER/ftp 规范化路径。
- 如业务必须允许根目录可写,可在充分评估风险后设置 allow_writeable_chroot=YES,并严格限制可写范围与权限。
- 文件系统与 SELinux:为 FTP 目录设置合适上下文与布尔值,例如
setsebool -P ftp_home_dir on;如遇到写入失败或权限问题,再按需调整allow_ftpd_full_access等布尔值(遵循最小权限原则)。
四 监控 日志与维护
- 启用日志:确保 xferlog_enable=YES、xferlog_std_format=YES,并配置日志轮转(如 logrotate),便于审计与追踪异常行为。
- 实时监控:关注 /var/log/vsftpd.log 与 /var/log/messages,对频繁失败登录、异常 IP、异常时段的大流量传输设置告警。
- 及时更新与补丁:定期执行
yum update vsftpd(或 dnf),修复已知漏洞;变更配置后使用systemctl restart vsftpd滚动生效并回归测试。 - 连接测试与演练:变更前后均使用客户端进行上传/下载/断点续传等场景验证,确保加密、被动端口、白名单与权限均符合预期。
五 最小化暴露面与替代方案
- 限制来源 IP:在边界防火墙或主机防火墙层面对 FTP 端口仅开放给受控网段或跳板机,减少攻击面。
- 端口与协议策略:避免将 FTP 暴露在公网;若非必须,考虑仅在内网使用,或采用更安全的替代协议(如 SFTP/SCP 基于 SSH,默认加密且端口单一,运维与审计更简单)。
- 安全基线:将以上配置纳入基线并定期核查(账户、名单、端口、证书有效期、日志与告警策略)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何防止CentOS FTP Server被攻击
本文地址: https://pptw.com/jishu/776809.html
