访问控制大师,使用pam来支持login的访问控制
作者:宝贝缘缘儿 | 来源:互联网 | 2017-06-26 10:35
文章标题:访问控制大师,使用pam来支持login的访问控制。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
这里我们需要使用pam_access。pam_access是pam中处理用户访问控制的模块,没有使用pam前,linux对用户的所有访问控制都是借助hosts.allow, hosts.deny文件,实现所有服务的访问控制,再加上usertty就是对用户登陆控制(专门是针对login)。但是,随着pam的应用,usertty已经不再使用了,虽然login的man里还会提到。
现在我们看看如何利用pam_access对个别用户进行登陆访问控制(对所有使用login的都有效),首先,我们需要的是访问控制的配置文件,这个文件在/etc/security/access.conf。整个文件的格式都是: 权限:用户(可多个并用空格隔开):源访问点。下面对每个区域简单说明:
权限(permission) 这一位可以是+/-。其中+表示允许访问,-表示禁止访问;
用户(users) 这是指定用户名,用户组名或网络用户组名,指定的是多个要用空格隔开。对于指定网络用户组名时,网络用户组名应指定用户组所在的源访问点并用@和用户组名分开。除此以外,还可以用ALL指定所有的和EXCEPT指定特殊例外的用户。
源访问点(Origins) 这是指定用户域中原访问点。这里可指定用户访问的ttyname,hostname,domainname或ip。其中domainname是指以.开头的主机名,例如,.downsky.net就是指定downsky.net这个域。在这里可以使用ALL和EXCEPT的关键字,也也指定LOCAL。
下面我们看看一些例子,如果你先限制一些用户在某些主机的登陆权限,我们提供登陆服务的主机叫linux,下面我们看看access.conf的配置情况:
1. # access.conf file
2. -:ALL:.foo.com .hacker.org
3. -:ALL EXCEPT root: tty1
4. +:ALL EXCEPT root:192.168.1.
5. +:root user:.downsky.net
6. -:chase:192.168.2.
7. -:ALL:ALL
从以上的配置文件可以看到,第二行拒绝所有从域名.foo.com和.hacker.org的登陆访问;第三行拒绝除root以外的用户从控制台登录访问;第四行允许除root外所有的用户从192.168.1.的网段登录访问。第五行允许root和user用户组中的成员从downsky.net登录访问。第六行拒绝用户chase从192.168.2网段的登录访问,第七行拒绝其它的登录访问...
现在我们只要在/etc/pam.d/login的文件里加上下面一行
account required /lib/security/pam_access.so
就可以使login使用pam_access来对用户进行登陆访问控制了。整个login的文件如下
auth requisite /lib/security/pam_unix.so nullok #set_secrpc
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
#auth required /lib/security/pam_homecheck.so
auth required /lib/security/pam_env.so
auth required /lib/security/pam_mail.so
account required /lib/security/pam_unix.so
account required /lib/security/pam_access.so
password required /lib/security/pam_pwcheck.so nullok
password required /lib/security/pam_unix.so nullok use_first_pass use_authtok
session required /lib/security/pam_unix.so none # debug or trace
session required /lib/security/pam_limits.so
如果被拒绝的用户登陆本主机的话就会出现下面的输出结果
linux login: chase
Password:
Permission denied
Connection closed by foreign host.
我们还可以从/var/log/messages得到pam_access的日志,对应上面的情况我们从message得到如下的日志:
Apr 25 12:50:25 linux pam_access[13916]: access denied for user `chase' from `192.168.2.78'
Apr 25 12:50:25 linux login[13916]: Permission denied
推荐阅读
-
NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ...
[详细]
蜡笔小新 2024-12-18 18:23:35
-
本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ...
[详细]
蜡笔小新 2024-12-18 08:26:30
-
-
本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ...
[详细]
蜡笔小新 2024-12-17 19:02:43
-
转自:http:www.yybug.comread-htm-tid-15324.html为什么使用Twisted? 如果你并不准备使用Twisted,你可能有很多异议。为什么使用T ...
[详细]
蜡笔小新 2024-12-13 14:57:51
-
本文详细介绍了如何安装和配置 Consul 以支持服务注册与发现、健康检查等功能,包括单节点和集群环境的搭建步骤。 ...
[详细]
蜡笔小新 2024-12-13 09:10:57
-
本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ...
[详细]
蜡笔小新 2024-12-27 20:40:29
-
本文通过两个WinForms应用程序演示了如何使用RabbitMQ实现远程过程调用(RPC)。一个应用作为客户端发送请求,另一个应用作为服务端处理请求并返回响应。 ...
[详细]
蜡笔小新 2024-12-19 19:15:17
-
本文详细介绍了Spring Cloud在微服务架构和分布式系统中的应用,结合实际案例和最新技术,帮助读者全面掌握微服务的实现与优化。 ...
[详细]
蜡笔小新 2024-12-19 16:02:50
-
本文详细介绍了在Spring Boot应用中,如何通过`TomcatEmbeddedServletContainerFactory.setTomcatContextCustomizers()`方法来定制和配置嵌入式Tomcat服务器的上下文环境,包括具体的代码示例。 ...
[详细]
蜡笔小新 2024-12-19 10:57:57
-
多核处理器技术的显著进展可追溯至IBM于2001年推出的双核RISC处理器POWER4,标志着服务器处理器迈入多核时代。随后,HP和Sun等公司也纷纷加入这一行列,推动了多核处理器在不同领域的广泛应用。 ...
[详细]
蜡笔小新 2024-12-16 14:29:57
-
本文详细介绍了Python中struct模块的功能,以及如何利用格式化字符实现Python与C语言结构体之间的数据转换。文章通过具体实例讲解了struct模块的主要方法及其应用场景。 ...
[详细]
蜡笔小新 2024-12-15 21:02:49
-
本文作为前文关于OAuth2.0和使用.NET实现OAuth身份验证的补充,详细阐述了OAuth与JWT及OpenID Connect之间的关系和差异,旨在提供更全面的理解。 ...
[详细]
蜡笔小新 2024-12-14 18:34:43
-
本文在前文基础上,进一步探讨了如何利用Multi-Paxos算法解决一系列值的共识问题。文中不仅分析了Basic Paxos的局限性,还详细阐述了通过引入领导者节点优化Multi-Paxos算法的具体方法。 ...
[详细]
蜡笔小新 2024-12-13 16:50:26
-
Active Object设计模式通过引入代理(Proxy)和命令(Command)模式,实现了方法调用与执行的解耦,从而支持异步操作和提高系统的并发处理能力。本文将深入探讨Active Object模式的工作原理及其应用场景。 ...
[详细]
蜡笔小新 2024-12-13 14:00:10
-
本文介绍了 ScrapySharp 的基本使用方法,并深入解析了其中的 CssStyleCollection 类。通过 NuGet 包管理器安装 ScrapySharp 后,开发者可以利用其强大的网页抓取功能。文章转载自一位经验丰富的博主。 ...
[详细]
蜡笔小新 2024-12-11 18:43:41
-