ssh用户限制(ubuntu)
1.限制用户SSH登录
只允许指定用户进行登录(白名单):
在/etc/ssh/sshd_config配置文件中设置AllowUsers选项,(配置完成需要重启 SSHD 服务)格式如下:
AllowUsers user1 user2@192.168.5.* user3@192.168.122.1
# 允许user1、192.168.5网段的user2和192.168.122.1的user3连接
只拒绝指定用户进行登录(黑名单):
在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:
DenyUsers user4 user5
# 拒user4、user5帐户通过 SSH 登录系统
重启SSHsystemctl restart sshd.service
AllowUsers: 允许某个用户、某些用户登录,其他都不能登录
AllowGroups: 允许某个组、某些组能登录,其他都不能登录
DenyUsers: 拒绝某个用户、某些用户登录,其他都能登录
DenyGroups: 拒绝某个组、某些组登录,其他组都能登录
2.限制IP SSH登录
1.修改hosts.allow主机允许配置文件,添加允许地址
[root@localhost ~]# vim /etc/hosts.allow
sshd:192.168.2.130:allow //添加只允许连接的IP地址
sshd:192.168.3.0/24:allow //允许3.0/24这个网段内的IP连接 ,多网段用逗号隔开
2.修改hosts.deny主机拒绝配置文件
[root@localhost ~]# vim /etc/hosts.deny
...
sshd:ALL //这里的ALL表示除了上面文件中允许的,其他的IP地址都拒绝
同时设置上述两个文件时,hosts.allow文件中规则的优先级更高,参考上述两个文件进行设置时,服务器只允许192.168.2.130这个IP地址以及192.168.3.0/24这个IP地址段通过SSH进行登录,其他的IP都会被拒绝SSH登录。
注:
hosts.allow和hosts.deny属于tcp_Wrappers防火墙的配置文件,而用tcp_Wrappers防火墙控制某一服务访问策略的前提是,该服务支持tcp_Wrappers防火墙,即该服务应用了libwrapped库文件。
查看某服务(如ssh)是否应用了libwrapped库文件:
# ldd /usr/sbin/sshd |grep libwrap.so.0
没有显示,表示此服务器上安装的SSH没有应用libwrapped库文件,也就不能用tcp_Wrappers防火墙控制访问策略。(一般情况下服务器默认安装的SSH都是支持libwrapped库文件)
解决方法是重新安装SSH:
# dnf -y remove openssh
# dnf -y install openssh
# dnf -y install openssh-server
安装完成后再次查看是否应用了libwrapped库文件,显示支持。
# ldd /usr/sbin/sshd |grep libwrap.so.0
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f3fb7f09000)
再测试SSH登陆,配置生效。
3. SSH禁止某个用户使用密码远程登录
/etc/ssh/sshd_config配置:
Match User username
PasswordAuthentication no
Match all