溫馨提示×

SFTP在Debian上的安全設置有哪些

小樊
46
2025-09-29 00:22:05
欄目: 智能運維

1. 更新系統及安裝OpenSSH服務器
確保Debian系統為最新狀態,修復已知安全漏洞:

sudo apt update && sudo apt upgrade -y

安裝OpenSSH服務器(若未安裝):

sudo apt install openssh-server -y

2. 配置SSH服務限制SFTP訪問
編輯SSH主配置文件/etc/ssh/sshd_config,進行以下關鍵設置:

  • 禁用root遠程登錄:防止root賬戶通過SSH/SFTP直接登錄,降低提權風險。
    PermitRootLogin no
    
  • 啟用內部SFTP子系統:替代傳統sftp-server,提升性能并集成到SSH中。
    Subsystem sftp internal-sftp
    
  • 限制用戶/組訪問:通過Match指令針對特定用戶或組應用嚴格規則(以組sftpusers為例)。
    Match Group sftpusers
        ChrootDirectory %h  # 將用戶根目錄限制為其家目錄(如/home/sftpuser)
        ForceCommand internal-sftp  # 強制使用SFTP,禁止SSH shell訪問
        AllowTcpForwarding no  # 禁用TCP端口轉發(防止隧道攻擊)
        X11Forwarding no  # 禁用X11圖形界面轉發
    
  • 可選:禁用密碼認證(推薦公鑰認證):減少密碼猜測攻擊風險。
    PasswordAuthentication no
    PubkeyAuthentication yes
    

保存配置后,重啟SSH服務使更改生效:

sudo systemctl restart sshd

3. 創建專用SFTP用戶組及用戶

  • 創建sftpusers組:集中管理SFTP用戶權限。
    sudo groupadd sftpusers
    
  • 添加SFTP用戶:創建無shell登錄權限的用戶(避免通過SSH登錄系統)。
    sudo adduser --shell /bin/false --gecos "SFTP User" sftpuser
    
  • 將用戶加入sftpusers組
    sudo usermod -aG sftpusers sftpuser
    

4. 設置用戶主目錄及權限

  • 鎖定用戶家目錄:Chroot環境要求家目錄屬主為root,權限為755(防止用戶修改目錄結構)。
    sudo chown root:root /home/sftpuser
    sudo chmod 755 /home/sftpuser
    
  • 創建用戶可寫子目錄:在用戶家目錄下創建用于上傳/下載文件的子目錄(如upload),并設置正確權限(屬主為用戶,屬組為sftpusers)。
    sudo mkdir /home/sftpuser/upload
    sudo chown sftpuser:sftpusers /home/sftpuser/upload
    sudo chmod 755 /home/sftpuser/upload
    

    注:若需更細粒度權限(如允許用戶修改自身文件),可使用ACL擴展權限:

    sudo setfacl -R -m u:sftpuser:rwx /home/sftpuser/upload
    sudo setfacl -R -m d:u:sftpuser:rwx /home/sftpuser/upload
    

5. 配置防火墻限制訪問
使用ufw(Uncomplicated Firewall)限制SFTP(默認端口22)僅允許可信IP訪問:

  • 安裝ufw(若未安裝)
    sudo apt install ufw -y
    
  • 允許SSH/SFTP連接
    sudo ufw allow OpenSSH
    
  • 限制訪問IP:僅允許指定IP(如192.168.1.100)訪問SSH端口(22),拒絕其他IP。
    sudo ufw deny from all to any port 22
    sudo ufw allow from 192.168.1.100 to any port 22
    
  • 啟用ufw并檢查狀態
    sudo ufw enable
    sudo ufw status verbose  # 確認規則生效
    

    注:若使用iptables,可通過以下命令實現相同效果:

    sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 22 -j DROP
    sudo netfilter-persistent save  # 保存規則
    

6. 啟用SSH密鑰認證(增強身份驗證)

  • 生成密鑰對:在客戶端生成RSA密鑰(4096位強度)。
    ssh-keygen -t rsa -b 4096
    
  • 復制公鑰到服務器:將客戶端的公鑰(id_rsa.pub)添加到服務器用戶的~/.ssh/authorized_keys文件中。
    ssh-copy-id sftpuser@your_server_ip
    
  • 配置SSH優先使用密鑰認證:確保/etc/ssh/sshd_config中以下設置已啟用:
    PubkeyAuthentication yes
    PasswordAuthentication no
    

重啟SSH服務使密鑰認證生效:

sudo systemctl restart sshd

7. 監控與維護

  • 定期更新系統:保持OpenSSH及系統軟件包為最新版本,修復安全漏洞。
    sudo apt update && sudo apt upgrade -y
    
  • 檢查日志文件:定期查看/var/log/auth.log,監控SFTP登錄及異?;顒樱ㄈ缍啻问L試)。
    sudo tail -f /var/log/auth.log | grep sftp
    
  • 備份配置文件:定期備份/etc/ssh/sshd_config及用戶家目錄權限設置,便于故障恢復。

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