セキュリティ/ユーザー管理:PAMのログイン機能の構成

Document created by RSA Information Design and Development on Feb 17, 2017
Version 1Show Document
  • View in full screen mode
  

このトピックでは、PAM(Pluggable Authentication Module)を使用して外部ユーザーを認証するようSecurity Analyticsを構成する方法について説明します。

PAMログイン機能は次の2つの別々のコンポーネントで構成されます。

  • ユーザー認証用のPAM
  • グループ認証用のNSS

この2つの組み合わせによって、外部ユーザーは内部Security Analyticsアカウントを持っていなくても、Security Analyticsにログインし、外部グループとSecurity Analyticsセキュリティ ロールのマッピングによって指定された権限やロールの付与を受けることができます。ログインに成功するには、両方のコンポーネントが必要です。

外部認証はシステム レベルの設定です。PAMを構成する前に、ここに示すすべての情報を確認しておいてください。

Pluggable Authentication Module

PAMは、Linuxが提供しているライブラリの1つで、ユーザーをActive Directory、RADIUS、LDAPなどの認証プロバイダーに対して認証する機能を提供します。実装では、認証プロバイダーごとに専用のモジュールが使用されます。このモジュールは、pam_ldapのようなオペレーティング システム(OS)パッケージの形式になっています。Security Analyticsでは、OSが提供するPAMライブラリと、そのPAMライブラリを使用するように構成されたモジュールを使用して、ユーザーを認証します。

注:PAMが提供するのは認証機能のみです。

ネーム サービス スイッチ

NSSはLinuxの機能の1つで、オペレーティング システム(OS)とアプリケーションはNSSが提供するデータベースを使用して、ホスト名などの情報、ホーム ディレクトリ、プライマリ グループ、ログイン シェルなどのユーザー属性を検出し、また、特定のグループに属するユーザーの一覧を取得したりします。PAMと同様、NSSも構成可能で、モジュールを使用してさまざまなタイプのプロバイダーとやり取りします。Security Analyticsでは、OSが提供するNSS機能を使用して外部PAMユーザーに権限を付与します。具体的には、そのユーザーがNSSに既知であるかどうかを検索し、ユーザーが属しているグループをNSSにリクエストします。Security Analyticsはリクエストの結果をSecurity Analytics外部グループ マッピングと比較し、一致するグループが見つかれば、外部グループ マッピングで定義されているアクセス権をユーザーに付与します。

注:NSSでは認証を提供しません。

PAMとNSSの組み合わせ

外部ユーザーがSecurity Analyticsへのログインを許可されるには、PAM(認証)とNSS(権限付与)の両方に成功する必要があります。PAMの構成とトラブルシューティングの手順は、NSSの構成とトラブルシューティングの手順と異なります。このガイドでは、PAMの例として、Kerberos、LDAP、RADIUSを取り上げています。また、NSSの例として、Samba、LDAP、UNIXを取り上げています。使用されるPAMとNSSのモジュールの組み合わせは、組織の要件によって決定されます。

注:非信頼関係接続を使用する10.4より前のサービスの場合、すべてのPAMユーザーはすべてのSecurity Analytics Coreサービスにも構成されている必要があり、すべてのEL6コア ホスト上にPAMが構成されている必要があります。  本書では、DecoderやConcentratorなどのコア サービスに対してPAM認証とユーザーを構成する方法は扱っていませんが、PAMモジュールを構成するステップは一般的なPAMの構成手順と同じです。ただし、Security Analytics Coreサービスでは、/etc/pam.d/netwitnessという別のPAM構成ファイルを使用する点が異なります。

プロセスの概要

PAMログイン機能を構成するには、このドキュメントの説明に従って、各ステップを実行してください。

  1. PAMモジュールの構成とテスト
  2. NSSサービスの構成とテスト
  3. Security AnalyticsサーバでのPAMの有効化
  4. Security Analyticsサーバでのグループ マッピングの作成

前提条件

この機能は、EL6をベースにしたSecurity Analyticsバージョン10.4以降でのみ使用できます。

PAMの構成を開始する前に、実装するPAMモジュールに応じて、手順を確認し、外部認証サーバの詳細情報を収集してください。

NSSの構成を開始する前に、使用するNSSサービスに応じて手順を確認し、外部グループ マッピングで使用するグループ名を特定して、外部認証サーバの詳細情報を収集してください。

Security Analytics 10.4以降がインストールされた新規ホストを購入した場合は、Kerberos、LDAP、RADIUS、Sambaに必要なrpmパッケージがデフォルトでインストールされています。

Security AnalyticsでPAMの構成を開始する前に、外部グループ マッピングで使用するグループ名を特定してください。ロールをマッピングする際、Security Analytics内のロールが、外部の認証サーバに存在するグループ名と一致する必要があります。

PAMモジュールの構成とテスト

以下のセクションのいずれかを選択して、PAMコンポーネントのセットアップと構成を実行してください。

  • PAM Kerberos
  • PAM LDAP
  • PAM RADIUS
  • SecurID

PAM Kerberos

Kerberos通信ポート:TCP 88

注:Security AnalyticsサーバとSecurity Analytics Malware Analysisが同じサーバを共有している場合、PAM Kerberosを構成すると、Malware Analysis Samba(SMB)構成は無効化されます。

Kerberosを使用するPAM認証を構成するには、以下のステップを実行します。

  1. Security Analytics 10.6にアップグレードした場合は、次のコマンドを実行します。それ以外の場合、このステップは省略してください。
    yum --enablerepo=nwupdates install krb5-workstation pam_krb5  
  2. Kerberos構成ファイル/etc/krb5.confで以下の行を編集します。変数(山括弧<>で囲まれた部分)は、実際の値に置き換えてください。大文字で表記されている部分は、実際の値を大文字で入力する必要があります。

    [libdefaults]
    default_realm = <DOMAIN.COM>
    dns_lookup_realm = true
    dns_lookup_kdc = true
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = true

    [realms]
    <DOMAIN.COM> = {
    kdc = <SERVER.DOMAIN.COM>
    admin_server = <SERVER.DOMAIN.COM>
    }

    [domain_realm]
    <domain.com> = <DOMAIN.COM>
    <.domain.com> = <DOMAIN.COM>

    [appdefaults]
    pam = {
       debug = true    ticket_lifetime = 36000
        renew_lifetime = 36000
       forwardable = true
       krb4_convert = false
      }
  3. 次のコマンドを使用して、Kerberos構成をテストします。 
    kinit <user>@<DOMAIN.COM>
    パスワードの入力後に何も出力されない場合は、成功したことを示しています。
  4. Security Analytics ServerのPAM構成ファイル/etc/pam.d/securityanalyticsを編集して、次の行を追加します。ファイルが存在しない場合は、ファイルを作成し、次の行を追加します。
    auth sufficient pam_krb5.so no_user_check

PAM Kerberosの構成はこれで完了です。次のセクション「NSSサービスの構成とテスト」に進みます。

PAM LDAP

LDAP通信ポート:TCP 389またはTCP 636 

TCP 389は、暗号化されていないトラフィックに使用できるほか、暗号化されたトラフィックにも、ほとんどのケースで使用できます。通常は、TCP 389で問題ありません。最近のLDAP実装は、ポート389への接続後に、start_tlsコマンドを使用できます。このコマンドによって、暗号化されていない状態から暗号化された状態に接続がアップグレードされます。この場合、start_tls.を使用するときでも、LDAP URIは ldap://で始まります。

TCP 636は、LDAPサーバがstart_tlsコマンドをサポートしていない場合にのみ使用します。この場合、LDAP URIはldaps://で始まり、start_tlsコマンドは使用しません。

LDAPを使用するPAM認証を構成するには、以下のステップを実行します。

  1. Security Analytics 10.6にアップグレードした場合は、次のコマンドを実行します。それ以外の場合、このステップは省略してください。
    yum --enablerepo=nwupdates install openldap-clients
  2. LDAP構成ファイルの/etc/pam_ldap.confおよび/etc/openldap/ldap.confを、以下の例に示すように編集します。

注:この2つのLDAP構成ファイルはそれぞれ異なる目的に使用されます。pam_ldap.confファイルは、PAMモジュールによってのみ使用されます。openldap/ldap.confファイルは、ldapsearchなどのopenldapクライアント ツールによって使用されます。ldapsearchは基本的なLDAP通信のトラブルシューティングに使用されます。変数(山括弧<>で囲まれた部分)は、実際の値に置き換えてください。大文字で表記されている部分は、実際の値を大文字で入力する必要があります。

/etc/pam_ldap.confファイルのエントリー例

base <dc=domain,dc=com>
uri ldap://<server.domain.com>
binddn <binduser@domain.com>
bindpw <secret>

nss_map_objectclass posixAccount user
nss_map_objectclass shadowAccount user
nss_map_attribute uid sAMAccountName
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute shadowLastChange pwdLastSet
nss_map_objectclass posixGroup group
nss_map_attribute uniqueMember member
pam_login_attribute sAMAccountName
pam_filter objectclass=User

/etc/openldap/ldap.confファイルのエントリー例

URI ldap://<server.domain.com>
BASE <DC=domain,DC=com>
TLS_CACERTDIR /etc/openldap/certs

  1. (オプション)ピア証明書検証を使用してLDAP通信のセキュア トランスポートを有効にする(安全性を高める)には、以下に示す行を /etc/pam_ldap.confおよび/etc/openldap/ldap.conf:に追加します。
    /etc/pam_ldap.confに追加する行:
    ssl start_tls
    tls_cacertfile /etc/openldap/certs/myca.pem


    /etc/openldap/ldap.confに追加する行:
    ssl start_tls
    tls_cacert /etc/openldap/certs/myca.pem

    myca.pem
    は、Base64エンコードPEM形式のx.509証明書が含まれているファイルです。この証明書は、ドメイン コントローラのセキュリティ保護されたLDAP証明書を発行した証明書チェーンのルートCA(発行元CAではない)の証明書です。Active Directory管理者に問い合わせて、このルートCA証明書を入手してください。証明書ファイルはPEM形式である必要があります。

注:Windowsドメイン コントローラでは、セキュリティ保護されたLDAP通信がデフォルトで有効化されていません。サーバ認証に使用するサーバ証明書のインストールが必要となります。この証明書を入手してDCにインストールする方法については、このドキュメントでは扱いません。この方法に関するガイドはhttps://social.technet.microsoft.com/wiki/contents/articles/2980.ldap-over-ssl-ldaps-certificate.aspxで参照できます。

  1. (オプション)ピア証明書を使用しないでLDAP通信のセキュア トランスポートを有効にするには、以下に示す行を/etc/pam_ldap.confおよび/etc/openldap/ldap.confに追加します。
    /etc/pam_ldap.confに追加する行
    ssl start_tls
    tls_reqcert never


    /etc/openldap/ldap.confに追加する行
    ssl start_tls
    tls_checkpeer no
  2. LDAP構成をテストするために、次のコマンドを実行します。
    ldapsearch -x -D <user>@<domain.com> -W
  3. 詳細なテストを実行したり、バインド ユーザーをトラブルシューティングしたりするには、バインド ユーザー(Mike Coolなど)として接続し、そのユーザーを検索してユーザーの識別名(DN)を確認し、その値をpam_ldap.conf内のbinddnに使用します。次に例を示します。
    1. ldapsearch -b "dc=domain,dc=com" -D mcool@domain.com -h server.domain.com -W "(cn=Cool*)" |grep Cool
      このgrepではパスワード プロンプト(-W)が非表示になります。
    2. パスワードを入力し、Enterキーを押します。
  4. Security Analytics ServerのPAM構成ファイル/etc/pam.d/securityanalyticsを編集して、次の行を追加します。ファイルが存在しない場合は、ファイルを作成し、次の行を追加します。
    auth sufficient pam_ldap.so

PAM LDAPの構成はこれで完了です。次のセクション「NSSサービスの構成とテスト」に進みます。

PAM RADIUS

RADIUS通信ポート:UDP 1812またはUDP 1813

RADIUSを使用するPAM認証を構成するには、Security Analytics ServerをRADIUSサーバのクライアント リストに追加し、共有シークレットを構成する必要があります。これを実行する手順については、RADIUSサーバ管理者に問い合わせてください。

LDAPを使用するPAM認証を構成するには、以下のステップを実行します。

  1. Security Analytics 10.6にアップグレードした場合は、次のコマンドを実行します。それ以外の場合、このステップは省略してください。
    yum --enablerepo=nwupdates install pam_radius_auth
  2. RADIUS構成ファイル/etc/raddb/serverを以下のように編集します。
    # server[:port] shared_secret  timeout (s)
    server          secret         3
  3. Security Analytics ServerのPAM構成ファイル/etc/pam.d/securityanalyticsを編集して、次の行を追加します。ファイルが存在しない場合は、ファイルを作成し、次の行を追加します。
    auth sufficient pam_radius_auth.so

PAMモジュールおよび関連するサービスでは、/var/log/messagesおよび/var/log/secureに情報を出力します。これらの出力を使用して、構成に関する問題をトラブルシューティングできます。

PAM RADIUSの構成はこれで完了です。次のセクション「NSSサービスの構成とテスト」に進みます。

SecurID向けPAMエージェント

PAM通信ポート - UDP 5500

前提条件
RSA SecurID PAMモジュールは、以下の条件が満たされている場合にのみサポートされます。

  1. 導入環境内のすべてのSecurity Analytics Coreサービスがバージョン10.4.0以上で実行されていなければなりません。Security Analytics 10.3.x以前はサポートされません。
  2. 信頼関係接続がSecurity AnalyticsとSecurity Analytics Coreサービス間で有効になり、機能していなければなりません。

プロセスの概要 

SecurID PAMモジュールのおおまかな構成ステップは次のとおりです。

  1. Authentication Managerの構成:
    a. AuthenticationAgentを追加します。
    b. 構成ファイルをダウンロードします。
  2. Security Analyticsサーバの構成:
    a. Authentication Managerから構成ファイルをコピーしてカスタマイズします。
    b. PAM SecurIDモジュールをインストールします。
  3. 接続と認証をテストします。

後述の残りの手順を実行します。

  • NSSを構成します。
  • Security AnalyticsでPAMを有効化します。
  • Security Analytics Serverでグループ マッピングを構成します。

Authentication Manageを構成する方法

  1. RSA Authentication Managerにログオンします。
    セキュリティ コンソールが表示されます。
  2. セキュリティ コンソールで、新しい認証エージェントを追加します。
    [アクセス]>[認証エージェント]>[新規追加]をクリックします。
    [新しい認証エージェントの追加]ページが表示されます。
  3. ホスト名]フィールドに、Security Analyticsサーバのホスト名を入力します。
  4. IPの解決]をクリックします。
    Security Analytics ServerのIPアドレスが[IPアドレス]フィールドに自動的に表示されます。
  5. デフォルト設定をそのまま維持して、[保存]をクリックします。
  6. 構成ファイルを生成します。
    [アクセス]>[認証エージェント]>[構成ファイルの生成]をクリックします。
    [構成ファイルの生成]ページが表示されます。

  7. デフォルト設定をそのまま維持して、[構成ファイルの生成]をクリックします。
    2つのファイルを含んだAM_Config.zipが作成されます。
  8. Download Now(今すぐダウンロード)]をクリックします。

PAM SecurIDモジュールをインストールして構成する方法

注:バージョン10.4以降では、OVAやインストールISOにSecurIDパッケージがプリインストールされています。使用環境にこれが該当する場合は、この手順をスキップしてください。

  1. Security Analyticsサーバで次のディレクトリを作成します。
    mkdir /var/ace
  2. Security Analyticsサーバで、.zipファイル内のsdconf.rec/var/aceにコピーします。
  3. テキスト ファイルsdopts.rec/var/aceディレクトリに作成します。
  4. 次の行を挿入します。
    CLIENT_IP=<IP address of Security Analytics server>
  5. 次のyumリポジトリにあるPAM向けSecurID認証エージェントをインストールします。
    yum install sid-pam-installer
  6. 次のインストール スクリプトを実行します。
    /opt/rsa/pam-agent-installer/install_pam.sh
  7. プロンプトに従ってデフォルトをそのまま使用するか変更します。 
  8. Security Analytics ServerのPAM構成ファイル/etc/pam.d/securityanalyticsに次の行を追加します。
    auth required pam_securid.so
    ファイルが存在しない場合は、ファイルを作成し、次の行を追加します。
    auth sufficient pam_securid.so

SecurID PAMモジュールのインストールはこれで完了です。 次に、接続と認証をテストした後で、「NSSサービスの構成とテスト」の手順に従います。

注:インストールが完了したら、/etc/sd_pam.confファイルのVAR_ACEがsdconf.recファイルの正しい場所を参照していることを確認します。これは構成ファイルのパスです。完全なパスには-rw------- root root権限がなければなりません。

接続と認証をテストする方法

  1. /opt/pam/bin/64bit/acetestを実行し、ユーザー名パスコードを入力します。 
  2. (オプション)acetestが失敗した場合は、デバッグを有効にします。
    vi/etc/sd_pam.conf
    RSATRACELEVEL=15
  3. /opt/pam/bin/63bit/acestatusを実行します。出力を以下に示します。

RSA ACE/Server Limits
---------------------
Configuration Version : 15 Client Retries : 5 
Client Timeout : 5 DES Enabled : Yes 

RSA ACE/Static Information
--------------------------
Service : securid Protocol : udp Port Number : 5500

RSA ACE/Dynamic Information
---------------------------
Server Release : 8.1.0.0 Communication : 5

RSA ACE/Server List
-------------------
Server Name :           auth81.netwitness.local
Server Address :        192.168.100.10
Server Active Address : 192.168.100.10
Master : Yes Slave : No Primary : Yes 
Usage : Available for Authentications

  1. (オプション)Authentication Managerサーバのトラブルシューティングを行うには、
    [レポート]>[リアルタイム アクティビティ モニタ]>[認証アクティビティ モニタ]をクリックします。
    次に、[モニタの開始]をクリックします。
  2. 設定を変更した場合は、RSATRACELEVELを0にリセットします。
    vi/etc/sd_pam.conf
    RSATRACELEVEL=0

SecurID向けPAMエージェントの構成はこれで完了です。次のセクション「NSSサービスの構成とテスト」に進みます。

NSSサービスの構成とテスト

NSSサービスの選択

NSSサービスのオプションには、Samba、LDAP、UNIXの3つがあります。  どのオプションにも、それぞれ長所と短所があります。

                         
NSS Sambaの長所NSS Sambaの短所
Active Directory専用の設計AD以外のバックエンドとは一緒に使用できない。
Active Directoryで必要な構成が最小限、または必要なし場合によっては、構成やトラブルシューティングの難易度が高くなる可能性がある。
特別なユーザー アカウントが不要SAサーバ マシンをActive Directoryドメインに参加させる必要がある。
 Active Directoryとの通信に使用するポート数が多く、複数のファイアウォールやプロキシへの実装作業が難しい。

 

                         
NSS LDAPの長所NSS LDAPの短所
基本構成がシンプルActive Directory内で追加の構成やロールが必要になる場合がある。
あらゆるLDAP実装との通信が可能LDAPバインド アカウントの構成が必要になる。
通信に使用するTCPポートが1つで、ファイアウォールやプロキシの作業が容易サーバ証明書の検証を行わないように構成しないと、セキュア トランスポートの有効化が困難。
ADドメインへのSAホストの参加が不要 

NSS UNIX

NSS UNIXモジュールを有効化するために必要な構成はありません。ホストのオペレーティング システムによってデフォルトで有効化されています。特定のグループのユーザーに権限を付与するには、そのユーザーをオペレーティング システムに追加し、グループに追加します。

  1. 次のコマンドを使用して、外部ユーザーを追加する際に使用するOSグループを作成します。
    groupadd <groupname>
  2. 次のコマンドを使用して、外部ユーザーをOSに追加します。
    adduser -G <groupname> -M -N <externalusername>

注:この操作だけではまだ、SAサーバ コンソールへのアクセスは許可されません。

NSS UNIXの構成はこれで完了です。次に、NSS機能のテストに進みます。

NSS Samba

注:Security AnalyticsサーバとSecurity Analytics Malware Analysisが同じサービスを共有している場合、NSS Sambaを構成すると、Malware Analysis Samba(SMB)構成は無効化されます。

AD Winbind通信ポート

以下のポートは、NSS Samba機能を動作させるために開く必要があることが判明している最小限のポートです。  この情報は参考情報として参照してください。

TCP 88 - Kerberos
TCP 139 - Netbios
TCP 389 - LDAP
UDP 53 - DNS
UDP 88 - Kerberos
UDP 389 - LDAP

組織に固有の実装要件によっては、これら以外にもポートを開く必要がある場合があります。Active Directory通信で必要となる可能性のあるすべてのポートについては、次の記事を参照してください。http://technet.microsoft.com/en-us/library/dd772723(ws.10).aspxhttp://technet.microsoft.com/en-us/library/dd772723%28ws.10%29.aspx

NSS Sambaを構成するには、以下のステップを実行します。

  1. Samba構成ファイル/etc/samba/smb.confを以下のように編集します。変数(山括弧<>で囲まれた部分)は、実際の値に置き換えてください。大文字で表記されている部分は、実際の値を大文字で入力する必要があります。
    [global]
    workgroup = domain
    netbios name = <SA_APPLIANCE_HOSTNAME>
    password server = <ADSERVER.DOMAIN.COM>
    realm = <DOMAIN.COM>

    local master = no
    security = ads
    syslog only = yes
    log file = /var/log/samba/log.%m
    max log size = 5120
    idmap config * : range = 16777216-33554431
    template shell = /bin/bash
    winbind use default domain = true
    winbind offline logon = false
    winbind enum groups = yes
  2. Windowsバインディング サービスwinbindを有効にして開始するために、次のコマンドを実行します。
    chkconfig winbind on
    service winbind start
  3. NSS構成ファイル、/etc/nsswitch.confを編集します。次に示す2つのエントリーのみ更新し、残りはすべてデフォルトのままにします。
    passwd:     files winbind
    group:      files winbind
  4. ドメインに参加するために、次のコマンドを実行します。
    net ads join -U <DomainAdminUser>
  5. ドメイン コントローラSIDを格納するために、次のコマンドを実行します。
    net rpc getsid -S <SERVER.DOMAIN.COM>
  6. NSS機能のテスト」セクションの説明に従って、NSS機能をテストします。 
  7. コマンド ラインからNSSが正常に動作していることを確認したら、ホストを再起動してNSSへの変更を有効化します。次のコマンドを入力して再起動します。
    reboot

NSS Sambaをトラブルシューティングする方法

NSS WinbindがActive Directoryと正常に通信できるかどうかを確認するために、

  1. 以下のコマンドを実行します。
    wbinfo -u:ADユーザーのリストが返されます。
    wbinfo -gADグループのリストが返されます。
  2. どちらのコマンドも成功しなかった場合は、次のコマンドを入力して、winbindをコンソール デバッグ モードで実行します。
    service winbind stop
    winbindd -S -F -d <optional debugleve 0-10>
  3. 別のsshセッションでステップ1を再度実行し、問題を示す個所がないかwinbindd出力を確認します。
    必要に応じて、winbinddのデバッグをより詳細に表示するようにします。
  4. /etc/samba/smb.confに必要な調整を行います。
  5. ステップ2のwinbinddデバッグ ウィンドウで、CTRL-Cを押して、winbinddを停止します。 
    wbinfoコマンドが成功するまで、ステップ1と2を繰り返してトラブルシューティングを続けます。
  6. wbinfoコマンドが成功したら、このガイドの「NSS機能のテスト」セクションに記載されているgetentコマンドを使用して、NSSをテストします。
    getent passwd <pamUser>
    getent group <groupOfPamUser>
  7. getentが成功したら、CTRL-Cを押してコマンド ラインwinbinddを停止し、次のコマンドを入力してサービス デーモンを開始します。
    service winbind start

wbinfo -gのコマンド ラインからの実行が成功するが、外部グループ マッピングの検索結果にActive Directoryグループが表示されない場合は、次の手順を実行します。

  1. /etc/samba/smb.confに次の行を追加します。

allow trusted domains = no

  1. service winbind restart」と入力します。

NSS Sambaの構成はこれで完了です。次に、NSS機能のテストに進みます。

NSS LDAP

注:この手順では、Active DirectoryのPAMユーザー オブジェクトおよびNSSグループ オブジェクトのuidNumber属性とgidNumber属性が、NSS LDAPで使用できるように、UNIXスタイルのUID番号およびGID番号に設定されている必要があります。古いActive Directoryスキーマでは、デフォルトでこれらの属性が存在しない場合があります。また、新しいADスキーマでも、これらの属性は存在していても定義されていない場合があります。これらの属性の正しい構成方法は、このドキュメントでは扱いません。Active Directory管理者に問い合わせて、PAMユーザーとNSSグループ向けにこれらの属性を定義してください。

NSSが使用できるように、Active DirectoryにLDAPバインド ユーザーを作成する必要があります。このユーザーのパスワードは期限切れにならないように構成します。この認証情報はNSS LDAPサービスに平文で指定する必要があるため、root以外のシステム ユーザーがファイルを読み取れないように、/etc/nslcd.confの権限はデフォルトの600のままにしてください。

LDAP通信ポート:TCP 389またはTCP 636

TCP 389は、暗号化されていないトラフィックに使用できるほか、暗号化されたトラフィックにも、ほとんどのケースで使用できます。通常は、TCP 389で問題ありません。最近のLDAP実装は、ポート389への接続後に、start_tlsコマンドを使用できます。このコマンドによって、暗号化されていない状態から暗号化された状態に接続がアップグレードされます。この場合、start_tlsを使用するときでも、LDAP URIはldap://で始まります。

TCP 636は、LDAPサーバがstart_tlsコマンドをサポートしていない場合にのみ使用します。  この場合、LDAP URIは ldaps://で始まり、start_tlsコマンドは使用しません。

LDAP用のNSSモジュールをActive Directoryとともに使用するよう構成するには、次のステップを実行します。

  1. nss-pam-ldapdパッケージをSMCUPDATEリポジトリから、または、サーバがSMCUPDATEと同期されている場合はSecurity Analytics Server更新リポジトリから入手します。これを行うには、Security Analytics内に構成済みのLiveアカウントが必要です。
  2. パッケージをインストールするには、以下のいずれかを実行します。
    1. SMCUPDATEから直接インストールする場合は、次のコマンドを入力します。
      yum --enablerepo=sa install nss-pam-ldapd
    2. Security Analytics更新リポジトリからインストールする場合は、次のコマンドを入力します。
      yum --enablerepo=nwupdates install nss-pam-ldapd
  3. /etc/nslcd.confを編集して次の行を追加し、ファイル内の既存の行がすべて最初にコメント アウトされるように行の先頭にハッシュ マーク#を使用します。
    #see note in NSS LDAP Communication Ports section for guidance on using ldap:// or ldaps://
    uri ldap://<ldapServerHost>/ 
    base dc=<yourDomain>,dc=<com>
    binddn <ldapBindUser@yourdomain.com>
    bindpw <bindPassword>
    bind_timelimit 30
    timelimit 30
    idle_timelimit 3600
    pagesize 1000
    referrals off
    filter passwd (&(objectClass=user)(!(objectClass=computer))(uidNumber=*)(unixHomeDirectory=*))
    map    passwd uid              sAMAccountName
    map    passwd homeDirectory    unixHomeDirectory
    map    passwd gecos            displayName
    filter shadow (&(objectClass=user)(!(objectClass=computer))(uidNumber=*)(unixHomeDirectory=*))
    map    shadow uid              sAMAccountName
    map    shadow shadowLastChange pwdLastSet
    filter group  (objectClass=group)
    map    group  uniqueMember     member
    uid nslcd
    gid ldap
  4. (オプション)ピア証明書検証を使用してLDAP通信のセキュア トランスポートを有効にする(安全性を高める)には、次の行を/etc/nslcd.confに追加します。
    ssl start_tls
    tls_cacert /etc/openldap/certs/myca.pem


    myca.pemは、Base64エンコードPEM形式のx.509証明書が含まれているファイルです。この証明書は、ドメイン コントローラのセキュリティ保護されたLDAP証明書を発行した証明書チェーンのルートCA(発行元CAではない)の証明書です。Active Directory管理者に問い合わせて、このルートCA証明書を入手してください。  証明書ファイルはPEM形式である必要があります。

注:Windowsドメイン コントローラでは、セキュリティ保護されたLDAP通信がデフォルトで有効化されていません。サーバ認証に使用するサーバ証明書のインストールが必要となります。この証明書を入手してDCにインストールする方法については、このドキュメントでは扱いません。この方法に関するガイドは、https://social.technet.microsoft.com/wiki/contents/articles/2980.ldap-over-ssl-ldaps-certificate.aspxで参照できます。

  1. (オプション)ピア証明書を使用しないでLDAP通信のセキュア トランスポートを有効にするには、次の行を/etc/nslcd.confに追加します。
    ssl start_tls
    tls_reqcert never
  2. NSS構成ファイル/etc/nsswitch.confを編集します。次に示す2つのエントリーのみ更新し、残りはすべてデフォルト値のままにします。
    passwd:files ldap
    group:files ldap
  3. NSLCDサービスを有効にして開始するために、次のコマンドを実行します。
    chkconfig nslcd on
    service nslcd start
  4. NSS機能のテスト」セクションのガイダンスに従って、NSS機能をテストします。NSSテストが失敗した場合は、「NSS LDAPのトラブルシューティング」の説明に従ってNSS LDAPをトラブルシューティングします。
  5. コマンド ラインからNSSが正常に動作していることを確認したら、ホストを再起動してNSSへの変更を有効にします。
    reboot

NSS LDAPをトラブルシューティングする方法

  1. NSS LDAPをトラブルシューティングするには、最初に次のコマンドを入力してnslcdサービスを停止します。
    service nslcd stop
  2. トラブルシューティングとステータスに関する情報をサービスからコンソールに出力するには、コマンド ラインからデバッグ モードでnslcdサービスを実行します。
    nslcd -d
  3. (オプション)デバッグをより詳細に表示するには、nslcd -dの末尾にdをいくつか追加します。たとえば、次のようにコマンドを入力します。
    nslcd -ddd
  4. 別のsshセッションから、このガイドの「NSS機能のテスト」セクションに記載されているgetentコマンドを使用して、NSSをテストします。エラーの発生を示す個所がないかnslcdのデバッグ出力を確認します。  必要に応じて、nslcdデバッグをより詳細に表示するようにします。
    getent passwd <pamUser>
    getent group <groupOfPamUser>
  5. ステップ2または3の出力に基づいて、必要な調整を/etc/nslcd.confに加えます。
  6. ステップ2または3のnslcdデバッグ ウィンドウで、CTRL-Cを押して、nslcdを停止します。  getentコマンドが成功するまで、ステップ2または3を繰り返してトラブルシューティングを続けます。
  7. getentが成功したら、コマンド ラインnslcdを停止し、サービス デーモンを開始します。
    service nslcd start

一般的な問題として、次のようなものがあります。

  • LDAPセキュア トランスポートSSL証明書がLDAP/ADサーバにインストールされていない。
  • CA証明書の検証に失敗する。/etc/nslcd.conftls_cacertの行をコメント アウトし、代わりにtls_reqcert neverを試します。  このコマンドが成功すると、失敗している証明書検証が分かります。
    • ルートCA証明書がPEM形式でない。
    • ルートCA証明書ではなく発行元CA証明書が使用されている。
    • LDAPサーバのSSL証明書がホスト名と一致していない。
  • ベースDNが正しくない。
  • LDAPバインド ユーザーまたはパスワードが正しく入力されていない。
  • /etc/nslcd.confuri行にldap://ではなくldaps://が間違って指定されている。LDAPSを使用するがstart_tlsコマンドは使用しない場合にのみ、ldaps://を使用する必要があります。
  • Active DirectoryユーザーとグループのuidNumber属性かgidNumber属性が設定されていない。
  • ネットワーク ファイアウォールによって通信をブロックされている。
  • 指定されたLDAPサーバのホスト名を解決できない。
    • /etc/resolv.confのDNS設定が正しくない。
    • /etc/nslcd.confuri行で指定されたホスト名が正しくない。

NSS LDAPの構成はこれで完了です。次に、NSS機能のテストに進みます。

NSS機能のテスト

NSSが前述のNSSサービスのすべてと連携しているかどうかをテストするには、次のコマンドを使用します。

getent passwd <pamUser>
getent group <groupOfPamUser>

出力は次のようになります。

[root@~]# getent passwd myuser
myuser:*:10000:10000::/home/myuser:/bin/sh

[root@~]# getent group mygroup
mygroup:*:10000:myuser3

  • どのコマンドも出力を生成しない場合、NSSの外部権限認可は正常に機能していません。このドキュメントに記載されているNSSモジュールのトラブルシューティング ガイダンスを参照してください。
  • getentコマンドが成功し、/var/log/secureで認証の成功が確認できているにも関わらず、Security Analyticsが外部ユーザーにログインを許可できない場合:
    • SA外部グループ マッピングでNSSグループに正しいグループ名を指定していない可能性があります。  後述の「PAMの有効化とグループ マッピングの作成」を参照してください。
    • NSS構成に加えた変更がSecurity Analyticsに反映されていない可能性があります。  Security Analyticsホストを再起動すると、NSS構成に加えた変更がSecurity Analyticsに反映されます。  jettysrvの再起動だけでは不十分です。

次のセクション「Security AnalyticsサーバでのPAMの有効化」に進みます。

Security AnalyticsサーバでのPAMの有効化

  1. Security Analyticsにログオンして、Security Analyticsメニューで、[Administration]>[セキュリティ]を選択します。
    [Administration]の[セキュリティ]ビューが表示され、[ユーザー]タブが開きます。
  2. 設定タブをクリックします。
  3. 外部認証]で、[PAM]を選択し、[適用]をクリックします。

PAMが有効化され、Active Directoryが自動的に無効化されます。Active Directoryの構成が非表示になります。最後のセクション「Security Analyticsサーバでのグループ マッピングの作成」に進みます。

Security Analyticsサーバでのグループ マッピングの作成

  1. [セキュリティ]ビューの[外部グループ マッピング]タブをクリックします。
  2. 外部グループ名を適切なSecurity Analyticsロールにマッピングします。次を参照してください:ステップ5:(オプション)外部グループへのユーザー ロールの割り当て.
    外部グループ名とSecurity Analyticsロール名は一致している必要があります。
    たとえば、AnalystsとAnalystsは一致していますが、AnalystsとAnalystは一致していません。 
You are here
Table of Contents > システム セキュリティの設定 > ステップ4:(オプション)外部認証の構成 > PAMのログイン機能の構成

Attachments

    Outcomes