Ubuntu マシンに Windows の Active Directory 認証で ssh ログイン出来るようにする方法を紹介します。CentOS など Red Hat 系のものでは設定したことがあったのですが、Debian 系のものでするのは初めてだったので備忘録も兼ねて記録に残しておきます。
最初に必要なパッケージをインストールします。ここでは自動起動の制御をする sysv-rc-conf をあわせてインストールしていますが、今回の目的に直接関係ないのでインストールしなくても OK です。
1 |
# aptitude install winbind libpam-winbind samba krb5-user sysv-rc-conf |
最初に /etc/samba/smb.conf
を以下のように編集します。ここでは Windows ドメインが MYDOMAIN であるとします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[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 にコンピュータを追加する権限を持つユーザを指定します。
1 |
# net ads join -U Administrator |
/etc/krb5.conf
も修正します。以下の設定を適当なところに追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[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 です。
1 2 3 4 5 6 |
# service smbd restart # service nmbd restart # service winbind restart # wbinfo -g # wbinfo -u |
/etc/nsswitch.conf
を以下のように編集します。
1 2 3 4 5 6 7 8 9 |
-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 を再起動しないとうまく動作しませんでした。
1 2 |
# getent passwd # getent group |
最後に /etc/pam.d/common-session
を編集します。以下の行を適当な箇所に追加します。
1 |
session required /lib/x86_64-linux-gnu/security/pam_mkhomedir.so skel=/etc/skel umask=0077 |
最後に ssh などでログイン出来ることを確認したらデーモンの自動起動の設定をして終了です。
1 2 3 |
# sysv-rc-conf nmbd on # sysv-rc-conf smbd on # sysv-rc-conf winbind on |