在CentOS上搭建SFTP虛擬主機可以通過以下步驟實現:
首先,確保你的CentOS系統已經安裝了OpenSSH服務器。如果沒有安裝,可以使用以下命令進行安裝:
sudo yum install openssh-server
安裝完成后,啟動SSH服務并設置為開機自啟動:
sudo systemctl start sshd
sudo systemctl enable sshd
創建一個專門用于SFTP的用戶組:
sudo groupadd sftp
添加一個新用戶并將其添加到sftp用戶組:
sudo useradd -m -G sftp your_username
sudo passwd your_username
在提示輸入密碼時,輸入并確認密碼。
編輯SSH配置文件/etc/ssh/sshd_config:
sudo vi /etc/ssh/sshd_config
確保以下配置項存在并且沒有被注釋掉:
Subsystem sftp /usr/libexec/openssh/sftp-server
如果你想限制用戶只能使用SFTP而不能使用SSH,可以添加或修改以下配置:
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
為了確保SFTP用戶只能訪問其主目錄,需要設置正確的權限:
sudo chown root:root /home/your_username
sudo chmod 755 /home/your_username
如果你希望用戶只能訪問其主目錄及其子目錄,可以創建一個chroot目錄:
sudo mkdir /home/your_username/uploads
sudo chown your_username:sftp /home/your_username/uploads
然后在sshd_config中設置chrootDirectory:
Match Group sftp
ChrootDirectory /home/%u/uploads
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
完成所有配置后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
使用SFTP客戶端(如FileZilla)連接到你的服務器,輸入用戶名和密碼進行測試。
sftp your_username@your_server_ip
firewalld或ufw配置防火墻,只允許必要的端口(如SFTP默認的22端口)通過,并限制訪問來源IP地址。通過以上步驟,你應該能夠在CentOS上成功搭建一個安全的SFTP虛擬主機。如果有任何問題,請檢查日志文件/var/log/secure以獲取更多信息。