outlook 发表于 2018-6-15 13:02:34

Linux使用pam_ldap实现windows ad认证

  配置linux通过ad认证的方法有很多,如samba使用的winbind方式。这里我使用的是pam_ldap方式,网上有很多这样相关的文章,都是按官网上一步步做,先配nsswitch.conf,再配ldap.conf。配置nsswitch.conf的作用是告诉系统去哪里获取到用户的pw信息(如getpwnam,getpwuid等函数调用时用),有时候,我们通常希望将帐号配置在系统的/etc/passwd,只需要使用ad作一个认证,没有必要按官网的步骤一步步来。
  首行下载pam_ldap
  wget http://www.padl.com/download/pam_ldap.tgz
  解压编译安装:
  tar -xzvf pam_ldap.tgz
  cd pam_ldap
  ./configure --prefix=/usr --sysconfdir=/etc
  mv /usr/lib/security/pam_ldap.so /lib64/security/
  修改/etc/ldap.conf如下

  接触过AD的朋友,我想一眼就能看懂,如果需要调试可以开启debug和logdir,这样就可以知道报错信息。
  修改/etc/pam.d/system-auth添加红框部分如下:

  在ad中新建一个用户,同时在linux系统建相同用户名的帐号,不用设密码,尝试一下可以用ad密码登陆了。
  ----------------------------以下是另一个网友的配置方案---------------------------------------------
  Linux通过LDAP方式,使用windows AD帐户登录linux shell,这个想法很cool吧。
  之前配置过一次,但过了太久忘记了,因此,今天把配置方法记录下来。
  先说一下环境:
  域控服务器:1.1.1.1 域名 123.cc dns就是域控。
  linux是CentOS 5.4,使用pam认证方式认证ldap。
  在windows 上将域配置好,唯一注意的是,要安装dns服务。域配置好之后,使用静态ip,并在windows网卡配置dns的地方,填上自己的ip,即1.1.1.1,同时,在域中新建一个用户,www.linuxidc.com用户名就用user吧,密码因为windows复杂性密码的要求,使用123qweASD。
  linux的配置更加简单,请看配置文件:
  # cat /etc/ldap.conf
  host 1.1.1.1          //域控的IP
  base dc=123,dc=cc
  uri ldap://1.1.1.1/    //ldap服务器的uri,一般仅需更改其中的IP
  binddn cn=user,cn=Users, dc=123,dc=cc   //dc需要按照域名的每个字节输入。 cn是用户及用户组。
  bindpw 123qweASD    //认证用户的密码。
  scope sub
  debug 1
  logdir /var/log
  pam_login_attribute   sAMAccountName
  pam_filter            objectclass=User
  pam_password            ad
  #pam_member_attribute    uniquemember
  pam_groupdn             OU=Groups,DC=123,DC=CC?sub//ou是组,dc同上。
  # cat /etc/security/group.conf | grep -v "#"
  * ; * ; * ; Al0000-2400 ; floppy, audio, cdrom, video, usb, plugdev, burning, users    //此文件不需要修改。
  好了,配置完成了。登录的时候,使用域中的账号密码登录即可。
  安装时出现出错误:
  Node.js configure error: No acceptable C compiler found!Please
  解决:yum install gcc
  错误:configure: error: Cannot find ldap.h
  解决:yum install openldap openldap-devel
页: [1]
查看完整版本: Linux使用pam_ldap实现windows ad认证