OpenLDAP Proxy -- Installation and configuration

  sonic0002        2017-11-03 20:26:41       20,583        0          English  简体中文  繁体中文  ภาษาไทย  Tiếng Việt 

在了解OpenLDAP 代理的組態為何之後,是時候說明 OpenLDAP 代理的安裝方式以及如何使其運作。在這篇文章中,我們將說明如何在本地端和使用 Docker 安裝 OpenLDAP 代理。

本地端安裝

安裝相當容易,需要安裝一些套件,包括 ldap 伺服器、ldap 用戶端和一些公用程式。以下步驟適用於 CentOS,其他平台的指示應該類似,套件名稱和套件位置略有不同。

  1. 安裝 openldap openldap-clients openldap-servers
    yum install openldap openldap-clients openldap-servers
  2. 如果不存在,則建立 /etc/openldap/slapd.conf。
  3. 更新 /etc/openldap/slapd.conf 並新增 LDAP 項目(查看之前的文章,了解組態為何)
  4. 移除目前的 /etc/openldap/slapd.d/ 內容
    rm -rf /etc/openldap/slapd.d/*
  5. 重新產生組態
    slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
  6. 將組態目錄的所有者變更為 ldap。對於 Ubuntu,它是 openldap。
    chown -R ldap:ldap /etc/openldap/slapd.d
  7. 重新啟動 slapd 服務
    /etc/init.d/slapd restart

這應該會啟動具有您所需組態的 OpenLDAP 代理。如果您不想使用 LDIF 樣式的組態,可以在更新 /etc/ldap/slapd.conf 檔案後刪除 /etc/ldap/slapd.d 資料夾。

Docker 設定

Docker 已成為託管單一服務以供特定用途使用的熱門方法。OpenLDAP 代理非常適合此模型。因此,我們還將介紹使用 Docker 和 docker-compose 設定 OpenLDAP 代理的方法。如果您不了解這些公用程式,請先閱讀一些線上資源。

設定 OpenLDAP 代理的步驟如下:

  1. 建立名為 openldap_proxy 的目錄,您可以選擇任何您想要的名稱。然後進入 openldap_proxy 目錄。
  2. 建立 Dockerfile 並放入以下內容(這只是一個範例)
    # 從授權來源提取基礎映像
    FROM centos:7
    
    # 安裝 LDAP Proxy 伺服器所需的套件
    RUN yum install openldap openldap-clients openldap-servers -y
    
    # 建立必要的目錄
    RUN mkdir -p /root/openldap_proxy && \
        mkdir -p /root/openldap_proxy/tmp && \
        mkdir -p /root/openldap_proxy/data && \
        mkdir -p /root/openldap_proxy/data/certs
    
    # 移除不需要的目錄
    RUN rm -rf /etc/openldap/slapd.d
    
    # 將檔案複製到容器
    COPY ./start.sh /root/openldap_proxy/start.sh
    COPY ./slapd.conf /etc/openldap/slapd.conf
    
    # 新增執行權限
    RUN chmod 755 /root
    RUN chmod +x /root/openldap_proxy/start.sh
    
    # 入口點
    ENTRYPOINT ["/root/openldap_proxy/start.sh"]
  3. 儲存 Dockerfile
  4. slapd.conf 檔案放入 openldap_proxy 目錄,並在 openldap_proxy 中建立名為 start.sh 的檔案
  5. 在 start.sh 中,放入以下內容
    #!/bin/bash
    
    TOPDIR=$(dirname $0)
    cd $TOPDIR && TOPDIR=$PWD
    
    # 如果不存在,則產生憑證
    DESTDIR="$TOPDIR/data/certs"
    APP_FQDN=$(hostname -f)
    
    [[ -d $DESTDIR ]] || mkdir -p $DESTDIR
    
    APP_GEN_CERT='openssl req -x509 -nodes -days 365 -newkey rsa:2048'
    APP_GEN_CERT="$APP_GEN_CERT -keyout $DESTDIR/ldap.key -out $DESTDIR/ldap.crt"
    APP_GEN_CERT="$APP_GEN_CERT -subj '/CN=$APP_FQDN/OU=TestOU/O=Organization/L=Location/ST=State/C=Country'"
    APP_GEN_CERT="[[ -f $DESTDIR/ldap.crt ]] || $APP_GEN_CERT"
    
    eval $APP_GEN_CERT
    
    # 執行 docker-compose 指令
    exec "$@"
  6. start.sh 是 Docker 容器的入口點,它將被複製到容器中,並在 Docker 容器啟動時執行。這個指令碼首先會產生一個憑證,如果代理服務 SSL 請求,則會使用該憑證,然後它會將執行處理到傳遞給 start.sh 的指令,該指令將是稍後要建立的 docker-compose.yml 中的 command 選項
  7. 建立名為 my_openldap_proxy 的 Docker 映像檔。
    docker build -t my_openldap_proxy .
  8. 接下來移出 openpldap_proxy 目錄一層(cd ../)
  9. 建立具有以下內容的 docker-compose.yml 檔案
    my_openldap_proxy:
      image: my_openldap_proxy:latest
      container_name: my_openldap_proxy
      ports:
        - '389:389'
        - "636:636"
      volumes:
        - shared_data:/root/openldap_proxy/data
      command: bash -l -c "cd /root/openldap_proxy && /usr/sbin/slapd -h 'ldap:/// ldapi:/// ldaps:///' -g ldap -u ldap -d 2"
  10. 儲存它,然後執行 docker-compose up -d 指令。這個指令如果容器不存在,將會建立容器並以分離模式啟動它。

相當容易的安裝步驟。如果您想要在組態中新增啟用 SSL 的遠端 LDAP 伺服器,則會有一些其他的設定,我們將在未來的文章中說明。敬請期待。

INSTALLATION  CENTOS  DOCKER  OPENLDAP  OPENLDAP PROXY 

       

  RELATED


  0 COMMENT


No comment for this article.



  RANDOM FUN

Stats for nerds

The YouTube HTML5 player is naughty. As a nerd, you can view the stats of the video playing now. These stats are not how many views or likes but how many frames are dropped and bandwidth etc. Google always brings us some surprise.