在CentOS上安全配置SFTP(SSH File Transfer Protocol)涉及多個步驟,以確保只有授權用戶可以訪問,并且傳輸的數據是加密的。以下是一個詳細的指南:
首先,確保你的CentOS系統上安裝了OpenSSH服務器。如果沒有安裝,可以使用以下命令進行安裝:
sudo yum install openssh-server
編輯SSH配置文件 /etc/ssh/sshd_config:
sudo vi /etc/ssh/sshd_config
在文件中找到并修改以下配置項:
禁止root登錄:
PermitRootLogin no
禁用密碼登錄(推薦使用密鑰認證):
PasswordAuthentication no
啟用公鑰認證:
PubkeyAuthentication yes
限制SFTP用戶訪問:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
創建一個新的用戶組來管理SFTP用戶:
sudo groupadd sftpusers
創建一個新的用戶并將其添加到 sftpusers 組:
sudo useradd -m -G sftpusers your_username
sudo passwd your_username
在提示輸入密碼時,設置一個強密碼。
為了安全起見,你可以將SFTP用戶的根目錄限制在一個特定的目錄中。編輯 /etc/ssh/sshd_config 文件,確保 ChrootDirectory 指向一個有效的目錄,并且該目錄的權限設置正確:
sudo chown root:root /home/your_username
sudo chmod 755 /home/your_username
確保用戶的主目錄存在并且權限正確:
sudo mkdir -p /home/your_username/uploads
sudo chown your_username:sftpusers /home/your_username/uploads
sudo chmod 755 /home/your_username/uploads
保存并退出配置文件后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
使用SFTP客戶端連接到服務器,測試配置是否正確:
sftp your_username@your_server_ip
你應該能夠成功連接,并且只能訪問 /home/your_username/uploads 目錄。
確保防火墻允許SSH連接:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
定期更新系統和OpenSSH軟件包,并監控SSH日志文件 /var/log/secure 以檢測任何可疑活動。
通過以上步驟,你可以安全地配置CentOS上的SFTP服務,確保只有授權用戶可以訪問,并且傳輸的數據是加密的。