在配置Debian系統上的SFTP服務時,有幾個關鍵的注意事項需要考慮,以確保系統的安全性和穩定性。以下是配置Debian SFTP時需要注意的事項:
安裝OpenSSH服務器:
確保在Debian系統上安裝了OpenSSH服務器。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt-get update
sudo apt-get install openssh-server
創建SFTP用戶組:
創建一個專門用于SFTP的用戶組,例如 sftp_users
:
sudo groupadd sftp_users
添加用戶到SFTP用戶組:
將需要使用SFTP的用戶添加到 sftp_users
組中。例如,添加名為 jonathan
的用戶:
sudo useradd -m -G sftp_users jonathan
設置用戶密碼:
為新創建的用戶設置密碼:
sudo chpasswd
配置用戶目錄權限:
確保每個用戶的家目錄存在,并設置正確的所有權:
sudo mkdir /home/jonathan/uploads
sudo chown jonathan:jonathan /home/jonathan
編輯SSH配置文件:
編輯 /etc/ssh/sshd_config
文件,添加或修改以下內容:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
sudo nano /etc/ssh/sshd_config
在文件中添加或修改以下配置項:
Subsystem sftp /usr/lib/openssh/sftp-server
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
重啟SSH服務:
為了使配置生效,重啟SSH服務:
sudo systemctl restart sshd
測試SFTP連接:
使用SFTP客戶端連接到服務器,測試配置是否成功。例如:
sftp jonathan@your_server_ip
然后嘗試列出目錄、下載文件等操作,以驗證SFTP是否正常工作。
禁用root遠程登錄:
編輯 /etc/ssh/sshd_config
文件,將 PermitRootLogin
設置為 no
,禁止root用戶遠程登錄,減少被攻擊的風險:
PermitRootLogin no
限制空密碼登錄:
在 /etc/ssh/sshd_config
中設置 PermitEmptyPasswords no
,禁止使用空密碼登錄,增加破解難度:
PermitEmptyPasswords no
配置Chroot環境:
如果希望用戶只能使用SFTP傳輸文件而不能SSH登錄到服務器,而且要限定用戶的活動目錄(鎖定用戶的根目錄),繼續配置:
Match User test
ChrootDirectory /home/sftp/
ForceCommand internal-sftp
注意:chrootDirectory
目錄開始一直往上到系統根目錄為止的目錄擁有者都只能是root,權限最大為 0755
,這一點必須要注意而且符合。
通過遵循上述步驟和注意事項,可以確保在Debian系統上配置SFTP服務時的安全性和穩定性。