centos

CentOS SFTP如何配置才能更安全

小樊
42
2025-03-17 15:38:34
栏目: 智能运维

要使CentOS上的SFTP配置更安全,可以遵循以下步骤:

  1. 禁用root用户的SFTP访问

    • 编辑 /etc/ssh/sshd_config 文件,找到或添加以下配置:
      AllowUsers user1 user2
      
      将其更改为允许访问SFTP的用户列表,不要包括root用户。
  2. 使用chroot jail

    • 为每个用户创建一个仅包含其个人文件的目录,并通过chroot将其限制在该目录中。编辑 /etc/ssh/sshd_config 文件,添加或修改以下配置:
      ChrootDirectory /home/%u
      ForceCommand internal-sftp
      AllowTcpForwarding no
      X11Forwarding no
      
      这将限制用户只能访问其主目录,并且无法执行除内部sftp命令以外的任何命令。
  3. 配置SSH密钥认证

    • 禁用密码认证,使用SSH密钥对进行身份验证。在客户端生成SSH密钥对,并将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中。在 /etc/ssh/sshd_config 文件中,确保以下配置是启用的:
      PasswordAuthentication no
      PubkeyAuthentication yes
      
      然后重启SSH服务:
      systemctl restart sshd
      
  4. 限制用户权限

    • 创建一个专门的用户组,例如 sftpusers,并将需要访问SFTP的用户添加到该组中。编辑 /etc/ssh/sshd_config 文件,添加或修改以下配置以限制用户组的访问:
      Match Group sftpusers
          ChrootDirectory /data/sftp/%u
          ForceCommand internal-sftp
      
  5. 启用详细的日志记录

    • 编辑 /etc/ssh/sshd_config 文件,添加以下配置以启用详细的SFTP日志记录:
      Subsystem sftp internal-sftp -l verbose
      
      这将记录所有SFTP活动,便于审计和监控。
  6. 定期更新和检查系统

    • 定期更新OpenSSH服务器和所有相关软件包,以确保没有安全漏洞。使用以下命令更新系统:
      sudo yum update
      
  7. 使用防火墙限制访问

    • 配置防火墙以仅允许必要的端口(如SSH的22端口)通过。使用以下命令开放SSH端口:
      sudo firewall-cmd --permanent --add-port=22/tcp
      sudo firewall-cmd --reload
      
  8. 禁用不必要的用户和服务

    • 删除不必要的用户账户和组,以减少潜在的攻击面。可以使用以下命令删除用户和组:
      userdel username
      groupdel groupname
      
  9. 启用SELinux

    • 如果SELinux处于 enforcing 模式,可以将其设置为 permissive 模式以提供更细粒度的访问控制:
      sudo setenforce 0
      
  10. 定期审计和监控

    • 定期检查系统日志和SFTP日志,以检测任何异常活动。使用以下命令检查日志:
      sudo less /var/log/secure
      

通过上述步骤,可以显著提高CentOS上SFTP配置的安全性。务必定期审查和更新安全设置,以应对新的安全威胁。

0
看了该问题的人还看了