centos6.5部署openldap信息存储主机快速登录

本文系统:Centos6.5_x64

ip:192.168.28.139

客户端:192.168.28.141

一、ldap的部署、用户信息的存储

二、利用ldap数据库用户登录其他主机

三、快速登录主机(无需输入密码)

推荐大家可以先了解下AD域的结构,一些概念性的东西,比如树、林、组织单位、资源等

openldap 可以看作是nis的升级,把他想象成资料库的一种就好了

一、ldap的部署、用户信息的存储

1、安装openldap

[[email protected] ~]# yum install openldap openldap-devel openldap-servers openldap-clients -y

2、配置文件模版

[[email protected] ~]# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

修改配置文件

[[email protected] ~]# vim /etc/openldap/slapd.conf
26 pidfile         /var/run/openldap/slapd.pid
27 argsfile        /var/run/openldap/slapd.args
28 loglevel        1
115 suffix          "dc=lansgg,dc=com"
117 rootdn          "cn=admin,dc=lansgg,dc=com"
121 rootpw          adminpw

这里管理员的密码使用了明文,也可以使用加密形式,方法如下:

[[email protected] ~]# slappasswd 
New password: 
Re-enter new password: 
{SSHA}7EJGErpaeX3Zd6rxfxVzNVwSm2UC1e/T

将密文串替换成adminpw即可;

你也可以指定加密方式:

[[email protected] ~]# slappasswd -h {md5}
New password: 
Re-enter new password: 
{MD5}cOdqFdoA5jAa3nGMyUFveQ==

loglevel表示日志级别:这里为1,表示所有日志;一般正式环境配置256即可

-1 记录所有的信息
0 不记录debug
1 跟踪功能调用的信息
2 包处理的debug信息
4 丰富的debug信息
8 连接管理信息
16 包的收发信息
32 搜索过滤的处理过程
64 配置文件的处理过程
128 访问控制列表处理过程
256 连接、操作及其结果的统计数据
512 向客户端返回的结果的统计信息
1024 与shell后端的通信信息
2048 显示记录条目的分析信息
4096 数据库缓存处理信息
8192 数据库索引
16384 从服务器数据同步资源消耗处理信息

配置ldap日志输出

[[email protected] ~]# vim /etc/rsyslog.conf
## ldap
local4.*                                                /var/log/ldap.log
[[email protected] ~]# /etc/init.d/rsyslog restart
[[email protected] ~]# /etc/init.d/slapd start
正在启动 slapd:                                           [确定]
[[email protected] ~]# netstat -natpul |grep slapd
tcp        0      0 0.0.0.0:389                 0.0.0.0:*                   LISTEN      53482/slapd         
tcp        0      0 :::389                      :::*                        LISTEN      53482/slapd

拷贝数据文件

[[email protected] openldap]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[[email protected] ~]# chown ldap:ldap /var/lib/ldap/DB_CONFIG
[[email protected] openldap]# /etc/init.d/slapd restart

推荐步骤:

[[email protected] ~]# rm /etc/openldap/slapd.d/*
/etc/init.d/slapd restart

没有这步,当下面导入数据的时候会报错,(49)

测试下配置

[[email protected] openldap]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded

3、数据录入

服务器正常运作后,就可以录入信息了。信息的录入有三种方法,一种是手工录入,一种是.ldif文件格式录入,一种是脚本自动录入。

1>、手动录入:

建立DN:( Distinguished Name,每个叶子结点到根的路径就是DN)

[[email protected] openldap]# ldapadd -x -D ‘cn=admin,dc=lansgg,dc=com‘ -W
Enter LDAP Password: 
dn: dc=lansgg,dc=com
objectClass: dcObject
objectClass: organization
dc: lansgg
o: Corporation
description: d Corporation
adding new entry "dc=lansgg,dc=com"      #结束以ctrl+d

建立RDN:(Relative Distinguished Name,叶子结点本身的名字是RDN)

[[email protected] openldap]# ldapadd -x -D ‘cn=admin,dc=lansgg,dc=com‘ -W
Enter LDAP Password: 
dn: uid=qq,dc=lansgg,dc=com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: qq
cn: qq
sn: qq
telephoneNumber: 138888888
description: openldap test
telexNumber: tex-8888888
street: my street
postOfficeBox: postofficebox
displayName: qqdisplay
homePhone: home1111111
mobile: mobile99999
mail:[email protected]
adding new entry "uid=qq,dc=lansgg,dc=com"

手动已经录入,进行查看:

[[email protected] ~]# ldapsearch -x -b ‘dc=lansgg,dc=com‘ |more
# extended LDIF
#
# LDAPv3
# base <dc=lansgg,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# lansgg.com
dn: dc=lansgg,dc=com
objectClass: dcObject
objectClass: organization
dc: lansgg
o: Corporation
description: d Corporation

# qq, lansgg.com
dn: uid=qq,dc=lansgg,dc=com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: qq
cn: qq
sn: qq
telephoneNumber: 138888888
description: openldap test
telexNumber: tex-8888888
street: my street
postOfficeBox: postofficebox
displayName: qqdisplay
homePhone: home1111111
mobile: mobile99999
mail: [email protected]

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries:

2>、文件方式:

这里将系统帐号导出成ldif文件形式,使用MigrationTools工具

The MigrationTools are a set of Perl scripts for migrating users,
groups, aliases, hosts, netgroups, networks, protocols, RPCs, and
services from existing nameservices (flat files, NIS, and NetInfo) to
LDAP.

yum -y install migrationtools
cd /usr/share/migrationtools/
[[email protected] migrationtools]# vim migrate_common.ph
 70 # Default DNS domain
 71 $DEFAULT_MAIL_DOMAIN = "lansgg.com";
 72 
 73 # Default base 
 74 $DEFAULT_BASE = "dc=lansgg,dc=com";

导出:

 ./migrate_base.pl > /tmp/base.ldif
 ./migrate_passwd.pl /etc/passwd > /etc/passwd.ldif
 ./migrate_group.pl /etc/group > /etc/group.ldif

ldif文件导入ldap:

ldapadd -x -w adminpw -D ‘cn=admin,dc=lansgg,dc=com‘ -f /tmp/base.ldif 
ldapadd -x -w adminpw -D ‘cn=admin,dc=lansgg,dc=com‘ -f /tmp/passwd.ldif 
ldapadd -x -w adminpw -D ‘cn=admin,dc=lansgg,dc=com‘ -f /tmp/group.ldif

查看导入的数据:

[[email protected] ~]# ldapsearch -x -b ‘dc=lansgg,dc=com‘

二、利用ldap数据库用户登录其他主机

意思就是客户端的登录帐号存储于ldap Server端;

客户端:  安装ldap客户端

[[email protected] ~]# yum -y install openldap openldap-clients nss-pam-ldapd pam_ldap

增加BIND策略,避免LDAP无法连接时无法开机

echo "bind_policy soft" >> /etc/openldap/ldap.conf

自动建立主目录:

PAM提供了一个pam_mkhomedir.so的模块,当执行这个模块时,它会检查PAM客户端用户的主目录是否存在,如果不存在则自动建立。

修改/etc/pam.d/login,在pam_selinux.so下面添加一行。

session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0022

该方法特别适合使用网络账号的服务器,如使用NIS,LDAP等的域账号

也有人是这么写的:echo "session required pam_mkhomedir.so skel=/etc/skel umask=0077" >> /etc/pam.d/system-auth

客户端认证设置:

1.交互式配置:

authconfig-tui

2.命令行配置:

示例:authconfig --enablemkhomedir --disableldaptls --enableldap
--enableldapauth
--ldapserver=ldap://192.168.28.139,ldap://10.84.126.150,ldap://192.168.200.10
--ldapbasedn="ou=Common Linux servers,dc=lansgg,dc=org"  --update

这里配置为:

[[email protected] pam.d]# authconfig --enableldap --enableldapauth --enablemkhomedir --enableforcelegacy --disablesssd --disablesssdauth --ldapserver=192.168.28.139 --ldapbasedn="dc=lansgg,dc=com" --update 
正在启动 nslcd:                                           [确定]
正在启动 oddjobd:                                         [确定]
[[email protected] pam.d]#

在服务端新增个测试帐号:

useradd tom
echo "tom" |passwd --stdin tom

然后导出,截取出刚新增的帐号信息,编辑为新的ldif文件,我的个人、组信息分别截取到c.ldif,g.ldif;然后导入(我个人是这样的,省的写ldif文件)

/usr/share/migrationtools/migrate_passwd.pl /etc/passwd > /tmp/mod.ldif
/usr/share/migrationtools/migrate_group.pl /etc/group -f gol.ldif

这是我截取的tom帐号信息

[[email protected] ~]# cat c.ldif 
dn: uid=tom,ou=People,dc=lansgg,dc=com
uid: tom
cn: tom
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$6$SeOQGWMf$/4Zw96.1qB20Mx1xY2693u7.ct9ThfA5NdEaghtohy4ibaomKBisivPeT02sNR0LRnn6BmBPF8N06I/V8mnPk.
shadowLastChange: 16307
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 502
gidNumber: 502
homeDirectory: /home/tom
[[email protected] ~]# cat g.ldif 
dn: cn=tom,ou=Group,dc=lansgg,dc=com
objectClass: posixGroup
objectClass: top
cn: tom
userPassword: {crypt}x
gidNumber: 502

进行导入:

[[email protected] ~]# ldapadd -x -D "cn=admin,dc=lansgg,dc=com" -w adminpw -f c.ldif 
[[email protected] ~]# ldapadd -x -w adminpw -D ‘cn=admin,dc=lansgg,dc=com‘ -f g.ldif 
adding new entry "cn=tom,ou=Group,dc=lansgg,dc=com

在服务器使用tom登录客户端(客户端是没有这个帐号的)

[[email protected] ~]# ssh [email protected]
reverse mapping checking getaddrinfo for bogon [192.168.28.143] failed - POSSIBLE BREAK-IN ATTEMPT!
[email protected]‘s password: 
Last login: Sat Aug 23 22:58:17 2014 from 192.168.28.139

可以看到正确登录(需要输入密码)

三、快速登录主机(无需输入密码)

cp /usr/share/doc/sudo-1.8.6p3/schema.OpenLDAP /etc/openldap/schema/sudo.schema
vim /etc/openldap/slapd.conf
18 include         /etc/openldap/schema/sudo.schema
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/*
/etc/init.d/slapd restart

编辑sudo权限的ldif文件

[[email protected] ~]# vim sudo.ldif

dn: ou=sudoers,dc=lansgg,dc=com
objectClass: top
objectClass: organizationalUnit
ou: sudoers

dn: cn=defaults,ou=sudoers,dc=lansgg,dc=com
objectClass: top
objectClass: sudoRole
cn: defaults
sudoOption: !visiblepw
sudoOption: always_set_home
sudoOption: env_reset
sudoOption: requiretty

dn: cn=tom,ou=sudoers,dc=lansgg,dc=com
objectClass: top
objectClass: sudoRole
cn: tom
sudoCommand: ALL
sudoHost: ALL
sudoOption: !authenticate
sudoRunAsUser: ALL
sudoUser: tom

导入:

[[email protected] ~]# ldapadd -x -w adminpw -D "cn=admin,dc=lansgg,dc=com" -f sudo.ldif 
adding new entry "ou=sudoers,dc=lansgg,dc=com"

adding new entry "cn=defaults,ou=sudoers,dc=lansgg,dc=com"

adding new entry "cn=tom,ou=sudoers,dc=lansgg,dc=com"

客户端编辑:

Nsswitch.conf文件通常控制着用户(在passwd中)、口令(在shadow中)、主机IP和组信息(在group中)的搜索。下面的列表描述了nsswitch.conf文件控制搜索的大多数信息(Info项)的类型。

 vim /etc/sudo-ldap.conf
 55 #uri ldap://ldapserver
 56 uri ldap://192.168.28.139
 63 #sudoers_base ou=SUDOers,dc=example,dc=com
 64 sudoers_base ou=sudoers,dc=lansgg,dc=com
 vim /etc/nsswitch.conf 
 64 sudoers: ldap files

服务器测试:登录客户端,然后成功sudo (无需密码)

[[email protected] ~]# ssh [email protected]
reverse mapping checking getaddrinfo for bogon [192.168.28.143] failed - POSSIBLE BREAK-IN ATTEMPT!
[email protected]‘s password: 
Last login: Sat Aug 23 23:15:27 2014 from 192.168.28.150
[[email protected] ~]$ sudo su
[[email protected] tom]#

测试成功~

管理工具也有很多,比如ldapadmin

时间: 2024-08-05 03:06:47

centos6.5部署openldap信息存储主机快速登录的相关文章

Centos6.5部署openvpn账号密码方式登录

server端(路由模式): 一.网络设置 1.开启服务器端路由转发功能 # vi /etc/sysctl.conf net.ipv4.ip_forward = 1 # sysctl -p 2.设置nat转发: 注:保证VPN地址池可路由出外网 # iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERAD 3.时间同步: # ntpdate asia.pool.ntp.org 二.安装依赖库 # yum install

linux基于wdcp傻瓜式安装搭建discuz,Centos6.5 部署安装XAMPP1.8.3

一.搭建环境 CentOS_6.5 + wdcp(通过web管理和控制linux服务器) + Discuz_3.2 二.关于wdcp 它是一套通过WEB控制和管理服务器的Linux服务器管理系统以及虚拟主机管理系统,旨在使用Linux系统做为我们的网站服务器系统,以及平时对Linux服务器的常用管理操作均可在wdcp的后台里操作完成.重点是它有个'一键安装包',能一键式的快速替你把lamp.lnmp.lnamp的环境搭起来. 三.搭建步骤 本人网盘分享:http://yunpan.cn/cVdV

CentOS6.5部署KVM及实现在线迁移

CentOS6.5部署KVM及实现在线迁移 一.前言 虚拟化技术已经成为未来计算机技术的一个重要的发展方向.Linux在虚拟化方面已经有了很多种解决方案:VMware.VirtualBox.Xen和KVM!现在给大家分享下本人在KVM里遇到坑及解决方法.大牛们别喷..... KVM简介 KVM是一个全虚拟化的解决方案.可以在x86架构的计算机上实现虚拟化功能.但KVM需要CPU中虚拟化功能的支持,只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD

Lamp部署于三台主机中

本次试验的目的主要是搭建LAMP部署于三台主机中:一台部署Http的,一台部署php-fpm,一台部署MariaDB..部署前准备好三台主机.     客户端发送请求过程:         当客户端发送静态资源请求时,httpd会自行处理.当客户端发送动态资源的请求时.httpd将自己作为反向代理,将请求发送给php-fpm主机,让其进行处理,当请求发送给php-fpm时,如果需要使用导数据时,通过mysql启动(php-mysql)时其与MariaDB通信:当然事先要授权远程登录才行. 一.部

CentOS6.8 部署Tomcat+jenkins+git+maven 持续集成

CentOS6.8 部署Tomcat+jenkins+git+maven 持续集成 一.环境介绍: 1.操作系统:CentOS 6.8  IP:192.168.1.100 2.JDK版本:jdk1.8.0_101 3.Tomcat版本:tomcat-9.0.0.M21 4.jenkins版本: Jenkins ver. 2.46.3 5.git版本:git version 2.9.4 6.maven版本:3.5.0 二.环境部署 1.下载所需软件包 # mkdir /tmp/soft ; cd

CentOS6.6部署OpenStack Havana(Nova-Network版)

CentOS6.4部署OpenStack Havana(Nova-Network版) 一 基本设备介绍 测试环境 CentOS6.4 x64 OpenStack 服务 介绍 计算 (Compute) - Nova: 网络和地址管理 - Neutron: 对象存储 (Object) - Swift: 块存储 (Block) - Cinder: 身份 (Identity) - keystone: 镜像 (Image) - Glance: UI 界面 (Dashboard) - Horizon: 测量

蜂巢之Iaas云主机快速启动的优化

蜂巢之Iaas云主机快速启动的优化 ??使用过Linux的,不使用桌面的技(无)术(限)大(装)拿(X)的筒子们大概都有经验,电脑的操作启动时间是速度很快的,往往都是在几秒级别完成.但是在同样没有桌面的云主机启动经常给我们的却不是这样一个感觉,特别是在第一次创建的过程中,总是发现启动过程需要10s+的时间,于是就想,能不能也加速一把,享受秒级别的云主机启动的畅快体验. ??PS:目前我们所使用的蜂巢容器是在虚拟机内部进行启动的,云主机的启动速度也是影响蜂巢容器快速启动的一个重要部分. 1. 首先

Centos6服务器部署JavaWeb项目(tomcat6+jdk6)

本博客介绍腾讯云服务器的Centos6系统部署JavaEE项目 安装Tomcat6 yum -y install tomcat6 tomcat6-webapps tomcat6-admin-webapps tomcat6-docs-webapp tomcat6-javadoc 安装Mysql,安装过程会有设置密码的提示,注意记住密码 yum -y install mysql mysql-server mysql-connector-odbc mysql-devel libdbi-dbd-mysq

快速登录与普通登录方式切换

$(function(){ <!--普通登录方式跟快捷登录方式切换--> var phone_login_text = "手机快速登录"; $(".tcy_login .t_l_ways .login_way").click(function(){ if($(this).text() == phone_login_text){ $(".tcy_login .t_l_form .common_login").hide(); $(&quo