Ubuntu マシンに Active Directory 認証でログイン出来るようにする


Ubuntu マシンに Windows の Active Directory 認証で ssh ログイン出来るようにする方法を紹介します。CentOS など Red Hat 系のものでは設定したことがあったのですが、Debian 系のものでするのは初めてだったので備忘録も兼ねて記録に残しておきます。

最初に必要なパッケージをインストールします。ここでは自動起動の制御をする sysv-rc-conf をあわせてインストールしていますが、今回の目的に直接関係ないのでインストールしなくても OK です。

# aptitude install winbind libpam-winbind samba krb5-user sysv-rc-conf

最初に /etc/samba/smb.conf を以下のように編集します。ここでは Windows ドメインが MYDOMAIN であるとします。

[global]
workgroup = MYDOMAIN
netbios name = lab01
realm = MYDOMAIN
security = ads
passdb backend = tdbsam
allow trusted domains = No
idmap backend = tdb
idmap uid = 10000-20000
idmap gid = 10000-20000
idmap config MYDOMAIN : backend = rid
idmap config MYDOMAIN : range = 10000 - 20000
template shell = /bin/bash
template homedir = /home/%U
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
winbind nested groups = yes
winbind expand groups = yes
winbind refresh tickets = yes

編集したらドメインに参加します。Administrator には Active Directory にコンピュータを追加する権限を持つユーザを指定します。

# net ads join -U Administrator

/etc/krb5.conf も修正します。以下の設定を適当なところに追加します。

[libdefaults]
  default_realm = MYDOMAIN
  dns_lookup_realm = true
  dns_lookup_kdc = true
  ticket_lifetime = 1h

[realms]
  MYDOMAIN = {
    kdc = ドメインコントローラのホスト名
    admin_server = ドメインコントローラのホスト名
    default_domain = mydomain
  }

[domain_realm]
  .mydomain = MYDOMAIN
  mydomain = MYDOMAIN

nmbd, smbd, winbind を再起動し、動作を確認します。Active Directory 上のグループ名やユーザ名が取得できれば OK です。

# service smbd restart
# service nmbd restart
# service winbind restart

# wbinfo -g
# wbinfo -u

/etc/nsswitch.conf を以下のように編集します。

-passwd:         compat
-group:          compat
-shadow:         compat
+passwd:         compat winbind
+group:          compat winbind
+shadow:         compat winbind

-hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
+hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 wins

編集したら動作確認をします。以下のコマンドを実行して Active Directory の情報が取得できれば OK です。原因はよくわかっていないのですが、今回設定したときは OS を再起動しないとうまく動作しませんでした。

# getent passwd
# getent group

最後に /etc/pam.d/common-session を編集します。以下の行を適当な箇所に追加します。

session required /lib/x86_64-linux-gnu/security/pam_mkhomedir.so skel=/etc/skel umask=0077

最後に ssh などでログイン出来ることを確認したらデーモンの自動起動の設定をして終了です。

# sysv-rc-conf nmbd on
# sysv-rc-conf smbd on
# sysv-rc-conf winbind on


This entry was posted in 技術 and tagged . Bookmark the permalink.