在CentOS系統中,對SFTP服務進行安全加固是非常重要的,以確保數據傳輸的安全性和系統的穩定性。以下是一些常見的安全加固措施:
確保你的CentOS系統和所有相關軟件都是最新的。
sudo yum update -y
使用SSH密鑰認證而不是密碼認證可以提高安全性。
# 生成SSH密鑰對
ssh-keygen -t rsa -b 4096
# 將公鑰復制到服務器
ssh-copy-id user@server_ip
# 禁用密碼登錄
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
創建一個專門用于SFTP的用戶,并限制其權限。
# 創建新用戶
sudo adduser sftpuser
# 設置用戶密碼
sudo passwd sftpuser
# 限制用戶的shell為sftp-server
sudo usermod -s /sbin/nologin sftpuser
# 創建SFTP目錄并設置權限
sudo mkdir /home/sftpuser/upload
sudo chown root:root /home/sftpuser/upload
sudo chmod 755 /home/sftpuser/upload
# 配置chroot環境
echo "Match User sftpuser" | sudo tee -a /etc/ssh/sshd_config
echo " ChrootDirectory %h" | sudo tee -a /etc/ssh/sshd_config
echo " ForceCommand internal-sftp" | sudo tee -a /etc/ssh/sshd_config
echo " AllowTcpForwarding no" | sudo tee -a /etc/ssh/sshd_config
echo " X11Forwarding no" | sudo tee -a /etc/ssh/sshd_config
確保防火墻只允許必要的端口(如22)。
# 啟用防火墻
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 允許SSH連接
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
如果SELinux處于 enforcing 模式,確保它不會阻止SFTP的正常運行。
# 檢查SELinux狀態
sestatus
# 如果需要,可以臨時設置為permissive模式進行測試
sudo setenforce 0
# 配置SELinux策略
sudo semanage fcontext -a -t ssh_home_t "/home/sftpuser(/.*)?"
sudo restorecon -Rv /home/sftpuser
配置日志記錄和監控,以便及時發現異常行為。
# 確保SSH和SFTP日志記錄
sudo tail -f /var/log/secure
定期審計系統配置和安全設置,并根據需要進行更新。
通過以上步驟,你可以顯著提高CentOS系統中SFTP服務的安全性。請根據你的具體需求和環境進行調整和測試。