インターネットプロジェクトのLDAP。 パート4

記事の最後の部分を書いていないことをおaびします。続けてください!

他の部分へのリンク: onetwothree5

このパートでは、Linux / Unixサーバーにログインする方法を学びます。



先ほど言ったように、認可を設定することはそれほど難しくありません。カタログの構造を計画することはどれほど困難です。 私はこのようにしました:

タイプposixAccountのオブジェクトにユーザーを格納し、unixグループをposixGroupオブジェクトに格納します。

ユーザー自身は、ou =開発者、ou =シェルユーザー、dc = habr、dc = ruなどのコンテナに保存されます



サーバーはオブジェクトではありませんが、このサーバーへのユーザーアクセス、sudo権限のオブジェクトを決定するためにgroupOfUniqueNamesタイプのオブジェクトが格納されているコンテナです。 IPなどに関する情報を保存することも便利です。 たとえば、サーバーへのアクセス権を持つユーザーを保存するDNオブジェクト:

cn =開発者、ou = dev.habr.ru、ou = datacenter01、ou =サーバー、dc = habr、dc = ru

私の例はあなたの場合には便利ではないかもしれません、とにかく、構造を描く必要があります。



構成に直接進みます。

認可には、 PADLという名前で会社が開発したnss_ldapおよびpam_ldapモジュールが使用されます。

必要なパッケージをインストールします。

apt-get install libpam-ldap libnss-ldap





インストーラーは次の質問を設定します。





/etc/pam_ldap.conf



および/etc/libnss-ldap.conf



構成を確認でき/etc/libnss-ldap.conf





私にとっては同じなので、シンボリックリンクを作成しました。

ln -sf /etc/libnss-ldap.conf /etc/pam_ldap.conf





管理者のパスワードを入力した場合:

ln -sf /etc/libnss-ldap.secret /etc/pam_ldap.secret







次に、PAM設定を修正する必要があります( 注意してください ):

cat > /etc/pam.d/common-account << "EOF"

account required pam_ldap.so ignore_authinfo_unavail ignore_unknown_user

account required pam_unix.so

EOF









cat > /etc/pam.d/common-auth << "EOF"

auth sufficient pam_ldap.so

auth required pam_unix.so nullok_secure

EOF









cat > /etc/pam.d/common-password << "EOF"

password sufficient pam_ldap.so

password required pam_unix.so nullok obscure min=4 max=8 md5

EOF









cat > /etc/pam.d/common-session << "EOF"

session required pam_mkhomedir.so umask=0077 skel=/etc/skel/ silent # home-,

session sufficient pam_ldap.so

session required pam_unix.so

EOF









ファイル/etc/nsswitch.confを編集します。

passwd: files ldap

group: files ldap

shadow: files ldap











実際には、システムはou = shell-users、dc = habr、dc = ru以下にあるユーザーをスキップしますが、特定の基準に従ってユーザーを許可する必要があります。いくつかのオプションがあります。

1。

groupOfUniqueNamesを使用し、/ etc / pam_ldap.confで次の行を記述します。

pam_groupdn cn=developers,ou=dev.habr.ru,ou=datacenter01,ou=servers,dc=habr,dc=ru

pam_member_attribute uniqueMember









そのようなグループは1つしか存在できないことを除いて、すべてがうまくいくようです。

2。

オプションのPAMモジュール-pam_listfileまたはpam_succed_ifを使用します

これらのモジュールは、user、group、rhost、ttyなどの属性についてユーザーをチェックできます。

しかし、ここではグループはposixGroupになります-これはあまり便利ではありませんが、適応できます。 好きじゃなかった。

3。

実際にはこれが最初のオプションですが、padl.comからの特別なパッチを使用すると、構成で複数のpam_groupdnエントリを使用できます。 これは次のように行われます。

apt-get install build-essential fakeroot dpkg-dev

cd /usr/src

apt-get source libpam-ldap

apt-get build-dep libpam-ldap

cd /usr/src/libpam-ldap-184 ( , debian)

wget "http://bugzilla.padl.com/attachment.cgi?id=227" -O - | sed s=orig/pam=pam= | sed s=new/pam=pam= > debian/patches/99pam_ldap.patch

dpkg-buildpackage -rfakeroot -uc -b

dpkg -i ../libpam-ldap*.deb









Debian Squeezeパッチの適用方法は少し異なります。

wget -q "http://bugzilla.padl.com/attachment.cgi?id=227" -O - | sed s=orig/pam=pam= | sed s=new/pam=pam= > debian/patches/multi_groupdn

echo multi_groupdn >> debian/patches/series









実際にはすべて。

シンボリックリンクを/etc/pam_ldap.confに復元します(dpkgはそれらを消去します):

ln -sf /etc/libnss-ldap.conf /etc/pam_ldap.conf





ln -sf /etc/libnss-ldap.secret /etc/pam_ldap.secret





そして、必要なpam_groupdnを規定します。

pam_groupdn cn=developers,ou=dev.habr.ru,ou=datacenter01,ou=servers,dc=habr,dc=ru

pam_groupdn cn=admins,dc=habr,dc=ru











承認を確認-喜ぶ。



sudoについてはまだ質問がありました。非常に多くの資料があります。明らかに4つのトピックを超える必要があります。

ご清聴ありがとうございました!



All Articles