rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

sambaインストール

2024 Jan. 21.

2021 May 02.

2021 Apr. 30.

2021 Mar. 28.

2021 Jan. 31. 

2020 Sep. 28.

2020 Jan. 19.

2017 Feb. 11.

インストール

$ sudo apt update && sudo apt install samba
 

ポート開放

(複数ポートをまとめて設定可能)

$ sudo ufw enable

$ sudo ufw allow from YOUR.NETWORK.ADDRESS.0/24 to any app Samba

(例) sudo ufw allow from 192.168.1.0/24 to any app Samba

$ sudo ufw reload

 

(個別設定)

$ sudo ufw enable

$ sudo ufw allow proto udp from YOUR.NETWORK.ADDRESS.0/24 to any port 137

$ sudo ufw allow proto udp from YOUR.NETWORK.ADDRESS.0/24 to any port 138

$ sudo ufw allow proto tcp from YOUR.NETWORK.ADDRESS.0/24 to any port 139

$ sudo ufw allow proto tcp from YOUR.NETWORK.ADDRESS.0/24 to any port 445

$ sudo ufw reload

 

(Chat GPT情報)

Sambaは通常、以下のポートを使用します。

    TCP 139: NetBIOSセッションサービス
    TCP 445: Microsoft-DSサービス
    UDP 137: NetBIOSネームサービス
    UDP 138: NetBIOSデータグラムサービス

これらのポートは、SambaがWindowsファイルおよびプリンタ共有を提供するために使用されます。ただし、特にセキュリティ上の理由から、TCP 445が最も一般的に使用されるポートです。したがって、多くの場合、SambaサーバーへのアクセスはTCP 445ポートを介して行われます。

ただし、ネットワーク環境や設定によっては、他のポートも使用されることがあります。特にUDP 137とUDP 138は、NetBIOSネームサービスとデータグラムサービスに関連しており、ネームリゾルバやブラウジングに使用されることがあります。

したがって、必要に応じてこれらのポートをファイアウォールやセキュリティグループで適切に設定することが重要です。ネットワーク構成によっては、TCP 445だけでなく、他のポートも許可する必要があるかもしれません。

 

設定( /etc/samba/smb.conf)

Arch系のManjaro Linuxでは/etc/sambaは存在するものの、設定ファイルはなく、manjaro-settings-samba をインストールすると/etc/samba/smb.confが置かれる。

 

Ubuntuではsambaをインストールすると/etc/samba/smb.confが置かれる。

 

homeディレクトリ公開

インストール直後はコメント行となっている下記設定からコメントをはずす。
[homes]
comment = Home Directories
read only = no

browseable = no
 * ファイラーに表示するには[global]セクションで browseable = yes とする
# guest ok設定を追記する
guest ok = no
 

任意のディレクトリ公開

[SOME-DIR]
   path = /SOME/DIR
   public = yes
   writable = yes
   printable = no

シンボリックリンクの読み込み

[global]
wide links = yes
unix extensions = no
 

ユーザー 認証

[global]
 security = user
map to guest = never
 
 

クライアント端末に公開ディレクトリを表示する

[global]
browseable = yes
 

ユーザーにファイル削除を許可

[global]
acl check permissions = no
 

プリンターをクライアントに表示しない

[global]
load printers = no
disable spoolss = yes


システムのunix/linuxアカウントのパスワードとSambaユーザーアカウントのパスワードの同期

下記の設定であるが、sambaインストール時にデフォルト設定されていた。
 
(smb.cnf設定)
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
 
上記3行の設定により、unix password syncパラメータを「yes」に設定することで、Sambaパスワードが変更されるタイミングでUNIXのパスワード変更コマンドを起動することができる。
 

samba再起動(設定読込)

$ sudo systemctl restart smbd.service
$ sudo systemctl restart nmbd.service

 

unix/linuxユーザーの登録

( www.atmarkit.co.jp/ait/articles/0901/28/news153.html より)
$ sudo pdbedit -a USER  // パスワード登録も求められる。

 

パスワード変更

ログイン中のユーザーのパスワード変更
$ smbpasswd
  "unix password sync = yes" ならlinxu/unixシステムのユーザーパスワードも変更される。
 
他のユーザーのパスワード変更
$ smbpasswd USER
  "unix password sync = yes" ならlinxu/unixシステムのユーザーパスワードも変更される。

"guest ok ="の意味

Sambaサーバにアカウントを持たないユーザーがアクセスした場合に、それを特定のUNIXアカウント(ゲストアカウント)にマッピングしてアクセスを許可する設定。
yes : ゲストアカウントでのアクセスを許可する。public = yesとしても同じ。


"guest account ="の値で特定の UNIXアカウントに指定する。

"map to guest ="で、 Sambaユーザーとして存在しないユーザーがアクセスした場合にゲストアカウントとして扱う設定にする。
"map to guest =" の値
 never : 不正なパスワードによるユーザーのログイン要求を拒否する。
 bad User: 不正なパスワードによるユーザーのログイン要求を拒否するが、指定されたユーザーが存在しなかった場合はゲストログインとして扱う。この場合、guest accountで指定したユーザーとなる。
 Bad Password : 不正なパスワードによるユーザーのログイン要求はゲストユーザーとして扱う。この場合、guest accountで指定したユーザーとなる。

samba関連ポート

 
通信目的          samba側の待受ポート 接続元のポート
名前登録など        137/udp        137/udp
ブラウジングなど      138/udp        138/udp
ファイル / 印刷サービスなど 139/tcp         Hi/tcp
ファイル / 印刷サービスなど (Direct Hosting of SMB)
              445/tcp         Hi/tcp
 

137/udp と 138/udpUDP のため、基本的に双方向に通過可能にする必要がありますが、それではセキュリティが低下してしまいます。

実は、この 2つが存在しない場合でも、139/tcp(もしくは 445/tcp)が通過できればファイル / 印刷サービスは提供できます。

ただし、139/tcp のみを通過可能にした場合は、ブラウジング機能が動作しないため、Samba マシンのアイコンは「ネットワークコンピュータ」上に表示されません。

TCP 139 NetBIOS

参考元 https://ja.play-and-more.com/5251-smb-port-what-is-port-445-port-139-used-for

    第4回 WindowsネットワークとNetBIOS:Windowsネットワークの基礎 - @IT

Windowsネットワークの基本的なプロトコル

NetBIOS名を使用して互いの位置を特定し、識別します。 NetBIOS名は最大16文字で、通常はコンピュータ名とは別の名前です。

ドメイン、ワークグループ、システム名、アカウント情報など、あらゆる種類の情報はNetBIOS経由で入手できます。

 

再チェック! ファイル共有プロトコル「SMB」のためのセキュリティ対策 (2/2):山市良のうぃんどうず日記(83) - @IT より

TCP 137  NETBIOS Name Service(netbios-ns) 

138/UDP NETBIOS Datagram Service(netbios-dgm)
139/TCP NETBIOS Session Service(netbios-ssn)
445/TCP Direct Hosting of SMB(microsoft-ds)