首页主机资讯CentOS下SFTP安全配置指南

CentOS下SFTP安全配置指南

时间2025-11-18 16:18:03发布访客分类主机资讯浏览884
导读:一 环境准备与基线加固 安装并启用 OpenSSH 服务,保持系统与安全组件为最新版本: 安装:sudo yum install -y openssh-server 启动与开机自启:sudo systemctl start sshd &...

一 环境准备与基线加固

  • 安装并启用 OpenSSH 服务,保持系统与安全组件为最新版本:
    • 安装:sudo yum install -y openssh-server
    • 启动与开机自启:sudo systemctl start sshd & & sudo systemctl enable sshd
  • 防火墙仅放行 SSH 端口 22
    • firewalld:sudo firewall-cmd --permanent --add-service=ssh & & sudo firewall-cmd --reload
  • 禁止 root 直接登录,降低爆破与提权风险:
    • /etc/ssh/sshd_config 中设置:PermitRootLogin no
  • 建议启用 密钥认证、禁用密码登录(见下文“认证与访问控制”),并定期更新系统与软件包以修补漏洞。

二 用户与目录规划

  • 创建专用的 SFTP 用户组系统用户,并限制其仅用于 SFTP:
    • 建组:sudo groupadd sftpusers
    • 建用户(禁止 shell 登录,仅用于 SFTP):sudo useradd -g sftpusers -s /sbin/nologin sftpuser
    • 设置密码:sudo passwd sftpuser
  • 规划目录结构(示例将用户根目录置于 /data/sftp):
    • 目录:sudo mkdir -p /data/sftp/sftpuser/upload
    • 权限关键点:Chroot 根目录必须由 root 拥有且权限为 755,否则 chroot 会失败;可写目录由用户所有:
      • sudo chown root:sftpusers /data/sftp/sftpuser
      • sudo chmod 755 /data/sftp/sftpuser
      • sudo chown sftpuser:sftpusers /data/sftp/sftpuser/upload
  • 如需使用用户家目录作为 Chroot,同样确保家目录属主为 root:root 且权限 755

三 SSHD 配置与 SFTP 子系统

  • 编辑 /etc/ssh/sshd_config,建议采用“内部 SFTP + 组限制 + 禁用转发”的组合:
    • 全局启用内部 SFTP 子系统:Subsystem sftp internal-sftp
    • 对 SFTP 用户组应用限制(示例为 sftpusers):
      Match Group sftpusers
          ChrootDirectory %h
          ForceCommand internal-sftp
          AllowTcpForwarding no
          X11Forwarding no
      
    • 说明:
      • ChrootDirectory %h 将用户根目录限制在其主目录;%h 为主目录占位符。
      • ForceCommand internal-sftp 强制仅提供 SFTP,避免开启 shell。
      • 禁用 AllowTcpForwardingX11Forwarding 减少攻击面。
  • 如需仅对单个用户生效,可将 Match Group sftpusers 替换为 Match User sftpuser
  • 修改后检查语法并重启服务:
    • 语法检查:sudo sshd -t
    • 重启:sudo systemctl restart sshd

四 认证与访问控制

  • 优先使用 SSH 密钥认证,禁用密码登录:
    • /etc/ssh/sshd_config 中设置:
      • PasswordAuthentication no
      • PubkeyAuthentication yes
    • 将用户公钥写入 ~/.ssh/authorized_keys(注意:chroot 环境下该文件应位于 Chroot 根目录下的 .ssh/authorized_keys),并设置权限:
      • chmod 700 ~/.ssh & & chmod 600 ~/.ssh/authorized_keys
  • 结合 防火墙 仅开放 22/TCP,并可使用 fail2ban 防止暴力破解:
    • 安装与启用(示例):sudo yum install -y fail2ban & & sudo systemctl enable --now fail2ban
  • 可选:在 /etc/login.defs 中设置 PASS_MIN_LEN 10 等策略,提升口令强度基线。

五 日志审计与验证

  • 启用并定期检查 SSH/SFTP 日志,用于审计与异常检测:
    • 日志路径:/var/log/secure(journalctl 亦可:journalctl -u sshd -f
  • 连接与权限验证步骤:
    • 连接测试:sftp sftpuser@your_server_ip
    • 验证要点:
      • 仅能访问其 Chroot 目录及其子目录(如 upload),无法越权浏览系统其他路径。
      • 无法开启 TCP 转发X11 转发
      • 若采用密钥登录,确保密码登录已关闭且公钥已正确部署。
  • 变更风险控制:
    • 修改 sshd_config 后务必先执行 sshd -t 检查语法,再重启 sshd,避免锁死远程访问。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS下SFTP安全配置指南
本文地址: https://pptw.com/jishu/750235.html
实现CentOS SFTP无密码登录方法 SFTP配置CentOS服务器的技巧

游客 回复需填写必要信息