Ubuntu SFTP的安全加固可以通過以下步驟進行:
安裝OpenSSH:
確保系統上安裝了OpenSSH服務器軟件包。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install openssh-server
創建專屬用戶組:
創建一個新的用戶組,例如sftpgroup
,用于管理具有SFTP訪問權限的用戶賬戶。
創建SFTP用戶并添加到用戶組:
創建一個新用戶(例如mysftp
)并將其加入到sftpgroup
中。同時禁用其shell登錄,以增加安全性。
sudo useradd -g sftpgroup -s /bin/nologin mysftp
sudo passwd mysftp
配置用戶的家目錄:
為用戶創建家目錄并將其設置為chroot目錄。設置合適的文件權限和所有權,確保SFTP用戶可以訪問該目錄,但限制寫權限的范圍。
sudo mkdir -p /home/mysftp
sudo usermod -d /home/mysftp mysftp
sudo chown root:sftpgroup /home/mysftp
sudo chmod 755 /home/mysftp
配置SSH目錄和權限:
創建用戶上傳目錄并設置權限。
sudo mkdir /home/mysftp/upload
sudo chown mysftp:sftpgroup /home/mysftp/upload
sudo chmod 755 /home/mysftp/upload
配置SSH子系統:
編輯/etc/ssh/sshd_config
文件來啟用SFTP子系統,并配置相關的匹配條件和chroot環境。
sudo nano /etc/ssh/sshd_config
在文件末尾添加以下內容:
Subsystem sftp internal-sftp
Match Group sftpgroup
ChrootDirectory /home/mysftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
保存并關閉文件。
重啟SSH服務:
重啟SSH服務以使配置更改生效。
sudo systemctl restart sshd
修改SFTP默認端口(可選):
為了提高安全性,可以修改SFTP的默認端口。編輯/etc/ssh/sshd_config
文件,找到端口設置并修改為其他端口(例如2222)。然后重啟SSH服務。
Port 2222
sudo systemctl restart sshd
配置防火墻:
確保防火墻允許SFTP使用的端口。使用ufw
命令開放新端口。
sudo ufw allow 2222/tcp
sudo ufw reload
使用密鑰對進行身份驗證(可選):
為了增加安全性,可以禁用密碼登錄,只允許使用密鑰登錄。在客戶端生成SSH密鑰對,并將公鑰添加到服務器的~/.ssh/authorized_keys
文件中。
ssh-keygen
ssh-copy-id user@remote_host
然后在SFTP客戶端連接時使用私鑰:
sftp -i /path/to/private_key user@remote_host
定期更新系統和安裝安全補丁:
使用unattended-upgrades
包實現系統的自動更新,定期手動運行sudo apt update && sudo apt upgrade
確保安裝了所有可用的補丁。
監控和日志記錄:
定期檢查系統日志,以便及時發現可疑活動。使用journalctl
命令查看SSH日志。
sudo journalctl -u ssh
通過上述步驟,可以顯著提高Ubuntu SFTP服務器的安全性,減少遭受網絡攻擊的風險。