手当たり次第に書くんだ

CentOS8 Samba構築

目次に戻る

概要

Sambaを構築します。本稿の手順はLDAPとの連携を前提としています。

前提条件

OS

CentOS Stream 8を使用します。

SELinux

有効です。無効にする場合はこちらを参照して下さい。

Firewalld

無効です。有効化する場合はこちらを参照して必要な許可設定をして下さい。

標準ポート番号

TCP:139,445 (SMB)

nmb(WINS)はUDP:137,138(NMB)でLISTENしますが、本稿では使用していません。

設定

インストール

Sambaをインストールします。

[root@centos ~]# dnf install samba

/etc/samba/smb.conf

smb.confのデフォルト値

コメント行等を削除したsmb.confは下記の通りです。

[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw

[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes

[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775

smb.confの設定

デフォルトの設定ファイルは無視して0から作成しています。既定値が設定値と同じになる設定項目(security = user等)は省いています。

[global]
dos charset = CP932
ldap admin dn = cn=writable,dc=si1230,dc=com
ldap group suffix = ou=groups
ldap passwd sync = Yes
ldap ssl = No
ldap suffix = dc=si1230,dc=com
ldap user suffix = ou=users
load printers = No
passdb backend = ldapsam:ldaps://ldap.si1230.com
hosts allow = 127.0.0.0/8 10.0.0.0/24

[homes]
read only = No
vfs objects = recycle
recycle:repository = .recycle
recycle:keeptree = No
recycle:versions = Yes
recycle:touch = No
recycle:maxsize = 0
globalセクション

globalセクションはSamba全体の設定です。

dos charset
クライアントとなるWindowsの文字コードに合わせます。日本語環境であればCP932です。
ldap admin dn
LDAPサーバーにBINDするDNを指定します。SambaはLDAPサーバーに対して書き込み権限が必要です。
ldap group suffix
LDAPサーバーのLinux認証で使うグループを格納したOUを指定します。
ldap passwd sync
SambaとLDAPのパスワードを同期します。Samba側で変更(smbpasswd)したパスワードはLDAPに同期されます。この為、Smaba/LDAPを連携した環境ではSamba上でパスワード変更することで認証情報の一貫性が保たれます。
ldap ssl
Yesの場合はSambaからLDAPにStartTLSで接続します。StartTLSはデフォルトのTCP:389(任意)を使用してLDAPクライアント側が暗号化の有無を指定しますが実際はいろいろと分かりづらく使いにくいと思います。今回はLDAPSを使用する為、Noを指定しています。ハマりやすいポイントですね。
ldap suffix
検索対象のLDAPのSuffixを指定します。
ldap user suffix
LDAPサーバーのLinux認証で使うユーザーを格納したOUを指定します。
load printers
プリンタの共有は使用しない為、Noを指定しています。
passdb backend
認証情報の格納先を指定します。今回はLDAPサーバーのURIを指定します。
hosts allow
Sambaを利用できるネットワークを指定します。
homesセクション

homesセクションはホームディレクトリの共有設定です。

read only
Noを指定すると書き込み可能になります。
vfs objects
ゴミ箱機能を使う為、VFSでrecycleオブジェクトを作成しています。名前は任意です。
recycle~
ゴミ箱機能の設定です。詳細は省略します。

LDAPとの連携

-wオプションでcn=writable,dc=si1230,dc=comのパスワードを入力します。LDAPにSambaの情報が登録されます。この設定を行わないと後述のサービス起動が失敗します。

[root@centos ~]# smbpasswd -w password

smbpasswdを実行すると/var/lib/samba/private/secrets.tdbに情報が格納されます。secrets.tdbはバイナリ形式です。

サービス起動設定

Sambaを起動します。

[root@centos ~]# systemctl enable --now smb.service
[root@centos ~]# systemctl status smb.service

ユーザー設定

ユーザー登録

LDAP側で予めユーザー登録が必要です。LDAPのuser01にSamba関連の属性が追加されます。

[root@centos ~]# pdbedit -a user01

目次に戻る

CentOS8 Samba構築

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

トップへ戻る