温馨提示×

CentOS SFTP安全配置有哪些要点

小樊
49
2025-10-26 01:02:43
栏目: 智能运维

CentOS SFTP安全配置要点

1. 安装与更新基础组件

确保系统安装最新版本的OpenSSH服务器(SFTP依赖其运行),并定期通过sudo yum update更新系统及软件包,修复已知安全漏洞。

2. 创建专用SFTP用户与组

  • 新建专用用户组(如sftpusers):sudo groupadd sftpusers
  • 创建用户并指定专用主目录(如/home/sftpuser):sudo useradd -m -G sftpusers -s /sbin/nologin sftpuser-s /sbin/nologin禁止用户登录shell,仅允许SFTP访问);
  • 设置强密码:sudo passwd sftpuser(要求包含大小写字母、数字和特殊字符,长度≥10位)。

3. 配置SSH限制(关键安全措施)

编辑/etc/ssh/sshd_config文件,添加以下配置以限制SFTP用户行为:

  • 禁用root登录PermitRootLogin no(防止root用户通过SFTP登录,降低提权风险);
  • 限制用户组Match Group sftpusers(仅允许sftpusers组的用户使用SFTP);
  • 启用chroot jailChrootDirectory %h(将用户限制在其主目录内,无法访问系统其他目录);
  • 强制使用internal-sftpForceCommand internal-sftp(禁止使用SSH shell,仅允许SFTP传输);
  • 禁用不必要的功能AllowTcpForwarding no(禁止端口转发)、X11Forwarding no(禁止X11图形转发)。

4. 设置严格的目录权限

  • chroot目录权限:用户主目录(如/home/sftpuser)必须归root所有,权限设为755sudo chown root:root /home/sftpuser && sudo chmod 755 /home/sftpuser),确保用户无法修改该目录结构;
  • 上传目录权限:在用户主目录下创建专用上传目录(如/home/sftpuser/uploads),归用户所有,权限设为755sudo mkdir /home/sftpuser/uploads && sudo chown sftpuser:sftpusers /home/sftpuser/uploads && sudo chmod 755 /home/sftpuser/uploads),允许用户上传文件但不具备删除目录的权限。

5. 强化认证方式

  • 优先使用密钥认证:生成SSH密钥对(ssh-keygen -t rsa -b 4096),将公钥(id_rsa.pub)复制到用户家目录的.ssh/authorized_keys文件中(ssh-copy-id sftpuser@server_ip),并设置.ssh目录权限为700authorized_keys文件权限为600chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys),密钥认证比密码更安全;
  • 禁用密码认证(可选但推荐):若完全使用密钥认证,可在/etc/ssh/sshd_config中设置PasswordAuthentication no,进一步降低密码泄露风险。

6. 配置防火墙规则

使用firewalld开放SSH端口(默认22),并限制访问源IP(可选):

  • 开放SSH服务:sudo firewall-cmd --permanent --add-service=ssh
  • 限制访问IP(如仅允许192.168.1.100访问):sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
  • 重载防火墙:sudo firewall-cmd --reload,确保规则生效。

7. 启用详细日志与监控

  • /etc/ssh/sshd_config中设置日志级别:LogLevel VERBOSE(记录详细的认证和传输信息);
  • 定期检查日志:使用sudo tail -f /var/log/secure实时监控SFTP登录及文件传输活动,或通过fail2ban工具自动封禁多次尝试失败的IP地址。

8. 定期维护与审计

  • 定期更新:保持系统和OpenSSH服务器为最新版本,及时修补安全漏洞;
  • 审计配置:定期检查/etc/ssh/sshd_config文件,确保未添加不必要的配置项(如多余的AllowUsersPort);
  • 备份数据:定期备份用户主目录及上传文件,防止数据丢失或篡改。

0