2021-02-10

[RHEL 8] Samba の設定

Samba は、SMB ネットワークプロトコルを再実装したフリーソフトウェ アで、Andrew Tridgell 氏によって開発されました。Samba は、様々な Microsoft Windows クライアントにファイルと印刷サービスを提供し、ドメインコントローラとして、またはドメインメンバーとして、Microsoft Windows Server ドメインと統合することができます。バージョン 4 では、Active Directory と Microsoft Windows NT ドメインをサポートしています。

Wikipedia より引用、翻訳・編集

以前、家庭内 LAN 常時稼働のサーバーにしていた CentOS 8 に設定した時と同じように [1]、RHEL 8.3 に Samba の最低限の設定をしました。

Samba をインストールおよび設定をする OS は下記のとおりです。

Red Hat Enterprise Linux 8.3 (Ootpa) x86_64
今回の目標

Samba のスタンドアロンサーバーの設定をして、ファイル共有ができることを確認します。

  • ファイルサーバー名 (netbios name) は smbfs とする
  • プリンタサーバー機能は利用しない
  • Active Directory は利用せず、workgroup で動作させる(ワークグループ名:WORKGROUP
  • パスワード形式は tdbsam としサーバーに情報を保存
  • 各ユーザー毎の共有 [homes] を設定する。

RHEL 側の設定

参考サイト [2] の Samba の設定方法を参考にさせていただきました。

ホスト名の設定

まず NetworkManager のツール nmcli を使用して、/etc/hostname ファイル内の静的ホスト名を 'smbfs' に設定します。あとで Samba の設定をを /etc/samba/smb.conf ファイルにしますが、netbios name で設定する名前にもこのホスト名を使います。

$ sudo nmcli general hostname smbfs
$ hostname
smbfs

Samba のインストール

次に dnf コマンドで samba と関連パッケージをインストールします。

$ sudo dnf install samba
[sudo] bitwalk のパスワード:
Updating Subscription Management repositories.
メタデータの期限切れの最終確認: 0:02:12 時間前の 2021年02月10日 07時43分23秒 に実施しました。
依存関係が解決しました。
================================================================================
 パッケージ         Arch   バージョン       リポジトリー                  サイズ
================================================================================
インストール:
 samba              x86_64 4.12.3-12.el8.3  rhel-8-for-x86_64-baseos-rpms 840 k
依存関係のインストール:
 samba-common-tools x86_64 4.12.3-12.el8.3  rhel-8-for-x86_64-baseos-rpms 484 k
 samba-libs         x86_64 4.12.3-12.el8.3  rhel-8-for-x86_64-baseos-rpms 188 k

トランザクションの概要
================================================================================
インストール  3 パッケージ

ダウンロードサイズの合計: 1.5 M
インストール済みのサイズ: 4.0 M
これでよろしいですか? [y/N]: y
    :
    :

Samba サービスの起動

Samba のサービスを利用するには、smb に加えて(ホスト名取得のため)nmb(NetBIOS 対応)のサービスも起動する必要があります。

$ sudo systemctl start smb nmb
$ sudo systemctl enable smb nmb

ファイアウォールの設定

Samba のサービスがファイアウォールを通るように設定します。

$ sudo firewall-cmd --add-service=samba --permanent
success
$ sudo firewall-cmd --reload
success
$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp1s0
  sources:
  services: cockpit dhcpv6-client samba ssh
  ports: 3389/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules: 
$ 

smb.conf の設定

ルート権限で /etc/samba/smb.conf を編集します。今回は、Linux (RHEL) のユーザーアカウントのディレクトリを共有するだけです。

/etc/samba/smb.conf の設定例
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]
        workgroup = WORKGROUP
        server string = SAMBA SERVER Version %v
        netbios name = smbfs
        security = user

        passdb backend = tdbsam

        dos charset = CP932
        wins support = yes
        #printing = cups
        #printcap name = cups
        load printers = no
        disable spoolss = yes
        #cups options = raw
        unix extensions = no
        wide links = yes

[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

testparm コマンドで、編集した内容にスペルミスなどがないか確認します。

$ testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
        disable spoolss = Yes
        dos charset = CP932
        load printers = No
        security = USER
        server string = SAMBA SERVER Version %v
        unix extensions = No
        wins support = Yes
        idmap config * : backend = tdb
        wide links = Yes


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

Samba ユーザーの追加とパスワードの設定

Samba ユーザーを登録するには、Linux 上の既存ユーザーの情報を使うか、あるいは新しいユーザーを作成してそのユーザー情報を使います。Samba の pdbedit コマンドに -a -u オプションを指定して以下のように実行します。ここでは、ユーザー bitwalk を Samba ユーザーに追加しています。パスワードは、Linux の bitwalk ユーザーと同じものを設定しています。

$ sudo pdbedit -a -u bitwalk
[sudo] bitwalk のパスワード:
new password:
retype new password:
    :
    :

SELinux の設定

SELinux の setsebool コマンドで下記を実行します。

$ sudo setsebool -P samba_export_all_rw 1
$ sudo setsebool -P samba_enable_home_dirs 1

サービスの再起動

編集した設定を反映させるために、サービスを再起動します。

$ sudo systemctl restart smb nmb

Windows から接続

Samba サーバへの接続を確認した Windows PC は下記のバージョンを使いました。

Windows 10 Home 20H2 (19042.789) x64 ベース

まず、エクスプローラを開いて、Samba サーバーのアドレスを入力します。この例では ¥¥192.168.0.25 と入力しています。

すると、ネットワーク資格情報の入力が求められますので、設定した Samba のユーザー名とパスワードを入力して  OK  ボタンをクリックします。

すると Samba サーバー側の bitwalk フォルダが表示されますので、フォルダを開けることを確認しておきます。

ネットワークドライブにドライブ番号を割り当てるには、bitwalk フォルダを右クリックしてメニューを出し、「ネットワークドライブの割り当て(M)...」を選びます。

ここでは、Z ドライブを割り当て、「□ 別の資格情報を使用して接続する(C)」にチェックを入れて  完了(F)  ボタンをクリックします。

ふたたびネットワーク資格情報の入力が求められますので、設定した Samba のユーザー名とパスワードを入力して  OK  ボタンをクリックします。

Z ドライブとして使用できるようになりました。

まとめ

家庭内 LAN で、Windows からもアクセスできるファイルサーバーが欲しい、というのがそもそもの欲求でしたので、Samba の機能のほんの一部しか活用していません。これだけでも満足ですが、勉強のため、他の機能も少しづつ試して追加していこうと考えています。

参考サイト

  1. bitWalk's: [CentOS 8] Samba の設定 [2019-12-08]
  2. CentOS 8のSamba 4でライセンス不要のファイルサーバーを構築 - レムシステム エンジニアブログ [2019-10-14]
  3. 第3章 Samba をサーバーとして使用 Red Hat Enterprise Linux 8 | Red Hat Customer Portal
  4. Samba - opening windows to a wider world

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村

0 件のコメント: