Samba は SMB ネットワークプロトコルを再実装したフリーソフトウェアで、Unix 系 OS 上で動作します。Samba は Microsoft Windows クライアントへファイルおよび印刷サービスを提供します。また、Windows あるいは Active Directory の ドメインコントローラやメンバーとして参加することで Microsoft Winodws サーバとシステムを統合することができます。
このところ自分で買う 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) のユーザーアカウントのディレクトリを共有するだけです。
# 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 できるか、コマンド プロンプトを起動して確認しておきます。
最初に「ネットワーク探索とファイル共有」の設定をします(下図)。
家庭内 LAN にあるデバイスの一覧が表示されます(下図)。
「コンピューター」に表示されている SMBFS のアイコンをダブルクリックすると、ネットワーク資格情報の入力が求められますので、設定した Samba のユーザー名とパスワードを入力します(下図)。
すると 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 サーバーで Windows PC とのファイル共有ができるようになりました。しばらく Samba を使わないうちに機能が増えていますので、このシステムをベースにして他の機能を確認していきたいと思います。
参考サイト
- bitWalk's: 衝動買いの MUGA ストイック PC2 [2019-12-06]
- CentOS 8のSamba 4でライセンス不要のファイルサーバーを構築 - レムシステム エンジニアブログ [2019-10-14]
- Samba 3.4.7 上のシンボリック・リンク参照先に Windows クライアントがアクセスできない [2010-03-31]
0 件のコメント:
コメントを投稿