在Debian系统中,可以通过配置SSH服务来限制用户访问。以下是一些常见的方法:
sshd_config 文件编辑 /etc/ssh/sshd_config 文件,添加或修改以下配置项:
AllowUsers user1 user2 user3
这将只允许 user1, user2, 和 user3 用户通过SSH登录。
AllowUsers user1@192.168.1.1 user2@192.168.1.2
这将只允许来自 192.168.1.1 和 192.168.1.2 的 user1 和 user2 用户通过SSH登录。
PermitRootLogin no
这将禁止root用户通过SSH登录。
Port 2222
这将把SSH服务的默认端口从22改为2222。
DenyUsers 和 DenyGroups如果你需要更复杂的控制,可以使用 DenyUsers 和 DenyGroups 配置项。
DenyUsers user4 user5
这将拒绝 user4 和 user5 用户通过SSH登录。
DenyGroups group1 group2
这将拒绝属于 group1 和 group2 组的用户通过SSH登录。
Match 块进行更细粒度的控制Match 块允许你根据特定条件应用配置。
Match User user1
AllowTcpForwarding no
X11Forwarding no
ForceCommand echo 'This account can only be used for SCP'
这将限制 user1 用户只能使用SCP进行文件传输,并且禁用了TCP和X11转发。
Match Address 192.168.1.0/24
AllowUsers user1 user2 user3
DenyUsers user4 user5
这将允许来自 192.168.1.0/24 网段的 user1, user2, 和 user3 用户登录,并拒绝 user4 和 user5 用户登录。
在修改了 sshd_config 文件后,需要重启SSH服务以使更改生效:
sudo systemctl restart sshd
你还可以使用防火墙(如 ufw 或 iptables)来进一步限制SSH访问。
ufwsudo ufw allow from 192.168.1.1 to any port 22
sudo ufw deny 22
这将允许来自 192.168.1.1 的SSH访问,并拒绝所有其他IP地址的SSH访问。
iptablessudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.1 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
这将允许来自 192.168.1.1 的SSH访问,并拒绝所有其他IP地址的SSH访问。
通过以上方法,你可以有效地限制Debian系统上的用户访问SSH服务。