热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

访问控制大师,使用pam来支持login的访问控制

这里我们需要使用pam_access。pam_access是pam中处理用户访问控制的模块,没有使用pam前,linux对用户的所有访问控制都是借助hosts.allow,hosts.deny文件,实现所有服务的访问控制,再加上usertty就是对用户登陆控制(专门是针对login)。但是

这里我们需要 使用 pam_access。pam_access是pam中处理用户 访问 控制 的模块,没有 使用 pam前,linux对用户的所有 访问 控制 都是借助hosts.allow, hosts.deny文件,实现所有服务的 访问 控制 ,再加上usertty就是对用户登陆 控制 (专门是针对login)。但是


  这里我们需要使用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
  
 
推荐阅读
  • 本文通过基准测试(Benchmark)对.NET Core环境下Thrift和HTTP客户端的微服务通信性能进行对比分析。基准测试是一种评估系统或组件性能的方法,通过运行一系列标准化的测试来衡量其表现。 ... [详细]
  • 深入解析Pod中的容器关系
    容器之间的紧密协作如何实现?本文探讨了Kubernetes中Pod的概念及其在处理容器间超亲密关系中的作用。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 本文介绍了如何在Delphi中使用剪切板类TClipboard进行文本的复制和粘贴操作,包括AsText属性、SetTextBuf方法和GetTextBuf方法的具体使用。 ... [详细]
  • 微服务优雅上下线的最佳实践
    本文介绍了微服务上下线的正确姿势,避免使用 kill -9 等粗暴手段,确保服务的稳定性和可靠性。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • Hyperledger Fabric 1.4 节点 SDK 快速入门指南
    本文将详细介绍如何利用 Hyperledger Fabric 1.4 的 Node.js SDK 开发应用程序。通过最新版本的 Fabric Node.js SDK,开发者可以更高效地构建和部署基于区块链的应用,实现数据的安全共享和交易处理。文章将涵盖环境配置、SDK 安装、示例代码以及常见问题的解决方法,帮助读者快速上手并掌握核心功能。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • Apache Hadoop HDFS QJournalProtocol 中 getJournalCTime 方法的应用与代码实例分析 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • (1)前期知识:1. 单机架构:单一服务器计算机——其处理能力和存储容量有限。2. 集群架构(负载均衡器与多节点服务器)——通过增加节点数量来提升系统性能和可靠性,实现高效的任务分配和资源利用。 ... [详细]
  • 本文全面解析了 gRPC 的基础知识与高级应用,从 helloworld.proto 文件入手,详细阐述了如何定义服务接口。例如,`Greeter` 服务中的 `SayHello` 方法,该方法在客户端和服务器端的消息交互中起到了关键作用。通过实例代码,读者可以深入了解 gRPC 的工作原理及其在实际项目中的应用。 ... [详细]
author-avatar
Joql
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有