您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页linuxssh只允许指定的用户登录

linuxssh只允许指定的用户登录

来源:华佗小知识
linuxssh只允许指定的用户登录

linux ssh只允许指定的用户登录的方法按大类分有两种,一种是通过pam模块配置,一种是通过sshd配置文件配置,这里对这两大类做下说明。 一、pam模块控制法

1、pam_access.so模块法

在/etc/pam.d/sshd文件中增加如下两行内容 1. account required pam_access.so 2. account include system-auth

上面的配置表示在ssh认证中启用该模板,pam_access.so模块的具体工作行为根据配置文件/etc/security/access.conf来决定。该配置文件涉及到的几个字段意义如下:

第一个字段:权限(permission),使用“+”表示授予权限,用“-”表示禁止权限。

第二个字段:用户(user),定义了用户、组以及用“@”表示的在不同主机上的同名用户和同一主机上不同名用户。

第三个字段:访问发起方(origins),定义了发起访问的主机名称、域名称、终端名称。

具体示例为:

1. #禁止非root用户通过tty1访问相关服务 2. #-:ALL EXCEPT root:tty1

3. #禁止除了wheel、shutdown以及sync之外的所有用户访问相关服务

4. #-:ALL EXCEPT wheel shutdown sync:LOCAL

5. #禁止wheel用户通过.win.tue.nl之外的其它它终端访问相关服务

6. #-:wheel:ALL EXCEPT LOCAL .win.tue.nl

7. # 禁止下面的用户从任何主机登录。其它用户可以从任意地方访问相关服务

8. #-:wsbscaro wstaiwde:ALL

wsbsecr wsbspac wsbsym wscosor

9. # root用户允许通过cron来使用tty1到tty6终端访问相关服务

10. 11. 12. 13. 14. 15. 16. 务

17. 18. 19. 20. 务

21. 22. 行访问

23. 24. 服务进行访问

25. 26. 27. 28. 29. 30.

#+ : john : ::ffff:127.0.0.0/127

# 用户john可以通过ipv6的地址访问本机相关服务 #+ : john : 2001:4ca0:0:101::1

# 用户john可以通过ipv6的主机IP地址来访问本机 #+ : john : 2001:4ca0:0:101:0:0:0:1

# 用户john可以通过ipv6的IP地址和掩码来访问相#+ : john : 127.0.0.0/24

# 用户john可以通过ipv4和ipv6的地址对本机相关#+ : @nis_group foo : ALL

# 用户john只能从127.0.0.0/24来对本机相关服务进#+ : root : .foo.bar.org

# 用户root不允许从任何主机访问相关服务 #- : root : ALL

# 用户@nis_group和foo可以从任何主机访问相关服#+ : root : cron crond :0 tty1 tty2 tty3 tty4 tty5 tty6 # 用户root允许从下面的地址访问相关服务 #+

:

root

:

192.168.200.1

192.168.200.4

192.168.200.9

#+ : root : 127.0.0.1

# 用户root可以从192.168.201.网段访问相关服务 #+ : root : 192.168.201.

# 用户root可以从.foo.bar.org中任何主机访问相关服

关服务

31. 32. 33.

#+ : john : 2001:4ca0:0:101::/

# 开放所有用户对本机所有相关服务的访问 #- : ALL : ALL

2、pam_listfile.so模块

pam_listfile.so模块的功能和pam_access.so模块类似,目标也是实现基于用户/组,主机名/IP,终端的访问控制。不过它实现的方式和pam_access.so会稍微有些不同,因为它没有专门的默认配置文件。访问控制是靠pam配置文件中的控制选项和一个自定义的配置文件来实现的。而且除了针对上述访问源的控制之外,还能够控制到ruser,rhost,所属用户组和登录shell。所以有些用户认为它的功能似乎比pam_access.so更加灵活和强大一些。

使用pam_listfile.so模块配置的格式分为五个部分:分别是item、sense、file、onerr以及apply。 其中:

• item=[tty|user|rhost|ruser|group|shell]:定义了对哪些列出

的目标或者条件采用规则,显然,这里可以指定多种不同的条件。

• onerr=succeed|fail:定义了当出现错误(比如无法打开配置文

件)时的缺省返回值。

• sense=allow|deny:定义了当在配置文件中找到符合条件的项

目时的控制方式。如果没有找到符合条件的项目,则一般验证都会通过。

• file=filename:用于指定配置文件的全路径名称。

• apply=user|@group:定义规则适用的用户类型(用户或者

组)。

而至于file文件的写法就简单了,每行一个用户或者组名称即可。 例如,ssh的拒绝和允许就有两种书写方式: /etc/pam.d/sshd文件中增加如下内容:

1. auth required pam_listfile.so item=user sense=allow file=/etc/sshusers onerr=fail

在/etc/sshusers文件中增加如下内容:

1. zhangsan 2. lisi

这就表示,只允许zhangsan、lisi两个人通过ssh登陆。当然也可以反其道而行之,指定不允许登陆的用户,相应用sshd文件就改为

1. auth required pam_listfile.so item=user sense=deny file=/etc/sshusers onerr=succeed

也可以以组的方式进行控制

1. auth required pam_listfile.so item=group sense=allow file=/etc/security/allow_groups onerr=fail

这就要在/etc/security/allow_groups文件中增加内容,如 1. root 2. zhangsan 3. lisi

总结:上面提到的两个pam模块,不但但用于sshd服务,对于其他调用pam模块的应用同样适用,如ftp。 二、sshd_config配置方式

在sshd_config中设置AllowUsers,格式如 1. AllowUsers a b c

重启sshd服务,则只有a、b、c 3个用户可以登陆。这种方式相对简单,不过可配置项较少,而且只适用于ssh服务。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务