他の部分へのリンク: one 、 two 、 three 、 5
このパートでは、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
インストーラーは次の質問を設定します。
- LDAP URI-ldapの書き込み://ldap.habr.ru
- 検索ベース-ou = shell-users、dc = habr、dc = ruと書く
- LDAPバージョン-3
- ローカルルートデータベース管理者-不要、いいえと答える
- ローカルデータベースのクローンの必要性に関する次の質問-いいえと答えます
- LDAPを管理するためのアカウント-それも必要ありません。匿名ユーザーの認証を設定しました。 それ以外の場合は、cn = admin、dc = habr、dc = ruと入力します
- 前の段落で2番目を選択した場合、このアカウントのパスワード
/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つのトピックを超える必要があります。
ご清聴ありがとうございました!