Ubuntu Weekly Recipe

第174回Likewise OpenでActive Directoryを利用する

企業などでは、コンピュータやユーザの管理にWindows ServerとActive Directoryを採用しているケースも多いと思います。Ubuntu上でLikewise Openというソフトウェアを利用すれば、Active DirectoryでUbuntuへのログインを管理することも可能です。そしてLikewise Openは大阪府箕面市のシンクライアントシステムでも認証に利用されています。

先日、株式会社東陽テクニカからLikewise Open 6.0の導入ガイド、⁠Likewise Open 6.0 Installation & Admin guide』日本語訳が公開されました。そこで今週のレシピはLikewise Openを利用して、UbuntuマシンをActive Directoryに参加させる方法を紹介します。

Likewise Openとは

Likewise Openは前述のように、Ubuntu環境でActive Directoryを利用した認証を行なえるソフトウェアです。Ubuntu 11.04ではmainコンポーネントとして提供されているため、Ubuntuプロジェクトによる公式なサポートが受けられるパッケージでもあります。

Active Directoryサーバの準備

それではLikewise Openを用いて、Active Directory環境にUbuntuマシンを参加させてみましょう。筆者はテストのため、Windows Server 2008 R2 Standardのフルインストール環境を新規に用意しました。もちろん自由にコントロールできる既存のActive Directory環境がある場合は、この手順は省略可能です。ちなみにWindows Server 2008は180日間試用できる評価版をこちらからダウンロードすることが可能です。なお、Windows Server自体のインストール手順は省略します。

Windows Serverのインストールと役割の追加

Windows Serverのインストールが完了したら、"サーバーマネージャー"の"役割"から"役割の追加"を実行します。役割の追加ウィザードが起動したら、"Active Directory ドメインサービス"にチェックを入れてインストールを行ないます[1]⁠。

図1 初期構成タスクから"役割の追加"を実行
図1 初期構成タスクから 役割の追加 を実行
図2 "Active Directory ドメインサービス"を追加する
図2 Active Directory ドメインサービスを追加する

役割の追加が完了しても、まだActive Directoryは起動していません。役割の一覧から"Active Directory ドメインサービス"を選択し、"Active Directory ドメインサービスインストールウィザード"を実行します。

図3 インストールが完了したら、サーバーマネージャーからドメインコントローラーを実行する
図3 インストールが完了したら、サーバーマネージャーからドメインコントローラーを実行する

インストールウィザードでは、"新しいフォレストに新しいドメインを作成する"を選択し、フォレストルートドメイン名を入力します。ここで入力したドメイン名はDNS名にもなるため、外部に公開されているドメインと同一の名前をつけると、外部向けサーバの名前解決ができなくなる危険がありますので注意が必要です。"*.local"といった、末尾がlocalで終わるドメイン名を使用すればこの問題を回避できますので、筆者は"lwtest.local"というドメイン名を使用しました。ただしこの場合は、後述するnsswitch.confの設定が必要になることに留意してください。

フォレストの機能レベルは"Windows Server 2008 R2"を選択し、追加オプションでDNSサーバも同時にインストールしておきます。インストールが完了したらOSを再起動しましょう。

図4 新規ドメインを作成する
図4 新規ドメインを作成する

ユーザの作成

Active Directory上にユーザを作成します。管理ツールの"Active Directory ユーザーとコンピューター"を開き、"lwtest.local"->"Users"と辿り、右クリックメニューから"新規作成"->"ユーザー"を実行します。ユーザ名はtestuserとしました。

図5 新規ユーザ"testuser"を作成する
図5 新規ユーザ testuser を作成する

Likewise Openのインストール

Likewise Openはリポジトリのmainコンポーネントにあるパッケージですので、特別な設定なしにapt-getコマンドでインストールが可能です。今回はGUIでドメイン参加設定を行うため、GUI用のパッケージであるlikewise-open-guiをインストールしました。likewise-open-guiをインストール指定すれば、必要な他のパッケージも依存関係によって自動的にインストールされます。

likewise-open-guiのインストール
$ sudo apt-get install likewise-open-gui

DNSの設定

ドメインに参加するためには、UbuntuがドメインのSRVレコードを解決できる必要があります。最初のドメインコントローラにはDNSサーバをインストールすることが推奨されているため、デフォルトの設定であればActive Directoryドメインサービスをインストールした際に、DNSサーバもインストールされています。そのため、使用するDNSサーバにドメインコントローラを指定しておけば、ドメインの名前解決が行なえるようになります。

DNSサーバを変更するには、/etc/resolv.confを編集してサーバのIPアドレスを記述するだけです。ただし、NetworkManagerを使ってネットワーク設定を行なっている場合は、/etc/resolv.confはNetworkManagerが自動生成してしまいます。このような場合は、IPアドレスのみをDHCPから受け取り、DNSサーバは手動で指定するようNetworkManagerで設定するとよいでしょう。

resolv.confを編集する
$ sudo vi /etc/resolv.conf
nameserver 192.168.24.23    ← Windows ServerのIPアドレスを指定する
図6 IPアドレスのみをDHCPで設定し、DNSサーバはドメインコントローラーを手動で設定する
図6 IPアドレスのみをDHCPで設定し、DNSサーバはドメインコントローラーを手動で設定する

nsswitch.confの設定

今回の例のように末尾が.localで終わるドメイン名を使用している場合、そのままではLikewiseがドメインを検出することができず、ログインが行なえません。このような場合は/etc/nsswitch.confを編集し、dnsエントリをmdns4_minimalエントリとmdns4エントリの前に置く必要があります。ただし、filesエントリより前にはしないほうがよいでしょう。

nsswitch.confのhostsエントリの順番を変更する
$ sudo vi /etc/nsswitch.conf
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

hosts:          files dns mdns4_minimal [NOTFOUND=return] mdns4

ドメインに参加する

UnityのDashboardから"Active Directory membership"を検索して実行するか、端末からdomainjoin-guiコマンドを実行して設定用UIを起動します。クラシックデスクトップを使っている場合は、"システム"->"システム管理"->"Active Directory membership"を起動してください。

Computer nameにUbuntuマシンのホスト名、Domainにドメイン名(lwtest.local)を入力して"Join Domainをクリックしてください。ドメインの管理者パスワードを聞かれるので、パスワードを正しく入力しましょう。これでドメインへの参加は完了です。はじめてドメインに参加したマシンは一度再起動する必要がありますので、ここでUbuntuを再起動します。

設定用GUIを起動する
$ sudo domainjoin-gui
図7 Likewise AD Settingsで参加するドメインを設定する
Likewise AD Settingsで参加するドメインを設定する
図8 ドメイン管理者のパスワードを入力する
図8 ドメイン管理者のパスワードを入力する
図9 設定が完了したら、一度Ubuntuの再起動を行なう必要がある
図9 設定が完了したら、一度Ubuntuの再起動を行なう必要がある

ドメインにログインする

Active Directoryのユーザでログインを行なうには、まずGDMのログイン画面で"その他"を選択します。すると任意のユーザ名を入力できるようになりますので、ここで"ドメイン名\ユーザ名"と入力します。今回の例では、"lwtest.local\testuser"(二重引用符は入力しない)になります。

認証が完了すると、Ubuntuへログインが行なわれます。ユーザのホームディレクトリは/home/likewise-open/(ドメイン名)/(ユーザ名)となっているのが確認できるでしょう。

図10 "その他"を選択し、ドメインのユーザでログインする
図10 その他を選択し、ドメインのユーザでログインする
ホームディレクトリは/home/likewise-open以下に作成される
$ pwd
/home/likewise-open/LWTEST/testuser
$ id
uid=84935759(testuser) gid=84935169(domain^users) 所属グループ=84935169(domain^users),1545(BUILTIN\Users)

SSHからのログイン

通常のsshログインと同じように、ドメインに参加しているUbuntuへ、Active Directoryの認証でsshログインすることも可能です。ただしグラフィカルログインの時とは異なり、バックスラッシュをバックスラッシュでエスケープする必要があるところにだけ注意してください。また、CUIの仮想端末からログインを行なう場合も、同様にバックスラッシュをエスケープする記法でログインが可能です。

他のマシンからAD認証を使ってsshログインをする
$ ssh lwtest.local\\testuser@(Ubuntuマシンのホスト名)
Password:

コマンドからドメインの情報を参照する

likewise-openパッケージには、多くのコマンドが用意されています。これらを使うことで、サービスの稼動状態やユーザの一覧など、Likewiseやドメインに関する様々な情報を得ることが可能です。コマンドには次のようなものがあります。なお他のコマンドの詳細はLikewise Openのマニュアルを参照してください。

ドメインに参加していることの確認
$ sudo domainjoin-cli query
Name = ubuntu
Domain = LWTEST.LOCAL
Distinguished Name = CN=UBUNTU,CN=Computers,DC=lwtest,DC=local
認証ステータスの表示
$ sudo lw-get-status
LSA Server Status:
(...略...)
[Authentication provider: lsa-activedirectory-provider]

	Status:        Online
	Mode:          Un-provisioned
	Domain:        LWTEST.LOCAL
	Forest:        lwtest.local
	Site:          Default-First-Site-Name
	Online check interval:  300 seconds
	[Trusted Domains: 1]


	[Domain: LWTEST]

		DNS Domain:       lwtest.local
		Netbios name:     LWTEST
		Forest name:      lwtest.local
(...略...)
デーモンのステータスの確認
$ sudo lwsm list
lwreg       running (standalone: 704)
dcerpc      running (standalone: 741)
eventlog    running (standalone: 757)
lsass       running (standalone: 828)
lwio        running (standalone: 820)
netlogon    running (standalone: 790)
npfs        running (io: 820)
rdr         running (io: 820)
ユーザの一覧表示
$ sudo lw-enum-users
(...略...)
User info (Level-0):
====================
Name:              testuser
Uid:               84935759
Gid:               84935169
Gecos:             testuser
Shell:             /bin/bash
Home dir:          /home/likewise-open/LWTEST/testuser

User info (Level-0):
====================
Name:              UBUNTU\Administrator
Uid:               1500
Gid:               1800
Gecos:             
Shell:             /bin/sh
Home dir:          /

おすすめ記事

記事・ニュース一覧