More Related Content
Similar to Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto) (11)
Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)
- 5. Sambaのサポートポリシー
Samba Teamのポリシー
9か月ごとに新系列をリリース → 最長27か月サ
ポート(期間短縮の動きあり)
最新系列(4.2.X)⇒フルサポート
1つ前(4.1.X)⇒メンテナンスサポート
2つ前(4.0.X)⇒セキュリティ修正のみサポート
X部分の更新(マイナーバージョンアップ)は、バグ修正と
セキュリティ修正のみ
✔
実用上は、使用しているディストリビューションのサポートポリ
シーだけを意識していればよい
✔
ディストリビューションによって、パッケージの更新でベースの
Sambaのバージョンもアップする場合、しない場合がある
- 11. 日本語環境#1
基本の設定
[global]
dos charset = CP932
unix charset = UTF-8
✔
dos charsetパラメータは、かならずCP932を設定
✔
unix charsetパラメータは、Sambaサーバ上で使う文字コードを
UTF-8以外に変更する場合は要設定
✔
unix charsetパラメータに設定した文字コードで、smb.confファ
イルも記述する
- 25. ファイル共有レベルのアクセス制御#3
読み書き単位で制御
[share]
; 共有を読み取り専用にする
read only = yes
; ただし、以下で指定するユーザ、グループは書き込みを許可する
write list = monyo @admin
✔
共有のデフォルトは読み取り専用。read only = noもしくは
writeable = yesで書き込み可能となる
✔
特定のユーザやグループのみ書き込み可能としたい場合は、
上のようにwrite listパラメータを使うとよい。
✔
書き込み可能な共有で特定のユーザやグループを読み取り
専用としたい場合に備え、read listというパラメータもある
- 27. ゲスト認証による
誰でも読み書きできる共有を作りたい!
[global]
map to guest = bad user
[public]
path = /var/lib/samba/shares/public
writeable = yes
guest ok = yes
guest only = yes
✔
publicディレクトリの所有者をnobodyにして、所有者が読み書
きできるようにしておくこと
⇒でないと、パーミッション的に書けないといった事態に…
✔
Sambaユーザを作成しなければ、すべてのアクセスが「存在し
ないユーザ」⇒「ゲスト認証」となり、guest ok = yesにより
public共有にゲスト認証でアクセスできる
- 34. ファイルシステムレベルでのアクセス制御#5
ACLによるアクセス制御の設定例
[aclshare]
path = /some/where/aclshare
writeable = yes
; パーミッション設定によりファイルへのアクセスを許可しないよう、
; 所有者、所有グループを常にrootとし、上位パーミッションを引き継ぐ
inherit owner = yes
inherit permissions = yes
force group = root
; 書き込み可能なファイルのACLを変更できるようにする
dos filemode = yes
✔
アクセス許可情報は拡張属性に格納されるため、ファイルシ
ステムで拡張属性(user_xattrマウントオプション)が有効に
なっている必要がある(最近ではデフォルト有効)
- 36. ファイルシステムレベルでのアクセス制御#6
NTFSモジュール
[share]
vfs objects = acl_xattr
acl_xattr:ignore system acls = yes
✔
アクセス許可情報は拡張属性に格納されるため、ファイルシ
ステムで拡張属性(user_xattrマウントオプション)が有効に
なっている必要がある(最近はデフォルト有効)
✔
ignore system aclsがno(デフォルト)だと、NTFSアクセス許可
による制御に加え、パーミッションやACLでの制御も行われる
⇒Sambaの利用者からみると不可解な動作が発生する
✔
ignore system aclsがyesの場合、Samba経由のアクセスの際、
パーミッションやACLは無視され、NTFS完全互換動作が実現
⇒グループが所有者となるなど、Linuxにない概念にも対応
- 39. ユーザホーム機能#2
ドットファイルを参照されたくない場合
後述するveto files = /.?*/を設定する
ドットファイルへのアクセスを禁止する
ユーザホーム機能で共有するホームディレクトリの
パスを変更する
そもそもホームディレクトリ直下にアクセスさせない
[homes]
……
; Samba経由のアクセスの際、各ユーザの.smbdir以下を共有する
path = %H/.smbdir
✔
.smbdir自体は別途作成する仕組みが必要
- 41. 特定の共有を隠す#2
特定ユーザに対してのみ、共有を表示する
[share]
browseable = no
include = share.%G
✔
「%G」は、アクセスしたユー
ザの所属グループ名に変換
される
✔
所属グループがgroup1だと
share.group1ファイルの内容
が読み込まれるため、共有
が表示される
✔
所属グループがそれ以外の
browseable = yes
smb.confファイル
share.group1ファイル
場合、includeパラメータで指定したファイルは存在しないため
この設定は単に無視される
✔
browseableパラメータの代わりにavailableパラメータを設定す
ることで、特定ユーザのみアクセス可能な共有を設定できる
- 45. ごみ箱#1
recycleモジュールにより、削除したファイルの
復活が可能
[share]
vfs objects = recycle
; 20MBを超えるサイズのファイルはごみ箱にいれない
recycle:maxsize = 20000000
; 同一ファイル名のファイルが削除された際に別名でごみ箱に保存する
recycle:versions = yes
; ディレクトリ構造を保持する
recycle:keeptree = yes
; ごみ箱格納時に、ファイルのアクセス時刻を更新する
recycle:touch = yes
……
✔
古くなったごみ箱の中身は蓄積され続けるので、ファイルの最終アクセス
時刻から一定以上経過したファイルを削除するといった運用が必要
- 47. Sambaサーバへのアクセス監査
Linux標準のログイン履歴ファイルに記録する
設定も可能
ログ出力例(lastコマンド)
[global]
utmp = yes
✔
ユーザ名やホスト名を省略せず表示する際は「last -w」コマンドを使う
✔
full_auditモジュールでconnectを監査しても同等の出力は得られる
monyo smb/1 ::ffff:192.168.1 Sun Aug 2 20:14 still logged in
monyo pts/0 mizuki.home.mony Sun Aug 2 18:37 - 20:09 (01:32)
damedame smb/3 ::ffff:192.168.1 Sat Aug 1 22:35 - 22:36 (00:00)
monyo smb/1 ::ffff:192.168.1 Sat Aug 1 19:16 - 01:11 (05:55)
- 48. Sambaサーバへのアクセス監査#2
full_auditモジュールにより、詳細なアクセス監
査が可能
ログ出力例
vfs objects = full_audit
full_audit:prefix = %u|%I|%S
full_audit:success = connect disconnect ...
full_audit:failure = connect disconnect ...
Dec 30 03:39:51 samba32a smbd_audit: local1|192.168.135.1|connect|ok|tmp
Dec 30 03:39:51 samba32a smbd_audit: local1|192.168.135.1|getxattr|fail (Operation not
permitted)|.|user.DOSATTRIB
Dec 30 03:42:11 samba32a smbd_audit: local1|192.168.135.142|open|fail (Permission denie
d)|r|testdir
Jan 12 18:50:41 lenny smbd_audit: monyo|192.168.135.233|shared|closedir|ok|
Jan 12 18:50:41 lenny smbd_audit: monyo|192.168.135.233|shared|closedir|ok|
Jan 12 18:51:20 lenny smbd_audit: monyo|192.168.135.23|shared|disconnect|ok|shared