【1】 LDAP简介

LDAP(Lightweight Directory Access Protocol) 代表轻量级目录访问协议

LDAP 是一种非关系型数据库

LDAP 可扩展性和灵活性良好 安装和配置简单

【2】 几个重要的概念

dn :    一条记录的位置

dc :    一条记录的所属区域

ou :    一条记录的所属组织

cn/uid: 一条记录的名字/ID

【3】 LDAP数据添充原理

把一个庞大的学生档案放到LDAP里 具体步骤:

1】 建立一个"dc=ourschool,dc=org“的树根" 通过编辑"slapd.conf"来实现

2】 建立18个系分别是

dnu=computer,dc=ourschool,dc=org

dnu=film,dc=ourschool,dc=org

...

3】 在每个系建立专业 如

dnu=Linux,ou=computer,dc=ourschool,dc=org

...

4】 加学生

dn:cn=xiaoming,ou=linux,ou=computer,dc=ourschool,dc=org

5】 学生的详细信息

dn:cn=xiaoming,ou=linux,ou=computer,dc=ourschool,dc=org

objectClass: organizationalPerson

cn:xiaoming

cn:小明

sn:小明

description:a good boy

(以上是一条记录的信息,如果把他保存成LDIF文件,可以导入到LDAP数据库中)

【4】 搭建LDAP认证服务器

1】 安装服务器软件

yum -y install openldap openldap-servers

2】 编译服务器端配置文件(acl 与ldap配合,实现访问控制)

vim /etc/openldap/slapd.conf

access to *

by * read

by * auth

access to *

by self write

database        bdb

suffix          "dc=example,dc=com"

rootdn          "cn=admin,dc=example,dc=com"

rootpw          123456

# Mode 700 recommended.  (默认LDAP存放数据的目录 权限:700)

directory    /var/lib/ldap

3】利用脚本创建OU,并初始化LDAPS

a】 vim /usr/usr/share/openldap/migration/migrate_common.ph

71:$DEFAULT_MAIL_DOMAIN = "example.com";

74:$DEFAULT_BASE = "dc=example,dc=com";

b】 /usr/share/openldap/migration/migrate_base.pl   > /tmp/example.ldif

c】 删掉 example.ldif 中多余的选项 (空行不能省略)

cat /tmp/example.ldif

dn: dc=example,dc=com

dc: example

objectClass: top

objectClass: domain

dn: ou=People,dc=example,dc=com

ou: People

objectClass: top

objectClass: organizationalUnit

dn: ou=Group,dc=example,dc=com

ou: Group

objectClass: top

objectClass: organizationalUnit

d】创建并初始化

slapadd -vl /tmp/example.ldif

生成信息:

bdb_db_open: Warning - No DB_CONFIG file found in directory

/var/lib/ldap: (2)

Expect poor performance for suffix dc=uplooking,dc=com.

added: "dc=example,dc=com" (00000001)

added: "ou=People,dc=example,dc=com" (00000002)

added: "ou=Group,dc=example,dc=com" (00000003)

e】 解决上步警告

cp /etc/openldap/DB_CONFIG.example  /var/lib/ldap/DB_CONFIG

4】 启动LDAP服务

a】 chown -R ldap  /var/lib/ldap

若不改权限 启动失败

b】 service ldap start

/etc/init.d/ldap start

c】 netstat -tunlp  | grep :389

验证 服务监听389端口

5】 安装图形管理程序 phpldapadmin

a】yum -y install httpd php php-ldap

b】 service httpd restart

c】 tar zxvf phpldapadmin-1.2.0.4.tgz -C /var/www/html/

d】 cd /var/www/html/phpldapadmin-1.2.0.4

e】 vim config/config.php.example config/config.php

f】 firefox http://localhost/phpldapadmin-1.2.0.4.tgz

g】 输入用户名 密码登录                  cn=admin,dc=example,dc=com

123456

6】 以上为LDAP服务器的通用配置

【5】 实现具体功能,用户的非本地验证登录

1】服务器端利用脚本创建用户文件,并用phpldapadmin导入

a】for i in {1..50};do useradd user$i ; echo user$i | passwd --stdin user$i;done

b】 grep ^user /etc/passwd > /tmp/user

grep ^user /etc/group  > /tmp/group

c】 /usr/share/openldap/migration/migrate_passwd.pl  /tmp/user  > /tmp/user.ldif

/usr/share/openldap/migration/migrate_group.pl  /tmp/group > /tmp/group.ldif

d】 for i in { 1..50 }; do userdel user$i ;done

e】 导入/tmp/user.ldif 和 /tmp/group.ldif

2】服务器端(192.168.1.221)利用nfs共享用户家目录

a】 vim /etc/exports

/home  *(rw,sync)

b】 service nfs restart

3】客户端配置网络验证

a】 authconfig-tui

选上使用ldap和使用ldap验证 配置ldap服务器

b】 grep ldap /etc/pam.d/system-auth

auth sufficient pam_ldap.so use_first_pass

account [default=bad success=ok user_unknown=ignore] pam_ldap.so

password sufficient pam_ldap.so use_authtok

session optional pam_ldap.so

以上是 system-auth文件多出来的内容

tail -n 3 /etc/openldap/ldap.conf

URI ldap://192.168.1.221/

BASE dc=example,dc=com

TLS_CACERTDIR /etc/openldap/cacerts

以上是openldap客户端配置文件 新增内容

c】 rpm -q openldap-clients

查看是否安装openldap客户端 若未安装,请安装

d】 配置触发挂载家目录

vim /etc/auto.master

/home /etc/auto.home

vim /etc/auto.home

*   -rw   192.168.1.221:/home/&

e】 service autofs restart

f】 测试成功

【6】 开启网络验证后,客户端登录时,优先使用本地/etc/passwd /etc/shadow文件验证,还是优先使用ldap

grep ldap /etc/nsswitch.conf -n

36:passwd: ldap files

37:shadow: ldap files

38:group: ldap files    由 36 37 38 三行的ldap与files顺序决定

linux程序网络验证,【redhat5.5】linux的LDAP认证服务器的配置及客户端pam网络验证实例...相关推荐

  1. 在linux挂载网络驱动器,利用centos 6.6 搭建iscsi服务器并在centos挂载iscsi网络驱动器...

    ################################################################## 搭建iscsi服务器: 参考自:http://www.linuxi ...

  2. win10上运行linux程序吗,Win10可以运行 Linux 的图形界面程序了

    Win10可以运行 Linux 的图形界面程序了 2016年04月13日 16:39作者:cnBeta编辑:李佳辉 分享 正如大家所知道的,大多数 Linux 上的命令行二进制程序现在可以原生地运行在 ...

  3. 服务器虚拟机配置串口连接到网络,vmware虚拟机配置串口

    Vmware提供了4种串行端口类型我们可以通过串口来进行一些研发和Vmware自动化的部署工作.VMware串行端口类型 1.使用主机上的物理串行端口 2.输出到文件 3.连接到命名管道 4.通过网络 ...

  4. linux程序防逆向,一个简单LINUX程序的逆向

    开始之前的准备: 反汇编:IDA 十六进制编辑器: Hexworkshop LINUX环境: KALI LINUX 调试: EDB (KALI自带的) 用16进制打开看看,前面有个明显的ELF标志 然 ...

  5. linux把硬盘当内存,把内存当硬盘使,让你的linux程序运转如飞(在linux下用firefox在线写csdn的blog再也不卡了)...

    先说一下核心的命令: mount -t tmpfs -o size=1024m tmpfs /mnt/ram 这个命令开了一块1G内存来当目录用.不过放心,如果里面没文件,是不会占用内存的,用多少占多 ...

  6. linux程序作为桌面壁纸,在Linux系统下安装壁纸程序Wonderwall,附主要功能介绍

    Wonderwall是一款酷炫的壁纸程序,可用在Linux系统的Unity和GNOME桌面环境中,我们可以通过在终端中使用snap来安装Wonderwall.Wonderwall的界面非常简单明了,使 ...

  7. 写入usb设备 linux 程序,模拟物理USB设备Linux

    最好的方法是使用Linux Gadget驱动程序和硬件,使您成为一个USB设备.小工具驱动程序允许计算机"假装"为任何类型的设备.然后,您的受测系统有一个USB OTG电缆连接到小 ...

  8. linux 程序更新使用U盘,linux下如何使用U盘?

    昨天花了整整一天才把linux搞定,今天兴致勃勃地要把U盘上的文件拷贝过去.因为听同事说可以像在windows下那样直接双击使用U盘,于是照做了,哪曾想等了半天愣是没反应,最后还是提示错误,看来情报有 ...

  9. linux程序崩溃时调用链,Linux 获取并分析程序崩溃时的调用堆栈

    下面是一个小例子,说明了程序出现段错误时,如何打印程序的堆栈信息. #include #include #include #include static void WidebrightSegvHand ...

最新文章

  1. 转:查看系统是64位还是32位
  2. Opencv学习笔记(六)SURF学习笔记
  3. java map 查找_在Java TreeMap中查找元素位置
  4. mysql mongodb qps_极高的QPS - DynamoDB与MongoDB相比其他noSQL?
  5. 基于句子嵌入的无监督文本摘要(附代码实现)
  6. mysql知识测试_MySQL基础知识测试
  7. Windows7无损分区
  8. linux杂七杂八整理
  9. php界面框架luy_LazyPHP
  10. flashback query闪回数据
  11. 跨进程API Hook
  12. k3系统 中间层服务器,金蝶k3中间层服务器如何设置
  13. solidity教程(一)搭建僵尸工厂
  14. Altium Designer 20的安装教程
  15. 软件测试 (5) 数据库语句
  16. 项目#npm install #cnpm install #yarn安装包报错
  17. P3435 [POI2006]OKR-Periods of Words [Kmp, next数组]
  18. apache默认端口号是多少
  19. PLSQL 14.0.6 下载使用教程
  20. 英语6级词汇量【原创】

热门文章

  1. Liunx CentOS6编译安装LAMP
  2. 精功科技押宝互联网服务业 盘古数据承诺未来业绩大逆转
  3. boost::asio::deadline_timer(理解)
  4. 新增的output元素 progress元素 meter元素 keygen元素
  5. 关于Lua打包cocos2d项目
  6. 练习(黄冈中学布局)
  7. 关于jdbc连接mysql的问题bug
  8. 《97年世界编程大赛一等奖作品》
  9. Linux 命令(96)—— ln 命令
  10. 认识 size_t 和指针类型的大小