
画像: ジャック・ウォーレン
Active Directory(AD)は、ネットワークに接続されたマシンにポリシーを作成し、適用するためのMicrosoftのソリューションです。あらゆる企業やネットワーク管理者に広く利用されているツールです。
Microsoftのソリューションは、これを実現する唯一の手段ではありません。オープンソースのSambaは、Active Directoryドメインコントローラーの導入を可能にします。このコントローラーを使用することで、ユーザーの作成やポリシーの設定も可能です。
このテーマに関するチュートリアルシリーズを執筆する予定です。最初の記事では、Ubuntu Server 20.04のインスタンスにSamba ADを展開します。
参照:チェックリスト: サーバーインベントリ(TechRepublic Premium)
必要なもの
- Ubuntu 20.04の実行中のインスタンス
- sudo権限を持つユーザー
ホスト名の設定方法
まず最初に、マシンのホスト名を設定する必要があります。このサーバーを「dc1」と呼びます。ホスト名を設定するには、Ubuntuサーバーにログインし、次のコマンドを実行します。
sudo hostnamectl set-hostname dc1
次に、/etc/hosts ファイルにホスト名とIPアドレスをマッピングする行を追加する必要があります。以下のコマンドでファイルを開き、編集します。
sudo nano /etc/hosts
そのファイルの下部に、次の行を追加します (IP アドレス スキームとサーバーの REALM に合わせて情報を編集します)。
192.168.1.100 dc1 dc1.example.com
ホスト名の変更を有効にするには、ログアウトして再度ログインしてください。
必要なパッケージをインストールする方法
必要なソフトウェアをすべてインストールします。ターミナルウィンドウから次のコマンドを実行します。
sudo apt install samba smbclient winbind libpam-winbind libnss-winbind krb5-kdc libpam-krb5 -y
インストール中に、デフォルトのKerberosバージョン5レルムを入力するよう求められます。この設定(およびそれに伴うエラー)は無視してください。後で設定します。ソフトウェアのインストールが完了したら、ドメインコントローラー(DC)の設定に進むことができます。
SambaをADコントローラとして設定する方法
まず、SambaとKerberosの両方の元の設定ファイルを移動します。そのためには、以下のコマンドを実行します。
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo mv /etc/krb5.conf /etc/krb5.conf.bak
Sambaには便利なセットアップコマンドが付属しており、これを使ってADコントローラーを設定します。以下のコマンドを実行します。
sudo samba-tool domain provision --use-rfc2307 --interactive
このコマンドはホストのファイルからデフォルトのレルムとドメインを取得するので、デフォルトのままにしておいてください。次の2つの質問(サーバーロール、DNSバックエンド)もデフォルトのままにしておいてください。DNSフォワーダーのIPアドレスに到達したら、CloudflareやGoogleなどの信頼できるDNSサービスを使用してください。最後に、管理者ユーザーのパスワードを作成するように求められます。このパスワードは強力で一意であることを確認してください。
Samba が構成を完了できるようにします。
次の手順では、次のコマンドを使用して Kerberos 構成ファイルをコピーします。
sudo cp /var/lib/samba/private/krb5.conf /etc
起動時にSamba ADを有効にする方法
最後に、サーバーを再起動する必要がある場合でも、すべてが起動することを確認する必要があります。そのためには、smbd、nmbd、winbind の各サービスをマスク、停止、無効化し、samba-ad-dc サービスを umask、起動、有効化する必要があります。これは以下のコマンドで実行できます。
sudo systemctl mask smbd nmbd winbind
sudo systemctl disable smbd nmbd winbind
sudo systemctl stop smbd nmbd winbind
sudo systemctl unmask samba-ad-dc
sudo systemctl start samba-ad-dc
sudo systemctl enable samba-ad-dc
完了したら、サーバーを再起動してテストの準備をします。
DC構成をテストする方法
この時点でSambaドメインコントローラーは起動していますが、問題があります。現状では、サーバーのデフォルトがsystemd-resolvedであるため、SambaはDNSなしで動作しています。この問題を回避するには、以下のコマンドでsystemd-resolvedを停止し、無効化します。
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
次に、次のコマンドを使用して、/etc/resolv.conf ファイルのリンクを解除する必要があります。
sudo unlink /etc/resolv.conf
最後に、次のコマンドで resolv.conf ファイルを開きます。
sudo nano /etc/resolv.conf
そのファイルに次の内容を追加します。
nameserver SERVER
search DOMAIN
ここで、SERVER は Samba AD ホストの IP アドレスであり、DOMAIN はサーバーに関連付けられたドメインです。
サーバーを再起動します。
サーバーが再起動したら、次のコマンドで AD 接続をテストします。
sudo samba
host -t SRV _ldap._tcp.monkeypantz.lan
次のような画面が表示されます。
_ldap._tcp.monkeypantz.lan has SRV record 0 100 389 dc1.monkeypantz.lan.
次に、次のコマンドで Kerberos 認証をテストします。
kinit Administrator
Samba DC のセットアップ中に作成したパスワードを入力すると、次のように、パスワードが X 日後に期限切れになるという警告が表示されます。
Warning: Your password will expire in 41 days on Thu 17 Jun 2021 01:05:21 PM UTC
おめでとうございます。Ubuntu Server がドメイン コントローラーとして機能するようになりました。
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。