開発運用

SambaとLDAPによる認証設定

SamabaとLDAPを使用したネットワーク認証 – Ubuntuでの実装ガイド

近年、企業や組織のネットワーク環境において、ユーザー認証の管理はますます重要となっています。特に、ネットワーク越しにファイルやリソースにアクセスする際に、統一的で効率的な認証システムが求められます。このような要求を満たすために、SambaLDAP (Lightweight Directory Access Protocol) を組み合わせたネットワーク認証システムが広く利用されています。この記事では、UbuntuにおけるSambaとLDAPの設定方法を詳しく解説します。

SambaとLDAPとは?

  • Samba は、LinuxやUnix系のシステムとWindowsシステムの間でファイル共有やプリンタ共有を可能にするオープンソースソフトウェアです。また、Windowsネットワークのドメインコントローラーとしても機能します。
  • LDAP は、ネットワーク上のユーザーやグループの情報を格納するためのプロトコルであり、ディレクトリサービスとしての役割を果たします。主にActive DirectoryやOpenLDAPなどで使用されます。

これらを組み合わせることで、LinuxサーバーがWindows環境内でユーザー認証を行えるようになり、全てのリソースに対して一貫したアクセス管理が可能となります。

必要なパッケージのインストール

まず、Ubuntuに必要なパッケージをインストールする必要があります。以下のコマンドでSambaとLDAP関連のツールをインストールします。

bash
sudo apt update sudo apt install samba samba-common-bin libnss-ldap libpam-ldap ldap-utils

このコマンドは、SambaとLDAPのクライアントツール、そしてLDAPの認証に必要なライブラリをインストールします。

Sambaの設定

Sambaは、LinuxシステムとWindowsシステムの間でファイル共有やプリンタ共有を提供するだけでなく、ドメインコントローラーとしても機能します。LDAPを利用して、Sambaのユーザー認証を行う設定を行います。

  1. Sambaの設定ファイルを編集

Sambaの設定ファイル/etc/samba/smb.confを編集します。まず、バックアップを取ってから編集します。

bash
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak sudo nano /etc/samba/smb.conf

次に、以下のように設定を変更します。

ini
[global] workgroup = WORKGROUP server string = Samba Server netbios name = UBUNTU-SERVER security = user passdb backend = tdbsam ldap admin dn = "cn=admin,dc=example,dc=com" ldap suffix = "dc=example,dc=com" ldap group suffix = "ou=groups" ldap user suffix = "ou=users" ldap machine suffix = "ou=computers" ldap port = 389 ldap server = ldap://localhost idmap backend = tdb idmap uid = 10000-20000 idmap gid = 10000-20000 template shell = /bin/bash log level = 2 log file = /var/log/samba/log.%m max log size = 50

上記の設定では、SambaがLDAPサーバーに接続し、ユーザーやグループ情報を取得するように構成されています。ldap admin dnの部分には、LDAPサーバーへの管理者権限を持つユーザーを指定します。

  1. Sambaサービスの再起動

設定変更を反映させるため、Sambaサービスを再起動します。

bash
sudo systemctl restart smbd sudo systemctl enable smbd

LDAPの設定

LDAPはディレクトリサービスとして、ユーザーやグループ情報を管理します。ここでは、Sambaと連携するために、LDAPサーバーの設定を行います。

  1. LDAPサーバーのインストールと設定

UbuntuでOpenLDAPをインストールするには、以下のコマンドを使用します。

bash
sudo apt install slapd ldap-utils

インストール後、設定を行います。slapd(OpenLDAPサーバー)の設定を行うために、以下のコマンドを使用して設定を開始します。

bash
sudo dpkg-reconfigure slapd

ここでは、ドメイン名や管理者パスワードなどを設定します。例えば、example.comというドメイン名を使用している場合、設定時にこの情報を入力します。

  1. LDAPサーバーにユーザーとグループを追加

LDAPにユーザーやグループを追加するためには、LDIFファイルを使用します。以下は、サンプルのLDIFファイルの例です。

ldif
dn: ou=users,dc=example,dc=com objectClass: organizationalUnit ou: users dn: uid=john,ou=users,dc=example,dc=com objectClass: inetOrgPerson uid: john sn: Doe cn: John Doe userPassword: password

このファイルをusers.ldifとして保存し、以下のコマンドでLDAPサーバーにインポートします。

bash
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f users.ldif

PAM(Pluggable Authentication Modules)の設定

次に、PAMを使って、ユーザー認証がLDAPを通じて行われるように設定します。/etc/nsswitch.confを編集し、以下のように設定します。

bash
sudo nano /etc/nsswitch.conf

変更点は、passwd, group, shadowldapを追加することです。

ini
passwd: files ldap group: files ldap shadow: files ldap

さらに、/etc/pam.d/common-auth/etc/pam.d/common-accountなどのPAM設定ファイルも編集して、LDAP認証を有効にします。

bash
sudo nano /etc/pam.d/common-auth

ここで、以下の行を追加します。

ini
auth required pam_ldap.so

動作確認

設定が完了したら、実際にLDAP認証が機能するか確認します。Sambaサーバーでログイン試行を行い、正しく認証されるか確認します。

bash
smbclient -L localhost -U john

これで、LDAP認証を利用したSambaサーバーの設定が完了しました。

まとめ

この記事では、Ubuntu上でSambaとLDAPを組み合わせてネットワーク認証を実現する方法を説明しました。Sambaを利用することで、LinuxサーバーをWindowsドメインに統合し、LDAPを使ってユーザーやグループの情報を管理することができます。この設定を実施することで、ネットワーク上のリソースへのアクセス管理が一元化され、セキュリティと利便性が向上します。

Back to top button