Sambaサーバーの設定と管理
Linux では、おそらく Samba サービスが最もよく耳にされると思います。Samba とは何ですか? Samba は、Linux と Windows をつなぐ架け橋です。Samba の登場により、Linux と Windows 間で相互に通信できるようになりました。
1. Sambaサーバー設定のワークフロー
Samba サービスをインストールした後は、Windows または Linux クライアントを使用して Samba サーバーに直接アクセスすることはできません。また、サーバーをセットアップする必要があります。つまり、クライアントがアクセスできるようにこれらのディレクトリを共有するように Samba サーバーに指示する必要があります。
基本的Samba服务器搭建流程主要分为四个步骤
。
(1) 本体設定ファイル smb.conf を編集し、共有するディレクトリを指定し、共有ディレクトリの共有権限を設定します。
(2) smb.conf ファイルにログファイル名と保存パスを指定します。
(3) 共有ディレクトリのローカルシステム権限を設定します。
(4) 設定ファイルを再ロードするか、SMB サービスを再起動して、設定を有効にします。
1.1 Samba ワークフロー
1. クライアントは、Samba サーバー上の共通ディレクトリへのアクセスを要求します。
2. リクエストを受信した後、Samba サーバーはメイン設定ファイル smb.conf を照会して、共有ディレクトリが共有されているかどうかを確認し、共有ディレクトリが共有されている場合は、クライアントにアクセス許可があるかどうかを照会します。
3. Sambaサーバーはアクセス情報をログに記録します。ログファイルの名前とパスは当社が設定する必要があります。
4. クライアントがアクセス権限設定を満たしている場合、クライアントはアクセスを許可されます。
2. メイン設定ファイル smb.conf を解釈します。
Samba の場合配置文件一般就放在/etc/samba目录中。主配置文件名为smb.conf
、Samba サーバーを図書館に例えると、smb.conf は図書館の総合カタログに相当し、大量の共有情報やルールが記録されており、Samba サーバーの中核となります。
2.1 グローバル設定
グローバル設定はグローバル変数領域に設定されます。全局变量区域就是我们只要在Global是进行设置
、那么该设置项目就是针对所有共享资源生效的
、 これは、後で学習する必要がある多くのサーバー構成と非常に似ています。
このセクションは [グローバル] で始まります
[global]
workgroup = SAMBA //设置工作组或域名
security = user //设置安全模式
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[グローバル]共通のフィールドと設定方法は以下のとおりです
(1)ワークグループ名またはドメイン名を設定する
ワークグループは、ネットワーク内で同等のステータスを持つコンピュータのグループです。ワークグループ フィールドを設定することで、Samba サーバーのワークグループ名またはドメイン名を設定できます。
(2) Sambaサーバーのセキュリティモードを設定する
Samba サーバーには、共有、ユーザー、サーバー、ドメイン、広告という 5 つのセキュリティ モードがあります。
1 share安全级别模式
. クライアントが Samba サーバーにログインすると、ユーザー名とパスワードを入力せずに Samba サーバーのリソースを参照できますが、パブリックなリソース共有に適していますが、セキュリティは低く、他の権限と組み合わせて設定する必要があります。Samba サーバーのセキュリティを確保します。
2 user安全级别模式
. クライアントが Samba サーバーにログインするとき、Samba サーバーのリソースを参照するには、指定されたユーザー名とパスワードを入力する必要があります。サーバーのデフォルトはこのレベル モードです。
3. サーバーセキュリティレベルモード。クライアントは検証のために指定された Samba サーバーにユーザー名とパスワードを送信する必要があります。検証でエラーが発生した場合、クライアントはユーザー レベルのアクセスを使用します。
4. ドメインセキュリティレベルモード。Windows ドメイン環境に Samba サーバーを追加した場合、検証作業は Windows ドメインが担当しますが、ドメインレベルの Samba サーバーはドメインのメンバークライアントであり、サーバーとしての性質はありません。
2.2 クライアントのアクセス制御
Samba サーバーのセキュリティを確保するには、vliad users フィールドを使用してユーザー制御アクセスを実装できますが、企業が大規模でユーザー数が多い場合、この方法は操作が面倒になります。したがって、この機能を実現するには、hostsallow と hostsdeny の 2 つのフィールドを使用できます。
ホスト許可フィールドとホスト拒否フィールドの使用
hosts allow 字段定义允许访问的客户端
hosts deny 字段定义禁止访问的客户端
Samba サーバーには /share という名前のディレクトリがあります。ディレクトリは共有ディレクトリとして公開する必要があり、共有ディレクトリの名前は public として定義されます。
3. 最もよく使用されるフィールド
(1)共有名を設定します。
共有リソースが公開された後、ネットワーク ユーザーによるアクセスに使用される共有ディレクトリごとに異なる共有名を設定する必要があります。共有名は元のディレクトリ名と異なっていてもかまいません。
格式:
[共享名]
(2)共有リソースの説明。
ネットワーク上にはさまざまな共有リソースが存在しますが、ユーザーが閲覧する際に共有リソースの内容がどのようなものであるかを把握できるように、ユーザーの識別を容易にするためにコメント情報を付加することができます。
comment = 备注信息
(3)共有リソース パス。
共有リソースの元のフル パスは、パス フィールドを使用して公開できますが、これを正しく指定する必要があります。
path = 资源的绝对路径
(4)匿名アクセスを設定します。
これにより、共有リソースへの匿名アクセスのみが許可されます。
public = yes //允许匿名访问
public = no //不允许匿名访问
(5)アクセスユーザーを設定します。
共有リソースに重要なデータがある場合は、アクセス ユーザーを監査する必要があり、有効なユーザー フィールドを使用して設定できます。
valid users = 用户名
valid users = @组名
valid users = @组名,用户名
例: samba サーバーの共有ファイルは /share/tech ディレクトリで、グループ tech とユーザー マネージャーのみがアクセスを許可されます。
comment=users //可不加
path=/share/tech
valid users = @tech,manager
(6)ディレクトリを読み取り専用に設定します。
共有ディレクトリがユーザーの読み取りおよび書き込み操作を制限する場合は、読み取り専用で実装できます。
read only = yes //只读
read only = no //读写
例: sambaサーバーのパブリックディレクトリ/publicには大量の共有データが格納されており、セキュリティ確保のため読み取りのみ許可し、書き込みを禁止しています。
comment = public
path = /public
public = yes
read only = yes
(7)ディレクトリを書き込み可能に設定する
共有ディレクトリでユーザーが書き込みを許可している場合は、書き込み可能な 2 つのフィールドまたは書き込みリストを使用して設定できます。
writable = yes //读写
writable = no //只读
リストを書く
write list = 用户名
write list =@组名
4. Sambaサービスのパスワードファイル
Samba サーバーが共有リソースを公開した後,客户端访问samba服务器,需要提交用户名和密码进行身份验证,验证合格才可以登录
。クライアント認証機能を実現するため、Sambaサーバーは用户名和密码存放在/etc/samba/smbpasswd
クライアントがアクセスする際にユーザーが送信した情報とsmbpasswdに保存されている情報を比較し、それらが一致する場合にクライアントとSambaサーバー間の接続を確立できます。成功しました。
那如何建立Samba账号呢
。まず、toto などのシステム アカウントを作成する必要があります。
作成が完了したら、次のコマンドを使用して samba サービスにアカウントを作成します。
useradd toto //创建系统账号
passwd toto //设置密码
smbpasswd -a toto //创建samba服务账号
5. 共有サーバーインスタンスの分析
以下にsambaのサーバーの設定方法とプロジェクト例を紹介します。
某公司需要添加samba服务器作为文件服务器,共享目录为/share,共享名为public,这个共享目录允许所有员工访问。
分析: この共有ディレクトリでは、すべての従業員がアクセスできますが、その量がわからないため、管理の便宜のために、はるかに簡単になる匿名アクセスを直接使用します。
-
共有ディレクトリを作成し、その下にテストファイルを作成します
mkdir /share toch /share/toto
-
Samba のメイン設定ファイル smb.conf を変更します。
[global] workgroup = SAMBA security = user map to guest = bad user guest ok = yes [public] path = /share browseable = yes public = yes
-
ファイル/共有の所有者と権限を変更する
[root@localhost ~]# mkdir /share [root@localhost ~]# chmod 777 /share/ [root@localhost ~]# chown nobody.nobody /share
-
設定ファイルをリロードする
[root@localhost ~]# systemctl restart smb nmb
-
ファイアウォールをオフにして selinux を無効にする
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0
-
上記の設定により、ユーザーはアカウントとパスワードを入力せずに、samba サーバーに直接ログインし、public ディレクトリにアクセスできます。
6. Sambaサーバークライアントの設定
Windows クライアントと Linux クライアントの間で 2 つの異なる方法を使用して Samba サーバーにログインできます。
6.1 Linux クライアントが Samba サーバーにアクセスする
smbclientコマンドを使用する
我们在使用smbclient时,先要确保安装了samba-client这个软件包。
yum install -y samba-client
smbclient は、ターゲット ホストの共有ディレクトリのリストを一覧表示できます。形式は次のとおりです。
smbclient -L ターゲット IP アドレス -U ログイン ユーザー名
IP アドレス 172.168.1.1 の IP アドレス ホストを表示すると、ユーザーを入力しないと次の内容が表示されます。これは、匿名ユーザーが表示できる共有ディレクトリのリストを意味します。
[root@localhost ~]# smbclient -L 172.168.1.1
Enter SAMBA\root's password:
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
public Disk
IPC$ IPC IPC Service (Samba 4.10.16)
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
Workgroup Master
--------- -------
SAMBA LOCALHOST
smbclient コマンド ライン共有アクセス モードを使用して共有データを参照することもできます。
smbclient コマンド ライン共有アクセス モードのコマンド形式:
smbclient //目标IP地址或主机名/共享目录 -U 用户名%密码
例:sambaサーバーの共有ディレクトリがpublicでtotoユーザーがログインできる場合
smbclient //172.168.1.1/public -U toto%123456
例:Sambaサーバーの共有ディレクトリがpublicで匿名ユーザーでもログインできる場合
[root@localhost ~]# smbclient //172.168.1.1/public
Enter SAMBA\root's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Tue May 30 08:56:31 2023
.. D 0 Tue May 30 08:50:38 2023
toto D 0 Tue May 30 08:56:31 2023
17811456 blocks of size 1024. 15658328 blocks available
6.2 Windows クライアントを使用して Samba 共有ディレクトリにアクセスする
Windows クライアントが samba 共有ディレクトリにアクセスする方法は数多くありますが、そのうちの 2 つを次に示します。
1. まず、win+R キーを押したままにして、次のコマンドを入力します。
[OK] をクリックすると、Samba サーバーに直接ログインできます。
方法 2. [このコンピュータ] または任意のフォルダをクリックした後、[このコンピュータ] をクリックします。
マッピングされたネットワーク ドライブを見つけます。
クリックして、Samba サーバーの IP アドレスと共有ディレクトリを入力します。
最後に、samba サーバーにログインできます。