0
0

LinuxサーバーをWindows Server 2022のADドメインに参加させる手順と確認方法

Last updated at Posted at 2024-09-10

はじめに

ふと、自宅のADサーバーに対して、Windowsクライアント端末がドメイン参加できるのは当たり前ですが、Linuxではどうなのか疑問に思いました。

そもそもOSが異なり、LinuxにはActive Directory(AD)という概念が存在しないと思っていましたが、調べた結果、Linuxでもドメイン参加が可能であることが分かりました。

そこで、実際に検証して試してみることにしました。

前提条件

・VirtualBox上で稼働しているWindows Server 2022 を使用
・VirtualBox上で稼働しているAlmaLinux(CentOSの後継)を使用

自宅のVirtualBox環境
image.png

※検証には「Windows Server 2022」と「AlmaLinux」を使用します。

全体像および自宅検証環境

前回の記事では、構築したAD兼DNSサーバーにWindows 10のクライアント端末を「honda.co.jp」という自宅環境のドメインに参加させる検証を行いました。

その続きとして、同じ環境でLinuxクライアント端末をドメインに参加させる方法を説明します。
Windows Server 2022で自宅ネットワークにADサーバーを構築し、Windows 10端末をドメインに参加させる方法

イラストイメージ図通りに、Linuxクライアント端末をドメインに参加(登録)させるイメージです。
image.png

引用画像:https://www.anet.co.jp/design/infrastructure/activedirectory.html

Linuxクライアント端末をActive Directory (AD) ドメインに参加させることで、ADによるユーザー管理や認証を利用することができます。

知識整理

前回の記事と重複する内容がありますが、基礎的な前提知識はマストですので、お手すきの際に目を通していただければと思います。

Active Directory(AD)の役割と機能

役割:
Active Directoryは、ユーザー、コンピューター、グループ、ネットワークリソースを一元管理するディレクトリサービスです。
主な役割は、ユーザー認証、アクセス管理、リソースの割り当て、セキュリティポリシーの適用です。

機能:
- ユーザーとグループ管理: ユーザーやグループを作成、管理し、アクセス権限を設定できる。
- 認証: Kerberosプロトコルを使用したセキュアな認証を提供。
- グループポリシー: 組織全体のセキュリティやシステム設定を一元的に管理。
- ドメインコントローラー(DC): Active Directoryをホストするサーバーで、認証やディレクトリ情報の管理を行う。

DNSサーバの役割と機能

役割:
DNS(Domain Name System)は、ドメイン名とIPアドレスを相互に変換するシステムです。
Active DirectoryはDNSと密接に連携しており、ADドメイン内での名前解決をサポートします。

機能:
- 名前解決: ホスト名(例: server.local)をIPアドレスに変換する。
- リバースルックアップ: IPアドレスをホスト名に変換する。
- Active Directoryとの連携: ADのドメイン名やリソースレコードの自動登録と管理を行う。

今回は、ADやDNSにある程度慣れている方向けの内容となります。

基本的な前提知識については、以下のサイトをご参照ください。

Active Directoryについて
参考サイト:https://business.ntt-east.co.jp/content/cloudsolution/column-498.html
参考サイト:https://www.sbbit.jp/article/cont1/37798

DNSについて
参考サイト:https://www.xdomain.ne.jp/column/about-dns/
参考サイト:https://xtech.nikkei.com/it/article/COLUMN/20060414/235341/

ドメイン参加について
参考サイト:https://www.buffalo.jp/support/faq/detail/16331.html
公式サイト:https://learn.microsoft.com/ja-jp/windows-server/identity/ad-fs/deployment/join-a-computer-to-a-domain

ドメインコントローラー について
参考サイト:https://jousys-force.deepapex.com/blogs/domain-controller
参考サイト:https://atmarkit.itmedia.co.jp/ait/articles/1405/26/news024.html

AlmaLinuxについて
詳細サイト: https://www.designet.co.jp/ossinfo/almalinux/
公式サイト: https://almalinux.org/ja/

構築の流れ

構築手順については前回の記事で説明していますので、興味のある方はそちらをご参照ください。
Windows Server 2022で自宅ネットワークにADサーバーを構築し、Windows 10端末をドメインに参加させる方法

ここでは、Windows Server 2022でのADサーバーの構築が完了している前提で、後続の手順をご紹介します。
ステップ1:必要なパッケージのインストールとネットワーク設定
ステップ2:ADドメインへの参加と動作確認

LinuxクライアントをADドメインに参加させるための手順を、大きく2つのステップに分けて解説します。

ステップ1:必要なパッケージのインストールとネットワーク設定

パッケージのインストール
ADドメインに参加するために必要なパッケージをインストールします。これにより、ADとLinuxクライアント間の通信や認証が可能になります。

Ubuntuの場合:

sudo apt update
sudo apt install realmd sssd sssd-tools adcli krb5-user packagekit

CentOS/RHELの場合:

sudo yum install realmd sssd oddjob oddjob-mkhomedir adcli samba-common-tools krb5-workstation

これらのパッケージには、以下の機能があります。

realmd: ADドメインに参加するためのツール。
sssd: 認証情報の管理を行うデーモン。
adcli: ドメインに参加するためのCLIツール。
krb5-user: Kerberos認証に必要なライブラリ。

DNS設定の確認・修正
ADドメインコントローラーと通信できるように、LinuxマシンのDNS設定を行います。これにより、ADサーバーの名前解決が可能になります。

/etc/resolv.confファイルを編集し、DNSサーバーのIPアドレスを追加します。 私の環境では、プライマリーDNSにADドメインコントローラーのIPアドレスを設定しました。

vi /etc/resolv.conf

設定例:

# Generated by NetworkManager
nameserver <ADドメインコントローラーのIPアドレス>
nameserver 192.168.1.1

※/etc/resolv.conf編集後も、NetworkManager によってこの設定が上書きされることがありますので、上書きを防ぐための設定を以下に紹介します。

sudo vi /etc/NetworkManager/NetworkManager.conf

[main] セクションに次の行を追加します。この設定により、NetworkManager が DNS 設定を管理しなくなります。

[main]
dns=none

設定を変更した後、NetworkManager を再起動して変更を反映させます。

sudo systemctl restart NetworkManager

DNSのキャッシュをクリアするために、以下のコマンドを使用しました。

sudo systemctl restart dnsmasq

/etc/resolv.conf ファイルが正しく設定されていることを確認し、NetworkManager やその他のネットワークサービスを再起動して、設定変更を適用します。

sudo systemctl restart NetworkManager

名前解決のテスト(ADサーバーとの接続確認)
DNS 設定が正しく反映されているか確認するために、以下のコマンドで名前解決をテストします。

ping <ADドメイン名>

ステップ2:ADドメインへの参加と動作確認

必要なパッケージがインストールされ、ネットワークが構成されたら、realmdを使用してLinuxマシンをADドメインに参加させます。

ADドメインへの参加
まず、ドメインを検出するには以下のコマンドを実行します。

realm discover <ドメイン名>

コマンド実行結果
image.png

次に、ADドメインに参加するには以下のコマンドを実行します。

sudo realm join --user=<AD管理者アカウント> <ドメイン名>

コマンド実行結果
image.png

ドメインの管理者アカウントで認証し、パスワードを入力してエンターを押してください。

検証結果

ここまでの手順での検証結果を、ADサーバーに対してLinuxクライアント端末から確認していきます。

ドメイン参加の確認
ADドメインへの参加が正しく完了したかどうかを確認します。以下のコマンドで参加中のドメインを確認できます。

realm list

コマンド実行結果
image.png

私のLinuxサーバーが「honda.co.jp」というドメインに参加していることが確認できました。

次に、ADサーバーからの確認も行います。Linuxクライアント端末のドメイン参加前の状態は以下の通りで、Windows 10端末1台のみが参加している状況です。

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f333636323537312f31353836376133612d346137632d623539612d393863612d6639633830343866636338332e706e67.png

「honda.co.jp」のドメインに参加後の状態は以下の通りで、正常に参加できていることが確認できました。

image.png

まとめ

LinuxサーバーをADドメインに参加させるためには、まず必要なパッケージをインストールし、DNS設定を正しく行いました。次に、realmコマンドを使ってADドメインを検出し、ドメインに参加させました。

参加後は、realm listコマンドでドメイン参加の確認を行い、ADサーバー側でもLinuxクライアントの参加状況を確認しました。最終的に、ADドメインに正しく参加していることが確認できれば、今回の構築は成功と言えそうです。

Linuxサーバーのドメインに参加の動作確認もこれでばっちりですね!

参考記事

https://qiita.com/TakSewo/items/b870e45ee9b72d6b0ad3
https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/8/html/integrating_rhel_systems_directly_with_windows_active_directory/proc_joining-samba-to-a-domain_connecting-rhel-systems-directly-to-ad-using-samba-winbind
https://ryuichi1208.hateblo.jp/entry/2018/03/12/000000
https://tamnology.com/linux001/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0