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