温馨提示×

如何防止CentOS SFTP被攻击

小樊
65
2025-06-10 08:35:23
栏目: 网络安全

防止CentOS SFTP被攻击需要从多个方面进行配置和加固,以下是一些关键步骤和最佳实践:

1. 安装和配置OpenSSH服务器

  • 确保你的CentOS系统上安装了OpenSSH服务器。
  • 编辑SSH配置文件 /etc/ssh/sshd_config,确保以下配置项被正确设置:
    • 禁用root登录:PermitRootLogin no
    • 禁止密码认证:PasswordAuthentication no
    • 禁止空密码登录:PermitEmptyPassword no
    • 禁止用户环境:PermitUserEnvironment no
    • 禁止X11转发:X11Forwarding no
  • 重启SSH服务以应用更改:
    sudo systemctl restart sshd
    

2. 创建专用的SFTP用户

  • 为SFTP服务创建专门的用户,而不是使用root用户。
  • 创建用户并设置密码:
    sudo useradd -m sftpuser
    sudo passwd sftpuser
    
  • 将用户添加到 sftp 用户组:
    sudo usermod -a -G sftpusers sftpuser
    

3. 配置ChrootDirectory

  • 使用 chrootDirectory 选项将用户限制在其家目录中,防止他们访问系统其他部分。
  • 配置示例:
    Match group sftpusers
    ChrootDirectory %h
    ForceCommand internal-sftp
    
  • 确保用户家目录的所有者为root:
    sudo chown root:root /home/sftpuser
    sudo chmod 755 /home/sftpuser
    

4. 配置用户权限和目录权限

  • 在用户的主目录下创建 .ssh 目录,并在其中创建 authorized_keys 文件,用于存储用户的公钥。
  • 配置示例:
    mkdir /home/sftpuser/.ssh
    chmod 700 /home/sftpuser/.ssh
    touch /home/sftpuser/.ssh/authorized_keys
    chmod 600 /home/sftpuser/.ssh/authorized_keys
    

5. 配置防火墙

  • 确保防火墙允许SSH连接,并限制访问SSH的端口(默认是22)。
  • 使用 firewalld 配置示例:
    sudo firewall-cmd --permanent --zone=public --add-port=22/tcp
    sudo firewall-cmd --reload
    

6. 使用强密码策略

  • 确保所有用户都使用强密码,可以通过修改 /etc/login.defs 文件来强制执行这些要求。

7. 定期更新和监控

  • 定期更新系统和软件包,以修复已知的安全漏洞。
  • 监控FTP/SFTP日志以检测可疑活动。

8. 使用密钥认证(可选但推荐)

  • 为了提高安全性,建议使用SSH密钥认证而不是密码认证。
  • 生成SSH密钥对并在客户端和服务器之间复制公钥。

9. 更改SFTP默认端口

  • 更改SFTP/SSH端口可以降低自动攻击的风险。
  • 配置示例:
    sudo firewall-cmd --permanent --add-port=2222/tcp
    sudo firewall-cmd --reload
    

通过以上步骤,你可以大大提高CentOS系统上SFTP的安全配置,确保数据传输的安全性和可靠性。

0