[samba]Ubuntu14.04でSamba4・RSATの導入の続きになります。

ここからは、ADのユーザ、グループを登録していきたいのですが、基本的に次のようなゴールを予定しています。

  • Samba4 でActiveDirectory を構成
  • Windows と Samba4を実装しているUbuntu14.04サーバで認証を統合

SambaWikiのページでは、ドメインのユーザがローカルのUbuntuサーバにログインできるようにするために、

の2通りの方法があります。

今回は、1番めの nslcd & pam_ldap を使って設定してみました。

準備

関連するパッケージのインストール
$ sudo apt-get install libnss-ldapd kstart winbind ldb-tools

これらのパッケージの他に、ldap-utils、libpam-ldapd、nscd、nslcd のパッケージも同時にインストールされます。
winbindをインストールしているのは、この後でユーザやグループを登録するときに必要な wbinfo コマンドを使いたいために入れています。

また、途中でLDAPサーバに関する質問が出てくると思うので、

LDAPサーバのURI
ldap://pdc.mydomain.local/

LDAPサーバの検索ベース
dc=mydomain,dc=local

設定する名前サービス
[*] group
[*] passwd

とします。

/etc/samba/smb.conf の編集

smb.conf の[global]セクションに次の一行を追加します。

[global]
    [...]
    acl:search = No
    [...]

nslcd の設定

LDAP接続ユーザの作成

ldapに接続する専用のユーザ:ldap-connect(名前は任意) をADに登録します。

# sudo samba-tool user add ldap-connect 

またSambaWikiによると、このユーザは「パスワードを無期限に」してさらに、「ユーザーはパスワードを変更できない」とすることを勧めています。
パスワードを無期限にするのは、Samba-toolからでも可能ですが、ユーザがパスワードを変更できないようにするのは、WindowsマシンからADにログオンし、RSATを使って設定しないとできません。

# sudo samba-tool user setexpiry ldap-connect --noexpiry # パスワードを無期限にする

「ユーザがパスワードを変更できない」ようにするには、WindowsマシンからRSAT(リモートサーバ管理ツール)のADUC(ActiveDirectorユーザとコンピュータ)を使って、「Users」の一覧にあるldap-connect ユーザのプロパティから変更していきます。

ldap-connectのプロパティ

ldap-connectのプロパティ

/etc/nslcd.conf の編集

nslcd.confで、ldapの接続情報であるとか、接続用ユーザとそのパスワード、UNIXホストのユーザ情報と、ADのユーザ情報のマッピングを設定します。

このマッピング情報の部分で少し手を加えています。
map passwd gidNumber primaryGroupId
のところを、
map passwd gidNumber gidNumber
としています。
これで、wbinfo と getent のGIDの出力内容の違いが解消しましたが、果たしてこのままの設定で良いのかどうかはわかりません。

設定した内容は以下のとおりです。

# /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 ldap://127.0.0.1

# The search base that will be used for all queries.
base dc=mydomain,dc=local

# The LDAP protocol version to use.
#ldap_version 3

# The DN to bind with for normal lookups.
#binddn cn=annonymous,dc=example,dc=net
#bindpw secret

# The DN used for password modifications by root.
#rootpwmoddn cn=admin,dc=example,dc=com

# SSL options
#ssl off
#tls_reqcert never

# The search scope.
#scope sub

# Some settings for AD
pagesize 1000
referrals off

# Filters (only required if your accounts doesn't have objectClass=posixAccount
# and your groups haven't objectclass=posixGroup. This objectClasses won't to be added
# by ADUC. So they won't be there automatically!)
filter  passwd  (objectClass=user)
filter  group   (objectClass=group)

# Attribut mappings (depending on your nslcd version, some might not be
# necessary or can cause errors and can/must be removed)
#filter passwd  (objectCoass=user)
#filter  group   (objectClass=group)
map     passwd  uid             saMAccountName
map     passwd  homeDirectory   unixHomeDirectory
map     passwd  gecos           displayName
# map     passwd  gidNumber       primaryGroupid
map     passwd  gidNumber       gidNumber
# map       shadow  uid             saMAccountName
# map       shadow  shadowLastChange    pwdLastSet
# map       group   uniqueMember    member

# LDAP Bind
binddn cn=ldap-connect,cn=Users,dc=mydomain,dc=local
bindpw ※登録時に設定したパスワード※
/etc/nslcd.conf のアクセス権変更

さすがに、平文でパスワードが書かれているので、アクセス権を変更しろ、とあります。

$ sudo chmod 660 /etc/nslcd.conf
$ ls -al /etc/nslcd.conf
-rw-rw---- 1 root nslcd 1730  3月 30 13:27 /etc/nslcd.conf

nslcd を再起動します。

/etc/nsswitch.conf の変更

最初のあたりでwinbind をインストールしているので、ldapでの認証の前にwinbindの認証が噛んでいるので、それを外しておきます。

$ sudo pam-auth-update
[*] Unix authentication
[ ] Winbind NT/Active Directory authentication
[*] LDAP Authentication
[*] Register user sessions in the systemd control group hierarchy
[*] Inheritable Capabilities Management

また、/etc/nsswitch.conf の
passwd と、
group のエントリーを変更しておきます。

passwd:         compat ldap
group:          compat ldap

これで、認証統合のための準備が整ったはずです。

関連記事

Ubuntu 18.04 に Samba 4.7 を導入

カテゴリー: Samba4

0件のコメント

コメントを残す

メールアドレスが公開されることはありません。