在CentOS上設置SFTP(Secure File Transfer Protocol)服務時,安全性是首要考慮的因素。以下是一些關鍵的安全設置步驟和最佳實踐:
確保你的CentOS系統上安裝了OpenSSH服務器,因為SFTP是OpenSSH的一部分。
sudo yum install openssh-server
為了提高安全性,建議為SFTP服務創建專門的用戶,而不是使用root用戶。
sudo useradd -m sftpuser
sudo passwd sftpuser
將用戶添加到sftp用戶組:
sudo usermod -a -G sftpusers sftpuser
使用chrootDirectory
選項將用戶限制在其家目錄中,防止他們訪問系統其他部分。
Match group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
確保用戶家目錄的所有者為root:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
在用戶的主目錄下創建.ssh
目錄,并在其中創建authorized_keys
文件,用于存儲用戶的公鑰,以確保只有授權的公鑰才能用于登錄。
mkdir /home/sftpuser/.ssh
chmod 700 /home/sftpuser/.ssh
touch /home/sftpuser/.ssh/authorized_keys
chmod 600 /home/sftpuser/.ssh/authorized_keys
為了提高安全性,禁用不必要的SSH功能,如X11轉發和TCP轉發。
AllowTcpForwarding no
X11Forwarding no
確保防火墻允許SSH連接,并限制訪問SSH的端口(默認是22)。
sudo firewall-cmd --zone=public --permanent --add-port=22/tcp
sudo firewall-cmd --reload
確保所有用戶都使用強密碼,可以通過修改/etc/login.defs
文件來強制執行這些要求。
PASS_MIN_LEN 10
定期更新系統和軟件包,以修復已知的安全漏洞,并監控SSH/SFTP日志以檢測可疑活動。
sudo yum update