「デモ手順 - Samba PDC (squeeze)」の版間の差分
細 (→Samba + LDAP 環境の設定: ファイル共有一覧画面での表示制御 追加) |
細 (→応用) |
||
(同じ利用者による、間の15版が非表示) | |||
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 の画面を確認し、削除したユーザが一覧に表示されていないことを確認する。 |
|||
= ファイルサーバ編 = |
= ファイルサーバ編 = |
||
196行目: | 141行目: | ||
なお、パラメータによっては、パラメータ固有の Samba 変数を持っている場合があるが、本スクリプトでは、パラメータに依存しない一般的な Samba 変数のみを扱っている。 |
なお、パラメータによっては、パラメータ固有の Samba 変数を持っている場合があるが、本スクリプトでは、パラメータに依存しない一般的な Samba 変数のみを扱っている。 |
||
username map パラメータを用いて、Windows からみたユーザ名と実際のユーザ名を別のユーザ名とした場合、%U には、Windows から見たユーザ名が、%u には実際のユーザ名が記録される。 |
|||
=== アクセス権のないファイルを非表示にする === |
=== アクセス権のないファイルを非表示にする === |
||
223行目: | 170行目: | ||
* secure.txt が表示されていないことを確認する |
* secure.txt が表示されていないことを確認する |
||
==== 応用設定 |
==== 応用設定 ==== |
||
hide unwriteable パラメータの動作確認、'''フォルダを作成した際の挙動の確認。''' |
hide unwriteable パラメータの動作確認、'''フォルダを作成した際の挙動の確認。''' |
||
319行目: | 266行目: | ||
= ファイルサービスとアクセス制御 = |
= ファイルサービスとアクセス制御 = |
||
== 共有のアクセス制御 == |
|||
=== IPアドレス単位のアクセス制御 === |
|||
ファイル共有の一覧画面で、任意のファイル共有を非表示にできることを確認する。 |
|||
==== 関連パラメータなど ==== |
==== 関連パラメータなど ==== |
||
* share_test 共有 |
* share_test 共有 |
||
* |
* hosts allow パラメータ |
||
* hosts deny パラメータ |
|||
==== |
==== 参照 ==== |
||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.142 - 143 |
|||
* 1. Windows マシンに任意のユーザでログオンし、例えば「ファイル名を指定して実行」で「\\sambapdc」と入力する。 |
|||
: 共有の一覧が表示され、share_test 共有も'''表示されている'''ことを確認する。 |
|||
=== ユーザ、グループ単位でのアクセス制御 === |
|||
* 2. share_test 共有内の、以下の設定のコメントをはずす |
|||
==== 関連パラメータなど ==== |
|||
<pre> |
|||
# Do not list the share list |
|||
<font color="red"><em>;</em></font> browseable = no |
|||
</pre> |
|||
* shared 共有 |
|||
* 3. Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる |
|||
* valid users パラメータ |
|||
* invalid users パラメータ |
|||
==== 参照 ==== |
|||
* 4. Windows マシンに任意のユーザでログオンし、例えば「ファイル名を指定して実行」で「\\sambapdc」と入力し、共有の一覧を表示する |
|||
: share_test 共有が'''表示されていない'''ことを確認する。 |
|||
* 「[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]」P.144 - 145 |
|||
* 5. 例えば「ファイル名を指定して実行」で「\\sambapdc\share_test」と入力し、共有内のフォルダ一覧を表示する |
|||
: share_test 共有自体にはアクセス可能であることを確認する。 |
|||
=== 読み込み、書き込み単位でのアクセス制御 === |
|||
==== 確認手順2 ==== |
|||
==== 関連パラメータなど ==== |
|||
* 確認手順1の 2. の設定の代わりに、share_test セクションのセクション名を share_test$ に変更する |
|||
* shared 共有 |
|||
* 確認手順1の 5. の操作において、「\\sambapdc\share_test$」と入力し、共有内のフォルダ一覧が表示できることを確認する |
|||
* read only パラメータ |
|||
* write list パラメータ |
|||
==== 参照 ==== |
|||
= Samba + LDAP 環境の設定 = |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.148 - 149 |
|||
* 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 |
|||
=== 指定した時間帯に共有を読み取り専用にする === |
|||
* /etc/nsswitch.conf ファイルに LDAP キーワードを追加 |
|||
未設定 |
|||
--- 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. |
|||
-passwd: compat |
|||
-group: compat |
|||
+passwd: compat ldap |
|||
+group: compat ldap |
|||
shadow: compat |
|||
hosts: files dns |
|||
networks: files |
|||
==== 参照 ==== |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.149 - 150 |
|||
=== Samba / OpenLDAP のインストール === |
|||
=== 複数人から互いに書き込み可能なファイル共有 === |
|||
* slapd パッケージのインストール |
|||
==== 関連パラメータなど ==== |
|||
# apt-get install slapd ldap-utils |
|||
* shared 共有 |
|||
: Admin password には ldap を指定する。 |
|||
==== 参照 ==== |
|||
ldap-utils パッケージは管理用。動作上は不要だが、以降の説明ではインス |
|||
トールされていることを前提とする。 |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.154 - 155 |
|||
* Samba 関連パッケージのインストール |
|||
=== 書き込み専用のファイル共有 === |
|||
# apt-get install samba winbind smbclient |
|||
未設定 |
|||
: workgroup/domain name に ''SAMBADOM'' を指定 |
|||
==== 参照 ==== |
|||
smbclient パッケージは管理およびテスト用。動作上は不要。 |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」なし |
|||
* pam_smbpass パッケージのインストール |
|||
=== ACL の操作 === |
|||
# apt-get install libpam-smbpass |
|||
==== 関連パラメータなど ==== |
|||
* nscd を削除 |
|||
: nscd が動作していると、ユーザやグループの追加、削除が(少なくとも即時には)反映されないというトラブルが発生することがあり、動作検証を行う上では面倒なため、ここでは削除している。 |
|||
# apt-get remove nscd |
|||
* aclshare1 共有 |
|||
=== PAM の手動設定 === |
|||
* aclshare2 共有 |
|||
* acl map full control パラメータ |
|||
* dos filemode パラメータ |
|||
* inherit owner パラメータ |
|||
==== 参照 ==== |
|||
'''Squeeze において、PAM関連ファイルは、pam-auth-update コマンドが内部 |
|||
的に実行されて自動で設定されるため、基本的に修正は不要。''' |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.155 - 187 |
|||
ただし、残念ながら、以下の設定を手動で設定を行う必要がある |
|||
== ファイル共有機能の基本 == |
|||
* /etc/pam.d/common-password |
|||
=== ファイル共有一覧画面での表示制御 === |
|||
pam_winbind.so 行をコメントアウト |
|||
ファイル共有の一覧画面で、任意のファイル共有を非表示にできることを確認する。 |
|||
* /etc/pam.d/common-session |
|||
==== 関連パラメータなど ==== |
|||
pam_winbind.so 行に mkhomedir オプションを追加 |
|||
* share_test 共有 |
|||
=== crackcheck コマンドのインストール === |
|||
* browseable パラメータ |
|||
==== 確認手順1 ==== |
|||
* cracklib パッケージのインストール |
|||
* 1. Windows マシンに任意のユーザでログオンし、例えば「ファイル名を指定して実行」で「\\sambapdc」と入力する。 |
|||
# apt-get install libcrack2 |
|||
: 共有の一覧が表示され、share_test 共有も'''表示されている'''ことを確認する。 |
|||
[[画像:Sambapdc4-sharelist01.png|「共有の一覧」画面]] |
|||
: crackcheck コマンドが使用する。 |
|||
* 2. share_test 共有内の、以下の設定のコメント「;」をはずす |
|||
開発環境のあるマシン上で以下を実施 |
|||
# Do not list the share list |
|||
# apt-get install cracklib2-dev |
|||
<font color="red"><b>;</b></font> browseable = no |
|||
* 3. Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる |
|||
# apt-get install samba-doc |
|||
# cd /usr/share/doc/samba-doc/examples/auth/crackcheck |
|||
# make |
|||
# strip crackcheck |
|||
* 4. Windows マシンに任意のユーザでログオンし、例えば「ファイル名を指定して実行」で「\\sambapdc」と入力する |
|||
生成された crackcheck バイナリを、今回構築するマシンの |
|||
: 共有の一覧が表示されるが、share_test 共有は'''表示されていない'''ことを確認する。 |
|||
/usr/local/sbin/crackcheck にインストール。 |
|||
[[画像:Sambapdc4-sharelist02.png|「共有の一覧」画面]] |
|||
=== mgrshare スクリプトのインストール === |
|||
* 5. 例えば「ファイル名を指定して実行」で「\\sambapdc\share_test」と入力する |
|||
mgrshare スクリプトを作成の上、以下を実施( mgrshare は [http://wiki.samba.gr.jp/mediawiki/images/1/10/Sambapdc4.tar.gz sambapdc4.tar.gz] 内にあります) |
|||
: 共有一覧では非表示となったが、UNC パスを直接指定することで、図のように share_test 共有自体にはアクセス可能であることを確認する。 |
|||
[[画像:Sambapdc4-sharelist03.png|「共有の一覧」画面]] |
|||
# mv mgrshare /usr/local/sbin/mgrshare |
|||
# chmod +x /usr/local/sbin/mgrshare |
|||
=== |
==== 確認手順2 ==== |
||
* 確認手順1の 2. の設定の代わりに、share_test セクションのセクション名を share_test$ に変更する |
|||
一般ユーザがシェルを変更できるように以下のスクリプトを |
|||
/usr/local/bin/smbchsh としてインストール |
|||
* 確認手順1の 5. の操作において、「\\sambapdc\share_test$」と入力し、共有内のフォルダ一覧が表示できることを確認する |
|||
#!/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 |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.194 |
|||
ごみ箱内の古いファイルを削除するスクリプト例 |
|||
/usr/local/sbin/remove-old-files-in-recycle-bin としてインストール |
|||
=== ユーザ、グループ単位に隠し共有にする === |
|||
#!/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 |
|||
未設定 |
|||
=== ホームディレクトリの作成 === |
|||
==== 参照 ==== |
|||
# mkdir /home/SAMBADOM |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.195 |
|||
=== smbusers ファイルの作成 === |
|||
# touch /etc/samba/smbusers |
|||
=== 共有への同時アクセス数の上限設定 === |
|||
=== リモートログイン用アカウントの作成(オプション) === |
|||
# groupadd -g 999 local |
|||
# useradd -u 999 -g 999 -m local |
|||
# passwd local |
|||
:パスワードは「local」に設定。 |
|||
==== 関連パラメータなど ==== |
|||
== Samba + LDAP 環境の設定 == |
|||
* share_test 共有 |
|||
=== LDAP の設定 === |
|||
* max connections パラメータ |
|||
==== 参照 ==== |
|||
Squeeze からは、設定を LDAP 中に保持する設定となっているため、注意が必要。 |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.198 |
|||
* Samba スキーマファイルをインストール |
|||
: ここでは、スキーマファイルの抽出後に不要となった samba-doc パッケージを削除している |
|||
=== ホームディレクトリの自動共有 === |
|||
# apt-get install samba-doc |
|||
# apt-get clean |
|||
==== 関連パラメータなど ==== |
|||
# zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema |
|||
* homes 共有 |
|||
# apt-get remove samba-doc |
|||
# apt-get clean |
|||
==== 参照 ==== |
|||
* Samba 用スキーマの LDIF ファイル作成 |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.199 - 201 |
|||
# cd /tmp |
|||
# ln -s /etc/ldap/schema . |
|||
# mkdir dummy_slapd.d |
|||
=== ファイル属性 === |
|||
==== 関連パラメータなど ==== |
|||
include schema/core.schema" |
|||
include schema/cosine.schema" |
|||
include schema/inetorgperson.schema" |
|||
include schema/nis.schema" |
|||
include schema/samba.schema |
|||
* store dos attributes パラメータ |
|||
# 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 ファイルを作成する |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.207 |
|||
** 変更前: samba.ldifの先頭3行 |
|||
=== 指定したファイル、ディレクトリ名の表示、アクセスを禁止する === |
|||
dn: cn={4}samba |
|||
objectClass: olcSchemaConfig |
|||
cn: {4}samba |
|||
==== 関連パラメータなど ==== |
|||
** 変更後: samba.ldifの先頭3行 |
|||
* [share_test] 共有 |
|||
dn: cn=samba,cn=schema,cn=config |
|||
* veto files パラメータ |
|||
objectClass: olcSchemaConfig |
|||
cn: samba |
|||
==== 確認手順 ==== |
|||
変更前: samba.ldifの最後7行 |
|||
* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、 |
|||
structuralObjectClass: olcSchemaConfig |
|||
share_test 共有内の veto_files フォルダにアクセスする |
|||
entryUUID: a671adca-3aa0-1030-8ae6-516ef773ec5f |
|||
creatorsName: cn=config |
|||
createTimestamp: 20110704154721Z |
|||
entryCSN: 20110704154721.872107Z#000000#000#000000 |
|||
modifiersName: cn=config |
|||
modifyTimestamp: 20110704154721Z |
|||
* GodMode という特殊なフォルダ(Windows XPの場合は普通のフォルダ)と |
|||
変更後: (削除) |
|||
dummy.exe が表示されていることを確認する |
|||
* [share_test] 共有内の、以下の設定のコメントをはずす |
|||
: 最後に、samba.ldif を登録する |
|||
# Prohibit to put EXE files and files with GUID |
|||
# ldapadd -Y EXTERNAL -H ldapi:/// -f samba.ldif |
|||
veto files = /*.exe/*.{*}/ |
|||
adding new entry "cn=samba,cn=schema,cn=config" |
|||
delete veto files = yes |
|||
* Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コ |
|||
* 初期設定 |
|||
マンドなどで、変更を反映させる |
|||
: 以下の LDIF ファイルを sambadom.ldif というファイル名で作成 |
|||
* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、 |
|||
dn: olcDatabase={1}hdb,cn=config |
|||
share_test 共有内の veto_files フォルダにアクセスする |
|||
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 |
|||
# ldapadd -Y EXTERNAL -H ldapi:/// -f sambadom.ldif |
|||
adding new entry "olcDatabase={1}hdb,cn=config" |
|||
=== 初期スキーマの作成 === |
|||
* sambadom.local.ldif ファイルの作成 |
|||
dn: ou=users,dc=sambadom,dc=local |
|||
objectClass: top |
|||
objectClass: organizationalUnit |
|||
ou: users |
|||
* GodMode と dummy.exe の両方が表示されていないことを確認する |
|||
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 |
|||
* .EXE ファイルを Windows マシンから share_test 共有内にコピーできない |
|||
* ldapadd コマンドで上記 LDIF ファイルの内容を登録 |
|||
ことを確認する |
|||
: '''パーミッションが 755 になっているので、あらかじめ 1777 などに変更 |
|||
した上で確認すること。''' |
|||
: '''share_test 共有に writeable = yes の設定が抜けているので、あらか |
|||
じめ設定しておくこと''' |
|||
==== 参照 ==== |
|||
# cat sambadom.local.ldif | ldapadd -D |
|||
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" |
|||
... |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.216 - 217 |
|||
=== Samba の設定 === |
|||
=== アクセスできないファイルの表示、読み取りを禁止する === |
|||
* Samba の停止 |
|||
設定を行うことで、アクセス権のないファイルが非表示になることを確認する。 |
|||
# /etc/init.d/samba stop |
|||
# /etc/init.d/winbind stop |
|||
==== 関連パラメータなど ==== |
|||
* smb.conf のインストール |
|||
* share_test 共有 |
|||
smb.conf ファイルを /etc/samba/smb.conf に作成( smb.conf は [http://wiki.samba.gr.jp/mediawiki/images/1/10/Sambapdc4.tar.gz sambapdc4.tar.gz] 内にあります)の上、以下を実施 |
|||
* hide unreadable パラメータ |
|||
==== 確認手順 ==== |
|||
# mv /etc/samba/smb.conf /etc/samba/smb.conf.org |
|||
# mv smb.conf /etc/samba/smb.conf |
|||
* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする |
|||
* smbusers ファイルのインストール |
|||
* secure.txt と normal.txt が表示されていることを確認する |
|||
smbusers ファイルを /etc/samba/smbusers として作成 |
|||
ldap01 = |
|||
* share_test 共有内の、以下の設定のコメントをはずす |
|||
* LDAP パスワードの格納 |
|||
# Hide unreadable files |
|||
# smbpasswd -w ldap |
|||
<font color="red"><b>;</b></font> hide unreadable = yes |
|||
Setting stored password for "cn=admin,dc=sambadom,dc=local" in secrets.tdb |
|||
* Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる |
|||
* Samba の基本ユーザ情報を LDAP に格納 |
|||
net sam provision コマンドを実行する前に、あらかじめ winbindd (のみ) |
|||
を起動しておく必要がある。 |
|||
* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする |
|||
# /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. |
|||
* Administrator アカウントの初期設定 |
|||
: パスワードを「samba」に設定 |
|||
# smbpasswd Administrator |
|||
New SMB password: |
|||
Retype new SMB password: |
|||
* Samba の起動 |
|||
=== ホームディレクトリ自動作成の設定 === |
|||
* /usr/local/sbin/createhomedir として以下の内容のファイルを作成 |
|||
: なぜか PAM によるホームディレクトリ自動作成が Samba 経由だとうまく動作しないため |
|||
#!/bin/bash |
|||
* secure.txt が表示されていないことを確認する |
|||
homedir=/home/$1/$2 |
|||
if [ ! -d $homedir ]; then |
|||
mkdir $homedir |
|||
chmod 700 $homedir |
|||
chown $2:domusers $homedir |
|||
fi |
|||
exit 0 |
|||
=== |
==== 応用設定 ==== |
||
hide unwriteable パラメータの動作確認、'''フォルダを作成した際の挙動の確認。''' |
|||
* 以下の内容で /etc/rsyslog.d/samba.conf ファイルを作成 |
|||
==== 参照 ==== |
|||
local1.* -/var/log/samba/log.audit |
|||
* [http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて] P.217 - 218 |
|||
* さらに |
|||
# touch /var/log/samba/log.audit |
|||
# /etc/init.d/rsyslog restart |
|||
=== シンボリックリンクの追跡 === |
|||
* /etc/logrotate.d/samba-syslog として以下の内容のファイルを作成 |
|||
==== 関連パラメータなど ==== |
|||
/var/log/samba/log.audit |
|||
{ |
|||
rotate 4 |
|||
weekly |
|||
missingok |
|||
notifempty |
|||
compress |
|||
delaycompress |
|||
sharedscripts |
|||
postrotate |
|||
invoke-rc.d rsyslog reload > /dev/null |
|||
endscript |
|||
} |
|||
* [share_test] 共有 |
|||
== Samba ドメインで使用する共有の作成 == |
|||
a* unix extensions パラメータ |
|||
* wide links パラメータ |
|||
==== 確認手順 ==== |
|||
# mkdir /var/lib/samba/shares |
|||
# cd /var/lib/samba/shares |
|||
* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、 |
|||
* NETLOGON 共有 |
|||
share_test 共有にアクセスする |
|||
# mkdir /var/lib/samba/shares/netlogon |
|||
* [share_test] 共有内の、wide_links フォルダにある passwd.txt |
|||
# mkdir /var/lib/samba/shares/printers |
|||
(/etc/passwdにリンク)をクリックし、ファイル内容が読み取れないこと |
|||
# chmod 775 domadmins |
|||
を確認する。 |
|||
# chgrp domadmins printers |
|||
* [share_test] 共有内の、以下の設定のコメントをはずし、値を yes に設定 |
|||
* profiles 共有 |
|||
する |
|||
# Prohibit to symlink outside the share (by default after Samba |
|||
# mkdir /var/lib/samba/shares/profiles |
|||
3.5.0) |
|||
# chmod 1777 /var/lib/samba/shares/profiles |
|||
wide links = yes |
|||
* [global] セクション内の、以下の設定のコメントをはずす |
|||
* shared 共有 |
|||
:Domain Usersグループに所属するユーザであれば、誰でも読み書き可能な共有ディレクトリ |
|||
unix extensions = no |
|||
# mkdir /var/lib/samba/shares/shared |
|||
# chgrp domusers shared |
|||
# chmod g+ws shared |
|||
* Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コ |
|||
* aclshare1 共有 |
|||
マンドなどで、変更を反映させる |
|||
* [share_test] 共有内の、wide_links フォルダにある passwd.txt をクリッ |
|||
:あらかじめ aclshare1ro および aclshare1rw グループを作成の上、GID を確認しておく |
|||
クし、ファイル内容が読み取れることを確認する |
|||
# net sam createlocalgroup aclshare1ro |
|||
Created local group aclshare1ro with RID 1001 |
|||
# net sam createlocalgroup aclshare1rw |
|||
Created local group aclshare1rw with RID 1002 |
|||
==== 参照 ==== |
|||
# 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 |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.221 - 223 |
|||
# mkdir /var/lib/samba/shared/aclshare1 |
|||
# chown root:root aclshare1 |
|||
# chmod 770 aclshare1 |
|||
# 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 |
|||
=== Windows Vista からアクセスした際のパフォーマンスの向上 === |
|||
* aclshare2 共有 |
|||
==== 関連パラメータなど ==== |
|||
:あらかじめ 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 |
|||
# 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 共有 |
||
* vfs objects = readahead 行 |
|||
==== 参照 ==== |
|||
# mkdir /var/lib/samba/shares/share_test |
|||
# chmod 1777 share_test |
|||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.224 - 225 |
|||
# mkdir share_test/hide_unreadable |
|||
# cd share_test/hide_unreadable |
|||
# touch normal.txt |
|||
# touch secure.txt |
|||
# chmod 600 secure.txt |
|||
=== Windows マシンからのファイル共有管理 === |
|||
# mkdir share_test/veto_files |
|||
# cd share_test/veto_files |
|||
# touch dummy.exe |
|||
# mkdir GodMode.{ED7BA470-8E54-465E-825C-99712043E01C} |
|||
==== 関連パラメータなど ==== |
|||
* var-check スクリプトのインストール |
|||
:share_test 共有の root preexec 行と連動して動作し、現在設定されている |
|||
Samba 変数の内容を表示させるためのスクリプト。 |
|||
/usr/local/sbin/var-check としてインストール。 |
|||
* add share comand パラメータ |
|||
#!/bin/sh |
|||
* change share comand パラメータ |
|||
* delete share comand パラメータ |
|||
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' |
|||
* mgrshare スクリプト |
|||
rm /tmp/var.txt |
|||
for var in $VARLIST; do |
|||
echo "$var : $1" >> /tmp/var.txt |
|||
shift |
|||
done |
|||
=== |
==== 参照 ==== |
||
* 「[[http://www.seshop.com/product/detail/13141/| 改訂版 Sambaのすべて]]」P.227 - 236 |
|||
* ldap01 / ldap02 / ldap03 ユーザを作成 |
|||
== 高度なファイル共有機能 == |
|||
:ldap01 / ldap02 ユーザは aclshare1rw および aclshare2rw グループに所属 |
|||
:ldap03 ユーザは aclshare1ro および aclshare2ro グループに所属 |
|||
=== ごみ箱機能 === |
|||
** ホームディレクトリ \\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 |
|||
* vfs objects = full_audit 行 |
|||
Added SAMBADOM\ldap01 to SAMBADOM\aclshare1rw |
|||
* full_audit:* パラメータ |
|||
# net sam addmem aclshare2rw ldap01 |
|||
* /etc/rsyslog.d/samba.conf ファイル |
|||
Added SAMBADOM\ldap01 to SAMBADOM\aclshare2rw |
|||
==== 確認手順 ==== |
|||
=== SWAT のインストール(オプション) === |
|||
* share_test 共有内の、以下の設定のコメントをはずす |
|||
* SWAT のインストール |
|||
# Audit |
|||
# apt-get install swat |
|||
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 行をコメントアウトすること。 |
|||
* /etc/hosts.allow ファイルに以下を設定 |
|||
: アクセスをローカルサブネットに制限する |
|||
ALL: LOCAL |
|||
* Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる |
|||
=== 最後に === |
|||
* Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有にアクセスする |
|||
* WINS データベースの初期化 |
|||
/var/ |
* /var/log/samba/log.audit に、以下のようなログが記録されていることを確認する |
||
Aug 7 00:54:14 sambapdc smbd[2833]: ldap02|192.168.135.130|connect|ok|share_test |
|||
* VMware ログファイルの削除 |
|||
== 動作確認 == |
|||
=== Windows XP Professional SP3 から Samba ドメインに参加 === |
|||
* ドメインに参加 |
|||
* Administrator としてログオン |
|||
=== 動作確認 === |
|||
* 初期状態で |
|||
** ssh をインストールした上で、ldap01 として ssh でリモートマシンからログインが成功する。その際、ホームディレクトリが自動で作成される |
|||
** smbchsh コマンドによりシェルを変更できる |
|||
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) |
|||
* smbpasswd コマンドによりパスワードを変更できる |
|||
: その際、crackcheck コマンドにより、簡単なパスワードは設定できない |
|||
** ldap01 として NTWS40 にログオンできる (パスワードは変更後) |
|||
** ldap01 として ログインが成功する(パスワードは変更後) |
|||
* passwd コマンドによりパスワードを変更できる |
|||
: 変更後のパスワードでコンソールログインと smbclient によるアクセスが成功する |
|||
** ldap01 として Windows XP Professinal にログオンできる (パスワードは変更後) |
|||
** ldap01 として変更後のログインが成功する(パスワードは変更後) |
|||
==== 応用 ==== |
|||
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 パラメータ
参照
- 「[改訂版 Sambaのすべて]」P.142 - 143
ユーザ、グループ単位でのアクセス制御
関連パラメータなど
- shared 共有
- valid users パラメータ
- invalid users パラメータ
参照
- 「改訂版 Sambaのすべて」P.144 - 145
読み込み、書き込み単位でのアクセス制御
関連パラメータなど
- shared 共有
- read only パラメータ
- write list パラメータ
参照
- 「[改訂版 Sambaのすべて]」P.148 - 149
指定した時間帯に共有を読み取り専用にする
未設定
参照
- 「[改訂版 Sambaのすべて]」P.149 - 150
複数人から互いに書き込み可能なファイル共有
関連パラメータなど
- shared 共有
参照
- 「[改訂版 Sambaのすべて]」P.154 - 155
書き込み専用のファイル共有
未設定
参照
- 「[改訂版 Sambaのすべて]」なし
ACL の操作
関連パラメータなど
- aclshare1 共有
- aclshare2 共有
- acl map full control パラメータ
- dos filemode パラメータ
- inherit owner パラメータ
参照
- 「[改訂版 Sambaのすべて]」P.155 - 187
ファイル共有機能の基本
ファイル共有一覧画面での表示制御
ファイル共有の一覧画面で、任意のファイル共有を非表示にできることを確認する。
関連パラメータなど
- 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$」と入力し、共有内のフォルダ一覧が表示できることを確認する
参照
- 「[改訂版 Sambaのすべて]」P.194
ユーザ、グループ単位に隠し共有にする
未設定
参照
- 「[改訂版 Sambaのすべて]」P.195
共有への同時アクセス数の上限設定
関連パラメータなど
- share_test 共有
- max connections パラメータ
参照
- 「[改訂版 Sambaのすべて]」P.198
ホームディレクトリの自動共有
関連パラメータなど
- homes 共有
参照
- 「[改訂版 Sambaのすべて]」P.199 - 201
ファイル属性
関連パラメータなど
- store dos attributes パラメータ
参照
- 「[改訂版 Sambaのすべて]」P.207
指定したファイル、ディレクトリ名の表示、アクセスを禁止する
関連パラメータなど
- [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 の設定が抜けているので、あらか
じめ設定しておくこと
参照
- 「[改訂版 Sambaのすべて]」P.216 - 217
アクセスできないファイルの表示、読み取りを禁止する
設定を行うことで、アクセス権のないファイルが非表示になることを確認する。
関連パラメータなど
- 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 パラメータの動作確認、フォルダを作成した際の挙動の確認。
参照
- 改訂版 Sambaのすべて P.217 - 218
シンボリックリンクの追跡
関連パラメータなど
- [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 をクリッ
クし、ファイル内容が読み取れることを確認する
参照
- 「[改訂版 Sambaのすべて]」P.221 - 223
Windows Vista からアクセスした際のパフォーマンスの向上
関連パラメータなど
- share_test 共有
- vfs objects = readahead 行
参照
- 「[改訂版 Sambaのすべて]」P.224 - 225
Windows マシンからのファイル共有管理
関連パラメータなど
- add share comand パラメータ
- change share comand パラメータ
- delete share comand パラメータ
- mgrshare スクリプト
参照
- 「[改訂版 Sambaのすべて]」P.227 - 236
高度なファイル共有機能
ごみ箱機能
ファイルアクセスの監査
関連パラメータなど
- 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のすべて]」P.259 - 261