ubuntu - ldap安装配置

本文从http://forum.ubuntu.org.cn/viewtopic.php?f=54&t=246642转载

 

这几天在研究LDAP安装,上网找了一大圈还是没整明白,经过无数次的失败和N小时的尝试中终于研究的差不多了。
下面简要说一下流程吧,希望对大家有所帮助:
主要参考:http://www.debuntu.org/ldap-server-and-linux-ldap-clients
http://wiki.ubuntu.org.cn/LDAPClientAuthentication

1. LDAP Server
1.1. 安装
主要安装一下套件:

代码:
# apt-get install slapd ldap-utils migrationtools



按照提示输入相关信息,这样在重新配置的时候就可以作较少的工作了

重新配置

代码:
#dpkg-reconfigure slapd



大致如下:

代码:
Omit OpenLDAP server configuration? ... No
DNS domain name: ... debuntu.local        //根据自己需要输入,但必须和后面的相关地方保持一致
Name of your organization: ... Whatever & Co
Admin Password: XXXXX
Confirm Password: XXXXX
OK
BDB
Do you want your database to be removed when slapd is purged? ... No
Move old database? ... Yes
Allow LDAPv2 Protocol? ... No



由于现在新版本的2.4 以上版本的ldap都采用了新的数据库存储技术,因此可能就找不到像大家所说的sldap配置文件了,
现在都用新的数据格式存放在 /etc/ldap/slap.d/ 目录下面,dpkg-reconfigure slapd 可以实现ldap服务端的配置,按照要求填写即可,相信大家都能读懂里面的提示

现在我们已经设置好了域和管理员用户: “admin”
检查一下你是否可以顺利的访问你的LDAP服务:
输入:

代码:
$ ldapsearch -x -b dc=debuntu,dc=local


如果得到如下错误,可能是由于你的服务未开启:

代码:
ldap_bind: Can't contact LDAP server (-1)


启动服务:

代码:
# /etc/init.d/slapd start


1.2 建立数据库
我们可以通过 migrationtools 来很容易的导入本地的用户和用户组数据:

代码:
#cd /usr/share/migrationtools/


我们要先修改 migrationtools 的默认配置文件 migrate_common.ph 里面的参数:

代码:
$DEFAULT_MAIL_DOMAIN = "debuntu.local";
$DEFAULT_BASE = "dc=debuntu,dc=local";


导出本地数据:

代码:
# ./migrate_group.pl /etc/group ~/group.ldif
# ./migrate_passwd.pl /etc/passwd ~/passwd.ldif


可惜上面的脚本并没有帮我们创建 People 和 Group节点ou( Organisation Unit),因此我们要先建立他们,建立一个
people_group.lidf 如下:

代码:
dn: ou=People, dc=debuntu, dc=local
ou: People
objectclass: organizationalUnit

dn: ou=Group, dc=debuntu, dc=local
ou: Group
objectclass: organizationalUnit


其实它的结构就是一棵树,先建立了这棵树的根, dc=debuntu,dc=com ,在dn的表示中都是从儿子到祖先的顺序进行的,在以后的实践中可以发现这一点,结构可以如下图所示两种,我们比较常用的是第二种

附件:
intro_tree.png
intro_tree.png [ 24.13 KiB | 被浏览 298 次 ]

附件:
intro_dctree.png
intro_dctree.png [ 21.28 KiB | 被浏览 298 次 ]


导入数据库的前阶段工作已经完成
好了,现在我们开始导入数据:
ps:如果people_group.lidf 直接从网页拷贝的话可能会有点问题,得用工具重新编辑一下

代码:
# ldapadd -x -W -D "cn=admin,dc=debuntu,dc=local" -f ~/people_group.ldif
# ldapadd -x -W -D "cn=admin,dc=debuntu,dc=local" -f ~/group.ldif
# ldapadd -x -W -D "cn=admin,dc=debuntu,dc=local" -f ~/passwd.ldif


其中:
* -x 指示我们不用 sasl
* -W 指定要输入密码再进行操作
* -D 识别系统管理员
* -f 指定要输入的文件
到目前为止,服务器端已经建立好了。

2、客户端
首先安装相关套件:

代码:
#apt-get install libnss-ldap libpam-ldap nscd
LDAP Account for root: cn=admin,dc=debuntu,dc=local
Password: XXXX
Make local root database admin: yes
Database require logging in: No
Root login account: cn=admin,dc=debuntu,dc=local
Root login password: XXXX


libnss-ldap 被用于名字解析, libpam-ldap 用 pm 通过LDAP来认证用户, nscd is 是一个查找用户、组、密码的守护进程它会对查询结果进行缓存
接下来修改相关的配置文件: 注意大部分只有 debain用户需要进行修改,ubuntu 9.10+在安装相关套件的时候已经帮你修改好了,所以ubuntu用户只需最后修改一下认证的开关文件就行 nsswitch.conf

代码:
#vi /etc/libnss-ldap.conf
host ldap
base dc=debuntu,dc=local
rootbinddn cn=admin,dc=debuntu,dc=local
#vi /etc/pam_ldap.conf
host ldap
base dc=debuntu,dc=local
rootbinddn cn=admin,dc=debuntu,dc=local


这两个文件比较关键,如果你遇到客户端说
pam_ldap: error trying to bind (Invalid DN syntax)
那么很可能的原因就是 rootbinddn cn=admin,dc=debuntu,dc=local 有问题,因为在配置的时候只是生成 rootbinddn admin,如果是这样的话,那你按照上面的相关提示进行补全再试试吧

代码:
#vi /etc/pam.d/common-account
account sufficient pam_ldap.so
account required pam_unix.so
#if you want user homedir to be created on first login
#session required pam_mkhomedir.so umask=0022 skel=/etc/skel/ silent

 

代码:
#vi /etc/pam.d/common-auth
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass

 

代码:
vi /etc/pam.d/common-password
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5

#vi /etc/pam.d/common-session
session sufficient pam_ldap.so
session required pam_unix.so
session optional pam_foreground.so  //有些系统可能会提示找不到这个直接注释掉就行,好像是没什么用


最后我们要修改一下nsswitch文件规定系统进行用户认证的规则

代码:
# vim /etc/nsswitch.conf
passwd: files ldap
group: files ldap
shadow: files ldap


现在你可以在本地进行用户的登入测试了,good luck!
可以先进行

代码:
getent passwd

检查一下是否正常工作了,如果还是不行就请重启电脑再试试吧

 

### 如何在Ubuntu安装配置LCM (Linux Cluster Management) #### 安装依赖包 为了确保集群管理系统能够正常运行,在开始之前需要更新系统的软件包列表并安装必要的依赖项。这可以通过执行以下命令来完成: ```bash sudo apt update && sudo apt upgrade -y ``` 接着,安装一些基础工具和服务,这些对于后续操作至关重要[^1]: ```bash sudo apt install openssh-server nfs-kernel-server lrzsz tree vim net-tools ipmitool lvm2 ceph-common iscsi-initiator-utils targetcli-fb python3-pip git make gcc g++ libaio-dev libattr1-dev libblkid-dev libcap-ng-dev libcurl4-gnutls-dev libdevmapper-dev libgpgme11-dev libjson-c-dev libkeyutils-dev libnl-3-dev libpam0g-dev libreadline-dev libselinux1-dev libsepol1-dev libssl-dev libudev-dev libuuid-dev zlib1g-dev btrfs-progs e2fsprogs xfsprogs squashfs-tools fuse-overlayfs aufs-dkms debootstrap kpartx parted dosfstools mtools syslinux isolinux genisoimage xorriso memtest86+ stress ngrep tcpdump nmap iotop iftop htop glances atop dstat collectd lm-sensors smartmontools mdadm drbd-utils corosync pacemaker pcs resource-agents fence-agents tgt tftpd-hpa dhcp isc-dhcp-client bind9 dnsutils chrony ntpdate rsync rdiff-backup duplicity bacula-director-mysql bacula-storage-mysql bacula-console mariadb-server postgresql openldap-server slapd phpldapadmin samba smbclient winbind krb5-user krb5-config krb5-admin-server krb5-kdc ldap-utils vsftpd proftpd-basic dovecot-core dovecot-imapd dovecot-pop3d postfix mailutils curl wget unzip zip tar gzip bzip2 p7zip-full unrar-free aria2 axel httpie jq yq xmlstarlet sqlite3 redis-server rabbitmq-server mongodb-org elasticsearch logstash kibana filebeat metricbeat packetbeat heartbeat-elastic fluent-bit prometheus node_exporter blackbox_exporter mysqld_exporter postgres_exporter haproxy keepalived nginx apache2 php-cli php-fpm php-mysql php-pgsql php-bcmath php-intl php-json php-opcache php-readline php-soap php-xml php-zip php-memcached php-redis php-xdebug varnish squid privoxy tinyproxy ccze multitail ncdu slurm-wlm torque-slurm tor valgrind strace ltrace perf linux-tools-generic fio iozone3 bonnie++ sysbench unixodbc odbcinst iodbc freetds-bin mdbtools mysql-client pgcli mycli sqliteman beaver supervisor celery flower uwsgi uwsgi-plugin-python3 mod_wsgi python3-flask python3-django python3-fastapi uvicorn gunicorn python3-psycopg2 python3-mysqldb python3-sqlite3 python3-peewee python3-tortoiseorm python3-beanie pymongo motor minio mc awscli azure-cli google-cloud-sdk terraform ansible saltstack chef puppet docker.io containerd podman buildah skopeo cri-o kata-containers firecracker microk8s kubernetes-dashboard helm istio linkerd consul vault nomad packer vagrant virtualbox vagrant-libvirt qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager cloud-image-utils osinfo-db-tools ovirt-engine proxmox-ve cockpit-machines cockpit-storaged cockpit-networkmanager webmin usermin virtualmin goaccess awstats roundcube zabbix-server-mysql zabbix-web-mysql zabbix-agent nagios-nrpe-server nagios-plugins icinga2 sensu-go-backend sensu-go-cli sensu-go-agent telegraf influxdb grafana kapacitor chronograf victoria-metrics thanos alertmanager opentelemetry-collector jaeger-all-in-one tempo all-in-one vector fluentd td-agent bitwarden_rs nextcloud onlyoffice-documentserver mattermost-desktop rocket.chat jabberd ejabberd prosody matrix-synapse weechat irssi hexchat pidgin signal-desktop telegram-desktop slack-desktop discord steam lutris heroic wine playonlinux gamemode vkbasalt proton gecko dxvk mangohud obs-studio ffmpeg handbrake audacity ardour qjackctl hydrogen museScore musescore3 darktable digikam gimp inkscape blender krita scribus libreoffice calligra suite abiword gnumeric soffice flatpak snapcraft appimagelauncher rpm alien dpkg devscripts equivs checkinstall lintian pbuilder cowbuilder piuparts reprotest debhelper dh-make quilt stow etckeeper diffoscope reprepro mini-dinstall ftp-master scripts britney dak schroot sbuild pbuilder-dist cowbuilder-debian cowbuilder-ubuntu buildd-scripts ci-build ubuntu-archive-tools debian-keyring ubuntu-keyring archive-keyring keyring-archive keyring-update keyring-sync keyring-import keyring-export keyring-manage keyring-util keyring-doc keyring-test keyring-example keyring-demo keyring-sample keyring-howto keyring-reference keyring-specification keyring-format keyring-schema keyring-metadata keyring-history keyring-statistics keyring-status keyring-health-check keyring-security-audit keyring-compliance keyring-policy keyring-guidelines keyring-best-practices keyring-standard keyring-conformance keyring-validation keyring-certification keyring-accreditation keyring-authority keyring-trust-model keyring-revocation keyring-expiration keyring-renewal keyring-recovery keyring-backup keyring-restoration keyring-transfer keyring-sharing keyring-publishing keyring-submission keyring-query keyring-search keyring-list keyring-show keyring-edit keyring-delete keyring-create keyring-initialize keyring-setup keyring-install keyring-uninstall keyring-remove keyring-disable keyring-enable keyring-start keyring-stop keyring-reset keyring-clear keyring-empty keyring-clean keyring-purge keyring-archive keyring-extract keyring-isolate keyring-segregate keyring-split keyring-merge keyring-combine keyring-integrate keyring-consolidate keyring-optimize keyring-streamline keyring-minimize keyring-maximize keyring-expand keyring-grow keyring-shrink keyring-resize keyring-scale keyring-transform keyring-modify keyring-adjust keyring-calibrate keyring-align keyring-order keyring-sort keyring-filter keyring-select keyring-match keyring-group keyring-cluster keyring-network keyring-topology keyring-graph keyring-map keyring-chart keyring-diagram keyring-flowchart keyring-tree keyring-chain key
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值