開発運用

SambaとActive Directoryの統合

UbuntuとWindowsの間でファイル共有やプリンター共有を実現するために、SambaとActive Directoryを統合する方法について詳しく説明します。このプロセスは、LinuxシステムとWindows環境間でシームレスなネットワーク共有を提供するために非常に有効です。この記事では、SambaをActive Directoryに統合する手順をステップバイステップで解説し、実際の設定方法についても説明します。

Sambaとは?

Sambaは、Linux/UnixシステムとWindowsシステム間でファイルやプリンターを共有するためのオープンソースのソフトウェアです。Sambaは、WindowsのSMB(Server Message Block)プロトコルを利用するため、Windows環境との互換性があります。これにより、LinuxユーザーもWindowsネットワーク上でファイル共有やプリンターの利用が可能になります。

Active Directoryとは?

Active Directory(AD)は、Microsoftが提供するディレクトリサービスです。主にWindows環境で使用され、ユーザー管理、グループポリシー、ネットワークリソースへのアクセス管理などの機能を提供します。Active Directoryは、企業内ネットワークの中心的な認証および管理ツールとして広く使われています。

SambaをActive Directoryと統合する理由

SambaをActive Directoryに統合することで、Linux/UbuntuシステムがWindowsドメインに参加し、Windowsネットワーク内のリソース(ファイルサーバやプリンター)を効率的に利用できるようになります。これにより、UbuntuシステムはWindows環境と一貫性のあるセキュリティと管理機能を持つことができ、企業内での統一的なネットワーク管理が可能となります。

必要な前提条件

  • Ubuntuシステム(バージョン20.04以降を推奨)
  • Active Directoryが構成されたWindowsサーバ
  • Sambaパッケージ
  • 必要なネットワーク設定が整っていること

ステップ1: 必要なパッケージのインストール

まず、UbuntuにSamba関連のパッケージをインストールします。以下のコマンドを使用して、必要なパッケージをインストールします。

bash
sudo apt update sudo apt install samba smbclient winbind libnss-winbind libpam-winbind krb5-user

このコマンドは、Sambaとその関連ツール、そしてWindowsのネットワークサービスと通信するために必要なパッケージをインストールします。

ステップ2: Kerberosの設定

Active Directoryとの通信にはKerberos認証が必要です。/etc/krb5.confを編集して、Kerberos設定を行います。以下のように、ADドメインの情報を設定します。

bash
[libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = true [realms] EXAMPLE.COM = { kdc = dc.example.com admin_server = dc.example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM

ここでは、example.comを自分のActive Directoryドメインに置き換えてください。

ステップ3: Samba設定の変更

次に、Sambaの設定ファイルである/etc/samba/smb.confを編集します。以下のように設定ファイルを編集し、Active Directoryに参加するための設定を行います。

bash
[global] workgroup = EXAMPLE realm = EXAMPLE.COM security = ads password server = dc.example.com idmap config *:backend = tdb idmap config *:range = 10000-20000 winbind use default domain = yes winbind offline logon = yes template homedir = /home/%D/%U template shell = /bin/bash client use spnego = yes kerberos method = secrets and keytab

ここでのworkgroupはWindowsのワークグループ名、realmはADドメイン名、password serverはActive Directoryのドメインコントローラのホスト名です。これらは自分の環境に合わせて変更してください。

ステップ4: Sambaドメインへの参加

SambaをActive Directoryに参加させるには、以下のコマンドを実行します。

bash
sudo net ads join -U administrator

このコマンドは、administratorユーザーを使用してActive Directoryに参加します。administratorの代わりに、自分のドメイン管理者アカウントを使用してください。

ステップ5: Winbindの設定

Winbindを有効にすることで、Active Directoryのユーザー情報をLinuxシステムで利用できるようになります。/etc/nsswitch.confファイルを編集して、以下の行を追加または修正します。

bash
passwd: files winbind group: files winbind shadow: files winbind

これにより、ユーザー認証がWinbindを通じて行われるようになります。

ステップ6: サービスの再起動

設定を適用するために、SambaおよびWinbindサービスを再起動します。

bash
sudo systemctl restart smbd sudo systemctl restart winbind

ステップ7: Active Directoryユーザーの確認

ADに参加した後、以下のコマンドでADユーザーが正しく取得されていることを確認できます。

bash
getent passwd

これで、Active Directoryのユーザーアカウントが表示されるはずです。

ステップ8: ファイル共有の設定

次に、Sambaを使用してファイル共有を設定します。/etc/samba/smb.confに共有ディレクトリを追加します。例えば、以下のように設定します。

bash
[shared] path = /srv/samba/shared read only = no browsable = yes valid users = @example\\domain_users

この設定では、/srv/samba/sharedディレクトリを共有し、domain_usersグループのメンバーだけがアクセスできるようにします。ディレクトリのパーミッションも適切に設定しておきましょう。

bash
sudo mkdir -p /srv/samba/shared sudo chown root:"domain_users" /srv/samba/shared sudo chmod 770 /srv/samba/shared

ステップ9: プリンターの共有

プリンター共有を行う場合も、Sambaを使って設定できます。プリンターを共有するには、smb.confファイルに以下のような設定を追加します。

bash
[printer] path = /var/spool/samba printable = yes guest ok = no

これにより、UbuntuのプリンターをWindows環境から利用できるようになります。

まとめ

SambaとActive Directoryを統合することで、UbuntuシステムとWindowsシステムの間で効率的にファイル共有やプリンター共有が可能となります。これにより、異なるオペレーティングシステム間でのリソースの一元管理が実現し、企業や組織内でのネットワーク管理が簡素化されます。

Back to top button