Samba概要と基本構成
Sambaは、LinuxおよびUNIXシステム上でSMB(Server Message Block)プロトコルを実装するためのソフトウェアです。異なるプラットフォーム間でのファイルやプリンターの共有に役立ちます。
SMBプロトコルは、LAN内でファイルやプリンタなどのリソースを共有するために使用されます。
主な機能
- ファイル・プリンター共有:ファイルやプリンターをネットワーク経由で共有します。
- 認証と権限管理:ユーザー認証を行い、アクセス権を設定します。
- 名前解決:NetBIOS名をIPアドレスに変換します。
- ブラウジングサービス:ローカルネットワーク内の共有リソースの一覧を提供します。
関連デーモン
- nmbd:NetBIOS名前解決を担当し、UDPポート137, 138を使用します。
- smbd:共有管理とデータ転送を担当し、TCPポート139, 445を使用します。
インストールと起動
# Sambaパッケージのインストール
[root@server ~]# yum install samba samba-client -y
# サービスの自動起動設定
[root@server ~]# systemctl enable smb nmb
# サービスの開始
[root@server ~]# systemctl start smb nmb
Samba設定ファイルの詳細
主設定ファイル: /etc/samba/smb.conf
テンプレートファイル: /etc/samba/smb.conf.example
[global]
workgroup = WORKGROUP
server string = Samba Server %v
security = user
passdb backend = tdbsam
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
printable = yes
[common]
comment = Shared Directory
path = /srv/samba/common
browseable = yes
valid users = alice,bob
writable = yes
create mask = 0644
directory mask = 0755
ファイル共有例
環境:CentOS 8、SELinux無効、ファイアウォール無効
手順
- 共有ディレクトリを作成:
[root@server ~]# mkdir -p /srv/samba/common
- 権限設定:
[root@server ~]# chmod 755 /srv/samba/common
- 設定ファイル編集:
[common]
comment = Shared Folder for Collaboration
path = /srv/samba/common
browseable = yes
hosts allow = 192.168.1.0/24
valid users = alice,bob
writable = yes
- サービス再起動:
[root@server ~]# systemctl restart smb nmb
- Sambaユーザー作成:
[root@server ~]# smbpasswd -a alice
[root@server ~]# smbpasswd -a bob
クライアントからのアクセス
Linuxクライアント
# 共有の確認
[root@client ~]# smbclient -L //192.168.1.10 -U alice
# 共有への接続
[root@client ~]# mount -t cifs -o username=alice,password=pass //192.168.1.10/common /mnt/samba
Windowsクライアント
Windowsエクスプローラから\\192.168.1.10\commonを入力してアクセスします。
アカウントマッピングとアクセス制御
アカウントマッピング
/etc/samba/smbusersファイルにアカウントのマッピング情報を記述:
alice = virtual_alice
bob = virtual_bob
設定ファイルに以下を追加:
username map = /etc/samba/smbusers
アクセス制御
ホストベースのアクセス制御を設定するには、以下のように設定します:
hosts allow = 192.168.1. EXCEPT 192.168.1.100
hosts deny = 192.168.1.
排除方法
testparmコマンドを使用して設定ファイルの構文チェックを行う。- pingコマンドでサーバーとの通信確認。
smbclientコマンドを使用してサーバーへの接続テスト。