samba4を「ふつうに」使おう!(2015/08/08 osc 2015 kansai@kyoto)

50
Samba4を「ふつうに」使おう! Samba4による ファイルサーバ構築テクニック 日本Sambaユーザ会 たかはしもとのぶ(髙橋基信) [email protected] @damemonyo

Upload: -

Post on 16-Apr-2017

9.899 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

Samba4を「ふつうに」使おう!

Samba4による      ファイルサーバ構築テクニック

日本Sambaユーザ会

たかはしもとのぶ(髙橋基信) [email protected]

@damemonyo

Page 2: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

もくてき 対象となる方

Sambaのインストールをした!

ファイル共有はとりあえずできた!

Active Directoryとか、使わないです

で……

Sambaのファイルサーバとしての活用テクニックについて説明していきます

2

Page 3: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

アジェンダ 基本(全体)設定&認証テクニック

アクセス制御テクニック#1 アクセス制御テクニック#2 監査テクニック

SambaのAD機能や、Winbind機構によるADとの連携については、今回はなしで

Page 4: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

Sambaとは Windowsサーバ互換の各種機能を提供

ファイルサーバ(プリンタサーバ) ADドメインへの認証統合も可能

ネットワーク機能(WINS、ブラウジングなど)

ADドメインのDC機能

クライアント機能 LinuxからWindowsサーバのファイル共有にアクセス

実績のあるオープンソースソフトウェア各種Linuxディストリビューションなどに標準で同梱

廉価なNASの内部は大抵Samba

Page 5: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

Sambaのサポートポリシー Samba Teamのポリシー

9か月ごとに新系列をリリース → 最長27か月サポート(期間短縮の動きあり) 最新系列(4.2.X)⇒フルサポート

1つ前(4.1.X)⇒メンテナンスサポート

2つ前(4.0.X)⇒セキュリティ修正のみサポートX部分の更新(マイナーバージョンアップ)は、バグ修正とセキュリティ修正のみ

✔ 実用上は、使用しているディストリビューションのサポートポリシーだけを意識していればよい

✔ ディストリビューションによって、パッケージの更新でベースのSambaのバージョンもアップする場合、しない場合がある

Page 6: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

Samba活用テクニックインストールー全体設定編

Page 7: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

インストールの基本 基本的なインストール手順

ファイアウォールの設定変更 Sambaが使用するポートを開放する

SELinuxの設定変更 有効にしたまま使うこともできますが……

sambaパッケージのインストール

smb.confファイル等の設定

Sambaユーザ作成

Samba起動!✔ ファイアウォール、SELinuxなどの設定を適切に行っていれば、基本的なアクセスはまず問題ないはず

Page 8: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

SELinux#1 SELinuxを有効にしたまま使いたい場合

ユーザホーム機能を使う場合は、以下を実行

ファイル共有するディレクトリにsamba_share_tラベルを付与

✔ /tmpなど、システム標準のディレクトリは、あらかじめラベルが付与されているため、上記の設定は行わないこと

✔ SELinuxでアクセスが拒否されたファイルは、Samba経由ではフォルダ一覧でも表示されないので注意

# setsebool samba_enable_home_dirs on

# chcon -t samba_share_t /some/where/shared

別のパスからmvしてきたファイルにはラベルが付与されないので注意

Page 9: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

SELinux#2 SELinux環境での留意点

Samba経由で自動実行するスクリプトは、必ず/var/lib/samba/scriptsに配置の上、次のようにしてラベルを(再)付与する

環境によっては、この他にも考慮すべき設定がある

✔ getsebool -a | grep sambaでSamba関連のSELinux変数一覧が表示できるので、適宜参照、変更する

✔ CentOSのsmb.confの冒頭にSELinuxに関する注意がある

# restorecon -R -v /var/lib/samba/scripts

スクリプトが起動できても、SELinuxのアクセス制限により正常に動作しない可能性はあるので注意

Page 10: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

コンピュータ名とワークグループ コンピュータ名

基本はホスト名だが、別の名前にもできる

ワークグループ名近年設定の必要性は低下しているが、設定自体は従来同様可能

[global] netbios name = filesv ←コンピュータ名を設定 workgroup = WORKGROUP ←ワークグループ名を設定

Page 11: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

日本語環境#1 基本の設定

[global] dos charset = CP932 unix charset = UTF-8

✔ dos charsetパラメータは、かならずCP932を設定✔ unix charsetパラメータは、Sambaサーバ上で使う文字コードを

UTF-8以外に変更する場合は要設定✔ unix charsetパラメータに設定した文字コードで、smb.confファイルも記述する

Page 12: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

日本語環境#2 日本語共有名、コメントなど

[global] server string = 全社サーバ(Samba %v)

[第一課] comment = 第一課のみ書き込み可

✔ unix charsetパラメータに設定した文字コードで記述すること

Page 13: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ログの設定 ログレベル(通常0~10)により詳細度を指定

smbcontrolコマンドで動的にログレベルを変更

[global] log level = 1(運用環境では3以下を推奨)

✔ ログファイルは、デフォルト約50KBごとにローテーションされる(2世代保存)が、適切に運用するには外部のログ管理機構(logrotateなど)との連携が必須

# smbcontrol smbd debug 3

Page 14: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

Sambaを起動するインタフェースの制御 必要なインタフェース以外でSambaを起動しない

[global] ; Sambaが(送信に)使用するインタフェース  interfaces = 192.168.1.10/24 lo ; 上記で指定したインタフェースのみで待ち受け(listen)する   bind interfaces only = yes ; nmbdのブロードキャストアドレスも以下に制限する socket address = 192.168.1.255

✔ localhostとは、必ず通信できるように設定すること✔ この設定により、インタフェースごとに別のSambaプロセスを起動することも可能

Sambaを起動するインタフェースを192.168.1.0/24とlocalhostのみに制限する例

Page 15: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

Samba活用テクニック認証編

Page 16: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

認証の基本概念 Linuxユーザに対応してSambaユーザを作成

Sambaユーザはなぜ必要?認証情報の形式がWindowsとLinuxとで異なる

Page 17: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ゲスト認証ゲスト認証とは?

一定の要件を満たした場合、ユーザ名とパスワードに関わらず、指定したユーザとして認証する機能

[global] ; 存在しないユーザからのアクセスをゲスト認証として扱う map to guest = bad user ; ゲスト認証の際はnobodyユーザとしてファイルにアクセスする guest account = nobody[share] ; ゲスト認証によるアクセスを許可する(デフォルトはno) guest ok = yes ; すべてのアクセスをゲスト認証とみなす guest only = yes

Page 18: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

Samba-Linux間のパスワード同期 Sambaユーザのパスワード変更をLinuxに同期

Linuxユーザのパスワード変更をSambaに同期pam_smbpassモジュールを使用

ただし、CentOS 7.0からは削除されているため、ソースからインストールする以外の方法なし※今後Samba本体からも削除予定

[global] unix password sync = yes pam password change = yes

✔ rootによる強制パスワード変更時には機能しない

Page 19: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

Windowsからのパスワード変更 Windowsの標準インタフェースから変更できる

Page 20: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

複雑なパスワードの強制 基本の設定

crackcheckコマンド このパラメータ用にSambaに同梱されているコマンド(要

コンパイル)

[global] check password script = \ /usr/local/sbin/chkpasswd.sh ←任意のスクリプトを指定

$ echo PaSsW0rd | ./crackcheck –c –d pw_dict; echo $?ERR - it is based on a dictionary word253

パスワードを標準入力から受け取り、適切なら0、不適切なら0以外を返却するスクリプト

Page 21: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

Samba活用テクニックファイル共有アクセス制御編

Page 22: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

アクセス制御の概要 ホストレベルでのアクセス制御

⇒以下のパラメータをglobalセクションに設定する

ファイル共有レベルでのアクセス制御 IPアドレス単位

hosts allow, hosts denyパラメータ

ユーザ、グループ単位 valid users, invalid users, admin usersパラメータ

読み書き単位 read only, write list, read listパラメータ

ファイルシステムレベルでのアクセス制御伝統的なパーミッション、ACL、NTFS互換モジュール

Page 23: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイル共有レベルのアクセス制御#1 IPアドレス単位で制御

[share] ; アクセスを許可・拒否するIPアドレス  hosts allow = 192.168.1. EXCEPT 192.168.1.1 hosts deny = 192.168.1.10 192.168.1.11

✔ 詳細な文法は、smb.conf(5)などを参照のこと

アクセスを許可するIPアドレスを192.168.1.0/24(192.168.1.1を除く)としたうえで、更に192.168.1.10と192.168.1.11をアクセス拒否する設定

Page 24: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイル共有レベルのアクセス制御#2 ユーザ、グループ単位で制御

[share] ; アクセスを許可するユーザ、グループ  valid users = @users monyo ; アクセスを拒否するユーザ、グループ invalid users = guest ; 管理者権限でのアクセスを許可するユーザ、グループ admin users = monyo

usersグループとmonyoユーザにアクセスを許可し、guestユーザのアクセスを拒否したうえで、monyoユーザのアクセスを管理者(root)で行う設定

✔ グループ名の先頭には「@」もしくは「+」を付ける

Page 25: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイル共有レベルのアクセス制御#3 読み書き単位で制御

[share] ; 共有を読み取り専用にする  read only = yes ; ただし、以下で指定するユーザ、グループは書き込みを許可する write list = monyo @admin

✔ 共有のデフォルトは読み取り専用。read only = noもしくはwriteable = yesで書き込み可能となる

✔ 特定のユーザやグループのみ書き込み可能としたい場合は、上のようにwrite listパラメータを使うとよい。

✔ 書き込み可能な共有で特定のユーザやグループを読み取り専用としたい場合に備え、read listというパラメータもある

Page 26: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイル共有レベルのアクセス制御#4  アクセス制御の組合せ設定例

[share] ; 共有にアクセスできるのはusersもしくはguestsグループのユーザ  valid users = @users, @guests ; 共有を読み取り専用にする(デフォルト値)  read only = yes ; ただし、usersグループのユーザには書き込みを許可する write list = @users

✔ usersグループのユーザは読み書き可能✔ guestsグループのユーザは読み取り専用✔ それ以外のユーザはアクセス不可

Page 27: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ゲスト認証による誰でも読み書きできる共有を作りたい!

[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共有にゲスト認証でアクセスできる

Page 28: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

アクセス制御の概要(再掲) ホストレベルでのアクセス制御

⇒以下のパラメータをglobalセクションに設定する

ファイル共有レベルでのアクセス制御 IPアドレス単位

hosts allow, hosts denyパラメータ

ユーザ、グループ単位 valid users, invalid users, admin usersパラメータ

読み書き単位 read only, write list, read listパラメータ

ファイルシステムレベルでのアクセス制御伝統的なパーミッション、ACL、NTFS互換モジュール

Page 29: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイルシステムレベルでのアクセス制御#1 ファイルシステムのパーミッションやACLで許可

されていない操作はできない Linux上で直接ファイルを操作する場合は特に注意

パーミッションの操作はSamba経由でもできるが、Windows的に直観的でないためお勧めしない

ファイルシステムレベルでのアクセス制御に対する対応方針以下のいずれかを推奨

制御を行わない⇒各種パラメータでパーミッションを一律設定し、Samba経由でのアクセス時は常にアクセス可能な状態とする

ACLやNTFS互換アクセス許可モジュールで制御を行う

Page 30: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイルシステムレベルでのアクセス制御#2 各対応方針の簡易比較

アクセス制御の方式

Linux上でのアクセス制御

Samba経由でのアクセス制御

設定の難易度

制御しない ×一律同じパーミッションに設定

×制御しない(他の設定で制御する前提)

易~並

ACLによる制御 ○POSIX ACLによるアクセス制御

△NTFSに準ずるアクセス許可で制御

NTFS互換モジュール ×一律同じパーミッションに設定

○NTFS完全互換のアクセス許可で制御

✔ ファイル共有単位のアクセス制御で充分であれば「制御しない」方式が簡便⇒おすすめ

✔ NTFSとの完全互換が必要であればNTFS互換モジュール※とはいえ、NTFSの「フルコントロール」をユーザに開放していますか?

✔ ACLによる制御は高機能だが、いろいろ注意が必要

Page 31: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイルシステムレベルでのアクセス制御#3 制御を行わない⇒パーミッションの強制設定

次のような設定を推奨(smb.confとパーミッション)[share1] path = /some/where/share1  writeable = yes force create mode = 664(もしくは660など) force directory mode = 775(もしくは770など) force group = share1g

# chmod 775(もしくは770など) /some/where/share1# chgrp share1g /some/where/share1

✔ Sambaの設定で、共有内に書き込まれたファイルの所属グループを強制的にshare1gに設定し、グループへの書き込み権も付与する

✔ パーミッション的に、share1gグループに所属するユーザが書き込みできるように初期設定

Page 32: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイル共有レベルのアクセス制御#3  ファイルにアクセスするユーザ、グループを強

制変更[share] ; 共有内のファイルへのアクセスを強制的にユーザmonyo権限で実行  force user = monyo ; 共有内のファイルへのアクセスを強制的にグループusers権限で実行 force group = users ; 共有内のファイルへのアクセスを強制的にユーザroot権限で実行 ; するユーザ admin users = user1 @group2

✔ 強制変更は本来のユーザとしての認証成功後に行われる

Page 33: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイルシステムレベルでのアクセス制御#4 ACLによる制御の流れ

ファイルシステムでACLを有効にする Linuxの場合、マウントオプションにaclを付加

smb.confの設定+各ファイル共有でのパーミッション、ACL初期設定 パーミッションはアクセス制御に使わない

⇒変に影響がでないように一律設定

共有トップのディレクトリにACLとDefault ACLを設定

アクセス制御の動作 POSIX ACLのrwxとNTFSのアクセス許可が相互マッピ

ングされる。最終的なアクセス制御はACLの機能で実施⇒完全互換ではないため細かい制約が発生

Page 34: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイルシステムレベルでのアクセス制御#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マウントオプション)が有効になっている必要がある(最近ではデフォルト有効)

Page 35: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイルシステムレベルでのアクセス制御#5 ACLによるアクセス制御の設定例

✔ 設定の混乱を避けるため、パーミッション的には(root以外)誰もアクセスできない設定を行う

✔ ACLで必要なグループ(やユーザ)にアクセス権を付与する✔ Default ACL(ディレクトリ内に新規作成されたファイル、ディレクトリに付与されるACL)の設定を忘れないこと

# mkdir –p /some/where/aclshare1 ←ディレクトリを作成# chown root:root /some/where/aclshare1 ←所有者、グループをrootに指定# chmod 770 /some/where/aclshare1 ←所有者、グループ以外のアクセスを禁止# setfacl -d -m u::rwx,g::rwx,o::--- /home/samba/aclshare1 ↑ACLマスクの設定# setfacl -m group:aclshare1rw:rwx /home/samba/aclshare1# setfacl -d -m group:aclshare1rw:rwx /home/samba/aclshare1 ↑書き込み可能なグループの設定例(ACLおよびDefault ACL)# setfacl -m group:aclshare1ro:r-x /home/samba/aclshare1# setfacl -d -m group:aclshare1ro:r-x /home/samba/aclshare1 ↑読み取り専用のグループの設定例(ACLおよびDefault ACL)

Page 36: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイルシステムレベルでのアクセス制御#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にない概念にも対応

Page 37: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

Samba活用テクニックファイル共有機能編

Page 38: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ユーザホーム機能#1 ユーザホーム機能とは?

各ユーザのホームディレクトリを共有し、ユーザのアクセス時に該当ユーザの共有を表示する機能

[homes] browseable = no  writeable = yes

ユーザ「monyo」でアクセスしたため、monyoという共有が表示されている

ドットファイルが「隠しファイル」として表示される

Page 39: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ユーザホーム機能#2 ドットファイルを参照されたくない場合

後述するveto files = /.?*/を設定する ドットファイルへのアクセスを禁止する

ユーザホーム機能で共有するホームディレクトリのパスを変更するそもそもホームディレクトリ直下にアクセスさせない

[homes]  …… ; Samba経由のアクセスの際、各ユーザの.smbdir以下を共有する   path = %H/.smbdir

✔ .smbdir自体は別途作成する仕組みが必要

Page 40: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

特定の共有を隠す#1指定した共有を非表示にする

[share1]  browseable = no

[share2$]  ……

✔ 末尾に「$」のついた名前の共有は共有一覧で表示されない⇒これはWindowsの仕様

✔ 共有一覧で表示されないだけで、共有名を直接指定すれば、共有にアクセスできる

Page 41: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

特定の共有を隠す#2特定ユーザに対してのみ、共有を表示する

[share]  browseable = no  include = share.%G

✔ 「%G」は、アクセスしたユーザの所属グループ名に変換される

✔ 所属グループがgroup1だとshare.group1ファイルの内容が読み込まれるため、共有が表示される

✔ 所属グループがそれ以外の

 browseable = yes

smb.confファイル

share.group1ファイル

場合、includeパラメータで指定したファイルは存在しないためこの設定は単に無視される

✔ browseableパラメータの代わりにavailableパラメータを設定することで、特定ユーザのみアクセス可能な共有を設定できる

Page 42: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

特定のファイルを隠す#1指定したファイルへのアクセスを禁止する

[share] ; EXEファイルと「.」から始まるファイルへのアクセスを禁止する  veto files = /*.EXE/.?*/ delete veto files = yes

✔ このパラメータで指定したファイルは、ファイル一覧でも表示されず、存在しないものとして扱われる

✔ ここで指定したファイルをコピーや作成しようとしても失敗する

✔ 特定のファイル(実行ファイルなど)を置かれたくない場合や、Linux上に存在する特定ファイル(ドットファイルなど)を隠したい場合などに使うとよい

Page 43: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ファイル属性のサポート ファイル属性とは…?

アーカイブ、読み取り専用、システム、隠し、の4つ

Sambaによるサポート拡張属性を使って情報を保存

[share] store dos attributes = yes map archive = no

✔ ファイルシステムによる拡張属性のサポートが必要

✔ サポートがない場合は、ファイルの実行属性に情報を保存

Page 44: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

代替データストリームのサポート代替データストリームとは…?

ファイルに複数のデータ領域を持たせる機能 IEからダウンロードしたファイルのゾーン情報など

Sambaでは拡張属性を使って情報を保存

✔ ファイルシステムによる拡張属性のサポートが必要✔ 細かい点で挙動がNTFSと完全互換ではない

[share]  vfs objects = streams_xattr

Page 45: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ごみ箱#1 recycleモジュールにより、削除したファイルの復活が可能[share] vfs objects = recycle ; 20MBを超えるサイズのファイルはごみ箱にいれない recycle:maxsize = 20000000 ; 同一ファイル名のファイルが削除された際に別名でごみ箱に保存する recycle:versions = yes ; ディレクトリ構造を保持する recycle:keeptree = yes ; ごみ箱格納時に、ファイルのアクセス時刻を更新する recycle:touch = yes ……

✔ 古くなったごみ箱の中身は蓄積され続けるので、ファイルの最終アクセス時刻から一定以上経過したファイルを削除するといった運用が必要

Page 46: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ごみ箱#2複数ユーザで共用する共有の場合は、設定に

注意が必要ごみ箱をユーザごとにする場合

ごみ箱を共用にする場合

; ごみ箱のパスを%U変数で指定するのがコツ recycle:repository = .recycle.%U

; ごみ箱のパーミッションを700以外に変更 recycle:directory_mode = 770

✔ これ以外にも、ディレクトリのパーミッションや所有グループなど、フォルダのセキュリティ設定を踏まえた設定が追加で必要となる場合あり

Page 47: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

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 inmonyo 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)

Page 48: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

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|tmpDec 30 03:39:51 samba32a smbd_audit: local1|192.168.135.1|getxattr|fail (Operation not permitted)|.|user.DOSATTRIBDec 30 03:42:11 samba32a smbd_audit: local1|192.168.135.142|open|fail (Permission denied)|r|testdirJan 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

Page 49: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

参考情報ほか書籍「Samba[実践]入門」

著者: 髙橋基信 / 技術評論社

書籍「改訂版Sambaのすべて」著者: 髙橋基信 / 翔泳社

Page 50: Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)

ご清聴ありがとうございました