[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:43943] Re: 【解決】Re: LDAPを用いたsshログイン



吉田です。

返信が遅くなってしまいましたが、LDAPを用いたsshログ インはできました。 作業は以下のように行いました。作業環境としては、LDAPサーバ であるAというマシンと 別の場所にあるLDAPクライアントのBというマシンとそれ らを操作するCというマシンの3台です。

Aにはldapというユーザを作成します。(Bにはそのユーザ はいません。)
そしてCから以下のコマンドを実行しました。

$ssh ldap@xxxxxxxxxxxxx(BのIPアドレスです)

その結果ちゃんとログインでき、ユーザ名の共有ができました。
そこでなぜ今までできなかったのか調査していたのですがはっきりとし た原因がわからずまだ調査中です。
ここには私が直した設定について説明したいと思います。

【サーバ側の設定】
インストールしたもの
slapd
libnss-ldap
libpam-ldap
ldap-utils
nscd
db4.2-utils([debian-users:43781]参照)


/etc/libnss-ldap.conf の書き換え
私は認証にだけLDAPを用いるのですが、
インストール時に "database require login?"と聞かれて Yesと答えていたため

binddn cn=admin,dc=ldap,dc=com
bindpw (パスワード)

の2行の記述がありました。そのためこの2行をコメントア ウトしました。


同様に/etc/pam_ldap.confの書き換え
ここも下の記述があったためコメントアウトしました。

rootbinddn cn=admin,dc=ldap,dc=com


/etc/nsswitch.confの記述例
以下の設定にしました。

passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

/etc/pam.d/*の書き換え

ここは/usr/share/doc/libpam-ldap/examples/pam.d
にあったものに置き換えました。


【クライアント側の設定】
インストールしたもの
libnss-ldap
libpam-ldap

上の二つをインストールするときは、きちんとサーバで決めた設定に合 わせる。
サーバと同じように/etc/nsswitch.confと/etc/pam.dを編集

クライアントはこれだけで大丈夫でした。



以上が今回私が行った作業です。

しかし、今回、私がこの作業を行ってわかった単純なミスがあったので 紹介したいと思います。 これが直接の原因でLDAPを使って認証できなかったのではないか もしれないのですが・・・

/etc/passwd が '#' でコメントアウトできないということ。

私が勝手に勘違いしていたのですが
http://www.linux.or.jp/JM/html/shadow/man5/passwd.5.html
とか見ても/etc/passwd は'#' でコメントアウトできると 書いてありません。

私は、LDAPだけの認証でログインしようとするとき、
/etc/passwd にあるユーザを'#' でコメントアウトしてからログ インしていたのですが
それでは今までログインできませんでした。
そこで思い切って/etc/passwd ごと消してしまったら見事にログ インできました。

なのですが、1回ログインできるようになってから同じように
/etc/passwd にあるユーザを'#' でコメントアウトしてログイン してもちゃんとログインできてしまいました。
なのでこれが原因であるかは謎です・・・

web上にあるldapaddのコマンド

このコマンドなのですが、web上に様々な例があるのですが、例 えば、
# ldapadd -x -w hoge -D "cn=admin,dc=ldap,dc=com" -f passwd.ldif
と実行すると、
ldap_bind: Invalid credentials (49)
などとエラーがでてしまいます。

そこで今回私が用いたコマンドを紹介します。
# ldapadd -x  -D "cn=admin,dc=ldap,dc=com" -W -f passwd.ldif
です。少なくと私はこれで成功しました。

このldapaddの作業なのですが、私は、passwd.ldifを読み 込ませてからgroup.ldifを読み込ませました。 migrationtoolsなどを使用する場合、すべてがldif形式のファイ ルになり情報が大量になります。 そのため、ldapsearchやslapcatを行うと、まず passwd.ldifのファイルが上のほうに表示されてから group.ldifが表示されます。エントリーがなくなったと勘違いしないで ください。

以上が私が今回行った作業の全てです。
この作業を行う際、このメールに返信してくださった小林さんに
直接連絡をとり、いろいろ設定のアドバイスをもらいました。
小林さんにはたいへん感謝しております。ありがとうございました。

以上です。失礼します。

**********************************
Shota Yoshida
sy910@xxxxxxxxxxxxxxxxxxxxxx
**********************************