パッケージ導入手順
Samba の運用を開始する前に、関連するセキュリティ制約を一時的に無効化する必要があります。特に SELinux やファイアウォールはファイル共有機能に干渉する可能性があるためです。
RHEL/CentOS ベースのシステム
yum install samba samba-client
Debian/Ubuntu ベースのシステム
apt-get update
apt-get install samba
apt-get install smbd nmbd
基本設定とパラメータ定義
まず、データを格納する共有ディレクトリを新規作成します。この例では `/mnt/shared_data` を使用しますが、既存のパスに変更しても構いません。
sudo mkdir -p /mnt/shared_data
sudo chmod 777 /mnt/shared_data
次に、Samba のメイン設定ファイル `/etc/samba/smb.conf` を編集します。デフォルトの長いコメント行は冗長であるため、必要なオプションを中心に構成し、変数名やグループ名を実環境に合わせて調整しています。
[global]
# 作業グループ名の定義(実際のネットワーク環境に合わせて変更してください)
workgroup = SHARE_GROUP
# サーバーに表示される名前
server string = File Server %v
# ネットバイオス名を設定
netbios name = MAIN_SMB_NODE
# ゲストユーザーとしてマッピングする処理
map to guest = bad user
# ログ出力の設定
log file = /var/log/samba/log.%m
max log size = 50
# セキュリティモード(ユーザー認証ベース)
security = user
passdb backend = tdbsam
# プリンタサービスの読み込み
load printers = yes
cups options = raw
# ユーザーホームディレクトリの共有設定
[homes]
comment = User Home Directories
browseable = yes
writable = yes
valid users = %S
# 全ユーザーがアクセス可能な公開ディレクトリ
[shared]
comment = Public Shared Folder
path = /mnt/shared_data
public = yes
browseable = yes
writable = yes
printable = no
サービスの起動管理
設定が完了した後、Samba デーモンプロセスを起動して通信準備を整えます。オペレーティングシステムのバージョンによって起動コマンドが異なる場合があります。
旧式 SysV インフラの場合:
service smb start
service nmb start
Systemd または Ubuntu 系の場合:
/etc/init.d/samba start
サービスが正常に動作しているか確認するには、ポートを確認するか、以下のコマンドでステータスを参照します:
smbcontrol all reload-config
Windows 環境からの接続設定
Samba は伝統的な NTLM プロトコルを使用しますが、Windows 7 以降のデフォルト設定ではより高度な NTLMv2 認証が要求されます。これを解決するために、セキュリティポリシーを変更する必要があります。
以下の手順でローカルセキュリティポリシーを開きます。
- 開始メニューから「実行」を選択し、
secpol.mscを入力します。エラーが発生した場合は、ファイルマネージャーでC:\Windows\System32\secpol.mscへ直接移動し、デスクトップへコピーしてから実行してください。 - 左側のツリービューで、「ローカルポリシー」> 「セキュリティオプション」を展開します。
- 右側のリストから「ネットワークセキュリティ:LAN マネージャー認証レベル」を探し、ダブルクリックします。
- 設定値を「送信 LM および NTLM。ただし、交渉が可能であれば NTLMv2 セッションセキュリティを使用する」に変更して適用します。
設定後、エクスプローラーのアドレスバーに Samba サーバーの IP アドレスを入力するとアクセス可能です。
//SambaServerIPAddress