質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.47%

  • Debian

    122questions

    Debianは、Debian GNU/Linux などのOS(オペレーティングシステム)です。

  • LDAP

    84questions

    LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

LDAPでTLS認証で接続するとsudoが使えない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 1,612

Machirda427

score 13

Openldapでディレクトリサービスを構築中です。サーバ側、クライアント側共にdebian7で構築しています。
sudoers権限もLDAPで管理したいのですが
クライアント間通信をTLS認証接続にした場合、下記のようなエラーを出し、うまく接続してくれません。

sudo: ldap_sasl_bind_s(): Can't contact LDAP server

sudoes情報以外は問題なく参照可能、LDAP側で管理しているユーザーアカウントでSSHなどでもログイン可能です。

TLS接続を外した場合は問題なくsudoers情報を参照でき、sudoも使えるようになります。
また下記コマンドを実行した場合、情報を参照できます。

ldapsearch -x -H ldaps://10.0.xx.xxx:636 -b "ou=sudoers,dc=example,dc=co,dc=jp"
# extended LDIF
#
# LDAPv3
# base <ou=sudoers,dc=example,dc=co,dc=jp> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# SUDOers, FROSK.co.jp
dn: ou=SUDOers,dc=example,dc=co,dc=jp
objectClass: organizationalUnit
ou: SUDOers

# %wheel, SUDOers, example.co.jp
dn: cn=%wheel,ou=SUDOers,dc=example,dc=co,dc=jp
objectClass: top
objectClass: sudoRole
cn: %wheel
sudoUser: %wheel
sudoHost: ALL
sudoCommand: ALL

# defaults, SUDOers, example.co.jp
dn: cn=defaults,ou=SUDOers,dc=example,dc=co,dc=jp
objectClass: top
objectClass: sudoRole
cn: defaults
sudoOption: !root_sudo
sudoOption: !lecture
sudoOption: log_host
sudoOption: log_year
sudoOption: syslog=local3
sudoOption: logfile=/var/log/sudo.log
sudoOption: ignore_dot
sudoOption: timestamp_timeout=0

# search result
search: 2
result: 0 Success

# numResponses: 4
# numEntries: 3

client側の設定内容は下記の通りです。

※sudoers設定(client)
export SUDO_FORCE_REMOVE=yes
apt-get install sudo-ldap
export SUDO_FORCE_REMOVE=no

vi /etc/ldap/ldap.conf
BASE    dc=example,dc=co,dc=jp
URI     ldaps://10.0.xx.xxx/
#TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

TLS_REQCERT allow

sudoers_base   ou=SUDOers,dc=example,dc=co,dc=jp

vi /etc/pam.d/su
以下を追記
auth         required   pam_wheel.so use_uid group=wheel
vi /etc/nsswitch.conf
以下を追記
sudoers:        files ldap
/etc/init.d/nscd restart

どなたか解決方法等わかる方いれば教えていただけると助かります。

よろしくお願いします。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

LDAPサーバーの証明書が自己署名証明書なのではないでしょうか。
証明書の Verify に失敗したため LDAPS で接続できなかったように思います。 
 
debian の sudo がどのように LDAP を参照するのかわかりませんが、 証明書の Verify を無効にすると LDAPS で接続できるかもしれません。 
 
  • sudo が libldap(/etc/ldap/ldap.conf)経由で LDAP を参照する場合: 
(/etc/ldap/ldap.conf)
TLS_REQCERT never
  • sudo が libnss-ldap(/etc/nsswitch.conf, /etc/libnss-ldap.conf) 経由で LDAP を参照する場合: 
(/etc/libnss-ldap.conf)
tls_checkpeer no

(追記) /etc/libnss-ldap.conf ではなく、/etc/sudo-ldap.conf かもしれません。

# sudo -V
Sudo version 1.8.5p2
(中略)
Sudoers path: /etc/sudoers
nsswitch path: /etc/nsswitch.conf
ldap.conf path: /etc/sudo-ldap.conf
ldap.secret path: /etc/ldap.secret

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/03 10:41

    ありがとうございます!教えて頂いた方法で無事解決できました!助かりました!

    キャンセル

関連した質問

同じタグがついた質問を見る

  • Debian

    122questions

    Debianは、Debian GNU/Linux などのOS(オペレーティングシステム)です。

  • LDAP

    84questions

    LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。