在CentOS上限制SFTP訪問IP,可以通過配置SSH服務器來實現。以下是詳細步驟:
首先,你需要編輯SSH服務器的配置文件 /etc/ssh/sshd_config
。
sudo vi /etc/ssh/sshd_config
在 sshd_config
文件中添加以下內容來限制SFTP訪問IP:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
AllowAgentForwarding no
PasswordAuthentication yes
AllowUsers user1@192.168.1.1,user2@192.168.1.2
Match Group sftpusers
: 這行表示接下來的配置只適用于屬于 sftpusers
組的用戶。ChrootDirectory %h
: 將用戶的根目錄限制在其主目錄中。ForceCommand internal-sftp
: 強制使用SFTP命令。AllowTcpForwarding no
, X11Forwarding no
, AllowAgentForwarding no
: 禁止TCP轉發、X11轉發和代理轉發。PasswordAuthentication yes
: 允許密碼認證(根據需要可以改為 no
)。AllowUsers user1@192.168.1.1,user2@192.168.1.2
: 指定允許訪問的用戶名和IP地址。創建一個專門用于SFTP訪問的用戶組,并將需要限制IP的用戶添加到該組中。
sudo groupadd sftpusers
將需要限制IP的用戶添加到 sftpusers
組中。
sudo usermod -aG sftpusers user1
sudo usermod -aG sftpusers user2
確保用戶的主目錄權限設置正確,以便SSH可以正確地進行chroot操作。
sudo chown root:root /home/user1
sudo chmod 755 /home/user1
sudo chown root:root /home/user2
sudo chmod 755 /home/user2
確保每個用戶的主目錄存在,并且屬于正確的用戶和組。
sudo mkdir -p /home/user1
sudo mkdir -p /home/user2
sudo chown user1:sftpusers /home/user1
sudo chown user2:sftpusers /home/user2
最后,重啟SSH服務以應用更改。
sudo systemctl restart sshd
確保配置正確后,嘗試從允許的IP地址訪問SFTP,并從不允許的IP地址訪問以驗證限制是否生效。
通過以上步驟,你可以在CentOS上成功限制SFTP訪問IP。