Categories: サーバー関連

LDAPでホストへのアクセスを制限する

LDAPを用いてホストごとでのアクセスを制限する方法の備忘録。

続きは↓へ

参考URL


- open-groove.net

LDAPサーバ側の設定

参考URLによるとLDAPサーバ側のユーザにdescriptionを追加するようだ。
自分は1台1台に制限をかけようと思ったので、descriptionにはサーバ名を書く方法で行こうと思った。

dn: cn=dev_user,ou=development,ou=People,dc=example,dc=com
add: description
description: server01
description: server02

ldapmodifyなどで上記を追加する。
新規にサーバとかが増えたらdescriptionなどを足していく方針。

クライアント側の設定

クライアントになるサーバのldap.confに以下の記述をする

pam_filter &(objectclass=posixaccount)(|(description=server01) (description=root))

descriptionにサーバ名を入れることにした。
また、管理者は必ず入れるようにもしといた。

これだけでいけるようになるはず。

めでたしめでたし

おまけ:pam_check_host_attr yesについて

クライアント側のldap.confにて「pam_check_host_attr yes」を設定すると以下の様なフィルターとおなじになるらしい。

cf : [LDAP] LinuxでLDAP認証を使用する(応用編) | EastCamp

pam_filter &(objectclass=posixAccount)(|(host=@example.com)(host=testserver01))

なんだよ!
host属性つかえばいいじゃん!とか思ったけど、以下の様な罠が。。

cf : LDAPでホストごとにアクセスを制限する – hide-k.net#blog

OpenLDAP 2.2からはスキーマチェックが厳しくなったためユーザーのobjectClassとしてよく使われるinetOrgPersonとhostアトリビュートを定義できるobjectClassのaccountが同居できない点です。

・・・

objectClass: inetOrgPerson

objectClass: account

・・・
とすると

RESULT tag=103 err=65 text=invalid structural object class chain (account/inetOrgPerson)
といったログがLDAPサーバーの方で吐かれます。

これを回避するにはスキーマを変更するかスキーマチェックを無視するしかないっぽいです。

記事では無理やりhost属性を使えるようにしてるけど、なんかそんなことするならdescriptionでやればいいかなとおもった。

どちらにせよpam_filterのほうが柔軟にできるしなー。

mogmet

View Comments

Share
Published by
mogmet