在CentOS上限制SFTP访问IP,可以通过配置SSH服务器来实现。以下是详细步骤:
1. 编辑SSH配置文件
首先,你需要编辑SSH服务器的配置文件 /etc/ssh/sshd_config
。
sudo vi /etc/ssh/sshd_config
2. 添加IP限制规则
在 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地址。
3. 创建SFTP用户组
创建一个专门用于SFTP访问的用户组,并将需要限制IP的用户添加到该组中。
sudo groupadd sftpusers
4. 添加用户到组
将需要限制IP的用户添加到 sftpusers
组中。
sudo usermod -aG sftpusers user1 sudo usermod -aG sftpusers user2
5. 设置用户主目录权限
确保用户的主目录权限设置正确,以便SSH可以正确地进行chroot操作。
sudo chown root:root /home/user1 sudo chmod 755 /home/user1 sudo chown root:root /home/user2 sudo chmod 755 /home/user2
6. 创建用户主目录
确保每个用户的主目录存在,并且属于正确的用户和组。
sudo mkdir -p /home/user1 sudo mkdir -p /home/user2 sudo chown user1:sftpusers /home/user1 sudo chown user2:sftpusers /home/user2
7. 重启SSH服务
最后,重启SSH服务以应用更改。
sudo systemctl restart sshd
验证配置
确保配置正确后,尝试从允许的IP地址访问SFTP,并从不允许的IP地址访问以验证限制是否生效。
通过以上步骤,你可以在CentOS上成功限制SFTP访问IP。