デモ手順 - Samba PDC (squeeze)

提供:Samba-JP
2011年8月16日 (火) 11:44時点におけるMonyo (トーク | 投稿記録)による版 (→‎応用)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動検索に移動

Sambaドメイン

ファイルサーバ編

ユーザ名のマッピング

任意のユーザ名と Samba ユーザとのマッピングができることを確認する。

関連パラメータなど

  • username map = /etc/samba/smbusers
  • /etc/samba/smbusers ファイル

確認手順

  • Windows マシンから、以下のユーザ名でログオンする(パスワードはldap01)
    • LDAP01 user
    • 00000001
    • LDAPユーザー 01
  • いずれの場合も ldap01 としてログオンしていることを確認する
たとえば、コマンドプロンプトから net use コマンドを実行すると、ホームディレクトリが \\sambapdc\ldap01 になっていることがわかる。

応用

/etc/samba/smbusers ファイルを編集することで、上記以外のマッピングも行えることを確認する。

ホームディレクトリの設定および自動作成

ドメインの個々のユーザに対して、ホームディレクトリの設定(マウント先の共有、マウントするドライブ)が設定できることを確認する。

併せて新規ユーザーのログオン時にホームディレクトリが自動的に作成されることを確認する。

関連パラメータなど

  • logon home =
  • (logon drive)
  • root preexec = /usr/local/sbin/createhomedir %D %S
本来であれば、上記設定を行わずとも、PAM の設定によりホームディレクトリが自動作成されるはずだが、今回の環境で検証した限り、自動作成がうまくいかなかったため、暫定的に root preexec パラメータを用いて自動作成を行っている。
  • [homes] 共有
  • (template homedir)

確認手順

  • たとえば以下のようにして、 testuser という名前で、新規ユーザを作成する
# pdbedit -a testuser

GUIから作成しても構わない。

  • たとえば以下のようにして、ホームディレクトリを /home/SAMBADOM/testuser に設定し、H: ドライブにマウントするように設定する
# pdbedit -h \\\\sambapdc\\testuser -D h: testuser

GUIから設定しても構わない。なお、Samba サーバ上では、[homes] 共有により、testuser でログオンすると /home/SAMBADOM/testuser が \\sambapdc\testuser という名前で共有される。

  • たとえば以下のようにして、 testuser ディレクトリが存在しないことを確認する
root@sambapdc:/home/SAMBADOM# ls -l
total 8
drwx------ 2 ldap01 domusers 4096 Jul  8 21:21 ldap01
drwx------ 2 ldap02 domusers 4096 Jul  8 21:24 ldap02
  • Windows マシンから testuser でログオンする
  • 再び ls -l /home/SAMBADOM を実行し、以下のように testuser ディレクトリが作成されていることを確認する
root@sambapdc:/home/SAMBADOM# ls -l
total 12
drwx------ 2 ldap01   domusers 4096 Jul  8 21:21 ldap01
drwx------ 2 ldap02   domusers 4096 Jul  8 21:24 ldap02
drwx------ 2 testuser domusers 4096 Aug  6 19:31 testuser
  • Windows マシン上でコマンドプロンプトを起動し、先ほどホームディレクトリのマウント先として指定したドライブがカレントドライブとなっていることを確認する。
  • net use コマンドを実行し、カレントドライブがホームディレクトリとして指定した共有になっていることを確認する。
  • たとえば以下のようにして、何かファイルを書き込み、その内容が Samba サーバ上からも参照できることを確認する。
H:\> echo test1 > test1.txt
# cat ~testuser/test1.txt
test1

応用

  • logon home パラメータと logon drive パラメータにより、新規作成するユーザに設定するホームディレクトリの共有パスおよびマウント先のドライブ名を指定することができる。Samba PDC では、logon home ドライブを明示的に空文字に指定しているため、デフォルトでは、ホームディレクトリのマウントは行われない。

Samba変数の値確認

関連パラメータなど

  • [share_test] 共有
  • root preexec = /usr/local/sbin/var-check
  • /usr/local/sbin/var-check

確認手順

  • [share_test] 共有内の、以下の設定のコメントをはずす
# List all variables
root preexec = /usr/local/sbin/var-check '%U' '%G' '%h' '%L' '%m' '%M' '%R' '%d' '%a' '%I' '%i' '%T' '%D' '%w' '%v' '%V' '%S' '%P' '%u' '%g' '%H' '%N' '%p' '%$(PATH)' '%$(USER)'
  • Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
  • Windowsマシンから share_test 共有にアクセスする
アクセスした時点で、root preexec パラメータにより、/usr/local/sbin/var-check スクリプトが実行され、/tmp/var.txt ファイルが生成される。
  • /tmp/vat.txt の内容を参照する
# cat  /tmp/var.txt
%U : ldap02
%G : domusers
%h : sambapdc
%L : sambapdc
%m : winxppro-sp3-3
%M : ::ffff:192.168.135.130
%R : NT1
%d : 2382
%a : WinXP
%I : 192.168.135.130
%i : ::ffff:192.168.135.222
%T : 2011/08/06 23:22:40
%D : SAMBADOM
%w : \
%v : 3.5.6
%V : 4294967295
%S : share_test
%P : /var/lib/samba/shares/share_test
%u : ldap02
%g : domusers
%H : /home/SAMBADOM/ldap02
%N : sambapdc
%p :
e1 : /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
e2 : root

最後の e1 と e2 は、おのおの PATH および USER 環境変数の値を表示させている。このように、任意の環境変数の値を Samba 変数として用いることも可能である。

注意事項

このスクリプトおよび設定は、あくまで Samba 変数の値を確認する方法を示すためのものであり、実環境では用いないこと。内容を確認したら、速やかに設定を基に戻し、本スクリプトの機能を無効化すること。

応用

Samba 変数の値を確認する方法として、他にも comment パラメータや server string パラメータを用いることも可能である。

なお、パラメータによっては、パラメータ固有の Samba 変数を持っている場合があるが、本スクリプトでは、パラメータに依存しない一般的な Samba 変数のみを扱っている。

username map パラメータを用いて、Windows からみたユーザ名と実際のユーザ名を別のユーザ名とした場合、%U には、Windows から見たユーザ名が、%u には実際のユーザ名が記録される。

アクセス権のないファイルを非表示にする

設定を行うことで、アクセス権のないファイルが非表示になることを確認する。

関連パラメータなど

  • [share_test] 共有
  • hide unreadable パラメータ

確認手順

  • Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする
  • secure.txt と normal.txt が表示されていることを確認する
  • [share_test] 共有内の、以下の設定のコメントをはずす
# Hide unreadable files
hide unreadable = yes
  • Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
  • Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする
  • secure.txt が表示されていないことを確認する

応用設定

hide unwriteable パラメータの動作確認、フォルダを作成した際の挙動の確認。

特定のファイル名のファイルを非表示にする

関連パラメータなど

  • [share_test] 共有
  • veto files パラメータ

確認手順

  • Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の veto_files フォルダにアクセスする
  • GodMode という特殊なフォルダ(Windows XPの場合は普通のフォルダ)と dummy.exe が表示されていることを確認する
  • [share_test] 共有内の、以下の設定のコメントをはずす
# Prohibit to put EXE files and files with GUID
 veto files = /*.exe/*.{*}/
 delete veto files = yes
  • Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
  • Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の veto_files フォルダにアクセスする
  • GodMode と dummy.exe の両方が表示されていないことを確認する
  • .EXE ファイルを Windows マシンから share_test 共有内にコピーできないことを確認する
パーミッションが 755 になっているので、あらかじめ 1777 などに変更した上で確認すること。
share_test 共有に writeable = yes の設定が抜けているので、あらかじめ設定しておくこと

ファイルアクセスの監査設定を行う

関連パラメータなど

  • [share_test] 共有
  • vfs objects = full_audit
  • full_audit:* パラメータ
  • /etc/rsyslog.d/samba.conf

確認手順

  • [share_test] 共有内の、以下の設定のコメントをはずす
# Audit
 vfs objects = full_audit
 full_audit:facility = local1
 full_audit:success = connect disconnect
 full_audit:failure = connect disconnect mkdir rmdir open close rename unlink

share_test 共有に、既に有効な vfs objects 行がある場合は、その行の末尾に full_audit を追記するか、一旦既存の vfs objects 行をコメントアウトすること。

  • Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
  • Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有にアクセスする
  • /var/log/samba/log.audit に、以下のようなログが記録されていることを確認する
Aug  7 00:54:14 sambapdc smbd[2833]: ldap02|192.168.135.130|connect|ok|share_test

応用

full_audit:success および full_audit:failure パラメータの値をいろいろと書き換えて検証してみる。

/etc/rsyslog.d/samba.conf の内容と full_audit:facility パラメータの内容を変更して、Samba がログを出力するファシリティや出力先をいろいろ変えてみる。

シンボリックリンクの有効化

関連パラメータなど

  • [share_test] 共有
  • unix extensionsパラメータ
  • wide links パラメータ

確認手順

  • Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有にアクセスする
  • [share_test] 共有内の、wide_links フォルダにある passwd.txt (/etc/passwdにリンク)をクリックし、ファイル内容が読み取れないことを確認する。
  • [share_test] 共有内の、以下の設定のコメントをはずし、値を yes に設定する
# Prohibit to symlink outside the share (by default after Samba 3.5.0)
  wide links = yes
  • [global] セクション内の、以下の設定のコメントをはずす
unix extensions = no
  • Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
  • [share_test] 共有内の、wide_links フォルダにある passwd.txt をクリックし、ファイル内容が読み取れることを確認する

ファイルサービスとアクセス制御

共有のアクセス制御

IPアドレス単位のアクセス制御

関連パラメータなど

  • share_test 共有
  • hosts allow パラメータ
  • hosts deny パラメータ

参照

ユーザ、グループ単位でのアクセス制御

関連パラメータなど

  • shared 共有
  • valid users パラメータ
  • invalid users パラメータ

参照

読み込み、書き込み単位でのアクセス制御

関連パラメータなど

  • shared 共有
  • read only パラメータ
  • write list パラメータ

参照

指定した時間帯に共有を読み取り専用にする

未設定

参照

複数人から互いに書き込み可能なファイル共有

関連パラメータなど

  • shared 共有

参照

書き込み専用のファイル共有

未設定

参照

ACL の操作

関連パラメータなど

  • aclshare1 共有
  • aclshare2 共有
  • acl map full control パラメータ
  • dos filemode パラメータ
  • inherit owner パラメータ

参照

ファイル共有機能の基本

ファイル共有一覧画面での表示制御

ファイル共有の一覧画面で、任意のファイル共有を非表示にできることを確認する。

関連パラメータなど

  • share_test 共有
  • browseable パラメータ

確認手順1

  • 1. Windows マシンに任意のユーザでログオンし、例えば「ファイル名を指定して実行」で「\\sambapdc」と入力する。
共有の一覧が表示され、share_test 共有も表示されていることを確認する。

「共有の一覧」画面

  • 2. share_test 共有内の、以下の設定のコメント「;」をはずす
# Do not list the share list
;  browseable = no
  • 3. Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
  • 4. Windows マシンに任意のユーザでログオンし、例えば「ファイル名を指定して実行」で「\\sambapdc」と入力する
共有の一覧が表示されるが、share_test 共有は表示されていないことを確認する。

「共有の一覧」画面

  • 5. 例えば「ファイル名を指定して実行」で「\\sambapdc\share_test」と入力する
共有一覧では非表示となったが、UNC パスを直接指定することで、図のように share_test 共有自体にはアクセス可能であることを確認する。

「共有の一覧」画面

確認手順2

  • 確認手順1の 2. の設定の代わりに、share_test セクションのセクション名を share_test$ に変更する
  • 確認手順1の 5. の操作において、「\\sambapdc\share_test$」と入力し、共有内のフォルダ一覧が表示できることを確認する

参照

ユーザ、グループ単位に隠し共有にする

未設定

参照

共有への同時アクセス数の上限設定

関連パラメータなど

  • share_test 共有
  • max connections パラメータ

参照

ホームディレクトリの自動共有

関連パラメータなど

  • homes 共有

参照

ファイル属性

関連パラメータなど

  • store dos attributes パラメータ

参照

指定したファイル、ディレクトリ名の表示、アクセスを禁止する

関連パラメータなど

  • [share_test] 共有
  • veto files パラメータ

確認手順

  • Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、
 share_test 共有内の veto_files フォルダにアクセスする
  • GodMode という特殊なフォルダ(Windows XPの場合は普通のフォルダ)と
 dummy.exe が表示されていることを確認する
  • [share_test] 共有内の、以下の設定のコメントをはずす
# Prohibit to put EXE files and files with GUID
 veto files = /*.exe/*.{*}/
 delete veto files = yes
  • Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コ
 マンドなどで、変更を反映させる
  • Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、
 share_test 共有内の veto_files フォルダにアクセスする

  • GodMode と dummy.exe の両方が表示されていないことを確認する
  • .EXE ファイルを Windows マシンから share_test 共有内にコピーできない
 ことを確認する
パーミッションが 755 になっているので、あらかじめ 1777 などに変更
 した上で確認すること。
share_test 共有に writeable = yes の設定が抜けているので、あらか
 じめ設定しておくこと

参照

アクセスできないファイルの表示、読み取りを禁止する

設定を行うことで、アクセス権のないファイルが非表示になることを確認する。

関連パラメータなど

  • share_test 共有
  • hide unreadable パラメータ

確認手順

  • Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする
  • secure.txt と normal.txt が表示されていることを確認する
  • share_test 共有内の、以下の設定のコメントをはずす
# Hide unreadable files
; hide unreadable = yes
  • Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
  • Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする
  • secure.txt が表示されていないことを確認する

応用設定

hide unwriteable パラメータの動作確認、フォルダを作成した際の挙動の確認。

参照

シンボリックリンクの追跡

関連パラメータなど

  • [share_test] 共有

a* unix extensions パラメータ

  • wide links パラメータ

確認手順

  • Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、
 share_test 共有にアクセスする
  • [share_test] 共有内の、wide_links フォルダにある passwd.txt
 (/etc/passwdにリンク)をクリックし、ファイル内容が読み取れないこと
 を確認する。
  • [share_test] 共有内の、以下の設定のコメントをはずし、値を yes に設定
 する
# Prohibit to symlink outside the share (by default after Samba
  3.5.0)
  wide links = yes
  • [global] セクション内の、以下の設定のコメントをはずす
unix extensions = no
  • Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コ
 マンドなどで、変更を反映させる
  • [share_test] 共有内の、wide_links フォルダにある passwd.txt をクリッ
 クし、ファイル内容が読み取れることを確認する

参照

Windows Vista からアクセスした際のパフォーマンスの向上

関連パラメータなど

  • share_test 共有
  • vfs objects = readahead 行

参照

Windows マシンからのファイル共有管理

関連パラメータなど

  • add share comand パラメータ
  • change share comand パラメータ
  • delete share comand パラメータ
  • mgrshare スクリプト

参照

高度なファイル共有機能

ごみ箱機能

ファイルアクセスの監査

関連パラメータなど

  • share_test 共有
  • vfs objects = full_audit 行
  • full_audit:* パラメータ
  • /etc/rsyslog.d/samba.conf ファイル

確認手順

  • share_test 共有内の、以下の設定のコメントをはずす
# Audit
 vfs objects = full_audit
 full_audit:facility = local1
 full_audit:success = connect disconnect
 full_audit:failure = connect disconnect mkdir rmdir open close rename unlink

share_test 共有に、既に有効な vfs objects 行がある場合は、その行の末尾に full_audit を追記するか、一旦既存の vfs objects 行をコメントアウトすること。

  • Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
  • Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有にアクセスする
  • /var/log/samba/log.audit に、以下のようなログが記録されていることを確認する
Aug  7 00:54:14 sambapdc smbd[2833]: ldap02|192.168.135.130|connect|ok|share_test

応用

full_audit:success および full_audit:failure パラメータの値をいろいろと書き換えて、ログに記録する項目を変更して確認してみる。

/etc/rsyslog.d/samba.conf の内容と full_audit:facility パラメータの内容を変更して、Samba がログを出力するファシリティや出力先をいろいろ変えてみる。

参照

Sambaドメイン