Linuxサーバーへの管理者ログイン用にSamba 4 ADにLDAP認証を実装しています。
libpam-ldapd
PAMが正常に構成され、libnss_ldapd
ユーザーのホームディレクトリが自動的に作成されました。今直面している問題は、ユーザーがgidNumber
ローカルにまったく存在しない基本グループにマップされたSambaを持っていることです。現状は/home
ディレクトリが次のとおりです(ユーザーのデフォルトグループを参照)。
drwxr-xr-x 2 user 1005 4096 Okt 13 16:01 user/
問題は、sssd
ドメインがSamba 4 ADに参加する必要があることです。これは現在でも、将来もないでしょう。何百ものGaneti VMがあるので、ほとんどは非常に重要です!
管理者(特定のADグループのメンバー)と署名されたSSH公開鍵を持つ管理者がこれらのコンピュータにログインできるようにします。
私にとって必要なのは、ユーザーに基づいてグループの名前を変更し、これらのグループをローカルで自動的に作成することです。wbinfo
and を使用して名前を変更できる必要があることをどこかで読みましたrip map
。しかし、どうすればいいのかわかりません。管理者グループを作成してすべてを追加するので、ローカルでグループを作成するのは副次的な作業です。
主な質問は次のとおりです。
ユーザーのデフォルトグループ名をgidNumber
からどのように変更しますかuid
?
ありがとうございます。
ベストアンサー1
答えを見つけましたが、投稿する時間がありませんでした。 Samba 4 ADのユーザーパスワード認証を実装する完全な方法は次のとおりです。
- libnss-ldapdのインストール
- Samba 4 ADの証明書を取得してCAに追加します。
- CA証明書の更新
- ldapsearchを使用して接続を確認する
- pam-auth-updateとLDAPを使用する必要があるサービスの選択
- 必要に応じて、ログイン時にホームページの作成を利用してください。
開き、
/etc/nslcd.conf
次のように修正します。# /etc/nslcd.conf # nslcd configuration file. See nslcd.conf(5) # for details. # The user and group nslcd should run as. uid nslcd gid nslcd # The location at which the LDAP server(s) should be reachable. uri ldaps://dc.example.com:636/ # The search base that will be used for all queries. base DC=example,DC=com # The LDAP protocol version to use. #ldap_version 3 # The DN to bind with for normal lookups. #binddn nslcd binddn CN=binduser,CN=Users,DC=example,DC=com bindpw yourpassword # The DN used for password modifications by root. #rootpwmoddn cn=admin,dc=example,dc=com # SSL options #ssl start_tls #tls_reqcert never ssl on tls_cacertfile /etc/ssl/certs/ca.pem #tls_cacertfile /etc/ssl/certs/ca-certificates.crt # The search scope. scope sub filter passwd (&(objectClass=user)(!(objectClass=computer))(uidNumber=*)(unixHomeDirectory=*)) map passwd uid sAMAccountName map passwd homeDirectory unixHomeDirectory map passwd gecos displayName filter passwd (&(objectClass=user)(!(objectClass=computer))(uidNumber=*)(unixHomeDirectory=*)) map shadow uid sAMAccountName map shadow shadowLastChange pwdLastSet filter passwd (&(objectClass=user)(!(objectClass=computer))(uidNumber=*)(unixHomeDirectory=*)) map group cn sAMAccountName map group gidNumber uidNumber map group memberUid sAMAccountName
ログインをテストすると、次のようになります。
user@test [Home]:~$ ll /home/ drwxr-xr-x 3 user user 4096 May 20 01:41 user/ user@test [Home]:~$ user@test [Home]:~$ user@test [Home]:~$ ll /home/user/ total 28 drwxr-xr-x 3 user user 4096 May 20 01:41 ./ drwxr-xr-x 4 root root 4096 May 19 23:35 ../ -rw-r--r-- 1 user user 220 May 19 23:35 .bash_logout -rw-r--r-- 1 user user 3771 May 19 23:35 .bashrc drwx------ 2 user user 4096 May 19 23:35 .cache/ -rw-r--r-- 1 user user 655 May 19 23:35 .profile -rw------- 1 user user 568 May 20 01:41 .viminfo
公開鍵認証では、すべてのユーザーの公開鍵をすべてのサーバーとすべての新規ユーザーにコピーします。これは実装が難しく、エラーが発生しやすい。あるいは、すべてのユーザーのSSH公開鍵とすべてのホストの公開鍵に署名するだけです。これも難しいようです。 。ユーザーCAとホストCAを作成し、それをすべてのサーバーにデプロイし、人形を使用してすべてのホスト公開鍵に署名しました。ユーザーはキー署名を担当し、ユーザーCAをWebアプリケーションに配置してカールを使用することもできます。