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

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

新規登録して質問してみよう
ただいま回答率
85.51%
LDAP

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

Debian

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

Q&A

解決済

1回答

6495閲覧

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

Machirda427

総合スコア19

LDAP

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

Debian

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

0グッド

2クリップ

投稿2015/09/02 09:33

編集2015/09/02 09:36

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

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

よろしくお願いします。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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/02 12:34

編集2015/09/02 12:49
TaichiYanagiya

総合スコア12139

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Machirda427

2015/09/03 01:41

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問