実践Linux
RockyLinux8 RockyLinux8 目次へ TOP(HOME)へ
ファイルサーバー・Samba 2021年7月
samba 4.13.3-3
●sambaユーザーの登録
linuxユーザーとsambaユーザーの両方に作る必要がある。
パスワードはsamba独自のものが使われるので、linuxユーザーには設定する必要はない。
# groupadd sambausers グループの作成
sambaユーザーfooの作成例
# useradd -g sambausers -s /sbin/nologin foo
# pdbedit -a -u foo fooのパスワードを2回入力
削除は、# pdbedit -x -u foo
一覧は、# pdbedit -L (# pdbedit -L -v foo で詳細表示)
(pdbeditでなく従来のsmbpasswdを使ってもよいが、pdbeditのほうが汎用性がある。)
パスワードの変更は、従来通りsmbpasswdを使う。# smbpasswd -a foo
●/etc/samba/smb.confの編集
smb.conf.exampleの内容をコピーして使うとよい。
頭の#や;はコメントアウト行なので、使用するときは;をはずす。
[global]、[homes]、[printers]セクションだけは特別な意味をもっている。
[global]
workgroup = WORKGROUP 変更
server string = Samba Server Version %v
; netbios name = MYSERVER
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
hosts allow = 127. 192.168.7. ;をはずして変更
log file = /var/log/samba/log.%m
max log size = 50
security = user 認証設定
passdb backend = tdbsam
; security = domain
; passdb backend = tdbsam
; realm = MY_REALM
; password server = <NT-Server-Name>
; security = user
; passdb backend = tdbsam
; domain master = yes
; domain logons = yes
; logon script = %m.bat
; logon script = %u.bat
; logon path = \\%L\Profiles\%u
; logon path =
; add user script = /usr/sbin/useradd "%u" -n -g users
; add group script = /usr/sbin/groupadd "%g"
; add machine script = /usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome -s /bin/false "%u"
; delete user script = /usr/sbin/userdel "%u"
; delete user from group script = /usr/sbin/userdel "%u" "%g"
; delete group script = /usr/sbin/groupdel "%g"
; local master = no
; os level = 33
; preferred master = yes
; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes
; dns proxy = yes
load printers = yes
cups options = raw
; printcap name = /etc/printcap
; printcap name = lpstat
; printing = cups
; map archive = no
; map hidden = no
; map read only = no
; map system = no
; store dos attributes = yes
[homes]
comment = Home Directories
browseable = no セクション名での表示をさせない。(そうでないとhomesとユーザーの2つになる。)
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
;[netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no
;[Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes
[public] ;をはずして使えるようにする。
comment = Public Stuff
path = /home/samba このディレクトリを作成して、グループ所有をsambauser、モードを770に。
public = yes
writable = no
printable = no 印刷サービスを利用するかどうか。上のprintable = yesのとき有効。
write list = @sambausers 「sambausers」グループ以外のユーザからは読み出し専用となる。
●パブリックディレクトリの作成
/home/sambaディレクトリを作成して、グループ所有をsambausers、モードを770に。
# mkdir /home/samba
# chown root:sambausers /home/samba
# chmod -v 770 /home/samba
●sambaを起動
# systemctl --type=service list-unit-files インストールされたユニット一覧
# systemctl --type=service list-units 実行中のユニット一覧
# systemctl start smb スタート
# systemctl restart smb 再スタート(ユーザーなどを作成・変更したときは、再起動しておく)
# systemctl enable smb 起動時有効化
●firewalldの設定
trustedゾーンに対しては、必要ない。
外部からは、基本的にSSHを利用する。
●selinux
アクセスできない。
permissiveモードにする。
# setenforce 0
この状態でアクセスして、auditのログをとる。
ログから足りない部分を解析する。
# audit2allow -a -l -m mylocal
これを見ると、たとえば、ポリシーsamba_enable_home_dirs、samba_export_all_ro、samba_export_all_rwをONにすればよいことがわかる。(これでsamba_share_tラベルがなくても、アクセス、読み書きができるようになる。)
# setsebool -P samba_enable_home_dirs 1
# setsebool -P samba_export_all_ro 1
# setsebool -P samba_export_all_rw 1
# setenforce 1
windows10での問題 ///////////////////////////////////////////////////////////////////////////
windows10では認証に失敗することがある。(setenforce 0状態でも)
これは、sambaのオプションがデフォルトでNTLM v1が有効だったのが、デフォルトでNTLM v1が無効に変わったのが原因らしい。windows側でNTLMv2でsambaサーバと通信するようにすればよいということだ。
windows側で対処するには、次のようにする。
レジストリエディタを起動(/windows/System32/regedt32.exe)。
レジストリエディタ起動後に、「HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa」を開く。
Lsa内(右ペインから)のキー名「LmCompatibilityLevel」を探す。
これを開いて、ここの「2」を「3」に書き換える。
あとはOKボタンをクリックして確定させる。
再起動。
「0」:LMとNTLM応答を送信(古いクライアントサーバ向け)
「1」:LMとNTLM送信する(ネゴシエートした場合NTLMv2を使う)
「2」:NTLM 応答のみ送信(NTLM v1、今回の原因のキー)
「3」:NTLMv2 応答のみ送信(samba4.5ではこれが必要)
「4」:NTLMv2 応答のみ送信 (LMは拒否)
「5」:NTLMv2 応答のみ送信 (LMとNTLMは拒否)
TOP(HOME)へ