実践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)へ

目 次
HOME
 全体のシステム構成&目次


RockyLinux

RockyLinux8.4のインストール

旧サーバーからのデータ移行

ネットワークの設定ほか
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
DHCPサーバー
FTPサーバー
FTPS(FTP over SSL/TLS)
Webサーバー
  アクセス解析ツールAwstats
Mail(Dovecot&Postfix)サーバー
MariaDB(MySQL)サーバー
SSHサーバー
SSHトンネル
SSH+MariaDB+Exel
Sambaサーバー
openVPNサーバー
VNCサーバー(リモートディスクトップ)

systemdとfirewalldについて


CentOS8
CentOS7
CentOS5〜6

SELinux

Cプログラミング


●その他
クラウド Amazon EC2
Raspberry Piで遊ぶ
印刷機関連開発
 刷版絵柄面積率測定
 Indesign上にPDF自動配置
数独をExcelで解く


●趣味の世界
相対性理論
量子力学
群論
熱力学・統計力学
解析力学
物理でつかう数学
超弦理論(ノート作成中)


ブログサイトはこちらより