写在前面

本文主要介绍如何通过使用OpenLDAP进行Linux的登录验证, 纯干货

本文环境

  • Centos 7.5
  • OpenLdap 2.4.44

部署

安装环境

openldap 安装见Linux统一登录认证之 — OpenLDAP服务部署
安装相关依赖包

yum install pam_ldap nss-pam-ldapd -y
yum install -y oddjob-mkhomedir oddjob

修改配置文件

以下是需要修改的几个配置 文件, LDAP相关修改部分已注释标明

vim /etc/openldap/ldap.conf

#
# LDAP Defaults
## See ldap.conf(5) for details
# This file should be world readable but not world writable.#BASE   dc=example,dc=com
BASE    dc=awuwuwu,dc=com # 修改为服务端之前定义的组织名称
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666
URI     ldap://127.0.0.1:389/ # 修改为服务端的ip地址#SIZELIMIT   12
#TIMELIMIT  15
#DEREF      neverTLS_CACERTDIR  /etc/openldap/certs
pam_password md5
ssl no# Turning this off breaks GSSAPI used with krb5 when rdns = false
SASL_NOCANON    on

vim /etc/nsswitch.conf

# ... 省略 ... 配置部分如下
passwd:     files ldap
shadow:     files ldap
group:      files ldap
# 在此三项后面添加 ldap 即可
# ... 省略 ...

vim /etc/pam.d/system-auth

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so
auth        sufficient    pam_ldap.so  # LDAP认证account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so # LDAP认证password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so
password    sufficient    pam_ldap.so use_authtok # LDAP认证session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     optional      pam_mkhomedir.so skel=/etc/skel/ umask=0077 # 设置home目录权限-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     optional      pam_ldap.so # LDAP认证
session     required      pam_unix.so

vim /etc/nslcd.conf

# ... 省略 ... 配置部分如下uri ldap://127.0.0.1/ base dc=awuwuwu,dc=com ssl no
tls_cacertdir /etc/openldap/cacerts # ... 省略 ...

vim /etc/ssh/sshd_config

# ... 省略 ...
UsePAM yes # 其他默认不变即可
# ... 省略 ...

vim /etc/pam.d/password-auth

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        sufficient    pam_ldap.so use_first_pass # LDAP配置
auth        required      pam_deny.soaccount     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so #LDAP配置
account     required      pam_permit.sopassword    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_ldap.so use_authtok # LDAP配置password    required      pam_deny.sosession     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_ldap.so # LDAP配置

vim /etc/pam.d/sshd

#%PAM-1.0
auth       required pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare
session    required     pam_mkhomedir.so # LDAP创建home目录

启动服务

启动服务,并设置自启动

systemctl restart nslcd
systemctl restart sshdservice messagebus start
service oddjobd start

验证

登录用户验证

[root@testnode01 ~]# su ada
[ada@testnode01 root]$ cd ~
[ada@testnode01 ~]$ pwd
/home/ada
[ada@testnode01 ~]$

Linux统一登录认证之 --- 客户端配置相关推荐

  1. Linux统一登录认证之 --- OpenLDAP服务部署

    前言 OpenLDAP 是 LDAP 协议的一个开源实现.LDAP 服务器本质上是一个为只读访问而优化的非关系型数据库.它主要用做地址簿查询(如 email 客户端)或对各种服务访问做后台认证以及用户 ...

  2. CAS统一登录认证(1):系统安装

    这一周在研究cas统一登录认证系统,参考网上大量文章,基本调试可用了,做个笔记. 安装环境:ubuntu16.04  +  mysql5.7.23 + java1.8.0_181 + maven3.5 ...

  3. linux远程登录ssh免密码配置方法

    这篇文章主要介绍了linux远程登录ssh免密码配置方法,需要的朋友可以参考下 一.情景 公司刚上几台Linux,现在要把主机之间都能远程ssh免密码登陆. 二.原理 很简单,使用ssh-keygen ...

  4. 【统一登录认证】企业微信统一认证系统流程整理 流程图 时序图

    [统一登录认证]企业微信统一认证系统流程整理 流程图 / 时序图

  5. shiro实现APP、web统一登录认证和权限管理

    先说下背景,项目包含一个管理系统(web)和门户网站(web),还有一个手机APP(包括Android和IOS),三个系统共用一个后端,在后端使用shiro进行登录认证和权限控制.好的,那么问题来了w ...

  6. CAS统一登录认证(6):SSO集成架构

    cas单点登录架构的形成,理解,实践是个过程,整个实现有一定的复杂,网上的基本架构图如下: 但在实施的时候,并不一定各项技术都需要用到,比如,我的实施整理了一下,是以下改进和简化的架构: 1. 通过L ...

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

    [1] LDAP简介 LDAP(Lightweight Directory Access Protocol) 代表轻量级目录访问协议 LDAP 是一种非关系型数据库 LDAP 可扩展性和灵活性良好 安 ...

  8. CAS认证登录,CAS客户端配置并对接多个不同服务端(spring boot)

    Spring Boot集成CAS客户端 本教程是通过访问url来进入登录界面. 需求: 我们开发平台有很多学校在使用,需要接入每个学校的统一认证CAS系统. 1.服务端设置授权域名或者IP 2.访问地 ...

  9. jwt认证机制优势和原理_微服务统一登录认证怎么做?JWT?

    无状态登录原理 1.1.什么是有状态? 有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session. 例如登录:用户登 ...

最新文章

  1. 【中文】Joomla1.7扩展介绍之Kunena(强大的论坛)
  2. 在Linux上自动调整屏幕亮度保护眼睛
  3. css --- 使用scss生成常用的基本css样式
  4. Mybatis+mysql动态分页查询数据案例——房屋信息的接口(IHouseDao)
  5. ArcGIS API for Silverlight中legend控件显示图例问题
  6. zabbix mysql安装配置_ZABBIX4.4 安装及配置
  7. php 模拟请求工具,http-mock-master模拟HTTP请求库
  8. (转) OpenLayers3基础教程——加载资源
  9. MySQL之级联删除、级联更新、级联置空
  10. 2. COM编程——什么是接口
  11. python 窗体k线图_在GUI窗口中绘制一个茅台股票K线图
  12. matlab 差影法,MATLAB人体姿态行为识别[差影法,多姿势]
  13. java如何向服务器传文件,详解Java向服务端发送文件的方法
  14. matlab 柯西黎曼方程,柯西-黎曼方程
  15. 【解决办法】ES文件浏览器使用局域网功能帐号不正确/查看局域网共享文件登录失败
  16. python+nodejs+vue酒店点餐饮系统项目
  17. 洛克菲勒家族是如何发家的,我们都看看
  18. 一文搞懂CAN FD总线协议帧格式
  19. BI神器Power Query(4)-- PQ导入动态名称定义的表格
  20. java.lang.arrayindexoutofboundsexception: Index 13 out of bounds for length 13

热门文章

  1. 海天味业股票可以长期投资吗
  2. 直播 | 浙江大学硕士生任意:非自回归语音合成
  3. Hadoop综合项目——二手房统计分析(可视化篇)
  4. VML极道教程(五) RoundRect圆矩型
  5. 运营商应用商店现状(一)-----MM、色狼和警察的故事
  6. 猿创征文|JAVA 实现《俄罗斯方块升级版》游戏
  7. SP2升级SP3遭遇“空间不足”解决方案
  8. 计算机安全审计员审计报告,网络安全专家都会看的10种审计报告!
  9. 什么是ThoughtWorks技术雷达?
  10. 浅析银行数字化转型:如何打造金融敏捷中心