Linux に Samba を Active Directory ドメイン コントローラーとして導入する方法 - TechRepublic

Linux に Samba を Active Directory ドメイン コントローラーとして導入する方法 - TechRepublic

画像: ジャック・ウォーレン

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 を購読してください。

Tagged: