温馨提示×

Linux SFTP安全设置有哪些

小樊
37
2025-11-11 08:23:23
栏目: 智能运维

1. 强化身份认证机制

  • 禁用密码登录,启用SSH密钥认证:密码易被暴力破解,密钥认证更安全。生成密钥对(ssh-keygen -t ed25519),将公钥(id_ed25519.pub)追加到用户~/.ssh/authorized_keys文件中,并设置权限:chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys。在/etc/ssh/sshd_config中配置PasswordAuthentication noPubkeyAuthentication yes,重启SSH服务生效。

2. 限制用户访问范围(Chroot Jail)

  • 将用户限制在专属目录:通过Match GroupMatch User指令,将SFTP用户限制在其主目录(如/home/sftpuser),防止访问系统其他敏感区域。配置示例如下:
    Match Group sftpusers
        ChrootDirectory /home/%u
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    
    注意:ChrootDirectory必须由root拥有,权限设为755,用户不可修改。

3. 配置SSH服务安全参数

  • 修改sshd_config文件:禁用root登录(PermitRootLogin no)、限制并发连接数(MaxSessions 10MaxStartups 10:30:60)、关闭不必要的SSH功能(如AllowTcpForwarding noX11Forwarding no),减少攻击面。修改后通过sshd -t验证配置语法,再重启服务(systemctl restart sshd)。

4. 设置严格的目录权限

  • 主目录与上传目录分离:用户主目录(如/home/sftpuser)需由root拥有(chown root:root /home/sftpuserchmod 755 /home/sftpuser),避免用户修改目录权限。创建专门的可写子目录(如/home/sftpuser/uploads),归属用户及所属组(chown sftpuser:sftpusers /home/sftpuser/uploadschmod 755 /home/sftpuser/uploads),确保用户只能在自己的目录内写入文件。

5. 配置防火墙限制访问源

  • 仅允许授权IP访问SSH端口(默认22):使用ufw(Ubuntu)或firewalld(CentOS/RHEL)配置规则。例如,ufw允许特定IP:sudo ufw allow from 192.168.1.100 to any port 22,然后启用防火墙(sudo ufw enable);firewalld通过rich规则限制: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)。

6. 启用日志与监控

  • 开启详细日志记录:在/etc/ssh/sshd_config中设置LogLevel VERBOSE,记录SFTP登录、文件传输等详细信息。定期检查日志文件(/var/log/auth.log/var/log/secure),通过tail -f /var/log/auth.log实时监控异常活动(如多次失败登录)。

7. 使用Fail2ban防暴力破解

  • 自动封禁多次失败登录的IP:安装Fail2ban(sudo apt install fail2ban),编辑/etc/fail2ban/jail.local启用SSH保护:
    [sshd]
    enabled = true
    port = 22
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 3
    bantime = 600
    
    重启Fail2ban(sudo systemctl restart fail2ban),自动封禁5分钟内失败3次以上的IP。

8. 保持系统与软件更新

  • 定期更新系统和OpenSSH:通过sudo apt update && sudo apt upgrade(Ubuntu/Debian)或sudo yum update(CentOS/RHEL)安装最新安全补丁,修复已知漏洞,降低被攻击风险。

0