QNAP NASにはユーザーの認証情報を保管・提供するLDAPサーバ機能があります。これにより、多数のLinuxマシンとMacのユーザー管理を一元化することができます。つまり、このLDAPサーバにユーザーアカウントを作成するだけで、LDAPクライアントのマシン全てに自動的に同じユーザーアカウントが作成されます。利用者は共通のユーザー名とパスワードでログインできるようになります。さらに、ファイル共有機能を適切に設定することで、Linuxマシンは共通のホームディレクトリを使用することができ、データ転送が不要になります。ただし、WindowsはLDAPサーバに登録したユーザー名とパスワードで共有フォルダにアクセスすることができますが、ログイン認証には使えませんし、パスワード変更もできません。ドメインコントローラとの違いをまとめると下記のようになります。

機能ドメインコントローラLDAPサーバ
Windowsのユーザー認証YesNo
Macのユーザー認証YesYes
Linuxのユーザー認証YesYes
Windowsのホームディレクトリ共有YesNo
Macのホームディレクトリ共有リンクのみ(注1)No(注2)
Linuxのホームディレクトリ共有NFSNFS
Windowsからの共有フォルダへのアクセスドメイン内外Yesドメイン内外Yes
Macからの共有フォルダへのアクセスドメイン内外Yesドメイン内外Yes
Linuxからの共有フォルダへのアクセスドメイン内外Yesドメイン内外Yes
注1: Macのホームディレクトリ共有はドメインコントローラなら本来可能のはずだが、正常に動作しなかった。初回ログイン試行時にLibraryやSpotlight関連のファイルやフォルダが作成されるものの、途中で止まりログインできない。NFSでマウントするようにも設定してみたが、同じ問題が起きた。注2: NFSで共有すればできるはずだが、ドメインコントローラを使った場合と同様にログインできず。

QNAP NASでのLDAPサーバ有効化手順

QNAP NASでLDAPサーバを有効化するには、管理画面から「コントロールパネル→アプリケーション→LDAPサーバー」を開き、「LDAPサーバーを有効にする」にチェックを入れて、以下の設定を行って「適用」ボタンを押します。

  • フルドメイン名: 適当(hogehoge.lanとかhogehoge.tohoku.ac.jpとか)
  • パスワード: 適当(どうも長いパスワードは使えないらしいので短めにすること)
  • パスワードの再入力: 上記と同じ

次に、NAS自身がLDAPサーバの認証情報を利用するように設定します。「コントロールパネル→権限設定→ドメインセキュリティ」を開き、「LDAP認証」を選択し、現れるプルダウンメニューで「ローカルNASのLDAPサーバー」を選択します。「適用」を押して設定を適用して下さい。

共有フォルダをWindowsマシンやMacからもアクセスできるようにする場合、「コントロールパネル→ネットワークとファイル→Win/Mac/NFS」も設定する必要があります。「Microsoftネットワーク」タブで「Microsoftネットワーク向けのファイルサービスを有効にする」にチェックを入れます。サーバーの説明とワークグループは適当で構いません。また、「LDAPドメイン認証」を選択し、「適用」を押して下さい。MacはMicrosoftネットワーク(SMB)でのファイル共有に標準で対応しているため、AFPは有効にする必要はありません(将来的にAFPサポートは打ち切る方向です)。

ユーザーアカウント・グループの作成

次にLDAPサーバに認証したいユーザーアカウントとグループを作成しますが、その前に多数のユーザーを登録するためのCSVファイルを以下のような内容で作成しておきます。

hogehoge,PASSWORD,,EMAILADDRESS
fugafuga,PASSWORD,,EMAILADDRESS

これを使ってユーザーアカウントを作成するには、「コントロールパネル→アプリケーション→LDAPサーバー」を開き、「ユーザー」タブで「作成→ユーザーのバッチインポート」を選択します。「参照...」ボタンからファイルを指定して「次へ」を押すと読み込まれます。プレビュー画面になるので内容を確認して「次へ」、さらに「完了」を押すことで一度に多数のユーザーアカウントが作成できます。

作成したユーザーは、デフォルトでDomain Usersグループに属しています。sudoを許可するアカウント用に、Domain Adminsグループを作成しておくといいでしょう。「グループ」タブに「ユーザーグループの作成」ボタンがあるのでそこからグループの作成とユーザーのグループへの登録ができます。

ユーザーアカウント・グループへの権限の付与

共有フォルダにアクセスする権限を与える場合、ユーザーやグループを選択して設定する方法と、共有フォルダを選択して設定する方法があります。

ユーザーやグループを選択して設定するには、「コントロールパネル→権限設定→ユーザーまたはユーザーグループ」を開きます。その時点ではNASのローカルユーザ・ローカルグループが表示されていますが、右端の方の「ローカルユーザ・ローカルグループ」を「ドメインユーザ・ドメイングループ」に変えることでLDAPサーバのユーザーやグループの一覧に変わります。右端の方に「共有フォルダー権限の編集」ボタンがあるので押すとダイアログが表示され、権限を与えたいフォルダの行のチェックボックスをチェックして「適用」を押せば権限を変更できます。

共有フォルダを選択して設定するには、「コントロールパネル→権限設定→共有フォルダー」を開きます。権限を与えたいフォルダの行の「共有フォルダー権限を編集」ボタンを押し、表示されたダイアログで「追加」ボタンから「ドメインユーザ」や「ドメイングループ」の権限のチェックボックスをチェックして「追加」を押すことで「共有フォルダー権限の編集」ダイアログに戻り、「適用」を押すことで権限を与えることができます。

Macでのユーザー認証に対応するための設定

QNAP NASからMacに認証情報を提供するにはSSHでリモートログインして設定を変更する必要があります。SSHを有効化するには、「コントロールパネル→ネットワークとファイルサービス→Telnet / SSH」を開き、「SSH接続を許可する(管理者だけがリモートログインできます)」にチェックを入れ、「アクセス許可の編集」ボタンを押して適当な管理者アカウントにチェックを入れて「適用」を押します。コントロールパネルの画面でも「適用」を押して下さい。これでSSH接続が可能になります。ただ、admin以外のアカウントではsudoができないかもしれません。QNAPはadminを無効化することを推奨しているので、無効化している場合はsudoが実行不可能になってしまいます。その場合は、一時的にadminを有効化してSSHでログインし、以下のコマンドでsudoersファイルを編集します。

vi /usr/etc/sudoers

sudoersに追加するのは以下の行になります。

%administrators ALL=(ALL) ALL

これでadministratorsグループのユーザー(QNAP NASの管理者アカウント)はQNAP NASにSSH接続したときにsudoできるようになります。ただし、再起動の度にリセットされてしまいますので注意しましょう。

QNAP NASにSSHでリモートログインし、Macのために以下のコマンドでLDAP認証を無効化します。

sudo /sbin/setcfg "LDAP Server" "Require Authc" "FALSE"

以下のコマンドでLDAPサーバを再起動します。本体を再起動しても構いません。

sudo /etc/init.d/ldap_server.sh restart

クライアントでの設定方法

Ubuntuでの設定方法はこちらに書いておきました。Macのユーザー認証にLDAPサーバを使用するように設定する方法はこちらを参照して下さい。

LDAP管理ソフトからの接続方法

以下の設定でQNAP NASのLDAPサーバに接続してLDAPデータベースの閲覧・編集が可能です。

  • Host: QNAP NASのIPアドレス
  • Port: 389
  • Version: 3
  • Base DN: DC=サードレベルドメイン,DC=セカンドレベルドメイン,DC=トップレベルドメイン
  • ユーザーアカウント: CN=admin,DC=サードレベルドメイン,DC=セカンドレベルドメイン,DC=トップレベルドメイン
  • パスワード: LDAPサーバ有効化時のパスワード
  • 暗号化方法: TLSまたは暗号化なし
  • 認証方法: Simple authentication

ユーザーにuidNumberとgidNumberを、グループにgidNumberを設定しておくことで、UIDとGIDを固定化できます。QNAP NASではデフォルトで設定されていますが、値を変更したい場合は編集しておきます。最初のユーザーがUID:1000000、GID:1000000になります。グループはDomain UsersがGID:1000000です。新しいグループを作成するとGID:1000001になります。