「デモ手順 - Samba PDC (squeeze)」の版間の差分

提供:Samba-JP
ナビゲーションに移動検索に移動
(→‎関連パラメータなど: root preexec パラメータを追加)
 
(同じ利用者による、間の23版が非表示)
1行目: 1行目:
= ドメイン =
= [[Sambaドメイン]] =

== Windowsマシンのドメイン参加 ==
Windows 7(レジストリ変更済)Professional や Windows XP Professional などのWindowsマシンがドメインに参加できることを確認する。

=== 関連パラメータなど ===

* workgroup = SAMBADOM
* domain logons = yes
* LDAP関連パラメータ

=== 確認手順 ===

* ドメインに参加させるWindowsマシンがWindows 7もしくはWindows Server 2008 R2以降の場合は、[[Windows 7からSambaドメインにログオンできない]] に従い、レジストリを変更する
* ドメインに参加させるWindowsマシンがWindows Server 2008の場合は、……
* SambaサーバとWindowsマシンが同一IPサブネットに存在していない場合は、WINSやLMHOSTSファイルを設定してNetBIOS名の名前解決を適切に行う
* NTドメインへの参加と同様にして、Sambaドメインに参加する。ドメイン参加の際のユーザ名とパスワードは、おのおのadministratorとsambaを用いる。
* 再起動後、以下のユーザでSAMBADOMドメインにログオン可能なことを確認する
** administratorユーザ、パスワードは「samba」
** ldap01ユーザ、パスワードは「ldap01」
:: 注意:ldap01ユーザは一般ユーザのため、サーバOSの場合は、事前に該当ユーザにローカルログオン権限を付与しておく必要がある

== GUIツールからのアクセス ==

WindowsマシンからGUI管理ツールでアクセスできることを確認する。

=== 関連パラメータなど ===

* LDAP関連パラメータ

=== 確認手順 ===

* [http://support.microsoft.com/kb/173673/ja|Windows NT Workstation 4.0 用の Windows NT サーバー ツール] より、あらかじめ管理ツール(srvtools.exe)を入手の上、適宜展開しておく。MS-DOS 形式の自己展開ファイルとなっているが、ファイルの拡張子を zip に変更することで、普通の zip 形式の圧縮ファイルとして扱うことも可能。

* 管理ツールは Windows XP もしくは Windows Server 2003 R2 以前のプラットフォームでしか起動しないので、当該プラットフォームの Windows マシンを用意し、ドメインに参加させる。

* administrator など、ドメインの管理者権限のあるユーザで用意した Windows マシンからログオンし、展開した管理ツール内にある usrmgr.exe を起動する。

* administrator をクリックし、各画面で詳細情報が表示されることを確認する。

== ユーザの追加、削除 ==

WindowsマシンからGUI管理ツールからユーザの追加、削除を行えることを確認する。

=== 関連パラメータなど ===

* LDAP関連パラメータ

=== 確認手順 ===

* usrmgr.exe から「User」-「New User」とたどり、表示された画面でUsername欄に任意のユーザ名を指定する。
* 「Add」を押す。
* 「Close」を押し、改めて usrmgr.exe の画面を確認し、追加したユーザが一覧に表示されていることを確認する。
* 該当ユーザを選択し、DEL キーを押す。
* 警告画面で「OK」を押す。最終確認画面でも「はい」を押す。
* 改めて usrmgr.exe の画面を確認し、削除したユーザが一覧に表示されていないことを確認する。


= ファイルサーバ編 =
= ファイルサーバ編 =
197行目: 142行目:
なお、パラメータによっては、パラメータ固有の Samba 変数を持っている場合があるが、本スクリプトでは、パラメータに依存しない一般的な Samba 変数のみを扱っている。
なお、パラメータによっては、パラメータ固有の Samba 変数を持っている場合があるが、本スクリプトでは、パラメータに依存しない一般的な Samba 変数のみを扱っている。


username map パラメータを用いて、Windows からみたユーザ名と実際のユーザ名を別のユーザ名とした場合、%U には、Windows から見たユーザ名が、%u には実際のユーザ名が記録される。
* APT コマンドの設定とパッケージの更新


=== アクセス権のないファイルを非表示にする ===
: /etc/apt/sources.list の内容を以下に変更
<pre>
deb http://ftp.jp.debian.org/debian etch main
deb http://security.debian.org/ etch/updates main
</pre>


設定を行うことで、アクセス権のないファイルが非表示になることを確認する。
: ディスク容量節約のため、'''main''' しか設定していないので注意。必要に応じて '''contrib''' や '''non-free''' も設定すること。


==== 関連パラメータなど ====
* /tmp を tmpfs にする(オプション→設定済)
: /etc/fstab に以下の設定を追加
/dev/shm /tmp tmpfs defaults 0 0


* [share_test] 共有
: これは、今後のインストール作業に際して、可能な限りディスク領域を消費しないためのもので、必須ではない。
* hide unreadable パラメータ


==== 確認手順 ====
* /var/cache/apt を tmpfs にする(オプション→設定済)
: /etc/fstab に以下の設定を追加
/dev/shm /var/cache/apt tmpfs defaults 0 0


* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする
: これは、今後のインストール作業に際して、可能な限りディスク領域を消費しないためのもので、必須ではない。


* secure.txt と normal.txt が表示されていることを確認する
: 設定を行った場合は、一度再起動するか、以下のように mount コマンドで上記設定を有効にする
# mount /tmp
# mount /var/cache/apt


* [share_test] 共有内の、以下の設定のコメントをはずす
* ftp のインストール(オプション→設定済)
: ファイルの受渡し用であり、動作上は不要
# apt-get install ftp
# apt-get clean


# Hide unreadable files
* ssh のインストール(オプション)
hide unreadable = yes
# apt-get install ssh
# apt-get clean


* Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
: SSH クライアントも併せてインストールされる。


* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする
* lv(ページャ)のインストール(オプション)
# apt-get install lv
* secure.txt が表示されていないことを確認する


==== 応用設定 ====
* ACLおよび拡張属性関連のパッケージインストール
# apt-get install attr acl


hide unwriteable パラメータの動作確認、'''フォルダを作成した際の挙動の確認。'''
* /etc/fstab で acl,user_xattr をマウントオプションに追加


=== 特定のファイル名のファイルを非表示にする ===
: ''errors=remount-ro'' を ''defaults,acl,user_xattr,errors=remount-ro''
に変更する。


==== 関連パラメータなど ====
= Samba + LDAP 環境の設定 =


* [share_test] 共有
== パッケージのインストールと基本設定 ==
* veto files パラメータ


==== 確認手順 ====
=== libnss-ldap / libpam-ldap のインストールと設定 ===


* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の veto_files フォルダにアクセスする
apt-get install libnss-ldap libpam-ldap


* GodMode という特殊なフォルダ(Windows XPの場合は普通のフォルダ)と dummy.exe が表示されていることを確認する
* libnss-ldap の設定
: URL は ldapi:///
: DN は、dc=sambadom,dc=local
: LDAPのバージョンは3
: LDAP account for root は cn=admin,dc=sambadom,dc=local
: パスワードは ldap


* [share_test] 共有内の、以下の設定のコメントをはずす
* libpam-ldap の設定
: Allow LDAP admin account ... は <Yes>
:Does the LDAP database require login? は <No>
: LDAP account for root は cn=admin,dc=sambadom,dc=local
: パスワードは ldap


# Prohibit to put EXE files and files with GUID
* /etc/nsswitch.conf ファイルに LDAP キーワードを追加
veto files = /*.exe/*.{*}/
delete veto files = yes

* Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる


* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の veto_files フォルダにアクセスする
--- nsswitch.conf.org 2009-09-10 03:02:29.000000000 +0900
+++ nsswitch.conf 2009-09-07 22:10:09.000000000 +0900
@@ -4,9 +4,9 @@
# If you have the `glibc-doc-reference' and `info' packages
installed, try:
# `info libc "Name Service Switch"' for information about this file.
* GodMode と dummy.exe の両方が表示されていないことを確認する
-passwd: compat
-group: compat
+passwd: compat ldap
+group: compat ldap
shadow: compat
hosts: files dns
networks: files


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


=== ファイルアクセスの監査設定を行う ===
=== Samba / OpenLDAP のインストール ===


==== 関連パラメータなど ====
* slapd パッケージのインストール


* [share_test] 共有
# apt-get install slapd ldap-utils
* vfs objects = full_audit
* full_audit:* パラメータ
* /etc/rsyslog.d/samba.conf


==== 確認手順 ====
: Admin password には ldap を指定する。


* [share_test] 共有内の、以下の設定のコメントをはずす
ldap-utils パッケージは管理用。動作上は不要だが、以降の説明ではインス
トールされていることを前提とする。


# Audit
* Samba 関連パッケージのインストール
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 行をコメントアウトすること。
# apt-get install samba winbind smbclient


* Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
: workgroup/domain name に ''SAMBADOM'' を指定


* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有にアクセスする
smbclient パッケージは管理およびテスト用。動作上は不要。


* /var/log/samba/log.audit に、以下のようなログが記録されていることを確認する
* pam_smbpass パッケージのインストール


Aug 7 00:54:14 sambapdc smbd[2833]: ldap02|192.168.135.130|connect|ok|share_test
# apt-get install libpam-smbpass


==== 応用 ====
* nscd を削除
full_audit:success および full_audit:failure パラメータの値をいろいろと書き換えて検証してみる。
: nscd が動作していると、ユーザやグループの追加、削除が(少なくとも即時には)反映されないというトラブルが発生することがあり、動作検証を行う上では面倒なため、ここでは削除している。
# apt-get remove nscd


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


=== シンボリックリンクの有効化 ===
'''Squeeze において、PAM関連ファイルは、pam-auth-update コマンドが内部
的に実行されて自動で設定されるため、基本的に修正は不要。'''


==== 関連パラメータなど ====
ただし、残念ながら、以下の設定を手動で設定を行う必要がある


* [share_test] 共有
* /etc/pam.d/common-password
* unix extensionsパラメータ
* wide links パラメータ


==== 確認手順 ====
pam_winbind.so 行をコメントアウト


* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有にアクセスする
* /etc/pam.d/common-session


* [share_test] 共有内の、wide_links フォルダにある passwd.txt (/etc/passwdにリンク)をクリックし、ファイル内容が読み取れないことを確認する。
pam_winbind.so 行に mkhomedir オプションを追加


* [share_test] 共有内の、以下の設定のコメントをはずし、値を yes に設定する
=== crackcheck コマンドのインストール ===


# Prohibit to symlink outside the share (by default after Samba 3.5.0)
* cracklib パッケージのインストール
wide links = yes


* [global] セクション内の、以下の設定のコメントをはずす
# apt-get install libcrack2


unix extensions = no
: crackcheck コマンドが使用する。


* Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
開発環境のあるマシン上で以下を実施


* [share_test] 共有内の、wide_links フォルダにある passwd.txt をクリックし、ファイル内容が読み取れることを確認する
# apt-get install cracklib2-dev


= ファイルサービスとアクセス制御 =
# apt-get install samba-doc
# cd /usr/share/doc/samba-doc/examples/auth/crackcheck
# make
# strip crackcheck


== 共有のアクセス制御 ==
生成された crackcheck バイナリを、今回構築するマシンの
/usr/local/sbin/crackcheck にインストール。


=== mgrshare クリプトイントール ===
=== IPアドレ単位アクセ制御 ===


==== 関連パラメータなど ====
mgrshare スクリプトを作成の上、以下を実施( mgrshare は [http://wiki.samba.gr.jp/mediawiki/images/1/10/Sambapdc4.tar.gz sambapdc4.tar.gz] 内にあります)


* share_test 共有
# mv mgrshare /usr/local/sbin/mgrshare
* hosts allow パラメータ
# chmod +x /usr/local/sbin/mgrshare
* hosts deny パラメータ


=== smbchsh のインストール ===
==== 参照 ====


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.142 - 143
一般ユーザがシェルを変更できるように以下のスクリプトを
/usr/local/bin/smbchsh としてインストール


=== ユーザ、グループ単位でのアクセス制御 ===
#!/bin/sh
SHELL=$1
echo "dn: uid=${USER},ou=users,dc=samba,dc=local
changetype: modify
replace: loginShell
loginShell: $1
" | ldapmodify -x -D "uid=${USER},ou=users,dc=samba,dc=local" -W


==== 関連パラメータなど ====
=== remove-old-files-in-recycle-bin


* shared 共有
ごみ箱内の古いファイルを削除するスクリプト例
* valid users パラメータ
/usr/local/sbin/remove-old-files-in-recycle-bin としてインストール
* invalid users パラメータ


==== 参照 ====
#!/bin/sh
trashdir=.recycle
rootdir=/var/lib/samba/shares
olddays=14
cd ${rootdir}
for targetdir in *; do
if [ -d ${targetdir}/${trashdir} ]; then
cd ${targetdir}/${trashdir}
find . -atime +${olddays} -exec rm {} \;
fi
done


* 「[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]」P.144 - 145
=== ホームディレクトリの作成 ===


=== 読み込み、書き込み単位でのアクセス制御 ===
# mkdir /home/SAMBADOM


==== 関連パラメータなど ====
=== smbusers ファイルの作成 ===
# touch /etc/samba/smbusers


* shared 共有
=== リモートログイン用アカウントの作成(オプション) ===
* read only パラメータ
# groupadd -g 999 local
* write list パラメータ
# useradd -u 999 -g 999 -m local
# passwd local
:パスワードは「local」に設定。


==== 参照 ====
== Samba + LDAP 環境の設定 ==


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.148 - 149
=== LDAP の設定 ===


=== 指定した時間帯に共有を読み取り専用にする ===
Squeeze からは、設定を LDAP 中に保持する設定となっているため、注意が必要。


未設定
* Samba スキーマファイルをインストール
: ここでは、スキーマファイルの抽出後に不要となった samba-doc パッケージを削除している


==== 参照 ====
# apt-get install samba-doc
# apt-get clean


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.149 - 150
# zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema


=== 複数人から互いに書き込み可能なファイル共有 ===
# apt-get remove samba-doc
# apt-get clean


==== 関連パラメータなど ====
* Samba 用スキーマの LDIF ファイル作成


* shared 共有
# cd /tmp
# ln -s /etc/ldap/schema .
# mkdir dummy_slapd.d


==== 参照 ====
:以下の内容で /tmp/dummy_slapd.conf ファイルを作成


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.154 - 155
include schema/core.schema"
include schema/cosine.schema"
include schema/inetorgperson.schema"
include schema/nis.schema"
include schema/samba.schema


=== 書き込み専用のファイル共有 ===
# slaptest -f dummy_slapd.conf -F dummy_slapd.d
config file testing succeeded


未設定
: 上記の例では、dummy_slapd.d/cn=config/cn=schema 以下にある cn={4}samba.ldif を samba.ldif にリネームの上、以下の修正を行い、LDIF ファイルを作成する


==== 参照 ====
** 変更前: samba.ldifの先頭3行


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」なし
dn: cn={4}samba
objectClass: olcSchemaConfig
cn: {4}samba


=== ACL の操作 ===
** 変更後: samba.ldifの先頭3行


==== 関連パラメータなど ====
dn: cn=samba,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: samba


* aclshare1 共有
変更前: samba.ldifの最後7行
* aclshare2 共有
* acl map full control パラメータ
* dos filemode パラメータ
* inherit owner パラメータ


==== 参照 ====
structuralObjectClass: olcSchemaConfig
entryUUID: a671adca-3aa0-1030-8ae6-516ef773ec5f
creatorsName: cn=config
createTimestamp: 20110704154721Z
entryCSN: 20110704154721.872107Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20110704154721Z


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.155 - 187
変更後: (削除)


== ファイル共有機能の基本 ==
: 最後に、samba.ldif を登録する


=== ファイル共有一覧画面での表示制御 ===
# ldapadd -Y EXTERNAL -H ldapi:/// -f samba.ldif
adding new entry "cn=samba,cn=schema,cn=config"


ファイル共有の一覧画面で、任意のファイル共有を非表示にできることを確認する。
* 初期設定
: 以下の LDIF ファイルを sambadom.ldif というファイル名で作成


==== 関連パラメータなど ====
dn: olcDatabase={1}hdb,cn=config
changetype:modify
add: olcDbIndex
olcDbIndex: uidNumber,gidNumber,uid,sambaSID,cn,memberuid eq
-
add: olcAccess
olcAccess: to attrs=loginShell by dn="cn=admin,dc=samba,dc=local" write by self write by * read
olcAccess: to attrs=sambaNTPassword,sambaLMPassword,sambaPwdLastSet,sambaPwdMustChange by dn="cn=admin,dc=samba,dc=local" write by self write by * none


* share_test 共有
# ldapadd -Y EXTERNAL -H ldapi:/// -f sambadom.ldif
* browseable パラメータ
adding new entry "olcDatabase={1}hdb,cn=config"


=== 初期スキーマの作成 ===
==== 確認手順1 ====


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


[[画像:Sambapdc4-sharelist01.png|「共有の一覧」画面]]
dn: ou=users,dc=sambadom,dc=local
objectClass: top
objectClass: organizationalUnit
ou: users
dn: ou=groups,dc=sambadom,dc=local
objectClass: top
objectClass: organizationalUnit
ou: groups
dn: ou=idmap,dc=sambadom,dc=local
objectClass: top
objectClass: organizationalUnit
ou: idmap
dn: ou=computers,dc=sambadom,dc=local
objectClass: top
objectClass: organizationalUnit
ou: computers


* 2. share_test 共有内の、以下の設定のコメント「;」をはずす
* ldapadd コマンドで上記 LDIF ファイルの内容を登録


# Do not list the share list
# cat sambadom.local.ldif | ldapadd -D
<font color="red"><b>;</b></font> browseable = no
cn=admin,dc=sambadom,dc=local -W -x -H ldapi:///
Enter LDAP Password:
adding new entry "ou=users,dc=samba,dc=local"
adding new entry "ou=groups,dc=samba,dc=local"
...


* 3. Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
=== Samba の設定 ===


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


[[画像:Sambapdc4-sharelist02.png|「共有の一覧」画面]]
# /etc/init.d/samba stop
# /etc/init.d/winbind stop


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


[[画像:Sambapdc4-sharelist03.png|「共有の一覧」画面]]
smb.conf ファイルを /etc/samba/smb.conf に作成( smb.conf は [http://wiki.samba.gr.jp/mediawiki/images/1/10/Sambapdc4.tar.gz sambapdc4.tar.gz] 内にあります)の上、以下を実施


==== 確認手順2 ====
# mv /etc/samba/smb.conf /etc/samba/smb.conf.org
# mv smb.conf /etc/samba/smb.conf


* 確認手順1の 2. の設定の代わりに、share_test セクションのセクション名を share_test$ に変更する
* smbusers ファイルのインストール


* 確認手順1の 5. の操作において、「\\sambapdc\share_test$」と入力し、共有内のフォルダ一覧が表示できることを確認する
smbusers ファイルを /etc/samba/smbusers として作成
ldap01 =


==== 参照 ====
* LDAP パスワードの格納


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.194
# smbpasswd -w ldap
Setting stored password for "cn=admin,dc=sambadom,dc=local" in secrets.tdb


=== ユーザ、グループ単位に隠し共有にする ===
* Samba の基本ユーザ情報を LDAP に格納


未設定
net sam provision コマンドを実行する前に、あらかじめ winbindd (のみ)
を起動しておく必要がある。


==== 参照 ====
# /etc/init.d/winbind start
Starting the Winbind daemon: winbind.
# net sam provision
Checking for Domain Users group.
Adding the Domain Users group.
Checking for Domain Admins group.
Adding the Domain Admins group.
Check for Administrator account.
Adding the Administrator user.
Checking for Guest user.
Adding the Guest user.
Checking Guest's group.
Adding the Domain Guests group.


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.195
* Administrator アカウントの初期設定


=== 共有への同時アクセス数の上限設定 ===
: パスワードを「samba」に設定


==== 関連パラメータなど ====
# smbpasswd Administrator
New SMB password:
Retype new SMB password:


* share_test 共有
* Samba の起動
* max connections パラメータ


==== 参照 ====
=== ホームディレクトリ自動作成の設定 ===


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.198
* /usr/local/sbin/createhomedir として以下の内容のファイルを作成


: なぜか PAM によるホームディレクトリ自動作成が Samba 経由だとうまく動作しないため
=== ホームディレクトリ自動共有 ===


==== 関連パラメータなど ====
#!/bin/bash
homedir=/home/$1/$2
if [ ! -d $homedir ]; then
mkdir $homedir
chmod 700 $homedir
chown $2:domusers $homedir
fi
exit 0


* homes 共有
=== syslog の設定 ===


==== 参照 ====
* 以下の内容で /etc/rsyslog.d/samba.conf ファイルを作成


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.199 - 201
local1.* -/var/log/samba/log.audit


=== ファイル属性 ===
* さらに
# touch /var/log/samba/log.audit
# /etc/init.d/rsyslog restart


==== 関連パラメータなど ====
* /etc/logrotate.d/samba-syslog として以下の内容のファイルを作成


* store dos attributes パラメータ
/var/log/samba/log.audit
{
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
invoke-rc.d rsyslog reload > /dev/null
endscript
}


==== 参照 ====
== Samba ドメインで使用する共有の作成 ==


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.207
# mkdir /var/lib/samba/shares
# cd /var/lib/samba/shares


=== 指定したファイル、ディレクトリ名の表示、アクセスを禁止する ===
* NETLOGON 共有
# mkdir /var/lib/samba/shares/netlogon


==== 関連パラメータなど ====
# mkdir /var/lib/samba/shares/printers
# chmod 775 domadmins
# chgrp domadmins printers


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


==== 確認手順 ====
# mkdir /var/lib/samba/shares/profiles
# chmod 1777 /var/lib/samba/shares/profiles


* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、
* shared 共有
share_test 共有内の veto_files フォルダにアクセスする
:Domain Usersグループに所属するユーザであれば、誰でも読み書き可能な共有ディレクトリ


* GodMode という特殊なフォルダ(Windows XPの場合は普通のフォルダ)と
# mkdir /var/lib/samba/shares/shared
dummy.exe が表示されていることを確認する
# chgrp domusers shared
# chmod g+ws shared


* [share_test] 共有内の、以下の設定のコメントをはずす
* aclshare1 共有


# Prohibit to put EXE files and files with GUID
:あらかじめ aclshare1ro および aclshare1rw グループを作成の上、GID を確認しておく
veto files = /*.exe/*.{*}/
# net sam createlocalgroup aclshare1ro
delete veto files = yes
Created local group aclshare1ro with RID 1001
# net sam createlocalgroup aclshare1rw
Created local group aclshare1rw with RID 1002


* Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コ
# net groupmap list ntgroup=aclshare1ro
マンドなどで、変更を反映させる
aclshare1ro (S-1-5-21-3643489711-3443204727-2039806625-1001) -> 10011
# net groupmap list ntgroup=aclshare1rw
aclshare1rw (S-1-5-21-3643489711-3443204727-2039806625-1002) -> 10012


* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、
# mkdir /var/lib/samba/shared/aclshare1
share_test 共有内の veto_files フォルダにアクセスする
# chown root:root aclshare1
# chmod 770 aclshare1
* GodMode と dummy.exe の両方が表示されていないことを確認する
# setfacl -m group:10011:r-x aclshare1
# setfacl -m group:10012:rwx aclshare1
# setfacl -d -m group:10011:r-x aclshare1
# setfacl -d -m group:10012:rwx aclshare1


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


==== 参照 ====
:あらかじめ aclshare2ro および aclshare2rw グループを作成の上、GID を確認しておく
# net sam createlocalgroup aclshare2ro
Created local group aclshare1ro with RID 1003
# net sam createlocalgroup aclshare2rw
Created local group aclshare1rw with RID 1004


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.216 - 217
# net groupmap list ntgroup=aclshare1ro
aclshare1ro (S-1-5-21-3643489711-3443204727-2039806625-1003) -> 10013
# net groupmap list ntgroup=aclshare1rw
aclshare1rw (S-1-5-21-3643489711-3443204727-2039806625-1004) -> 10014


=== アクセスできないファイルの表示、読み取りを禁止する ===
# mkdir /var/lib/samba/shared/aclshare1

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

# setfacl -m group:10014:rwx aclshare2
==== 関連パラメータなど ====
# setfacl -m group:10013:r-x aclshare2
# setfacl -d -m group:10014:rwx aclshare2
# setfacl -d -m group:10013:r-x aclshare2


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


==== 確認手順 ====
# mkdir /var/lib/samba/shares/share_test
# chmod 1777 share_test


* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする
# mkdir share_test/hide_unreadable
# cd share_test/hide_unreadable
# touch normal.txt
# touch secure.txt
# chmod 600 secure.txt


* secure.txt と normal.txt が表示されていることを確認する
# mkdir share_test/veto_files
# cd share_test/veto_files
# touch dummy.exe
# mkdir GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}


* share_test 共有内の、以下の設定のコメントをはずす
* var-check スクリプトのインストール
:share_test 共有の root preexec 行と連動して動作し、現在設定されている
Samba 変数の内容を表示させるためのスクリプト。
/usr/local/sbin/var-check としてインストール。


# Hide unreadable files
#!/bin/sh
<font color="red"><b>;</b></font> hide unreadable = yes

VARLIST='%U %G %h %L %m %M %R %d %a %I %i %T %D %w %v %V %S %P %u %g %H %N %p e1 e2'
* Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる

rm /tmp/var.txt
* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする
* secure.txt が表示されていないことを確認する
for var in $VARLIST; do
echo "$var : $1" >> /tmp/var.txt
shift
done


=== 試験ユーザを作成 ===
==== 設定 ====


hide unwriteable パラメータの動作確認、'''フォルダを作成した際の挙動の確認。'''
* ldap01 / ldap02 / ldap03 ユーザを作成


==== 参照 ====
:ldap01 / ldap02 ユーザは aclshare1rw および aclshare2rw グループに所属
:ldap03 ユーザは aclshare1ro および aclshare2ro グループに所属


* [http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて] P.217 - 218
** ホームディレクトリ \\sambapdc\ユーザ名 を H: にマウント
** ユーザ名「LDAP User nn」
** パスワードを無期限にする


=== シンボリックリンクの追跡 ===
: 以下 ldap01 ユーザーの場合の実行例


==== 関連パラメータなど ====
# smbpasswd -a ldap01
# pdbedit -c "[X]" -f "LDAP01 user" -h '\\sambapdc\ldap01' -D h: ldap01


* [share_test] 共有
# net sam addmem aclshare1rw ldap01
a* unix extensions パラメータ
Added SAMBADOM\ldap01 to SAMBADOM\aclshare1rw
* wide links パラメータ
# net sam addmem aclshare2rw ldap01
Added SAMBADOM\ldap01 to SAMBADOM\aclshare2rw


==== 確認手順 ====
=== SWAT のインストール(オプション) ===


* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、
* SWAT のインストール
share_test 共有にアクセスする


* [share_test] 共有内の、wide_links フォルダにある passwd.txt
# apt-get install swat
(/etc/passwdにリンク)をクリックし、ファイル内容が読み取れないこと
を確認する。


* [share_test] 共有内の、以下の設定のコメントをはずし、値を yes に設定
* /etc/hosts.allow ファイルに以下を設定
する
: アクセスをローカルサブネットに制限する
ALL: LOCAL


# Prohibit to symlink outside the share (by default after Samba
=== 最後に ===
3.5.0)
wide links = yes


* [global] セクション内の、以下の設定のコメントをはずす
* WINS データベースの初期化


unix extensions = no
/var/lib/samba 以下の wins.dat と wins.tdb を削除する


* Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コ
* VMware ログファイルの削除
マンドなどで、変更を反映させる


* [share_test] 共有内の、wide_links フォルダにある passwd.txt をクリッ
クし、ファイル内容が読み取れることを確認する


== 動作確認 ==
==== 参照 ====


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.221 - 223
=== Windows XP Professional SP3 から Samba ドメインに参加 ===


=== Windows Vista からアクセスした際のパフォーマンスの向上 ===
* ドメインに参加
* Administrator としてログオン


=== 動作確認 ===
==== 関連パラメータなど ====


* share_test 共有
* 初期状態で
* vfs objects = readahead 行


==== 参照 ====
** ssh をインストールした上で、ldap01 として ssh でリモートマシンからログインが成功する。その際、ホームディレクトリが自動で作成される


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.224 - 225
** smbchsh コマンドによりシェルを変更できる


=== Windows マシンからのファイル共有管理 ===
ldap01@sambapdc:~$ /usr/local/bin/smbchsh /bin/sh
Enter LDAP Password:
modifying entry "uid=ldap01,ou=users,dc=samba,dc=local"
ldap01@sambapdc:~$ getent passwd ldap01
ldap01:*:10002:10000:ldap01:/home/SAMBADOM/ldap01:/bin/sh


==== 関連パラメータなど ====
** ldap01 として Windows XP Professional にログオンできる (パスワード ldap01)


* add share comand パラメータ
* smbpasswd コマンドによりパスワードを変更できる
* change share comand パラメータ
: その際、crackcheck コマンドにより、簡単なパスワードは設定できない
* delete share comand パラメータ
* mgrshare スクリプト


==== 参照 ====


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.227 - 236
** ldap01 として NTWS40 にログオンできる (パスワードは変更後)
** ldap01 として ログインが成功する(パスワードは変更後)


== 高度なファイル共有機能 ==
* passwd コマンドによりパスワードを変更できる


=== ごみ箱機能 ===
: 変更後のパスワードでコンソールログインと smbclient によるアクセスが成功する


=== ファイルアクセスの監査 ===
** ldap01 として Windows XP Professinal にログオンできる (パスワードは変更後)
** ldap01 として変更後のログインが成功する(パスワードは変更後)


==== 関連パラメータなど ====

* 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 がログを出力するファシリティや出力先をいろいろ変えてみる。


==== 参照 ====
* Windows XP Professional 以降で Ctrl+Alt+Del した画面のパスワードの変更、からパスワードが変更できる
: その際、crackcheck コマンドにより、簡単なパスワードは設定できない


* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.259 - 261
** ldap01 として NTWS40 にログオンできる (パスワードは変更後)
** ldap01 として ssh でリモートマシンからログインが成功する(パスワードは変更後)


= [[Sambaドメイン]] =
* Windows 2000 に Administrator としてログオンして、「コンピュータ管理」ツールから
** ファイル共有が作成できる
** 作成したファイル共有にアクセスできる
** ファイル共有が削除できる

2011年8月16日 (火) 11:44時点における最新版

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ドメイン