Attribute System

ジャンク奇行。 ときどき ラクガキ。

広告

※このエリアは、60日間投稿が無い場合に表示されます。記事を投稿すると、表示されなくなります。

NAS4Free & Samba4 AD

2016-03-08 23:20:52 | 研究&TIPS
 こんばんはヌキヲです。
今回はお家のサーバーをリプレースしたのでその備忘録を記します。

Samba で ActiveDirectry の DC ができるようになったこと、
それを NAS4Free の WebGUI から設定できるようになったこと、
いやはやいい時代になったものですね。

今回使用したバージョンは NAS4Free 10.2.0.2-2332 x64 です。
いままでは FreeNAS 7.2 を使用していたのでかなりのバージョンアップで浦島太郎です。


● 事前準備

初期設定やストレージの設定を済ませますが、詳細は割愛。
私は zfs オンリーな環境です。

samba4 の sysvol が zfs に対応していないので、ufs 領域を作ります。
これは zfs 上の volume 機能で比較的簡単に実現できます。

zfs の volume タブにて追加します。
参考文献では容量は 2GB でしたが、余裕を見て 64GB 割り当てました。

その後コンソールに入りパーティションとフォーマットを行います。
WebGUI からできないのは残念な限りですね。

コマンドの意味とかいまいちよく分からないのですが、参考文献の通りに入力しました。
プール名とボリューム名を適宜読み替えて実行します。


# gpart create -s gpt /dev/zvol/zp/samba4
zvol/zp/samba4 created

# gpart add -a4m -t freebsd-ufs /dev/zvol/zp/samba4
zvol/zp/samba4p1 added

# gpart show /dev/zvol/zp/samba4
=>     34  4194237  zvol/zp/samba4  GPT  (2.0G)
       34     8158                  - free -  (4.0M)
     8192  4177920               1  freebsd-ufs  (2.0G)
  4186112     8159                  - free -  (4.0M)

# newfs -U /dev/zvol/zp/samba4p1


WebGUI に戻ってマウントします。
タイプの欄にカスタムデバイスを選ぶとパスを聞かれるので、
ボリュームのパスを指定します。


● Samba4 AD 初期化

前提条件で ntp が有効である必要があります。
また、CIFS/SMB を無効にし、IP を固定にします。

サービスの Samba AD から初期化タブを開きます。

・DNS フォワーダ
 上位の DNS アドレスです。
 ディフォルトゲートウェイになっている NAT ルータのアドレスでも平気でした。
 ※参考文献ではダメって書いてあります。

・DNS ドメイン
 フルドメインで書きます。
 多くの場合は domain.local の形式かな。

・Netbios ドメイン
 ドメイン名のみです、.local ナシ。

・管理者パスワード
 ディフォルトでは複雑である程度長くないとダメなやつです。
 空欄や簡単なのだと再設定されるそうです。

・パス
 事前準備で用意した volume のマウントポイントを指示します。

・ファイルサーバ
 s3fs
 特に理由がなければディフォルトで OK

・ユーザー共有
 NAS 機能を有効にするならチェックします。
 後で変更できます。

入力がよろしければ 初期化 ボタンを押しましょう。
上手くいくと最後に DOMAIN SID が表示されます。
また、パスワードが再設定された場合もここに表示されます。

システム→基本 ページの DNS アドレスが 127.0.0.1 に変更されます。


● CIFS/SMB の設定

初期化できたら有効にしましょう。
次に NAS 側の設定をします。
サービス→CIFS/SMB ページを開きます。
特に気を付ける点だけ列挙します。

・認証
 Active Directry です。

・最大プロトコル
 win8 以降のマシンがあるのなら SMB3 を推奨。

・NetBIOS 名
 サーバーの名前

・ワークグループ
 ドメイン名と同じにする。

・タイムサーバ
 Yes の必要あり

・パスワードサーバー
・WINS サーバー
 これらは空欄でも動きそうな気がしますが、
 私はサーバーの IP を入れました。


・信頼するドメイン
 ドメインを複数連携する場合にチェックを入れるのかな?

入力したら 保存して再起動 します。
その後、共有フォルダの設定もしましょう。
私は profile public user の3構成にしました。

終わったら一度サーバーの再起動をしておきます。


● ドメイン参加

いよいよドメインに参加するのですが、ここでかなり嵌りました。
ポイントは次の通りです。

・サーバー、クライアントとも IPv6 を無効にしておく。

・クライアントの DNS を DHCP から サーバーの IP に変更する。

・参加ドメイン名は NetBIOS 名で、.local ナシです。

どおしてもつながらない場合はコマンドプロンプトから

# ping server.local
# ping server.domain.local


を打ってみましょう。
上手く DNS が動いていれば両方とも応答があります。

特に、サーバーコンソールで OK なのに、クライアントで NG な場合は、
クライアントの設定がおかしいことがほとんどです。

つながったら管理ツールをインストールします。

Samba wiki に Windows のバージョンごとのダウンロードリンクがあります。




● パスワードポリシー

パスワードを簡単にするには、サーバーコンソールで次のようにします。

# samba-tool domain passwordsettings set --complexity=off
# samba-tool domain passwordsettings set --min-pwd-length=3
# samba-tool domain passwordsettings set --min-pwd-age=0
# samba-tool domain passwordsettings set --max-pwd-age=0


ザルですね(汗 おすすめはしません。
設定の確認は次のコマンドです。

# samba-tool domain passwordsettings show



ここまででサーバーの設定は終了です。
以降はクライアントの設定で、必要な方のみ行ってください。




● ドライブマップ


前提条件で、プロファイルとフォルダリダイレクトは
別のフォルダもしくは共有フォルダで行います。

Windows10 では %UserName%.V5 というプロファイルフォルダができました。
Windows7 や Vista では %UserName%.V2 となるそうですね。

一方グループポリシーで行うフォルダリダイレクトは %UserName% なので
同じ名前にはできません。
また、アクセス許可も適切に設定しなければなりません。
この辺が深淵の一端なのですね。

さて、当初ログオンスクリプトにてネットワークドライブを
マウントしようと思っていたのですが、どうもちゃんとマウントされません。

エクスプローラから右クリックしてネットワークドライブの割合て
ではちゃんとマウントされるのに、コマンドプロンプトから net use
とやっても全然マウントされないのです。

そこで、google 先生よりグループポリシーでも
ネットワークドライブが割り当てられるらしいと聞いて試してみました。


グループポリシーを編集するには

すべてのプログラム→Windows管理ツール→グループポリシーの管理

フォレスト: domain.local→ドメイン→グループポリシー
→Default Domain Policyを右クリック→編集

で開きます。↑これかなり探しました。

ユーザーの構成→基本設定→Windowsの設定→ドライブマップ

ドライブマップの右ペインの中で

右クリック→新規作成→マップされたドライブ

から追加できます。
これもまた使い方がよく分かりませんが、詳細は参考文献を読んでください。

・アクション
 更新

・場所
 \\server\user

・再接続
 (お好みでどうぞ)

・ドライブ文字
 次の文字を使用>U:

・このドライブの表示/非表示
 このドライブを表示する




● ログオンスクリプト


一応ログオンスクリプトの設定手順も記しておきます。
マップされたドライブとどちらか片方で OK です。

ユーザーの構成→ポリシー→Windowsの設定→スクリプト(ログオン/ログオフ)

で設定します。
スクリプトの例を表示します。
まずログオン

set Drive=U:
set Mount=\\server\user

if not exist %Drive% goto Set1
net use %Drive% /delete

:Set1
net use %Drive% %Mount%


次にログオフ

set Drive=U:

if not exist %Drive% goto END
net use %Drive% /delete

:END



これを logon.cmd logoff.cmd として設定しました。




● フォルダリダイレクト


\\server\user フォルダをルートとしてリダイレクトしました。
ネットワークドライブをアタッチしておくと楽です。

ログオンスクリプトからの続きで

ユーザーの構成→ポリシー→Windowsの設定→フォルダ リダイレクト

で設定できます。

・設定
 基本ー全員のフォルダを同じ場所にリダイレクトする

・対象フォルダーの場所
 ルートパスの下にユーザーのフォルダを作成する

で、ルートパスは参照ボタンを押し、ネットワークドライブを指定すると
自動的に共有名に直して認識してくれます。

ここで OK を押さず、適用にします。
次に設定タブで、非排他設定としました。
バックアップとか管理がめんどくさいですからね。

リダイレクトが行われたかはイベントビューアで、
グローバルポリシーが適用されたかは gpresult /z コマンドで見れます。


○ 2016.03.21(mon) 追記。

ネットワークドライブやフォルダリダイレクトが正しく動作しない原因は、
ACL、アクセス制御リストが正しくないことが多いようです。

かくいう私もどっぷりハマってしまって大変でした。
まっさらな状態で始める場合には、新しくファイル群が作成されるだけですので
さほど問題ないかと思います。
しかし既にデータがあり、バックアップ環境等からリストアをするなら
ACL についても正しく設定しなおす必要があります。


・ACL で必要なのは次の二つで、共有のトップに設定し継承させます。

 CREATOR OWNER - 特殊
 SYSTEM - フルコントロール

・そのうえで、\\server\user\%UserName% は所有者を %UserName% に変更し、特殊をつけます。

・最後に属性の変更をします。
 \\server\user\%UserName% のプロパティを開くと、読み取り専用
 部分チェックが入っていると思います。
 これをクリアすることで ACL をリセットしたことを通知できるようです。


どの作業もファイル数によってはかなり時間がかかりますので気長に行ってください。

特殊を付ける際に、当初灰色になっててチェックできなかったのですが、
一度フルコントロールを付け、そのしばらく後、気づいたら特殊に変わってました。
必要要件はいまいちわかってないのですが、サーバーのリブートなど、いろいろ試してみてください。

○ 2016.03.21(mon) 追記ここまで。



● 移動プロファイル

移動プロファイルは一番最後の設定をお勧めします。
また、一度ログオンし、プロファイルの初期値を作ってから移動したほうがいい様です。

現在移動プロファイルを使うと Edge などのユニバーサルアプリの一部と、
マイクロソフトアカウントを追加が使えなくなる不具合を確認しています。


ユーザアカウントの変更は次の管理ツールです。

すべてのプログラム→Windows管理ツール→ADユーザーとコンピューター

新しいユーザーを作ったら、プロファイルを変更します。

\\server\profile\%UserName%

としました。



● 参考文献

[HOW TO] Samba Active Directory Domain Controller

Active Directoryドメインコントローラー構築(Samba)

Active Directory ログオンスクリプト

「アクセスが拒否されました」とエラーが出てファイルやフォルダへアクセスできない問題への対処

ADからログオンスクリプトにて割り当てたネットワークドライブが上手く適用されない

マップされたドライブを構成するには
ジャンル:
ウェブログ
コメント   この記事についてブログを書く
« わかる人向け MPLAB XC16 野... | トップ | ロボットランサー(19) »
最近の画像もっと見る

コメントを投稿

研究&TIPS」カテゴリの最新記事

関連するみんなの記事