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
posted @ 2023-09-15 10:58  ishmaelwanglin  阅读(1727)  评论(0编辑  收藏  举报