Openldap2.5.13编译安装
Openldap2.5.13編譯安裝
本篇文章沒有很全面,采用的是編譯安裝,yum安裝參考我的另外一篇文章
一、準備
openssl-1.1.1.tar.gz 下載地址:https://ftp.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz
openldap-2.5.13.tgz 下載地址:https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.5.13.tgz
更換yum源
# "備份原來的源" mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup# "下載、替換為阿里云源配置" wget /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# "更新yum緩存" yum clean all yum makecache創建要放置安裝的文件夾(這里根據實際情況定義)
mkdir /oakxian #項目的總安裝路徑 mkdir /oakxian/soft #安裝包所在位置 mkdir /oakxian/server #項目軟件安裝位置 mkdir /oakxian/log #項目日志位置關閉防火墻和selinux
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld [root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config [root@localhost ~]# setenforce 0二、編譯并配置openssl-1.1.1
1、openldap需要用到openssl 1.1.1或以上版本,但是centos7截止到2021年07月14日官方yum源中沒有并沒有openssl 1.1.1以上的版本。所以使用源碼進行編譯
2、查看當前環境openssl版本,不滿足條件,則先進行openssl-1.1.1安裝
[root@localhost ~]# openssl version OpenSSL 1.0.2k-fips 26 Jan 20173、編譯oepnssl需要用到gcc,使用yum安裝gcc
yum install gcc4、檢查服務器是否安裝zlib
whereis zlib? 如果服務器已經安裝則會輸出路徑 ,沒有安裝的需要執行下載安裝命令
yum install zlib-devel? 再次檢查服務器中zlib,顯示已經存在
[root@localhost ~]# whereis zlib zlib: /usr/include/zlib.h /usr/share/man/man3/zlib.3.gz5、將下載的openssl安裝包放置/oakxian/soft目錄下并解壓
openssl-1.1.1.tar.gz 下載地址:https://ftp.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz
tar -zxf openssl-1.1.1.tar.gz6、編譯openssl-1.1.1并將其安裝到/oakxian/server/openssl目錄下
cd /oakxian/soft/openssl-1.1.1 #進入解壓后的目錄下#執行配置文件,并設置安裝位置為/oakxian/server/openssl ./config shared zlib --prefix=/oakxian/server/openssl make && make install #編譯安裝--prefix是指定安裝目錄的,shared zlib庫是在安裝時尋找zlib庫依賴的
7、安裝完成后構建依賴
cd /oakxian/soft/openssl-1.1.1 ./config -tmake depend8、在編譯時使用的動態鏈接庫文件中,加入openssl路徑
vim /etc/ld.so.conf文件,在文件末尾加上 /oakxian/server/openssl/lib (填寫實際位置)
執行配置生效命令
ldconfig9、添加openssl到環境變量
vim /etc/profile 文件 ,添加如下內容到末尾
export OPENSSL=/oakxian/server/openssl/bin export PATH=$OPENSSL:$PATH:$HOME/bin執行:
source /etc/profile10、正常安裝完成后,查看openssl版本
[root@localhost server]# openssl version OpenSSL 1.1.1 11 Sep 2018注:執行openssl version可能會報如下錯誤
/usr/local/openssl/bin/openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory解決辦法:
#位置根據實際情況填寫,默認位置為:/usr/local/openssl/lib/libssl.so.1.1 sudo ln -s /oakxian/server/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1 sudo ln -s /oakxian/server/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1三、Cyrus SASL安裝
這個是編譯安裝必須要的依賴包,如果選擇yum源安裝,則不需要(yum安裝自帶了)
#安裝SASL機制依賴包 yum -y install cyrus-sasl-*四、編譯安裝openldap-2.5.13
1、下載所需依賴
yum -y install unixODBC-devel.x86_64 yum install -y libtool-ltdl libtool-ltdl-devel tcp_wrappers tcp_wrappers-devel yum -y install gcc #gcc也需要,上面已安裝過2、下載openldap包到/oakxian/soft目錄下,并編譯安裝到/oakxian/server/openldap目錄下
cd /oakxian/soft #到壓縮包所在位置 tar -zxf openldap-2.5.13.tgz #解壓 cd /oakxian/soft/openldap-2.5.13 #進入解壓后目錄執行configure配置:
注意,編譯時需要用到上文中已經編譯好的openssl相關頭文件以及庫
./configure CPPFLAGS="-I/usr/local/include -I/oakxian/server/openssl/include" \LDFLAGS="-L/usr/local/lib -L/oakxian/server/openssl/lib" \--datadir=/oakxian/server/openldap/data \--enable-ldap --enable-cleartext --enable-sql --enable-spasswd \--enable-dynamic --enable-syslog --with-cyrus-sasl --enable-ppolicy \--enable-crypt --enable-modules --enable-wrappers \--enable-overlays --enable-accesslog --enable-debug \--prefix=/oakxian/server/openldap/ --with-tls=openssl說明:–enable-overlays會安裝所有模塊到slapd中,會帶有memberof屬性,不需要單獨添加memberof模塊,需要配置文件中添加:overlay memberof,來開啟
注意,需要configure都校驗通過后再進行編譯安裝,即上述操作沒有報錯,提示如下圖:
執行:
make dependmake前需要修改一下編譯模式 #解決"for.c:3:2: 附注:使用 -std=c99 或 -std=gnu99 來編譯您的代碼"報錯
cd /oakxian/soft/openldap-2.5.13 vim servers/slapd/back-sql/add.c修改如下圖所示,將i變量提出到for循環外
執行:
make make test #時間較久 make install編譯好后openldap就安裝到了指定目錄/oakxian/server/openldap目錄下
3、配置環境變量
vim /etc/profile,添加如下內容
LDAP_HOME=/oakxian/server/openldap PATH=$PATH:$LDAP_HOME/bin:$LDAP_HOME/sbin:$LDAP_HOME/libexec export PATHsource /etc/profile
五、配置openldap
1、設置超級密碼rootpw
[root@localhost ~]# slappasswd -s 123456 {SSHA}3hz85TJMt4n8QOdEDXI7MbfEcCbS9UJM #創建directory目錄,需要根據slapd.conf文件中directory的值創建 mkdir /oakxian/server/openldap/var/openldap-data#先啟動slapd [root@localhost openldap]# slapd -d 256 -h "ldap:/// ldapi:///"#重啟一個shell頁面,執行以下命令: #創建slapd.d目錄 mkdir /oakxian/server/openldap/etc/openldap/slapd.d #生成對應slapd.d下相關配置文件 slaptest -f /oakxian/server/openldap/etc/openldap/slapd.conf -F /oakxian/server/openldap/etc/openldap/slapd.d#修改權限 vim /oakxian/server/openldap/etc/openldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif#----將默認olcAccess: {0}to * by * none修改為如下內容: olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none#重啟slapd,在第一個啟動的等待命令界面,ctrl+c停止slapd,再執行啟動命令 [root@localhost openldap]# slapd -d 256 -h "ldap:/// ldapi:///"/這一步也不執行 ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif2、導入schema
文件都在/oakxian/server/openldap/etc/openldap/schema目錄下
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/collective.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/corba.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/dsee.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/duaconf.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/inetorgperson.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/dyngroup.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/java.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/misc.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/namedobject.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/nis.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/openldap.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/pmi.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/msuser.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/dyngroup.ldif注意:如果報錯:additional info: olcAttributeTypes: Duplicate attributeType
則證明已經包含對應的schema,上述schema,后兩個msuser和dyngroup我在導入時顯示重復
3、創建根域,與超級管理員
[root@localhost ~]# slappasswd -s 123456 {SSHA}l+9FKL3GIYmQH1QMwVHm5ytWaxu3wIhZvim domain-dbadmin.ldif
dn: olcDatabase={0}config,cn=config changetype: modify replace: olcAccess olcAccess: {0}to *by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manageby dn.base="cn=directory manager,dc=cbpm,dc=com" readby * nonedn: olcDatabase={1}mdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=cbpm,dc=comdn: olcDatabase={1}mdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=directory manager,dc=cbpm,dc=comdn: olcDatabase={1}mdb,cn=config changetype: modify replace: olcRootPW olcRootPW: {SSHA}l+9FKL3GIYmQH1QMwVHm5ytWaxu3wIhZdn: olcDatabase={1}mdb,cn=config changetype: modify add: olcAccess olcAccess: {0}to attrs=userPassword,shadowLastChangeby dn="cn=directory manager,dc=cbpm,dc=com" writeby anonymous authby self writeby * none olcAccess: {1}to dn.base=""by * read olcAccess: {2}to *by dn="cn=directory manager,dc=cbpm,dc=com" writeby * readldapmodify -Y EXTERNAL -H ldapi:/// -f domain-dbadmin.ldif
總結
以上是生活随笔為你收集整理的Openldap2.5.13编译安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【OpenCV 4开发详解】图像模板匹配
- 下一篇: 【STM32】STM32 SDIO SD