GNU/Linux >> Linux の 問題 >  >> Linux

CentOS / RHEL Linux に OpenLDAP をインストールして構成する方法

LDAP は Lightweight Directory Access Protocol の略です。

LDAP は、ネットワークを介して集中的に保存された情報にアクセスするためのソリューションです。この一元的に保存された情報は、X.500 標準に準拠したディレクトリに編成されます。

情報は階層的に保存および編成されます。このアプローチの利点は、情報をコンテナーにグループ化して、クライアントが必要なときにいつでもこれらのコンテナーにアクセスできることです。

OpenLDAP 階層は、DNS 階層とほとんど同じです。

OpenLDAP で最も一般的に使用される 2 つのオブジェクトは次のとおりです。

<オール>
  • cn (共通名) – これは、最終オブジェクトであるリーフ エントリを指します (例:ユーザーとグループ)
  • dc (ドメイン コンポーネント) – これは、LDAP 階層内のコンテナ エントリの 1 つを指します。設定で LDAP 階層が DNS 階層にマッピングされている場合、通常、すべての DNS ドメインは DC オブジェクトと呼ばれます。
  • たとえば、階層 sam.thegeekstuff.com にユーザーが存在する場合、このユーザーの完全識別名は、cn=sam、dc=thegeekstuff、dc=com として参照されます。 FDN (完全識別名) でお気づきの場合は、DNS で一般的なドットではなくコンマが区切り文字として使用されています。

    さまざまな LDAP エントリ タイプを使用することで、階層ディレクトリ構造をセットアップできます。これが、openLDAP が非常に広く使用されている理由です。ローカル サーバーにオブジェクトを格納しなくても、他の場所にあるオブジェクトを簡単に参照できる openLDAP 階層を簡単に構築できます。これにより、特に Microsoft の Active Directory などの他のディレクトリ サーバーと比較した場合、OpenLDAP は軽量なディレクトリになります。

    次に、ネットワーク内の複数のクライアントが認証のために使用できる LDAP サーバーの単一インスタンスをセットアップする方法を見てみましょう。

    OpenLDAP パッケージをインストールする

    CentOS および RedHat では、以下に示すように yum install を使用して、openldap 関連パッケージをインストールします。

    yum install -y openldap openldap-clients openldap-servers

    次の 3 つのパッケージをインストールする必要があります:

    <オール>
  • openldap-servers – これはメインの LDAP サーバーです
  • openldap-clients – 必要な LDAP クライアント ユーティリティがすべて含まれています
  • openldap – このパッケージには LDAP サポート ライブラリが含まれています
  • LDAP 構成ファイル

    • config.ldif – LDAP のデフォルト設定は、LDIF 形式で作成された /etc/openldap/slapd.d/cn=config.ldif のファイルに保存されます。これは、LDAP ディレクトリに情報を入力できる特定の形式である LDAP 入力形式 (LDIF) です。
    • olcDatabase{2}bdb.ldif – ファイル /etc/openldap/slapd.d/cn=config/olcDatabase{2 の下で、サーバーがサポートできる接続数、タイムアウト、その他のデータベース設定などの設定を変更することもできます}bdb.ldif.これは、LDAP ルート ユーザーやベース DN などのパラメーターも含むファイルです。

    olcRootDN アカウントを管理者として作成

    最初に、LDAP データベースの情報を変更するための完全な権限を持つ専用のユーザー アカウントを作成することを常にお勧めします。

    olcDatabase={2}bdb.ldif ファイルを変更し、olcRootDN エントリを変更します。以下はデフォルトのエントリです。

    # grep olcRootDN /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    olcRootDN: cn=Manager,dc=my-domain,dc=com

    上記の行を管理者ユーザーに変更します。この例では、ユーザー「ramesh」が olcRootDN になります。

    olcRootDN: cn=ramesh,dc=thegeekstuff,dc=com

    olcRootPW ルート パスワードの作成

    slappasswd コマンドを使用して、使用する root パスワードのハッシュを作成します。パスワードが生成されたら、cn=config.ldif ファイルを開き、olcRootPW パラメーターを含め、以下に示すようにハッシュ化されたパスワードをコピーします。

    次のコマンドを実行し、パスワードを指定します。これにより、指定されたパスワードのハッシュが生成されます。

    # slappasswd
    New password: SecretLDAPRootPass2015
    Re-enter new password: SecretLDAPRootPass2015
    {SSHA}1pgok6qWn24lpBkVreTDboTr81rg4QC6

    上記のコマンドのハッシュ出力を取得し、次に示すように config.ldif ファイルの oclRootPW パラメータに追加します。

    # vi /etc/openldap/slapd.d/cn=config.ldif
    olcRootPW: {SSHA}1pgok6qWn24lpBkVreTDboTr81rg4QC6

    olcSuffix ドメイン名の作成

    次に、olcSuffix をセットアップし、必要なドメインを設定します。以下に示すように、ファイル olcDatabase={2}bdb.ldif の olcSuffix で始まる行を変更するだけです。

    # vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    olcSuffix: dc=thegeekstuff,dc=com

    構成ファイルを確認する

    以下に示すように、slaptest コマンドを使用して構成ファイルを確認します。これにより、以下に示すように「テストが成功しました」というメッセージが表示されます。

    # slaptest -u
    config file testing succeeded

    上記のコマンドの実行中に次のメッセージが表示される場合がありますが、現時点では無視してかまいません。

    54a39508 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
    54a39508 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif"

    LDAP サーバーを開始

    以下に示すように LDAP サーバーを起動します。

    # service slapd start
    Checking configuration files for slapd: [WARNING]
    config file testing succeeded
    Starting slapd:                         [  OK  ]

    LDAP 検索を確認する

    LDAP サーバーが正常に構成されていることを確認するには、以下のコマンドを使用して、ドメイン エントリが存在することを確認します。

    # ldapsearch -x -b "dc=thegeekstuff,dc=com"
    # extended LDIF
    #
    # LDAPv3
    # base <dc=thegeekstuff,dc=com> with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #
    # search result
    search: 2
    result: 32 No such object
    # numResponses: 1

    base.ldif のベース LDAP 構造

    OU (組織単位) オブジェクトを使用すると、LDAP データベースに追加の構造を提供するのに役立ちます。ユーザー、グループ、コンピューター、プリンターなど、さまざまな種類のエントリを LDAP ディレクトリに追加する予定がある場合は、すべての種類のエントリを独自のコンテナーに簡単に配置できます。

    これらの OU を作成するには、次の例に示すように初期 LDIF ファイルを作成します。この例では、このファイルを使用して dc=thegeekstuff,dc=com というベース コンテナーを作成し、そのコンテナー内に users と groups という名前の 2 つの組織単位を作成できます。

    # cat base.ldif
    dn: dc=thegeekstuff,dc=com
    objectClass: dcObject
    objectClass: organization
    o: thegeekstuff.com
    dc: thegeekstuff
    dn: ou=users,dc=thegeekstuff,dc=com
    objectClass: organizationalUnit
    objectClass: top
    ou: users
    dn: ou=groups,dc=thegeekstuff,dc=com
    objectClass: organizationalUnit
    objectClass: top
    ou: groups

    ldapadd を使用して基本構造をインポート

    以下に示すように、ldapadd コマンドを使用して、基本構造を LDAP ディレクトリにインポートできます。

    # ldapadd -x -W -D "cn=ramesh,dc=thegeekstuff,dc=com" -f base.ldif
    Enter LDAP Password:
    adding new entry "dc=thegeekstuff,dc=com"
    adding new entry "ou=users,dc=thegeekstuff,dc=com"
    adding new entry "ou=groups,dc=thegeekstuff,dc=com"

    ldapsearch を使用して基本構造を確認する

    OU が正常に作成されたことを確認するには、次の ldapsearch コマンドを使用します。

    # ldapsearch -x -W -D "cn=ramesh,dc=thegeekstuff,dc=com" -b "dc=thegeekstuff,dc=com" "(objectclass=*)"
    Enter LDAP Password:

    上記のコマンドの出力には、LDAP ディレクトリ構造内のすべてのオブジェクトが表示されます。

    # extended LDIF
    #
    # LDAPv3
    # base <dc=thegeekstuff,dc=com> with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #
    # thegeekstuff.com
    dn: dc=thegeekstuff,dc=com
    objectClass: dcObject
    objectClass: organization
    o: thegeekstuff.com
    dc: thegeekstuff
    # users, thegeekstuff.com
    dn: ou=users,dc=thegeekstuff,dc=com
    objectClass: organizationalUnit
    objectClass: top
    ou: users
    # groups, thegeekstuff.com
    dn: ou=groups,dc=thegeekstuff,dc=com
    objectClass: organizationalUnit
    objectClass: top
    ou: groups
    # search result
    search: 2
    result: 0 Success
    # numResponses: 4
    # numEntries: 3

    次の OpenLDAP 記事では、新しいユーザーとグループを LDAP ディレクトリに追加する方法について説明します。


    Linux
    1. CentOS / RHEL 7 :telnet をインストールして構成する方法

    2. CentOS / RHEL に Samba をインストールして構成する方法

    3. RHEL / CentOS 5,6 に telnet をインストールして構成する方法

    1. CentOS / RHEL 4 :FTP サーバー (vsftpd) をインストールして構成する方法

    2. CentOS/RHEL 7 で Kerberos をインストールして構成する方法

    3. Linux CentOS/RHEL 7 および 8 に zip/unzip パッケージをインストールする方法

    1. RHEL 8 / CentOS8LinuxにHAProxyをインストールして構成する

    2. RHEL 8 / CentOS8LinuxシステムにRをインストールして構成する方法

    3. CentOS / RHEL 5 :vsftpd サーバーをインストールして構成する方法