温馨提示×

怎样提高centos sftp服务器安全性

小樊
34
2025-12-07 15:42:12
栏目: 云计算

CentOS SFTP 服务器安全加固清单

一 基础与网络层加固

  • 保持系统与 OpenSSH 为最新:执行 yum update -y,及时修补漏洞。
  • 仅开放必要端口与来源:启用 firewalld,放行 SSH(22/TCP);如条件允许,仅允许受控 IP 访问:
    • 放行 SSH 服务:firewall-cmd --permanent --add-service=ssh && firewall-cmd --reload
    • 限制来源 IP:firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“1.2.3.4” port port=“22” protocol=“tcp” accept’ && firewall-cmd --reload
  • 禁用不必要服务与端口,减少攻击面。

二 SSH 与 SFTP 配置加固

  • 禁用 root 登录:在 /etc/ssh/sshd_config 设置 PermitRootLogin no
  • 使用 internal-sftp 并限制功能:
    • 全局:Subsystem sftp internal-sftp
    • 对特定组或用户:
      • Match Group sftpusers
        • ChrootDirectory %h(将用户根目录限制在其主目录)
        • ForceCommand internal-sftp(仅允许 SFTP)
        • AllowTcpForwarding noX11Forwarding no
  • 目录权限关键点:Chroot 根目录(如 /home/sftpuser)必须由 root:root 拥有且权限 755;可写目录(如 uploads)由业务用户所有,例如:
    • chown root:root /home/sftpuser && chmod 755 /home/sftpuser
    • mkdir /home/sftpuser/uploads && chown sftpuser:sftpusers /home/sftpuser/uploads
  • 重启生效:systemctl restart sshd

三 认证与访问控制

  • 优先使用 SSH 密钥认证,禁用密码登录:
    • 启用密钥:PubkeyAuthentication yes
    • 禁用密码:PasswordAuthentication no(在确认密钥可用后再关闭,避免锁死)
    • 客户端生成密钥:ssh-keygen -t rsa -b 4096,将公钥写入 ~/.ssh/authorized_keys 并设置 600 权限
  • 精细化访问控制:
    • 仅允许指定用户/组:AllowUsers sftpuserAllowGroups sftpusers
    • 结合防火墙对 22/TCP 做来源 IP 白名单

四 入侵防护与审计监控

  • 部署 Fail2ban 防暴力破解:
    • 安装:yum install epel-release -y && yum install fail2ban -y
    • 启用并配置对 sshd 的监控与封禁策略
  • 集中审计与告警:
    • 监控 /var/log/secure 的 SFTP 登录与失败尝试
    • 定期查看 journalctl -u sshd 与关键安全事件

五 权限模型与 SELinux 注意事项

  • 推荐的目录与权限模型:
    • 根目录(Chroot)由 root 拥有,确保隔离;业务可写目录由业务用户拥有,避免用户越权访问系统目录。
  • 若启用 SELinux
    • 保持 enforcing 模式,必要时仅调整与 SFTP/SSH 相关的布尔值或端口上下文,避免直接关闭 SELinux。
  • 变更前备份配置,修改 /etc/ssh/sshd_config 后先本地验证再重启 sshd,防止误配导致断连。

0