share facebook facebook twitter menu hatena pocket slack

2014.09.28 SUN

[Linux][Windows] RHEL7をActive Directory on Windows Server 2012 R2でユーザ認…

磯辺 和彦

WRITTEN BY 磯辺 和彦

こんにちわ、cloudpack磯辺です。

前回示した構成での構築を進めていく。対象となる環境はAWSで、VPCを用意して、そこにActive Directory Domain Serviceを構成する。

ちなみに、VPC上にActive Directoryを構築する方法については、Active Directory on AWSが大変参考になる。

構築したADの情報

今回は、下記のような構成でADを用意した。

  • ドメイン名は、example.localとする。NetBIOS名はEXAMPLEとなる。
  • 複数AZにそれぞれ一台ずつADサーバを用意する。
    • ad1.example.local (10.0.2.4)
    • ad2.example.local (10.0.130.4)
  • DHCP Option Setで、VPC内の名前解決をADサーバでできるように設定しておく。
    netbios-node-type = 2
    ntp-servers = 10.0.2.4, 10.0.130.4
    domain-name = exmaple.local
    domain-name-servers = 10.0.2.4, 10.0.130.4
    netbios-name-servers = 10.0.2.4, 10.0.130.4
    

以上のような環境に、Red Hat Enterprise Linux 7(RHEL7)を追加して、ユーザ認証をADでできるようにする。

基本設定

認証まわりの設定をする前の、前提となるいくつかの基本的な設定を行う。

ホスト名の設定

RHEL7でホスト名を変更するの手順に従って、ホスト名を適切なものに変更する。

# hostnamectl set-hostname linux1 --static
# vim /etc/cloud/cloud.cfg
preserve_hostname: true # 追記

時計を調整する

タイムゾーンをJSTに変更したり、ADサーバと同期させたりする。NTPについては、ADやVPCの設定が適切に設定されていれば、特に追加の設定はいらないはず。

各種パッケージのインストール

今回必要となるパッケージは以下のとおり。

sssd, sssd-ad
RHEL7には、SSSDのパッケージが用意されているので、それを導入する。sssd-adという、Active Directoryに対応するパッケージがあるので、それも入れる。
krb5-workstation
認証にKerberosを使用するため、Kerberos関連のパッケージを入れる。
samba-client
ドメインに参加する際に、netコマンドを使用するので入れる。
oddjob-mkhomdir
ドメインユーザがログインした時に、自動的にホームディレクトリを作成してくれるツールも入れる。

ということで、下記のコマンドを実行してインストールする。

# yum -y install sssd sssd-ad krb5-workstation samba-client oddjob-mkhomedir

Kerberosの設定

/etc/krb5.confの、libdefaultsセクションを、下記のように設定する。

[libdefaults]
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_realm = EXAMPLE.LOCAL
default_ccache_name = KEYRING:persistent:%{uid}

Sambaの設定

ドメインに参加する目的でnetコマンドを使用するため、/etc/samba/smb.confのglobalセクションを下記のように設定する。

[global]
workgroup = EXAMPLE
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
security = ads
realm = EXAMPLE.LOCAL
password server = AD1.EXAMPLE.LOCAL AD2.EXAMPLE.LOCAL

Kerberosの初期化

kinitを実行して、TGTを取得する。指定するアカウントは、ADのドメイン管理者を指定する。

# kinit Administrator
Password for Administrator@EXAMPLE.LOCAL:

ドメインに参加

net ads joinを実行して、ドメインに参加する。

# net ads join -U administrator
Enter administrator's password:
Using short domain name -- EXAMPLE
Joined 'LINUX1' to dns domain 'example.local'
No DNS domain configured for jump. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER

“Joined ‘LINUX1’ … と出力されているので、ドメインに参加できている。その下に出力されているエラーは、DNSの動的更新に失敗したというエラーになる。今回やることに影響がないので、とりあえず放っておく。これについては別途解決する予定。

ここまでで、ADドメインへの参加ができた。ちょっと長くなってきたので今回はここまでとする。待て次号!

元記事はこちらです。
[Linux][Windows] RHEL7をActive Directory on Windows Server 2012 R2でユーザ認証させる (2)

磯辺 和彦

磯辺 和彦

cloudpackに参加して以来、設計・構築・運用・開発・セキュリティなど様々な経験を経て、現在は主に社内インフラ関連を担当中。WEB+DB Press Vol.85に記事書きました。