温馨提示×

如何在Linux SFTP中设置传输限制

小樊
43
2025-12-20 21:00:35
栏目: 智能运维

在Linux SFTP中设置传输限制,可以通过配置SSH服务器来实现。以下是一些常见的方法:

方法一:使用sshd_config文件

  1. 编辑sshd_config文件: 打开SSH服务器的配置文件/etc/ssh/sshd_config

    sudo nano /etc/ssh/sshd_config
    
  2. 设置传输限制: 在文件中添加或修改以下配置项:

    • 限制用户带宽

      Match User <username>
          Bandwidth <limit_in_kbps>
      

      例如,限制用户john的带宽为100kbps:

      Match User john
          Bandwidth 100
      
    • 限制用户连接数

      MaxSessions <number_of_sessions>
      

      例如,限制用户john最多同时连接3个会话:

      Match User john
          MaxSessions 3
      
    • 限制用户传输速率

      Match User <username>
          ForceCommand internal-sftp -l INFO
          ChrootDirectory %h
          AllowTcpForwarding no
          X11Forwarding no
          PermitTunnel no
          MaxSessions <number_of_sessions>
          Bandwidth <limit_in_kbps>
      
  3. 重启SSH服务: 保存并关闭文件后,重启SSH服务以应用更改。

    sudo systemctl restart sshd
    

方法二:使用pam_limits.conf文件

  1. 编辑pam_limits.conf文件: 打开PAM(Pluggable Authentication Modules)配置文件/etc/security/limits.conf

    sudo nano /etc/security/limits.conf
    
  2. 设置传输限制: 在文件中添加以下配置项:

    • 限制用户带宽

      <username> hard bandwidth <limit_in_kbps>
      

      例如,限制用户john的带宽为100kbps:

      john hard bandwidth 100
      
    • 限制用户连接数

      <username> hard maxlogins <number_of_sessions>
      

      例如,限制用户john最多同时连接3个会话:

      john hard maxlogins 3
      
  3. 保存并关闭文件: 保存更改并关闭文件。

方法三:使用fail2ban

fail2ban可以用来限制失败的登录尝试,间接地限制恶意用户的访问。

  1. 安装fail2ban

    sudo apt-get install fail2ban
    
  2. 配置fail2ban: 编辑fail2ban的配置文件/etc/fail2ban/jail.local

    sudo nano /etc/fail2ban/jail.local
    
  3. 添加自定义jail: 添加以下内容来限制特定用户的访问:

    [DEFAULT]
    bantime = 600
    findtime = 600
    maxretry = 3
    
    [sftp-user]
    enabled = true
    filter = sftp-user
    action = iptables-multiport[name=SFTP, port="sftp", protocol=tcp]
    logpath = /var/log/auth.log
    bantime = 3600
    findtime = 600
    maxretry = 3
    
  4. 创建过滤器: 编辑过滤器文件/etc/fail2ban/filter.d/sftp-user.conf

    sudo nano /etc/fail2ban/filter.d/sftp-user.conf
    

    添加以下内容:

    [Definition]
    failregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for invalid user <username> from <ip>
    ignoreregex =
    
  5. 重启fail2ban服务

    sudo systemctl restart fail2ban
    

通过以上方法,你可以在Linux SFTP中设置传输限制,以保护服务器资源并提高安全性。

0