温馨提示×

CentOS环境下VSFTP的安全加固

小樊
34
2025-12-25 06:11:18
栏目: 智能运维

CentOS环境下VSFTP安全加固清单

一 基础安全配置

  • 禁用匿名访问、仅启用本地用户,按需开启写入:
    • anonymous_enable=NO
    • local_enable=YES
    • write_enable=YES(仅在确实需要上传时开启)
  • 限制用户在其家目录,避免可写根目录风险:
    • chroot_local_user=YES
    • allow_writeable_chroot=NO(更安全的默认做法;若业务必须可写,再评估风险并加固目录与权限)
  • 启用日志与传输日志,便于审计与排错:
    • xferlog_enable=YES
    • xferlog_std_format=YES
  • 使用 PAM 认证并明确服务名:
    • pam_service_name=vsftpd
  • 建议明确监听地址族(避免不必要的监听):
    • listen=YES
    • listen_ipv6=NO(如不使用 IPv6)

二 用户与访问控制

  • 使用专用系统账户且仅允许 FTP 登录:
    • 创建用户:useradd -m ftpuser -s /sbin/nologin
    • 设置强口令并定期更换
  • 用户白名单/黑名单控制:
    • /etc/vsftpd/ftpusers 为永久黑名单(如 root 等高权限账户应加入)
    • 启用 user_list 白名单模式:
      • userlist_enable=YES
      • userlist_deny=NO
      • 将允许登录的账户写入 /etc/vsftpd/user_list
  • 主机访问控制(CentOS 8 起建议用 firewalld 富规则替代 tcp_wrappers):
    • 仅允许可信网段:firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“10.0.0.0/24” accept’ --permanent
    • 拒绝恶意网段:firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“203.0.113.0/24” reject’ --permanent
    • firewall-cmd --reload

三 传输加密与端口管理

  • 启用 TLS/SSL 强制加密,禁用明文会话:
    • ssl_enable=YES
    • force_local_logins_ssl=YES
    • force_local_data_ssl=YES
    • rsa_cert_file=/etc/pki/tls/certs/your_cert.crt
    • rsa_private_key_file=/etc/pki/tls/private/your_key.key
    • 建议禁用不安全协议:ssl_sslv2=NO,ssl_sslv3=NO;仅启用 TLSv1.2/1.3(依 OpenSSL 支持)
  • 被动模式端口范围与防火墙放行(示例开放 50000–50100):
    • pasv_enable=YES
    • pasv_min_port=50000
    • pasv_max_port=50100
    • 防火墙:firewall-cmd --permanent --add-port=21/tcp;firewall-cmd --permanent --add-port=50000-50100/tcp;firewall-cmd --reload
  • 客户端连接测试(如使用 FileZilla)应仅出现 TLS 安全会话

四 连接与资源限制

  • 限制并发与速率,抑制滥用与 DoS:
    • max_clients=100(按业务评估)
    • max_per_ip=5(按业务评估)
    • local_max_rate=307200(约 300 KB/s,按需调整)
    • anon_max_rate=307200(如启用匿名,建议同样限速)
  • 连接空闲与超时控制(示例值,可按业务微调):
    • idle_session_timeout=600
    • data_connection_timeout=120
  • 日志集中与监控:
    • 持续关注认证与传输日志(如 /var/log/secure、/var/log/vsftpd.log),设置告警规则识别频繁失败登录与异常流量

五 加固实施与验证步骤

  • 备份与最小变更:
    • cp /etc/vsftpd/vsftpd.conf{,.bak_$(date +%F)}
    • 逐项修改并保留变更记录
  • 配置语法检查与服务重启:
    • vsftpd -t(语法检查)
    • systemctl restart vsftpd && systemctl enable vsftpd
  • 连通性与安全验证:
    • 使用 FileZilla/命令行尝试登录,确认仅支持 TLS、仅白名单用户可登录、被动端口连通
    • 验证 chroot 生效(无法访问上级目录)、上传/下载权限符合预期
  • SELinux 与权限:
    • 如启用 SELinux 且遇到写入失败,按需设置:setsebool -P ftp_home_dir on
    • 目录权限建议:家目录 755,上传目录 775,属主属组均为对应 FTP 用户

0