2019-12-08

[CentOS 8] Samba の設定

Samba は SMB ネットワークプロトコルを再実装したフリーソフトウェアで、Unix 系 OS 上で動作します。Samba は Microsoft Windows クライアントへファイルおよび印刷サービスを提供します。また、Windows あるいは Active Directory の ドメインコントローラやメンバーとして参加することで Microsoft Winodws サーバとシステムを統合することができます。

Wikipedia より引用・編集

このところ自分で買う PC は、Windows を使わずに Linux をインストールしてしまうため、久しくわが家では Windows PC が存在しませんでした。そのため Samba を Linux に設定し て利用することもありせんでした。先日、例外的に Linux へリモートデスクトップ接続して使うために Winodws PC を買って [1]、今のところ当初の目的どおりに使っています。Windows PC があれば久しぶりに Samba を使えると思い立ち、常時稼働のサーバーにしている CentOS 8 に最低限の設定をしてみました。

本記事で使用している OS は Samba をインストールおよび設定をする CentOS 8 と、クライアントの Windows 10 です。

CentOS Linux release 8.0.1905 (Core) x86_64
Windows 10 Home, version 1909, build 18363.476 x64 ベース

今回の目標

今回は参考サイト [2] の Samba の設定方法を参考にさせていただきました。最小限の内容ですが下記の設定をして、まずはファイル共有ができることを確認します。。

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

CentOS

ホスト名の設定

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

[bitwalk@centos-pc ~]$ sudo nmcli general hostname smbfs
[sudo] bitwalk のパスワード:
[bitwalk@centos-pc ~]$ hostname
smbfs
[bitwalk@centos-pc ~]$ 

CentOS

Samba のインストール

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

[bitwalk@centos-pc ~]$ sudo dnf install samba
...
(省略)
...
依存関係が解決しました。
================================================================================
 パッケージ                アーキテクチャー
                                         バージョン         リポジトリ    サイズ
================================================================================
Installing:
 samba                     x86_64        4.9.1-8.el8        BaseOS        708 k
依存関係をインストール中:
 samba-common-tools        x86_64        4.9.1-8.el8        BaseOS        461 k
 samba-libs                x86_64        4.9.1-8.el8        BaseOS        177 k

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

ダウンロードサイズの合計: 1.3 M
インストール済みのサイズ: 3.5 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード中です:
(1/3): samba-libs-4.9.1-8.el8.x86_64.rpm        777 kB/s | 177 kB     00:00    
(2/3): samba-common-tools-4.9.1-8.el8.x86_64.rp 1.2 MB/s | 461 kB     00:00    
(3/3): samba-4.9.1-8.el8.x86_64.rpm             1.7 MB/s | 708 kB     00:00    
--------------------------------------------------------------------------------
合計                                            775 kB/s | 1.3 MB     00:01     
トランザクションの確認を実行中
...
(省略)
...
インストール済み:
  samba-4.9.1-8.el8.x86_64           samba-common-tools-4.9.1-8.el8.x86_64     
  samba-libs-4.9.1-8.el8.x86_64     

完了しました!
[bitwalk@centos-pc ~]$ 

CentOS

Samba サービスの起動

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

[bitwalk@centos-pc ~]$ sudo systemctl start smb nmb
[sudo] bitwalk のパスワード:
[bitwalk@centos-pc ~]$ sudo systemctl enable smb nmb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.
[bitwalk@centos-pc ~]$ sudo systemctl status smb nmb
 smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset:>
   Active: active (running) since Sat 2019-12-07 16:31:09 JST; 26s ago
     Docs: man:smbd(8)

           man:samba(7)
           man:smb.conf(5)
 Main PID: 6200 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4 (limit: 26213)
   Memory: 18.2M
   CGroup: /system.slice/smb.service
           ├─6200 /usr/sbin/smbd --foreground --no-process-group
           ├─6203 /usr/sbin/smbd --foreground --no-process-group
           ├─6204 /usr/sbin/smbd --foreground --no-process-group
           └─6205 /usr/sbin/smbd --foreground --no-process-group

12月 07 16:31:08 centos-pc systemd[1]: Starting Samba SMB Daemon...
12月 07 16:31:09 centos-pc smbd[6200]: [2019/12/07 16:31:09.744728,  0] ../lib/>
12月 07 16:31:09 centos-pc systemd[1]: Started Samba SMB Daemon.
12月 07 16:31:09 centos-pc smbd[6200]: daemon_ready: STATUS=daemon 'smbd' finis>

 nmb.service - Samba NMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset:>
   Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset:>
   Active: active (running) since Sat 2019-12-07 16:31:09 JST; 27s ago
     Docs: man:nmbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 6201 (nmbd)
   Status: "nmbd: ready to serve connections..."
    Tasks: 1 (limit: 26213)
   Memory: 2.6M
   CGroup: /system.slice/nmb.service
           └─6201 /usr/sbin/nmbd --foreground --no-process-group

12月 07 16:31:08 centos-pc systemd[1]: Starting Samba NMB Daemon...
12月 07 16:31:09 centos-pc nmbd[6201]: [2019/12/07 16:31:09.156384,  0] ../lib/>
12月 07 16:31:09 centos-pc nmbd[6201]: daemon_ready: STATUS=daemon 'nmbd' finis>
12月 07 16:31:09 centos-pc systemd[1]: Started Samba NMB Daemon.
[bitwalk@centos-pc ~]$ 

CentOS

ファイアウォールの設定

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

[bitwalk@centos-pc ~]$ sudo firewall-cmd --add-service=samba --permanent
success
[bitwalk@centos-pc ~]$ sudo firewall-cmd --reload
success
[bitwalk@centos-pc ~]$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp2s0
  sources: 
  services: cockpit dhcpv6-client http https samba ssh
  ports: 3389/tcp 8787/tcp 3838/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
 
[bitwalk@centos-pc ~]$ 

CentOS

smb.conf の設定

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

/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 コマンドで、編集した内容にスペルミスなどがないか確認します。

[bitwalk@centos-pc samba]$ testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
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
[bitwalk@smbfs centos-pc]$ 

CentOS

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

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

[bitwalk@centos-pc ~]$ sudo pdbedit -a -u bitwalk
[sudo] bitwalk のパスワード:
new password:                   
retype new password:            
Unix username:        bitwalk
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-2388714394-118415097-1192419451-1000
Primary Group SID:    S-1-5-21-2388714394-118415097-1192419451-513
Full Name:            Fuhito Suguri
Home Directory:       \\smbfs\bitwalk
HomeDir Drive:        
Logon Script:         
Profile Path:         \\smbfs\bitwalk\profile
Domain:               SMBFS
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          木, 07  2月 2036 00:06:39 JST
Kickoff time:         木, 07  2月 2036 00:06:39 JST
Password last set:    土, 07 12月 2019 17:06:02 JST
Password can change:  土, 07 12月 2019 17:06:02 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[bitwalk@centos-pc ~]$ 

CentOS

サービスの再起動

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

[bitwalk@centos-pc ~]$ sudo systemctl restart smb nmb

Windows

Windows 側からの接続

最初に /etc/samba/smb.conf ファイルの netbios name で設定したホスト名 smbfs を、Windows 側で ping できるか、コマンド プロンプトを起動して確認しておきます。

Samba サーバー側で設定したホスト名を解決できるか ping で確認

最初に「ネットワーク探索とファイル共有」の設定をします(下図)。

はじめての「ネットワーク探索とファイル共有」設定

家庭内 LAN にあるデバイスの一覧が表示されます(下図)。

ネットワークで認識されたデバイス一覧

「コンピューター」に表示されている SMBFS のアイコンをダブルクリックすると、ネットワーク資格情報の入力が求められますので、設定した Samba のユーザー名とパスワードを入力します(下図)。

ネットワーク資格情報の入力

すると Samba サーバ側の bitwalk フォルダが表示されます(下図)。

Samba サーバ側の bitwalk フォルダ

bitwalk フォルダをダブルクリックして開こうとすると…、アクセス許可がなくて開けませんでした(下図)。

アクセス許可がないネットワークエラー

Samba 側の設定を何度も確認しましたが、問題が無さそうです。

CentOS

SELinux の設定

Samba サーバー側で SELinux のアラームが出ていましたので、setroubleshoot の提案に従い、下記を実行しました。

[bitwalk@smbfs ~]$ sudo setsebool -P samba_export_all_rw 1
[sudo] bitwalk のパスワード:
[bitwalk@smbfs ~]$ sudo setsebool -P samba_enable_home_dirs 1
[bitwalk@smbfs ~]

Windows

Windows 側で再度確認

再度、Windows 側で確認したところ、今度は無事 bitwalk フォルダを開くことができました(下図)。

Samba サーバ側の bitwalk フォルダを開く

まとめ

最低限の設定ですが、Samba サーバーで Windows PC とのファイル共有ができるようになりました。しばらく Samba を使わないうちに機能が増えていますので、このシステムをベースにして他の機能を確認していきたいと思います。

参考サイト

  1. bitWalk's: 衝動買いの MUGA ストイック PC2 [2019-12-06]
  2. CentOS 8のSamba 4でライセンス不要のファイルサーバーを構築 - レムシステム エンジニアブログ [2019-10-14]
  3. Samba 3.4.7 上のシンボリック・リンク参照先に Windows クライアントがアクセスできない [2010-03-31]

ブログランキング・にほんブログ村へにほんブログ村

0 件のコメント: