前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[openldap]使用openldap认证linux操作系统ssh登录

[openldap]使用openldap认证linux操作系统ssh登录

作者头像
用户9314062
发布2022-05-20 14:25:13
2.4K0
发布2022-05-20 14:25:13
举报
文章被收录于专栏:LINUX开源玩家LINUX开源玩家

使用openldap认证linux的ssh登录本来是很简单的,所以这里只是说下基本操作,后面有空会增加一些比较高级的玩法,比如限制哪些用户登录哪些Linux主机,比如允许特定用户sudo,比如开启ssl。

本文假设你已经搭建了一个openldap服务,如果没有可以使用proxmox VE自带的lxc模板,里面有openldap模板,几分钟就好了。

这里放一个组和用户的例子,注意组类型是posixGroup,用户的类型至少应该有posixAccount和shadowAccount

代码语言:javascript
复制
dn: cn=group01,ou=groups,dc=example,dc=com
cn: group01
gidnumber: 10001
objectclass: posixGroup
dn: cn=user01,ou=users,dc=example,dc=com
uid: user01
cn: user01
sn: user01
givenName: user01
displayName: user01
objectClass: posixAccount
objectClass: top
objectClass: person
objectClass: shadowAccount
objectClass: inetOrgPerson
uidNumber: 10001
gidNumber: 10001
loginShell: /bin/bash
homeDirectory: /home/user01
userPassword: user01
shadowLastChange: 17654
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
shadowExpire: -1
employeeNumber: 123001
homePhone: 023-xxxxxxxx
mobile: 1xxxxxxxxxxx
mail: user01@126.com
postalAddress: ST Road
initials: Test

以下是客户端上的操作

CentOS

安装openldap客户端

代码语言:javascript
复制
$ sudo yum install openldap-client nss-pam-ldapd openssh-ldap authconfig -y

加入OpenLDAP服务器,ldapserver和ldapbasedn部分根据实际情况修改

代码语言:javascript
复制
$ sudo authconfig --enableldap --enableldapauth --enablemkhomedir --enableforcelegacy --disablesssd --disablesssdauth --disableldaptls --enablelocauthorize --ldapserver=192.168.10.100 --ldapbasedn="ou=users,dc=example,dc=com" --enableshadow --update

允许到OpenLDAP服务查找用户和密码

编辑/etc/nsswitch.conf,添加ldap

代码语言:javascript
复制
passwd:     files ldap
shadow:     files ldap
group:      files ldap

测试

应该可以看到ldap上面的用户和组

代码语言:javascript
复制
$ getent passwd
...
user01:x:10001:10001:/home/user01:/bin/bash
...

$ getent group
...
group01:x:10001
...

Debian/Ubuntu

安装openldap客户端

代码语言:javascript
复制
$ sudo apt install libnss-ldap libpam-ldap ldap-utils nscd

在Configuring libnss-ldap界面会询问要查询的Base DN

配置PAM支持LDAP

代码语言:javascript
复制
$ sudo pam-auth-update

增加 LDAP Authentication

允许LDAP用户创建家目录

编辑/etc/pam.d/common-session,添加

代码语言:javascript
复制
session required        pam_mkhomedir.so skel=/etc/skel umask=077

编辑/etc/pam.d/common-password,移除use_authtok,如下

代码语言:javascript
复制
password    [success=1 user_unknown=ignore default=die] pam_ldap.so try_first_pass

重启nscd

代码语言:javascript
复制
$ sudo systemctl restart nscd

OpenLDAP访问权限

上面没有考虑OpenLDAP服务器设置了访问权限必须使用dn和密码的情况,如果设置了,参考下面的配置文件

代码语言:javascript
复制
sed '/^#/d' /etc/nslcd.conf | sed '/^$/d'
uid nslcd
gid ldap
uri ldap://192.168.10.100/
base ou=user,dc=example,dc=com
binddn cn=admin,dc=example,dc=com
bindpw cRunii
ssl no
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 LINUX开源玩家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档