LDAP认证服务器

article/2025/9/13 8:37:24

1.要准备的环境与软件(这里测试环境是Centos6.0-64位系统) alfresco-community-4.2.c-installer-linux-x64.bin (注: alfresco是一个免费开源系统,可以自己去下载) apache-tomcat-7.0.42.tar db-4.5.20.tar jdk-6u45-linux-x64.bin openldap-stable-20100219.tar phpldapadmin-1.2.3.tar mysql-5.5.13.tar.gz (totaralms要求mysql的版本5.1以上) nginx-1.1.5.tar.gz php-5.4.14.tar.gz (注意:由于totaralms要求php必须5.4以上版本才能正常安装) totaralms-2.4.1.tar.gz (注:totaralms其实就是moodle,一个教育平台,也是免费开源的,可以自己去下载)

2.这里先检测下硬盘情况 df –h

3装一些依赖包 yum -y install gcc gcc-c++ ncurses ncurses-devel libxml libxml2-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel gd gd-devel pcre pcre-devel cmake gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* libmcrypt* curl* icu gettext 清除缓存文件 yum clean all 4.由于php要添加ldap模块,需要ldap先安装并且已启用,才能正常添加,这里我们先安装ldap,首先安装db数据库(注:ldap需要db数据库) tar zxvf db-4.5.20.tar.gz -C /usr/src/ cd /usr/src/db-4.5.20/build_unix/ …/dist/configure make make install 安装ldap tar zxvf openldap-stable-20100219.tgz -C /usr/src/ cd /usr/src/openldap-2.4.21/ env CPPFLAGS=“-I/usr/local/BerkeleyDB.4.5/include” LDFLAGS=“-L/usr/local/lib -L/usr/local/BerkeleyDB.4.5/lib -R/usr/local/lib” LD_LIBRARY_PATH=“/usr/local/BerkeleyDB.4.5/lib” ./configure --enable-crypt --with-pam (注意这里都是一行) make depend make (make后,这里发现一些错误)

解决方法 yum -y install automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig 然后重新安装一次 env CPPFLAGS=“-I/usr/local/BerkeleyDB.4.5/include” LDFLAGS=“-L/usr/local/lib -L/usr/local/BerkeleyDB.4.5/lib -R/usr/local/lib” LD_LIBRARY_PATH=“/usr/local/BerkeleyDB.4.5/lib” ./configure --enable-crypt --with-pam make depend make make install 5.修改ldap的配置文件 vim /usr/local/etc/openldap/slapd.conf 添加三行到指定位子 include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/inetorgperson.schema include /usr/local/etc/openldap/schema/nis.schema

修改Ldap认证登录 注意:这里先创建一个符合复杂性的密码 /usr/local/sbin/slappasswd -v -u -s 你的密码 -h {crypt} 这里可能出现报错的情况

解决方法: ln -s /usr/local/BerkeleyDB.4.5/lib/libdb-4.5.so /usr/lib/libdb-4.5.so ldconfig 会得到下面的结果

Copy 上面密码的加密字符串

修改ldap配置文件

vim /usr/local/etc/openldap/slapd.conf

注解: Suffix 指的登录域 Rootdn 指创建一个管理域的管理员 Rootpw 指管理员的密码(这里可写明文,但很不安全所以用了加密) 6.启用ldap,看是否正常运行 /usr/local/libexec/slapd ps auxw | grep slapd

也可以检测389端口是否启用,ldap默认用的是389端口

这里我们强制关闭ldap

pkill slapd

在看看ldap情况

在启动ldap

/usr/local/libexec/slapd

这里启动正常,说明ldap是正常的 (强调:ldap千万不要关闭了,这样会影响到后面php添加ldap模块) 7.添加ldap帐号(注:ldap导入账户信息都是.ldif,后缀不要弄错了) vim /root/addou.ldif dn: dc=demo,dc=com objectclass: dcObject objectclass: organization o: school dc: demo dn: cn=root,dc=demo,dc=com objectclass: organizationalRole cn: root dn: ou=jishubu,dc=demo,dc=com objectClass: organizationalUnit ou: jishubu vim /root/user.ldif dn: uid=Sam.tao,ou=jishubu,dc=demo,dc=com uid: Sam.tao cn: Sam.tao sn: SIRNAME mail: Sam.tao@demo.com objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount userPassword: 123456 loginShell: /bin/sh uidNumber: 601 gidNumber: 601 homeDirectory: /home/Sam.tao dn: uid=Roy.zhao,ou=jishubu,dc=demo,dc=com uid: Roy.zhao cn: Roy.zhao sn: SIRNAME mail: Roy.zhao@kineo.com objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount userPassword: 123456 loginShell: /bin/sh uidNumber: 602 gidNumber: 601 homeDirectory: /home/Roy.zhao dn: uid=Kelvin.zhang,ou=jishubu,dc=demo,dc=com uid: Kelvin.zhang cn: Kelvin.zhang sn: SIRNAME mail: Kelvin.zhang@kineo.com objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount userPassword: 123456 loginShell: /bin/sh uidNumber: 603 gidNumber: 601 homeDirectory: /home/Kelvin.zhang 注意格式,千万不要加多空格,这里的userPassword可以是加密的,加密的方式前面说了 下面我们导入帐号信息 /usr/local/bin/ldapadd -x -W -D “cn=root,dc=demo,dc=com” -f /root/addou.ldif

这里输入的密码就是前面我们创建的管理员的密码,输入密码后看到上面3行就表示导入成功了 我们在导另外一个 /usr/local/bin/ldapadd -x -W -D “cn=root,dc=demo,dc=com” -f /root/user.ldif

测试以管理者登入查询ldap的dit

/usr/local/bin/ldapsearch -h 192.168.0.103 -x -D “cn=root,dc=demo,dc=com” -w 你的密码 -b “uid=Sam.tao,ou=jishubu,dc=demo,dc=com”

接下来我们先安装mysql

先检测mysql有没有安装

rpm -q mysql

建立mysql安装目录及数据存放目录 mkdir /usr/local/mysql mkdir /data/mysql 创建用户和用户组 groupadd mysql useradd -g mysql mysql 赋予数据存放目录权限 chown mysql:mysql -R /data/mysql/ tar zxvf mysql-5.5.13.tar.gz -C /usr/src/ cd /usr/src/mysql-5.5.13/ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DSYSCONFDIR=/usr/local/mysql/etc \ -DMYSQL_DATADIR=/data/mysql \ -DMYSQL_TCP_PORT=3306 \ -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \ -DEXTRA_CHARSETS=all \ -DWITH_READLINE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DWITH_SSL=system make && make install 创建my.cnf配置文件 mkdir /usr/local/mysql/log mkdir /usr/local/mysql/etc cp support-files/my-medium.cnf /usr/local/mysql/etc/my.cnf 初始化数据库 执行前需赋给scripts/mysql_install_db文件执行权限 chmod 755 scripts/mysql_install_db scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql 创建管理MySQL数据库的shell脚本 cp support-files/mysql.server /etc/init.d/mysqld 赋予shell脚本可执行权限: chmod +x /etc/init.d/mysqld 将mysqld添加为系统服务 chkconfig --add mysqld chkconfig mysqld on 启动MySQL service mysqld start 这里可能会报错

解决方法: vim /usr/local/mysql/etc/my.cnf 添加一行 datadir = /data/mysql

service mysqld start

cd /root/ 编辑环境变量配置文件 vi /etc/profile 在最后一行添加一下代码: PATH=$PATH:/usr/local/mysql/bin 重新加载配置文件 source /etc/profile 为root帐户设置初始密码为root mysqladmin -u root password root 删除本机匿名连接的空密码帐号 mysql -u root -proot mysql>use mysql; //选择系统数据库mysql mysql>select Host,User,Password from user; //查看所有用户 mysql>delete from user where password=“”; mysql>flush privileges; mysql>select Host,User,Password from user; //确认密码为空的用户是否已全部删除 mysql>exit; 安装php (注意:在php的参数里面第一要添加–with-ldap --with-ldap-sasl ,不然ldap模块加载不了) tar zxvf php-5.4.14.tar.gz -C /usr/src/ cd /usr/src/php-5.4.14/ ./configure --prefix=/usr/local/php --with-gettext --with-config-file-path=/usr/local/php/etc --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-pdo_mysql --with-mysql=/usr/local/mysql/ --with-mysqli --enable-intl --with-icu-dir=/usr make make ZEND_EXTRA_LIBS=‘-liconv’ make install cp /usr/src/php-5.4.14/php.ini-production /usr/local/php/etc/php.ini 拷贝模板文件为php-fpm配置文件 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 编辑配置文件 vi /usr/local/php/etc/php-fpm.conf user = www #设置php-fpm运行账号为www group = www #设置php-fpm运行组为www pid = run/php-fpm.pid #取消前面的分号 设置 php-fpm开机启动 #拷贝php-fpm到启动目录 cp /usr/src/php-5.4.14/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限 chkconfig php-fpm on #设置开机启动 让root有权限执行 chmod 755 /etc/init.d/php-fpm 启动php /etc/init.d/php-fpm start 这里报错

添加新用户和用户组www groupadd www useradd -g www www /etc/init.d/php-fpm start

添加开机启动 echo “/etc/init.d/php-fpm start” >> /etc/rc.local 安装nginx 查看是否安装openssl和pcre 没有安装的话,使用yum安装就可以了 [root@ns1 ~]# rpm -q openssl openssl-0.9.8e-12.el5_5.7 [root@ns1 ~]# rpm -q pcre pcre-6.6-6.el5 安装nginx tar zxvf nginx-1.1.5.tar.gz -C /usr/src/ cd /usr/src/nginx-1.1.5/ ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre make && make install 启动服务nginx服务 /usr/local/nginx/sbin/nginx echo “/usr/local/nginx/sbin/nginx” >> /etc/rc.local 查看80端口是否开启 netstat -anpt | grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 14640/nginx 整合Nginx与PHP 上面已经讲过,Nginx自己并不处理动态网页的请求,而且Nginx将得到的动态请求转交给PHP,下面我们打开Nginx的配置文件看一下 cd /usr/local/nginx/conf/ cp nginx.conf nginx.conf.bak vi nginx.conf 参照截图里面的改法

这里改完先不重启nginx和php Totaralms的发布安装 tar zxvf totaralms-2.4.1.tar.gz -C /usr/src/ cd /usr/src/ mv totaralms-2.4.1/ totaralms mkdir /data/wwwroot mv totaralms/ /data/wwwroot/ 重启nginx ,php /usr/local/nginx/sbin/nginx -s reload /etc/init.d/php-fpm restart

访问http://192.168.0.103/

发现访问不了,找下原因

vim /usr/local/nginx/conf/nginx.conf

说明php没有启用php-cgi模式 vim /usr/local/php/etc/php-fpm.conf 找到151行,启用php-cgi进程

这里还要改一下php.ini里面的参数

vim /usr/local/php/etc/php.ini

改完这些我们在重启php和nginx

/etc/init.d/php-fpm restart

/usr/local/nginx/sbin/nginx -s reload

再次访问http://192.168.0.103/,居然还是不行,防火墙没有允许

我们先把iptables停掉

再次访问http://192.168.0.103/

然后按照提示一步步安装

给一下权限

chmod 777 -R /data/

继续向后

这里又报错了

php没有和mysql连上

解决方法

vim /usr/local/php/etc/php.ini

找到1194行 mysqli.default_socket = /tmp/mysqld.sock

这里指一下mysqld.sock文件位子

重启php 继续向后

/etc/init.d/php-fpm restart

里面是一些配置要求

没有问题,继续下一步,这里的*号里面的一定要填

安装完了这里我们在totaralms里面启用Ldap认证

改完这些点下面的保存更改就好了

然后测试之前我们创建的ldap帐号是否能登录

这里之前我们创建了3个帐号,一个个试试

这里很明显已经登录进来了 Ldap的帐号创建如果都用命令导,这样很复杂,这里我们装个管理工具phpldapadmin tar zxvf phpldapadmin-1.2.3.tar.gz mv phpldapadmin-1.2.3 /data/wwwroot/ cd /data/wwwroot/ mv phpldapadmin-1.2.3/ phpldapadmin 配置phpldapadmin cd /data/wwwroot/phpldapadmin/config/ cp config.php.example config.php vim config.php 如图改

保存配置 cd /data/wwwroot/ mv phpldapadmin/ /data/wwwroot/totaralms/ 修改nginx配置文件 vim /usr/local/nginx/conf/nginx.conf 添加两行rewrite

重启nginx

/usr/local/nginx/sbin/nginx -s reload

然后访问http://192.168.0.103/phpldapadmin

这个界面更方便管理帐号信息


http://chatgpt.dhexx.cn/article/madcUUiT.shtml

相关文章

Jumpserver部署+Ldap认证

内容导航 (一)jumpserver快速部署1,部署内容2,附上安装脚本3,解决github无法连接4,修改配置 (二)使用jumpserver1,登录信息2,添加主机3,web终端登…

SVN使用LDAP认证

前言 SVN架构 用户访问SVN服务器分为两个部分:认证与授权。 SVN内置了有认证与授权机制,其认证是通过SVN仓库内的passwd文件提供,但它是明文、静态的,不方便且安全性低。 SVN还支持外部的认证,比如SASL,…

ldap 认证 java_Java实现LDAP认证(上)

Baidu脑残,把原来的空间改得不伦不类。所以把一些技术的东西挪到这里。 我找到两种方法,大同小异,第一种是通过Spring,适合已经采用Spring的项目。 一般来说用户名和密码都是保存在数据库中。现在有这个需求,用户名和密…

Harbor 整合ldap认证

前提: ldap服务器已经安装:OpenLDAP安装部署 harbor服务器已经安装:Harbro v1.8.0部署 一、ldap组织结构 1、登录信息 2、查看用户信息 二、harbor配置 1、使用默认密码登录,admin/Harbor12345 2、认证模式 3、测试ldap服务器…

ldap认证 java_Java实现LDAP认证(上) | 学步园

Baidu脑残,把原来的空间改得不伦不类。所以把一些技术的东西挪到这里。 我找到两种方法,大同小异,第一种是通过Spring,适合已经采用Spring的项目。 一般来说用户名和密码都是保存在数据库中。现在有这个需求,用户名和密…

Zabbix 整合ldap认证

前提: zabbix部署完成:CentOS7.3 64位,搭建Zabbix3.4 ldap部署完成:OpenLDAP安装部署 一、LDAP服务端 1、ldap登录信息 2、查看ldap组织架构 3、添加zabbix默认用户Admin 二、Zabbix网页端 1、使用zabbix默认管理员用户登录 …

linux+配置ldap认证,Linux LDAP 认证配置

Linux通过LDAP方式,使用windows AD帐户登录linux shell,这个想法很cool吧。之前配置过一次,但过了太久忘记了,因此,今天把配 Linux通过LDAP方式,使用windows AD帐户登录linux shell,这个想法很c…

JumpServer 整合ldap认证

前提: ldap服务器已经安装:OpenLDAP安装部署 一、JumpServer安装 官网安装地址安装部署 - JumpServer 文档 1、一键部署 #系统版本 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) #默认会安装到 /opt/jumpser…

linux samba 配置ldap认证,Samba集成Ldap认证

Samba集成Ldap认证 1.基础安装 yum -y install samba-common samba samba-client smbldap-tools openldap-clients nss-pam-ldapd 2.配置authconfig-tui 执行命令 "authconfig-tui" 验证配置 # getent passwd zhangsan:x:6460:18650:zhangsan:/home/zhangsan:/bin/…

SVN集成LDAP认证

如何将 LDAP 的认证,集成到 SVN 中。集成的办法,目前是有两种:一种是 SVN 直接通过 SVN 端口直接访问的,通过 SASL 实现 LDAP 的认证;另一种是 SVN 通过 Apache 进行 HTTP 访问的用户,通过配置 Apache &…

zabbix配置ldap认证

zabbix配置ldap认证 环境: centos6.6 zabbix3.0.3 域控服务器:windows-active server 2008 需求: 公司越来越大,人越来越多,配置人员的账号密码很麻烦。 为了集中管理,整合公司的用户密码&#xff0c…

LDAP认证-ldap介绍

OpenLDAP简介 LDAP 全称轻量级目录访问协议,是一个运行在 TCP/IP 上的目录访问协议。LDAP实现 提供被称为目录服务的信息服务,可以看做是一张特殊的数据库系统。可以有效的 解决众多网络服务的用户账户问题,规定了统一的身份信息数据库、身份…

LDAP认证

注:本文由网络公开资料整理而来,如有错误,欢迎指正。 LDAP(Lightweight Directory Access Protocol)是目录服务(DAP)在TCP/IP上的实现,它是对X.500目录协议的移植,但是简…

BlazeDS简单介绍

BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,以LGPL(Lesser GNU Public License)公共许可证书发布。它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。在Java应用…

关于BLAS的简单介绍

BLAS(Basic Linear Algebra Subprograms基础线性代数程序集)是进行向量和矩阵等基本线性代数操作的事实上的数值库。这些程序最早在1979年发布,是LAPACK(Linear Algebra PACKage)的一部分,便于建立功能更强的数值程序包。BLAS库在高性能计算中被广泛应用…

Blazor 基础入门

Blazor 基础知识 Intro Blazor 是微软在 .NET 里推出的一个 WEB 客户端 UI 交互的框架, 使用 Blazor 你可以代替 JavaScript 来实现自己的页面交互逻辑,可以很大程度上进行 C# 代码的复用,Blazor 对于 .NET 开发人员来说是一个不错的选择。 托…

Blazeds学习

BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,使得后台的Java应用程序和运行在浏览器上的Flex应用程序能够相互通信 一个BlazeDS应用包括两个部分:一个客户端应用程序和…

Blazeds初步

客户端应用 Blazeds包括客户端和服务端应用。客户端应用是典型的Adobe flex或者AIR应用。Flex和AIR应用使用flex组件和blazeds服务通信,包括Remote Object、HTTPService、WebService、Produce和Consumer。其中的HTTPService、WebService、Produce和Consumer是Flex S…

BlazeDS配置实例

.什么是BlazeDS BlazeDS is the server-based Java remoting and web messaging technology that enables developers to easily connect to back-end distributed data and push data in real-time to Adobe Flex and Adobe AIR™ applications for more responsive rich Inte…

Bazel

bazel:是一个可以快速构建和测试任意规模软件的编译工具,能够用来编译大部分语言。Bazel使用分布式缓存和增量构建方法,使得编译更加快速。 Bazel 主要文件 使用 Bazel 管理的项目一般包含以下几种 Bazel 相关的文件:WORKSPACE&a…