GNU/Linux >> Linux の 問題 >  >> Linux

Linux で Samba Active Directory のインストールを実行する方法

ネットワークの集中ドメイン管理が必要ですが、Windows Server の使用と追加のライセンス コストの支払いに熱心ではありませんか? Samba Active Directory は、Linux で試すことができる最良の無料の代替手段の 1 つです。

Samba は、主にネットワーク ファイル サーバーと印刷サービスで知られるオープン ソース ソリューションです。しかし、バージョン 4.0 以降、Samba では Active Directory サーバーの役割もプロビジョニングできるようになりました。

このチュートリアルでは、Ubuntu 20.04 に Samba Active Directory をインストールして構成する方法を説明します。準備をしてすぐに飛び込みましょう!

前提条件

この投稿は実践的なデモンストレーションです。従う場合は、次の要件が必要になります。

  • Ubuntu 20.04 サーバー。このチュートリアルでは、サーバーの名前は dc1 になります。 、ドメインは example.com になります 、IP アドレスは 172.16.1.10 です .
  • sudo 権限を持つユーザー アカウント。
  • Ubuntu サーバーと同じネットワーク上の Windows 10 コンピューター。

サーバー ホスト名の設定

最初のステップは、ネットワークでサーバーの ID を設定することです。そのためには、以下の手順に従って、サーバーのホスト名と完全修飾ドメイン名 (FQDN) を割り当てる必要があります。

1. まず、Ubuntu サーバーにログインし、ターミナル セッションを開きます。

2. 次に、hostnamectl を実行します 以下のコマンドでサーバーのホスト名を変更します。以下のコマンドは、ホスト名を dc1 に変更します .

# set up the hostname
hostnamectl set-hostname dc1

3. /etc/hosts を開きます nano など、好みのエディタを使用して編集するためのファイル .ファイル内に、サーバーのIPアドレスを指定するエントリを追加します 、FQDN 、およびホスト名 この形式 – server-IP hostname.domain.com hostname .

この例では、hosts ファイルのエントリは次のとおりです:# setup FQDN dc1.example.lan 172.16.1.10 dc1.example.lan dc1

# setup FQDN dc1.example.lan
172.16.1.10 dc1.example.lan dc1

新しいエントリを追加したら、ファイルを保存して終了します。

4. 最後に、以下のコマンドを実行して、Samba サーバーの FQDN を確認します。 # verify FQDN hostname -f # verify FQDN is resolved to the Samba IP address ping -c3 dc1.example.lan

# verify FQDN
hostname -f

# verify FQDN is resolved to the Samba IP address
ping -c3 dc1.example.lan

以下に示すように、Samba サーバーの FQDN は dc1.example.lan です。 、172.16.1.10 に解決されます .

DNS リゾルバーの無効化

systemd-resolved サービスは、Ubuntu サーバーの DNS 構成を制御しますが、これは Samba Active Directory には適していません。 Samba Active Directory をセットアップするには、まず systemd-resolved を無効にする必要があります /etc/resolv.conf をサービスして置き換えます

<オール>
  • 次のコマンドを実行して、systemd-resolved を無効にして停止します サービスを一度に削除し、ファイルへのシンボリック リンク /etc/resolv.conf を削除します 、 順番に。
  • # stop and disable systemd-resolved service
    sudo systemctl disable --now systemd-resolved
    
    # remove the symlink file /etc/resolv.conf
    sudo unlink /etc/resolv.conf

    2. 次に、新しい /etc/resolv.conf を作成します ファイル。

    # create a new /etc/resolv.conf file
    touch /etc/resolv.conf

    3. /etc/resolv.conf を開きます 好みのエディターを使用して、以下の構成を使用して DNS リゾルバーを定義します。 Samba サーバーの IP アドレスを行の一番上に置くようにしてください。ファイルを保存し、編集後に終了します。

    # Samba server IP address
    nameserver 172.16.1.10
    
    # fallback resolver
    nameserver 1.1.1.1
    
    # main domain for Samba
    search example.lan

    4. 最後に、次のコマンドを実行してファイルを /etc/resolv.conf にします。 ファイル不変。この手順により、リゾルバーが何らかの理由で知らないうちに変更されないようにします。

    # add attribute immutable to the file /etc/resolv.conf
    sudo chattr +i /etc/resolv.conf

    Samba のインストール

    FQDN をセットアップして名前解決を構成したら、Samba をシステムにインストールし、Samba Active Directory サービスを有効にします。これを書いている時点で、公式の Ubuntu リポジトリは Samba v4.13 を提供しています。

    1. apt を実行します 以下のコマンドを実行して、Ubuntu サーバーのパッケージ インデックスを更新します。

    sudo apt update

    2. 次に、以下のコマンドを実行して、すべてのパッケージと依存関係とともに Samba をインストールします。

    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. デフォルトのレルム ドメイン名を大文字で入力します。この例では、FQDN は dc1.example.lan です。 であるため、デフォルトの領域ドメイン名は EXAMPLE.LAN である必要があります .ハイライト OK し、Enter を押します。

    4. 次のプロンプトで、サーバーの FQDN を入力します。この手順では、デフォルトの Kerberos サーバーを定義します。ハイライト OK し、Enter を押します。

    5. 次に、サーバーの FQDN をもう一度入力して、Kerberos 管理サーバーを指定します。ハイライト わかりました Enter キーを押して、Samba の初期構成を完了します。

    6. Samba のインストール後、次のコマンドを実行して、Samba Active Directory サーバーが必要としないサービスを停止して無効にします smbdnmbdwinbind .サーバーは samba-ac-dc のみを必要とします Active Directory およびドメイン コントローラーとして機能します。

    # stop and disable samba services - smbd, nmbd, and winbind
    sudo systemctl disable --now smbd nmbd winbind

    7. 最後に、以下のコマンドを実行して、samba-ad-dc をアクティブにして有効にします。 サービス。

    # activate samba-ad-dc service
    sudo systemctl unmask samba-ad-dc
    
    # enable samba-ad-dc service
    sudo systemctl enable samba-ad-dc

    Samba Active Directory の構成

    これで、システムに Samba がインストールされました。 Samba Active Directory を構成するには、さらにいくつかの手順があります。 Samba のインストールには、samba-tool というコマンドライン ツールが付属していました。 Samba Active Directory をプロビジョニングします。

    1. まず、/etc/samba/smb.conf のバックアップを作成します 適切な方法でファイルします。プロビジョニング プロセスにより、このファイルが置き換えられます。

    # backup default Samba configuration file
    sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig

    2. samba-tool を実行します 以下のコマンドを実行して、Samba Active Directory のプロビジョニングを開始します。

    # provisioning Samba Active Directory
    sudo samba-tool domain provision

    3. レルムで プロンプトが表示されたら、デフォルト値を受け入れて Enter キーを押します。

    4. ドメイン プロンプトが表示されたら、もう一度 Enter キーを押してデフォルト値を受け入れます。

    5. サーバーの役割について プロンプトが表示されたら、デフォルトのままにして Enter キーを押します。

    6. DNS バックエンド 値をデフォルトのままにします (SAMBA_INTERNAL ) を入力し、Enter キーを押します。

    7. 次に、追加の DNS フォワーダーの IP アドレスを入力します .この例では、Cloudflare DNS 1.1.1.1 を追加します DNS フォワーダとして。このオプションは、SAMBA_INTERNAL を使用している場合にのみ使用できます DNS バックエンド。

    8. Samba Active Directory 管理者パスワードを入力し、Enter キーを押します。

    プロビジョニングにより、新しい Samba 構成ファイル (/etc/samba/smb.conf) が自動的に作成されます。 )および Kerberos 構成(/var/lib/samba/private/krb5.conf) ) ファイル。

    Samba Active Directory のプロビジョニング後、以下のスクリーンショットのような出力が表示されます。

    9. 次に、以下のコマンドを実行して、デフォルトの Kerberos 構成をバックアップし、ファイル /var/lib/samba/private/krb5.conf に置き換えます。 .

    # rename default Kerberos configuration to krb5.conf.orig
    sudo mv /etc/krb5.conf /etc/krb5.conf.orig
    
    # copy the Kerberos configuration generated by the samba-tool
    sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

    10. 最後に、systemctl を実行します 以下のコマンドで Samba Active Directory サービスを開始します samba-ad-dc サービスのステータスが active (running) であることを確認します .

    # start samba-ad-dc service
    sudo systemctl start samba-ad-dc
    
    # verify samba-ad-dc service
    sudo systemctl status samba-ad-dc

    samba-ad-dc サービスは active (running) です と enabled 、以下に示すように。システムの起動時に Samba AD デーモンが自動的に起動するようになりました。

    時刻同期の設定

    Samba Active Directory は Kerberos プロトコルに依存しており、Kerberos プロトコルでは AD サーバーとワークステーションの時刻が同期されている必要があります。時刻を正しく同期するには、ネットワーク タイム プロトコル (NTP) を設定する必要があります。 サーバーも Samba に。

    AD 時刻同期の利点には、リプレイ攻撃が含まれます AD レプリケーションの競合の防止と解決

    1. 以下のコマンドを実行して、ディレクトリ /var/lib/samba/ntp_signd/ntp_signed のデフォルトの権限と所有権を変更します .ユーザー/グループ _chrony ntp_signed への読み取り権限が必要です ディレクトリ。

    # allow group _chrony to read the directory ntp_signd
    sudo chown root:_chrony /var/lib/samba/ntp_signd/
    
    # change the permission of the directory ntp_signd
    sudo chmod 750 /var/lib/samba/ntp_signd/

    2. 次に、構成ファイル /etc/chrony/chrony.conf を開きます テキスト エディターで、次の構成をファイルの末尾に追加します。この構成により、chrony NTP サーバーが有効になり、NTP ソケットの場所が /var/lib/samba/ntp_signd にポイントされます .構成ファイルを保存し、エディターを終了します。

    # bind the chrony service to IP address of the Samba AD
    bindcmdaddress 172.16.1.10
    
    # allow clients on the network to connect to the Chrony NTP server
    allow 172.16.1.0/24
    
    # specify the ntpsigndsocket directory for the Samba AD
    ntpsigndsocket /var/lib/samba/ntp_signd

    3. 次に、次のコマンドを実行して再起動し、chronyd を確認します。 Samba AD サーバー上のサービス。

    # restart chronyd service
    sudo systemctl restart chronyd
    
    # verify chronyd service status
    sudo systemctl status chronyd

    以下に示すように、chronyd サービスはenabledです および active (running) . chronyd の一番下 ログメッセージ、メッセージ MS-SNTP authentication is enabled が表示されます NTP 認証拡張機能が機能していることを確認します。

    Samba Active Directory の確認

    インストール後、Samba の構成を検証して、これまでの作業が機能することを確認する必要があります。これを行うには、Samba DNS 構成、デフォルトの共有フォルダー (ファイル サーバー) を確認し、Kerberos 認証をテストします。

    1. host を実行します AD ドメイン名 example.lan を確認する以下のコマンド および dc1.example.lan .

    # verify domain example.lan
    host -t A example.lan
    
    # verify domain dc1.example.lan
    host -t A dc1.example.lan

    その結果、両方のホスト レコードが Samba サーバーの IP アドレス 172.16.1.10 を指していることが確認されます。 .

    2. 次に、_kerberos であることを確認します。 そして _ldap サービス レコードは両方とも、Samba Active Directory サーバーの FQDN を指しています。

    # verify SRV record for _kerberos
    host -t SRV _kerberos._udp.example.lan
    
    # verify SRV record for _ldap
    host -t SRV _ldap._tcp.example.lan

    この例では、以下の出力で両方の SRV が確認されます。 レコードは dc1.example.lan に解決されます .

    3. 次に、smbclient を実行します 以下のコマンドを実行して、Samba Active Directory で使用可能なデフォルトのリソースを確認します。

    # checking available resources on Samba AD
    smbclient -L example.lan -N

    Samba Active Directory のデフォルトの共有フォルダは sysvol であることがわかります。 および netlogon 、利用可能なデフォルトのサービスは IPC$ です .

    4. 最後に、以下の kinit を実行します ユーザー Administrator を使用して Kerberos サーバーに対して認証するコマンド システムにキャッシュされた Kerberos チケットを確認します。

    注:ドメイン部分は大文字e.にする必要があります

    # authenticate to Kerberos using administrator
    kinit [email protected]
    
    # verify list cached Kerberos tickets
    klist

    以下のスクリーンショットのような出力が表示されます。管理者の Kerberos チケットはファイル /tmp/krb5cc_0 に保存されます 有効期限は 41 日です。

    新しい Samba Active Directory ユーザーの作成

    この時点で、Samba Active Directory の構成が完了しました。しかし、ご存知のように、まだユーザーはいません。 samba-tool を使用して、最初の Samba AD ユーザー アカウントを作成します。 コマンド。

    1. 以下のコマンドを実行して、alice という名前の新しいユーザーを作成します。 、パスワードは alice_password88 です .

    # create a new user in Samba
    sudo samba-tool user create alice alice_password88

    2. 次に、samba-tool を実行します 以下のコマンドを実行して、Samba で利用可能なユーザーを確認します。

    # checking users on Samba
    sudo samba-tool user list

    以下に示すように、新しいユーザー alice は、Samba Active Directory で利用できます。

    Samba Active Directory ドメインへの参加とログイン

    新しいユーザーを作成したので、あとはワークステーションを Active Directory ドメインに参加させるだけです。その後、Samba AD ユーザー資格情報を使用してワークステーションにログインできます。

    1. Windows PC にログインし、管理者として PowerShell を開きます。

    2. 次のコマンドを実行して、Windows PC で使用可能なイーサネット アダプターを一覧表示します。

    # checking available interface using Powershell command
    Get-NetAdapter -Name "*"

    PowerShell 画面に異なる出力が表示される場合があります。この例は、Ethernet Instance 0 2 という 1 つのネットワーク インターフェイスを示しています。 .

    3. 次のコマンドを実行して、アダプターの DNS サーバーを Samba Active Directory の IP アドレスに変更し、追加のフォールバック Cloudflare DNS 1.1.1.1 を使用します。 .この手順を実行すると、ワークステーションが名前解決に Samba AD サーバーを使用するようになります。

    # setup DNS resolver using Powershell
    Set-DNSClientServerAddress "Ethernet Instance 0 2" –ServerAddresses ("172.16.1.10","1.1.1.1")

    4. 以下のコマンドを実行して DNS リゾルバーを確認し、コンピューターが Samba AD サーバーをデフォルトの DNS リゾルバーとして使用していることを確認します。

    # verify DNS resolver
    Get-DnsClientServerAddress

    以下のスクリーンショットのような同様の出力が表示されます。

    5. ここで、サーバーのホスト名とドメインに対して ping を実行します。

    # ping the AD domain dc1.example.lan
    ping dc1.example.lan
    
    # ping the AD domain example.lan
    ping example.lan

    以下のように、AD サーバーからの応答が表示されます。結果が Samba AD サーバーの IP アドレスを指していることを確認します。

    6. 次に、次のコマンドを実行して、ワークステーションを Samba Active Directory ドメインに参加させます。

    # add Windows 10 to Active Directory
    Add-Computer -DomainName "example.lan" -Restart

    7. Samba AD administrator を入力します ユーザー名とパスワードを確認したら、[OK] をクリックします。 コンピューターは、ドメイン参加プロセスの一部として自動的に再起動します。

    8. 再起動後、Other users をクリックします。 ログイン画面で。前に作成した Samba AD ユーザーの Active Directory ユーザー名とパスワード ([email protected]) を入力します。 ) を入力し、Enter を押してログインします。

    9. ログインに成功したら、PowerShell ウィンドウを開き、以下のコマンドまたは両方を実行して、現在ログオンしているユーザー名を確認します。

    whoami
    query user

    結論

    Active Directory の概念とアプリケーションは、Windows エコシステムだけのものではありません。このチュートリアルでは、Samba Active Directory を実装することで、Linux でも同じ Active Directory の利点を享受できることを学びました。

    このチュートリアルを通じて、Ubuntu 20.04 に Samba Active Directory をインストールして構成する方法を学習しました。また、新しいユーザーを作成し、Windows ワークステーションを Samba Active Directory ドメインに参加させる方法も学びました。

    あなたの次は何ですか?印刷サポートや Samba 共有ファイル サーバーのセットアップのために、Samba を CUPS サービスに統合するのはどうですか?ご覧のとおり、Samba には Active Directory 以外にも機能があります!


    Linux
    1. LinuxにPythonをインストールする方法

    2. LinuxにNodeJSをインストールする方法

    3. LinuxにVagrantをインストールする方法

    1. LinuxにJavaをインストールする方法

    2. LinuxにFFmpegをインストールする方法

    3. LinuxにTeamViewer15をインストールする方法

    1. Linuxを3つのステップでインストールする方法

    2. KaliLinuxのインストール方法

    3. LinuxにPIPをインストールする方法