- 首页 >
- 问答 >
-
云计算 >
- 怎样提高centos sftp服务器安全性
怎样提高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 no、X11Forwarding 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 sftpuser 或 AllowGroups 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,防止误配导致断连。