[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 ユーザのプロパティから変更していきます。
/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
これで、認証統合のための準備が整ったはずです。
0件のコメント