Linux サーバー上のドメイン コントローラー?!不可能!特にコンセプトを初めて聞いた人にとっては、反応は有効です。ドメイン コントローラーの Linux サーバーをセットアップできるだけでなく、無料でセットアップできることがわかりました!
コスト、標準化、またはより環境に優しく無駄のない技術スタックのために Linux を選択するかどうかにかかわらず、Linux DC のセットアップ方法を学ぶことは、すべての管理者にとって優れたスキルです。
Samba の使用方法については、以下をお読みください。 信頼できるドメイン コントローラー Linux サーバーとして。
前提条件
このチュートリアルは実践的なデモンストレーションです。先に進みたい場合は、Ubuntu サーバーがあることを確認してください。このチュートリアルでは、次の構成の Ubuntu Server 22.04 LTS を使用します。
- ホスト名:
oddjobs-dc
- IP アドレス:
192.168.8.10
- ドメイン:
OJI.COM
- FQDN:
oddjobs-dc.oji.com
Linux サーバーでのドメイン コントローラの準備
すべての前提条件を満たした後、DC の機能を妨げる可能性のある既定のオペレーティング システム設定がないことを確認する必要があります。心配しないで。この手順は、思ったほど複雑ではありません。以下の手順に従って、このタスクを完了してください。
ホスト ファイル エントリのセットアップ
最初のタスクは、サーバーのホスト名と FQDN エントリをローカル hosts に追加することです (/etc/hosts
) ファイル。
1. まず、好みの SSH クライアントを開き、Ubuntu サーバーにログインします。
2. ホストを開く (/etc/hosts) ファイルを nano などのテキスト エディターで開きます。
sudo nano /etc/hosts
3. ホスト名または FQDN を静的 IP 以外の IP にマップするエントリを削除します。たとえば、このサーバーの静的 IP アドレスは 192.168.8.10 であるため、このエントリが存在する場合はそのままにしておきます。以下の例を参照してください。
4. 次に、ホストの FQDN と静的 IP アドレスをマップするエントリを追加します。このチュートリアルでは、サーバーの FQDN は oddjobs-dc.oji.com であるため、追加するエントリは次のとおりです。
192.168.8.10 oddjobs-dc.oji.com oddjobs-dc
5. ホストを保存します (/etc/hosts) ファイルを開き、エディターを終了します。
ホスト名と FQDN の解決を確認する
以下のコマンドを実行して、サーバーのホスト名と FQDN が正しい IP アドレスに解決されることを確認します。
# verify server FQDN
hostname -A
# verify FQDN resolves to your server IP address
ping -c1 oddjobs-dc.oji.com
以下に示すように、コマンドは予想される FQDN と IP アドレスを返しました。
ネットワーク名解決サービスを無効にする
Ubuntu には systemd-resolved
というサービスがあります 、DNS 解決要求を処理します。このサービスは Samba には適していないため、無効にして代わりに DNS リゾルバーを手動で構成する必要があります。
1. 以下のコマンドを実行して、systemd-resolved サービスを無効にします。
sudo systemctl disable --now systemd-resolved
2. 次に、ファイル /etc/resolv.conf へのシンボリック リンクを削除します。
sudo unlink /etc/resolv.conf
3. テキスト エディタで新しい /etc/resolv.conf ファイルを作成します。この例では nano を使用しています。
sudo nano /etc/resolv.conf
4. /etc/resolv.conf ファイルに次の情報を入力します。 192.168.8.10 をサーバーの IP アドレスに、oji.com をドメインに置き換えます。ネームサーバー 1.1.1.1 をフォールバック DNS リゾルバーとして残します。これは、Cloudflare によるパブリック DNS リゾルバーです。
# your Samba server IP Address
nameserver 192.168.8.10
# fallback resolver
nameserver 1.1.1.1
# your Samba domain
search oji.com
/etc/resolv.conf は以下のスクリーンショットのようになります。
5. ファイルを保存してエディターを終了します。
Samba のインストール
サーバーの準備が完了したら、Samba とその他の必要なパッケージをインストールして、ドメイン コントローラーをプロビジョニングします。
1. まず、以下のコマンドを実行して、リポジトリ キャッシュが最新であることを確認します。
sudo apt-get update
2. 以下のコマンドを実行して、完全に機能するドメイン コントローラーに必要なパッケージをインストールします。
sudo apt install -y acl attr samba samba-dsdb-modules samba-vfs-modules smbclient winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user dnsutils chrony net-tools
3. [Kerberos 認証の構成] ステップで、DNS ドメインを大文字で入力します。この例では、デフォルトのレルム ドメインは OJI.COM です。 [OK] を強調表示し、Enter キーを押して値を受け入れます。
4. レルムの Kerberos サーバーを尋ねる次の画面で、サーバーのホスト名を入力して Enter キーを押します。
5. Kerberos レルムの管理サーバーを求める次の画面で、サーバーのホスト名を入力して Enter キーを押します。
6. 構成後、不要なサービス (winbind、smbd、および nmbd) を無効にします。
sudo systemctl disable --now smbd nmbd winbind
7. samba-ad-dc サービスを有効にしてアクティブにします。このサービスは、Samba が Active Directory ドメイン コントローラー Linux サーバーとして機能するために必要なものです。
# unmask the samba-ad-dc service
sudo systemctl unmask samba-ad-dc
# enable samba-ad-dc service
sudo systemctl enable samba-ad-dc
ドメイン コントローラー Linux サーバーのプロビジョニング
samba-tool バイナリを使用して、Samba のインストール時にドメイン コントローラーをプロビジョニングできるようになりました。 サンバも l は、Samba ベースの AD のさまざまな側面とやり取りして構成するための構成ツールです。
1. 念のため、既存の /etc/samba/smb.conf および /etc/krb5.conf ファイルをバックアップします。
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo mv /etc/krb5.conf /etc/krb5.conf.bak
2. 以下のコマンドを実行して、Samba を Active Directory ドメイン コントローラー Linux サーバーに昇格させます。
–use-rfc2307 スイッチは、ネットワーク情報サービス (NIS) 拡張機能を有効にし、DC が UNIX ベースのユーザー アカウントを適切に管理できるようにします。
sudo samba-tool domain provision --use-rfc2307 --interactive
3. プロンプトに次のように回答します。
- レルム – ツールは自動的に Kerberos レルムを検出します。この例では、レルムは
OJI.COM
です . Enter キーを押してデフォルトを受け入れます。
- ドメイン – ツールは NetBIOS ドメイン名を自動的に検出します。この例では、NetBIOS は
OJI
です。 . Enter キーを押して続行してください。
- サーバーの役割 – このツールは、サーバーの役割をドメイン コントローラー (
dc
) として自動的に設定します。 )。 Enter キーを押して続行してください。
- DNS バックエンド – デフォルトは
SAMBA_INTERNAL
です . Enter キーを押してデフォルトを受け入れます。
- DNS フォワーダーの IP アドレス –
resolve.conf
で指定したフォールバック リゾルバ アドレスを入力します 以前は1.1.1.1
です . Enter キーを押して続行してください。
- 管理者パスワード – デフォルトのドメイン管理者のパスワードを設定します。指定するパスワードは、Microsoft の最小限の複雑さの要件を満たす必要があります。 Enter キーを押して続行します。
- パスワードの再入力 - デフォルトのドメイン管理者パスワードを再入力し、Enter キーを押します。
構成の最後に、次の情報が表示されます。
4. samba-tool コマンドにより、/var/lib/samba/private/krb5.conf に Samba AD Kerberos 構成ファイルが生成されました。このファイルを /etc/krb5.conf にコピーする必要があります。これを行うには、次のコマンドを実行します。
sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
5. 最後に、samba-ad-dc サービスを開始します。
sudo systemctl start samba-ad-dc
sudo systemctl status samba-ad-dc
以下に示すように、サービスのステータスは現在アクティブ (実行中) です。
ドメイン コントローラー Linux サーバーのテスト
Samba AD DC サーバーが実行中です。このセクションでは、いくつかのインストール後のテストを実行して、主要なコンポーネントが期待どおりに機能していることを確認します。そのようなテストの 1 つは、DC の既定のネットワーク共有へのログインを試みることです。
smbclient コマンドを実行して、デフォルトの管理者アカウントとしてログオンし、netlogon 共有の内容を一覧表示 (ls) します。
smbclient //localhost/netlogon -U Administrator -c 'ls'
デフォルトの管理者パスワードを入力します。 DC が良好な状態であれば、エラーなしで共有にアクセスできるはずです。以下に示すように、コマンドは netlogon 共有ディレクトリを一覧表示します。
キー ドメイン レコードの DNS 解決の確認
以下のコマンドを実行して、次の DNS レコードを検索してください。
- ドメインの TCP ベースの LDAP SRV レコード。
- ドメインの UDP ベースの Kerberos SRV レコード。
- ドメイン コントローラの記録
host -t SRV _ldap._tcp.oji.com
host -t SRV _kerberos._udp.oji.com
host -t A oddjobs-dc.oji.com
各コマンドは、DNS 解決が機能していることを示す次の結果を返す必要があります。
ケルベロスのテスト
最後のテストは、Kerberos チケットの発行を試みることです。
1. 管理者ユーザーでkinitコマンドを実行します。このコマンドは、レルムをユーザー アカウントに自動的に追加します。たとえば、管理者は [email protected] になり、OJI.com がレルムになります。
kinit administrator
2. プロンプトで管理者パスワードを入力し、Enter キーを押します。パスワードが正しい場合、以下に示すように、パスワードの有効期限に関する警告メッセージが表示されます。
3. 以下の klist コマンドを実行して、チケット キャッシュ内のすべてのチケットを一覧表示します。
klist
以下のスクリーンショットは、管理者アカウントの Kerberos チケットがチケット キャッシュにあることを示しています。この結果は、Kerberos 認証がドメイン コントローラーの Linux サーバーで機能することを示しています。
結論
このチュートリアルの最後に到達しておめでとうございます。これで、Active Directory ドメイン コントローラー Linux サーバーをすばやく立ち上げる方法を学習しました。ユーザーを作成し、クライアント コンピューターをドメインに参加させる方法を学習して、このテーマに関する知識を深めてください。