在CentOS上配置SFTP服務時,遵循以下最佳實踐可以確保服務器的安全性和穩定性:
確保安裝了OpenSSH服務器軟件包??梢允褂靡韵旅钸M行更新和安裝:
sudo yum update
sudo yum install openssh-server
為需要SFTP訪問的用戶創建一個新賬戶,并設置密碼。例如,創建名為sftpuser的用戶:
sudo useradd -m -d /home/sftpuser -s /sbin/nologin sftpuser
sudo passwd sftpuser
編輯SSH配置文件/etc/ssh/sshd_config,確保以下配置項已正確設置:
# 啟用SFTP子系統
Subsystem sftp /usr/libexec/openssh/sftp-server
# 禁止root用戶通過SSH登錄
PermitRootLogin no
# 允許密碼認證
PasswordAuthentication yes
# 如果使用chroot,確保用戶的根目錄權限設置正確
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
為用戶創建主目錄,并設置正確的權限:
sudo mkdir -p /home/sftpuser
sudo chown sftpuser:sftpuser /home/sftpuser
sudo chmod 755 /home/sftpuser
如果不需要X11轉發和TCP端口轉發,可以在sshd_config中添加以下配置來禁用這些功能:
X11Forwarding no
AllowTcpForwarding no
保存配置文件更改后,重啟SSH服務以應用新的設置:
sudo systemctl restart sshd
確保防火墻允許SFTP使用的端口(默認為22):
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
如果使用SELinux,可能需要調整相關設置以允許SFTP操作??梢耘R時禁用SELinux進行測試:
sudo setenforce 0
或者配置SELinux策略以允許SFTP。
使用SFTP客戶端(如FileZilla)從另一臺計算機或本地機器連接到SFTP服務器,驗證配置是否正確。
通過遵循這些最佳實踐,可以在CentOS上安全地配置SFTP服務,確保數據傳輸的安全性和用戶的訪問控制。