OpenLDAP主机控制策略

阅读视图

  1. 参考
  2. 环境准备
  3. openldap服务端配置
  4. openldap客户端配置
  5. 客户端测试登录
  6. 故障处理

1. 参考

本文基本转载博客openldap主机访问控制(基于hostname)

该博主另一篇文档,还没测试openldap主机访问控制(基于ip)

2. 环境准备

因为本文与其他文档属性不冲突,所以完全可以使用以前的环境做实验。

3. openldap服务端配置

  1. 导入ldapns.schema方案,(hostObject类属性)

    https://github.com/openldap/openldap/blob/master/contrib/slapd-modules/nssov/ldapns.schema

    cat > /etc/openldap/schema/ldapns.schema << _EOF_
    # $OpenLDAP$
    # $Id: ldapns.schema,v 1.3 2009-10-01 19:17:20 tedcheng Exp $
    # LDAP Name Service Additional Schema
    # http://www.iana.org/assignments/gssapi-service-names #
    # Not part of the distribution: this is a workaround!
    # attributetype ( 1.3.6.1.4.1.5322.17.2.1 NAME 'authorizedService'
    DESC 'IANA GSS-API authorized service name'
    EQUALITY caseIgnoreMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) attributetype ( 1.3.6.1.4.1.5322.17.2.2 NAME 'loginStatus'
    DESC 'Currently logged in sessions for a user'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    ORDERING caseIgnoreOrderingMatch
    SYNTAX OMsDirectoryString ) objectclass ( 1.3.6.1.4.1.5322.17.1.1 NAME 'authorizedServiceObject'
    DESC 'Auxiliary object class for adding authorizedService attribute'
    SUP top
    AUXILIARY
    MAY authorizedService ) objectclass ( 1.3.6.1.4.1.5322.17.1.2 NAME 'hostObject'
    DESC 'Auxiliary object class for adding host attribute'
    SUP top
    AUXILIARY
    MAY host ) objectclass ( 1.3.6.1.4.1.5322.17.1.3 NAME 'loginStatusObject'
    DESC 'Auxiliary object class for login status attribute'
    SUP top
    AUXILIARY
    MAY loginStatus )
    _EOF_

    复制到/etc/openldap/schema/ldapns.schema

  2. 配置slapd.conf配置文件

    include         /etc/openldap/schema/ldapns.schema
    include /etc/openldap/schema/dyngroup.schema modulepath /usr/lib64/openldap
    moduleload dynlist.la overlay dynlist
    dynlist-attrset inetOrgPerson labeledURI
    rm -rf /etc/openldap/slapd.d/*
    slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
    chown -R ldap:ldap /etc/openldap/slapd.d
    systemctl restart slapd
  3. 验证服务端是否正常加载

  4. 定义主机列表组

    cat << _EOF_ | ldapadd -x -W -H ldapi:/// -D cn=Manager,dc=gdy,dc=com
    dn: ou=servers,dc=gdy,dc=com
    objectClass: organizationalUnit
    ou: servers dn: ou=apphost,ou=servers,dc=gdy,dc=com
    objectClass: organizationalUnit
    objectClass: hostObject
    ou: apphost
    host: test01.gdy.com dn: ou=dbhost,ou=servers,dc=gdy,dc=com
    objectClass: organizationalUnit
    objectClass: hostObject
    ou: dbhost
    host: test02.gdy.com
    _EOF_
  5. 定义用户

    cat << _EOF_ | ldapadd -x -W -H ldapi:/// -D cn=Manager,dc=gdy,dc=com
    dn: uid=lisi,ou=people,dc=gdy,dc=com
    objectClass: posixAccount
    objectClass: shadowAccount
    objectClass: person
    objectClass: inetOrgPerson
    objectClass: hostObject
    cn: lisi
    sn: lisi
    uid: lisi
    userPassword: {CRYPT}$6$AgFUbww9$Pa70MIDhUT2z3.Sg83VRnWnaDRubTHJsSxYMzbD3LQlMmXX0VeqHRHd2usrJbId.oFOeoMKi3GC60qjIHUKqK.
    uidNumber: 10006
    gidNumber: 10010
    gecos: App Manager
    homeDirectory: /home/lisi
    loginShell: /bin/bash
    shadowLastChange: 15000
    shadowMin: 0
    shadowMax: 999999
    shadowWarning: 7
    shadowExpire: -1
    mobile: 13900001001
    mail: lisi@gdy.com
    labeledURI: ldap:///ou=apphost,ou=servers,dc=gdy,dc=com?host
    _EOF_
    cat << _EOF_ | ldapadd -x -W -H ldapi:/// -D cn=Manager,dc=gdy,dc=com
    dn: uid=zhangsan,ou=people,dc=gdy,dc=com
    objectClass: posixAccount
    objectClass: shadowAccount
    objectClass: person
    objectClass: inetOrgPerson
    objectClass: hostObject
    cn: zhangsan
    sn: zhangsan
    uid: zhangsan
    userPassword: {CRYPT}$6$0hM3RIS/$omCj0x/ggD.zy3pNNjVo80nhiYHbUvdQaBKsawBBTQ/r/KY2PD77NHDqEPgzZ1Wz2/ZiL./pL65BuNyZ1SHC41
    uidNumber: 10007
    gidNumber: 10011
    gecos: opteam
    homeDirectory: /home/zhangsan
    loginShell: /bin/bash
    shadowLastChange: 15000
    shadowMin: 0
    shadowMax: 999999
    shadowWarning: 7
    shadowExpire: -1
    mobile: 13900001002
    mail: zhangsan@gdy.com
    labeledURI: ldap:///ou=devhost,ou=servers,dc=gdy,dc=com?host
    _EOF_

4. openldap客户端配置

  1. 定义FQDN解析, 已测试过如果不定义会登录不成功

    cat >> /etc/hosts << EOF
    192.168.244.17 mldap01.gdy.com mldap01
    192.168.244.18 test01.gdy.com test01
  2. pam_ldap.conf参数规划

    cat >> /etc/pam_ldap.conf  << EOF
    pam_check_host_attr yes
    EOF

5. 客户端测试登录

  1. 正确实例

    [root@test01 ~]# ssh lisi@127.0.0.1
    lisi@127.0.0.1's password:
    Last login: Fri Jun 1 16:24:12 2018 from localhost
    [lisi@test01 ~]$ hostname
    test01.gdy.com
  2. 失败实例

    [root@test01 ~]# ssh zhangsan@127.0.0.1
    zhangsan@127.0.0.1's password:
    Access denied for this host
    Connection closed by 127.0.0.1
  3. 如果用户没有配置好登录属性,服务器基本就全部登录不了。

6. 故障处理

  1. PS1变量失效,错误如下

    [root@test01 home]# ssh lisi@127.0.0.1
    lisi@127.0.0.1's password:
    Permission denied, please try again.
    lisi@127.0.0.1's password:
    Last login: Fri Jun 1 14:10:53 2018 from localhost
    -sh-4.1$ # 发现显示不正常

    解决方法:重新配置了一遍,发现loginShell忘记定义或者定义有问题导致loginShell属性不存在。所以会产生如上bug。

08-OpenLDAP主机控制策略的更多相关文章

  1. openldap主机访问控制(基于hostname)

    http://mayiwei.com/2013/03/21/centos6-openldap/ http://www.zytrax.com/books/ldap/ch11/dynamic.html h ...

  2. openldap主机访问控制(基于用户组)

    建立组织单元 cat << _EOF_ | ldapadd -x -W -H ldaps://master.local -D cn=manager,dc=suntv,dc=tv dn: o ...

  3. openldap主机访问控制(基于ip)

    http://blog.oddbit.com/2013/07/22/generating-a-membero/ http://gsr-linux.blogspot.jp/2011/01/howto-o ...

  4. OpenLDAP 搭建入门

    系统环境:CentOS 7 slapd版本:2.4.44 简介 OpenLDAP是一款轻量级目录访问协议,基于X.500标准的,支持TCP/IP协议,用于实现账号集中管理的开源软件,提供一整套安全的账 ...

  5. openldap系列

    openldap系列 阅读视图 系列介绍 openldap系列目录 1. 系列介绍 本系列文档大部分来自于郭大勇老师的<OpenLDAP实战指南>,少部分来自于互联网.所有文档均已经过本人 ...

  6. OpenLdap 对接内部系统(Gitlab+Wiki+Jumpserver+Openvpn)配置

    LDAP 全称轻量级目录访问协议(英文:Lightweight Directory Access Protocol),是一个运行在 TCP/IP 上的目录访问协议.目录是一个特殊的数据库,它的数据经常 ...

  7. Cloudera Hadoop 5& Hadoop高阶管理及调优课程(CDH5,Hadoop2.0,HA,安全,管理,调优)

    1.课程环境 本课程涉及的技术产品及相关版本: 技术 版本 Linux CentOS 6.5 Java 1.7 Hadoop2.0 2.6.0 Hadoop1.0 1.2.1 Zookeeper 3. ...

  8. Centos6 yum安装openldap+phpldapadmin+TLS+双主配置

    原文地址:http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%8 ...

  9. SELINUX、Security Access Control Strategy && Method And Technology Research - 安全访问控制策略及其方法技术研究

    catalog . 引言 . 访问控制策略 . 访问控制方法.实现技术 . SELINUX 0. 引言 访问控制是网络安全防范和客户端安全防御的主要策略,它的主要任务是保证资源不被非法使用.保证网络/ ...

随机推荐

  1. Python函数——闭包延迟绑定

    前言 请看下面代码 def multipliers(): return [lambda x : i*x for i in range(4)] print ([m(2) for m in multipl ...

  2. RocketMQ 集群监控以及Hello World

    RocketMQ 目前有两个版本  alibaba版本和apache版本 一.alibaba版本 tomcat部署: apache-tomcat-7.0.90.tar.gz jdk7 虚拟机redha ...

  3. SpringBoot一站式启动流程源码分析

    一.前言 由上篇文章我们得知,SpringBoot启动时,就是有很简单的一行代码.那我们可以很清楚的看到这行代码的主角便是SpringApplication了,本文我们就来聊一聊这货,来探寻Sprin ...

  4. Nunit测试工具使用

    Nunit是什么 Nunit是一种TDD工具,和Junit一样的! 怎么样获取Nunit 打开Visual Studio工具,然后在菜单栏中的工具->扩展管理器中的联机库中搜索"nun ...

  5. BizTalk 2010/2013 EDI B2B项目实践(1)

    BizTalk 2010/2013 EDI B2B项目实践(1) BizTalk开发标准EDI B2B是件非常容易的事情,但对于初学者可能有很多专业术语不太理解,不知道如何下手,我之前开始学的时候虽然 ...

  6. [APC001] D Forest

    Description 给定\(n\)个点\(m\)条边组成的森林,每个点有权值\(a_i\).现在需要将森林连成一棵树,选择两个点\(i,j\)连边的代价是\(a_i+a_j\),每个点最多被选择连 ...

  7. 数据库MongoDB

    一.MongoDB简介 MongoDB是由c++语言编写的,是一个基于分布式文件存储的开源数据库系统,在高负载的情况下,添加更多的节点,可以保证服务器性能.MongoDB旨在为web应用提供扩展的高性 ...

  8. [转]Material使用08 MdDialogModule、MdAutocompleteModule

    本文转自:https://www.cnblogs.com/NeverCtrl-C/p/8125346.html 1 MatDialog 1.1 简要描述 MdDialog是一个服务,可以利用它来打开一 ...

  9. Bootstrap学习记录-3.Badge、Breadcrumb、Buttons、 Button Group、Card、Carousel

    1. Badge Badge作为数值标记组件,它能作为链接或按钮的一部分来提供计数作用,而且它通过使用相对字体大小来适应父级元素的大小.它的最基本的修饰符为.badge .badge-*. <b ...

  10. MySQL学习(三) SQL基础查询

    其实在数据库最经常用的当属查询操作 基本语法 SELECT [ALL | DISTINCT | DISTINCTROW ] 字段列表 AS 字段别名 [FROM 表名 WHERE 条件表示式 GROU ...