はじめに
ふと、自宅のADサーバーに対して、Windowsクライアント端末がドメイン参加できるのは当たり前ですが、Linuxではどうなのか疑問に思いました。
そもそもOSが異なり、LinuxにはActive Directory(AD)という概念が存在しないと思っていましたが、調べた結果、Linuxでもドメイン参加が可能であることが分かりました。
そこで、実際に検証して試してみることにしました。
前提条件
・VirtualBox上で稼働しているWindows Server 2022 を使用
・VirtualBox上で稼働しているAlmaLinux(CentOSの後継)を使用
※検証には「Windows Server 2022」と「AlmaLinux」を使用します。
全体像および自宅検証環境
前回の記事では、構築したAD兼DNSサーバーにWindows 10のクライアント端末を「honda.co.jp」という自宅環境のドメインに参加させる検証を行いました。
その続きとして、同じ環境でLinuxクライアント端末をドメインに参加させる方法を説明します。
Windows Server 2022で自宅ネットワークにADサーバーを構築し、Windows 10端末をドメインに参加させる方法
イラストイメージ図通りに、Linuxクライアント端末をドメインに参加(登録)させるイメージです。
引用画像: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 <ドメイン名>
次に、ADドメインに参加するには以下のコマンドを実行します。
sudo realm join --user=<AD管理者アカウント> <ドメイン名>
ドメインの管理者アカウントで認証し、パスワードを入力してエンターを押してください。
検証結果
ここまでの手順での検証結果を、ADサーバーに対してLinuxクライアント端末から確認していきます。
ドメイン参加の確認
ADドメインへの参加が正しく完了したかどうかを確認します。以下のコマンドで参加中のドメインを確認できます。
realm list
私のLinuxサーバーが「honda.co.jp」というドメインに参加していることが確認できました。
次に、ADサーバーからの確認も行います。Linuxクライアント端末のドメイン参加前の状態は以下の通りで、Windows 10端末1台のみが参加している状況です。
「honda.co.jp」のドメインに参加後の状態は以下の通りで、正常に参加できていることが確認できました。
まとめ
LinuxサーバーをADドメインに参加させるためには、まず必要なパッケージをインストールし、DNS設定を正しく行いました。次に、realmコマンドを使ってADドメインを検出し、ドメインに参加させました。
参加後は、realm listコマンドでドメイン参加の確認を行い、ADサーバー側でもLinuxクライアントの参加状況を確認しました。最終的に、ADドメインに正しく参加していることが確認できれば、今回の構築は成功と言えそうです。
Linuxサーバーのドメインに参加の動作確認もこれでばっちりですね!
参考記事