溫馨提示×

如何在Debian上配置SFTP傳輸速度限制

小樊
45
2025-07-25 06:28:54
欄目: 智能運維

在Debian上配置SFTP傳輸速度限制可以通過多種方法實現,以下是使用tc(Traffic Control)工具和sshd_config文件進行配置的步驟:

方法一:使用tc工具

  1. 安裝tc工具

    sudo apt-get update
    sudo apt-get install iproute2
    
  2. 創建一個qdisc(隊列規則): 假設你的網絡接口是eth0,你可以創建一個htb(Hierarchical Token Bucket)隊列規則來限制帶寬。

    sudo tc qdisc add dev eth0 root handle 1: htb default 30
    
  3. 創建一個類并設置帶寬限制: 創建一個類并設置其帶寬限制為1Mbps(例如)。

    sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit
    
  4. 創建一個過濾器來匹配SFTP流量: 假設SFTP使用默認的SSH端口22,你可以創建一個過濾器來匹配該端口的流量。

    sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:1
    
  5. 驗證配置: 使用以下命令查看當前的隊列規則和類。

    sudo tc -s qdisc ls dev eth0
    sudo tc -s class ls dev eth0
    sudo tc -s filter ls dev eth0
    

方法二:使用sshd_configpam_limits.conf

這種方法通過限制用戶的帶寬來實現速度控制,但需要額外的工具如trickle。

  1. 安裝trickle工具

    sudo apt-get update
    sudo apt-get install trickle
    
  2. 編輯sshd_config文件: 打開/etc/ssh/sshd_config文件并添加以下行來限制SFTP用戶的帶寬。

    Match Group sftpusers
        ForceCommand /usr/bin/trickle -d 1024 -u 1024 sftp-server
    
  3. 創建一個用戶組并添加SFTP用戶: 創建一個名為sftpusers的用戶組,并將需要限制帶寬的SFTP用戶添加到該組。

    sudo groupadd sftpusers
    sudo usermod -aG sftpusers your_username
    
  4. 重啟SSH服務

    sudo systemctl restart sshd
    

方法三:使用fail2ban和自定義腳本

這種方法通過監控SSH連接并動態調整帶寬來實現速度控制。

  1. 安裝fail2ban

    sudo apt-get update
    sudo apt-get install fail2ban
    
  2. 配置fail2ban: 編輯/etc/fail2ban/jail.local文件并添加以下內容來限制SFTP用戶的帶寬。

    [DEFAULT]
    bantime = 600
    findtime = 600
    maxretry = 3
    
    [sftp]
    enabled = true
    port = ssh
    filter = sftp
    action = iptables-multiport[name=SFTP, port="ssh", protocol=tcp]
    logpath = /var/log/auth.log
    banaction = iptables-multiport
    
  3. 創建自定義腳本: 創建一個腳本來動態調整帶寬限制。

    sudo nano /etc/fail2ban/action.d/iptables-multiport.conf
    

    添加以下內容:

    [Definition]
    actionstart =
    actionstop =
    actioncheck =
    actionban = iptables -I INPUT -p tcp --dport <port> -m state --state NEW -j DROP
    actionunban = iptables -D INPUT -p tcp --dport <port> -m state --state NEW -j DROP
    
  4. 重啟fail2ban服務

    sudo systemctl restart fail2ban
    

通過以上方法,你可以在Debian上配置SFTP傳輸速度限制。選擇適合你需求的方法進行實施。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女