首页主机资讯CentOS SFTP服务器如何进行安全加固

CentOS SFTP服务器如何进行安全加固

时间2025-11-20 13:07:18发布访客分类主机资讯浏览1362
导读:CentOS SFTP服务器安全加固清单 一 基础加固 保持系统与软件包为最新:执行yum update -y,及时修补漏洞。 仅使用SFTP(基于SSH),无需额外“SSL/TLS”层;SFTP本身已通过SSH加密传输。 禁止root直...

CentOS SFTP服务器安全加固清单

一 基础加固

  • 保持系统与软件包为最新:执行yum update -y,及时修补漏洞。
  • 仅使用SFTP(基于SSH),无需额外“SSL/TLS”层;SFTP本身已通过SSH加密传输。
  • 禁止root直接登录:在**/etc/ssh/sshd_config中设置PermitRootLogin no**。
  • 使用SSH密钥认证,必要时禁用密码:启用PubkeyAuthentication yes,将PasswordAuthentication no;为账户部署authorized_keys并设置权限700/600
  • 限制可登录账户:使用AllowUsersAllowGroups白名单,仅允许指定用户/组访问。
  • 启用internal-sftp子系统:设置Subsystem sftp internal-sftp,性能更好、集成度更高。
  • 禁用不必要功能:关闭X11ForwardingTCPForwarding、端口转发与代理转发,减少攻击面。
  • 启用详细日志:设置LogLevel VERBOSE,便于审计与追踪。

二 用户与目录隔离

  • 创建专用sftpusers组并添加用户:
    • groupadd sftpusers
    • useradd -m -G sftpusers sftpuser
  • 使用Chroot Jail限制用户根目录:在**/etc/ssh/sshd_config**中添加
    • Match Group sftpusers
      • ChrootDirectory %h
      • ForceCommand internal-sftp
      • AllowTcpForwarding no
      • X11Forwarding no
  • 正确设置目录属主与权限(关键点):
    • 用户的家目录及其上级目录必须属主为root:root,权限755,否则chroot会失败。
    • 如需可写上传目录:在家目录下创建upload等子目录,设属主为sftpuser:sftpusers,权限755/775(按协作需求调整)。
  • 示例:
    • chown root:root /home/sftpuser & & chmod 755 /home/sftpuser
    • mkdir /home/sftpuser/upload & & chown sftpuser:sftpusers /home/sftpuser/upload

三 网络与访问控制

  • 防火墙仅放行SSH端口22
    • firewall-cmd --permanent --add-service=ssh & & firewall-cmd --reload
  • 如需更改端口,同步修改sshd_configPort并放行新端口,避免被未授权访问。
  • 限制来源IP(可选):在firewalld中使用富规则仅允许可信网段访问22/tcp
  • 防暴力破解:部署fail2ban,监控**/var/log/secure**对SSH登录失败进行封禁。
  • 仅开放必要端口与协议,关闭不必要的服务与端口,减少暴露面。

四 监控审计与维护

  • 集中审计:持续查看**/var/log/secure**,关注失败登录、异常时段与来源IP。
  • 提升日志级别:在sshd_config设置LogLevel VERBOSE,记录更详细的会话与认证信息。
  • 定期巡检:例行执行yum update与安全基线核查;对新增用户与密钥进行复核与轮换。
  • 变更与回滚:修改**/etc/ssh/sshd_config前先备份;变更后用sshd -t语法检查,再systemctl restart sshd并保留一个root**控制台会话以验证。

五 一键最小可用配置示例

  • 目标:仅允许sftpusers组成员通过密钥登录,使用chroot,禁用密码与转发,日志更详细。

  • 步骤

    1. 创建用户与组
    • groupadd sftpusers
    • useradd -m -G sftpusers sftpuser
    • passwd sftpuser(如仍保留密码,后续可禁用)
    1. 配置密钥登录
    • mkdir -p /home/sftpuser/.ssh
    • echo “公钥内容” > /home/sftpuser/.ssh/authorized_keys
    • chown -R sftpuser:sftpusers /home/sftpuser/.ssh
    • chmod 700 /home/sftpuser/.ssh & & chmod 600 /home/sftpuser/.ssh/authorized_keys
    1. 设置chroot目录权限
    • chown root:root /home/sftpuser
    • chmod 755 /home/sftpuser
    1. 编辑**/etc/ssh/sshd_config**(建议先备份)
    • Port 22
    • PermitRootLogin no
    • PubkeyAuthentication yes
    • PasswordAuthentication no
    • ChallengeResponseAuthentication no
    • UsePAM yes
    • Subsystem sftp internal-sftp
    • LogLevel VERBOSE
    • Match Group sftpusers
      • ChrootDirectory %h
      • ForceCommand internal-sftp
      • AllowTcpForwarding no
      • X11Forwarding no
    1. 防火墙与重启
    • firewall-cmd --permanent --add-service=ssh & & firewall-cmd --reload
    • sshd -t & & systemctl restart sshd
    1. 验证
    • sftp sftpuser@服务器IP
    • tail -f /var/log/secure 观察登录与权限错误提示

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


若转载请注明出处: CentOS SFTP服务器如何进行安全加固
本文地址: https://pptw.com/jishu/751966.html
CentOS SFTP用户认证机制是什么 CentOS如何设置SFTP端口转发

游客 回复需填写必要信息