[それを言うために、それを明確に!]一般に、共有ストレージ・サーバ構成戦闘--Samba

内容:
基本構成()Sambaサーバー
(b)はSELinuxの注目点の一部の上のSambaサービス
の設定(C)マルチユーザー、マルチユーザーマウント


Sambaは、LinuxおよびUNIXシステム上のSMBプロトコルのフリーソフトウェアの実装は、それがサーバークライアントプログラムから構成されています。SMB(サーバメッセージブロック)情報ブロック共用ファイルサービスとLAN内の異なるコンピュータ間で共有サービスリソースファイルとプリンタを提供しているLAN上のプリンタの通信プロトコルです。SMBプロトコルは、クライアントがプロトコルを介して、サーバ、プリンタ、およびその他のリソース上の共有ファイルシステムにアクセスすることができ、クライアント/サーバ型のプロトコルです。「TCP / IPのNetBIOS over」を設定することによってだけでなく、コンピュータの世界での共有リソースへの、ローカル・エリア・ネットワーク・ホストとの共有リソースへのSambaすることができます。
1987年に、MicrosoftとIntelが共同で、このようなもになり、複数のホスト間でファイルを共有することになり、LAN、上のファイルやプリンタなどのアドレス共有リソースにSMB(サーバーメッセージブロック)メッセージブロックプロトコルサービスを開発しましたよりシンプルに。彼女は、共有の問題へのLinuxとWindowsのシステム間でのシステムファイルを解決するために大学生Tridgwellの順だった1991年、によって、我々はSMBプロトコルに基づいてSMBServerサービスプログラムを開発しました。これは、LinuxシステムとWindowsシステム間の単純なコンフィギュレーション・ファイル共有ワークを介して達成することができるオープンソースのファイル共有ソフトウェアです。このソフトウェアは、TridgwellがSMBServerに名前を付けたいの商標として登録されましたが、それはSMBの文字に商標局は申請を却下しても意味がありませんでした。その後Tridgwellは辞書を見ていき、突然ラテン名---サンバダンス、そしてこの情熱的な踊りを見て、また、名前のSambaサービスプログラムが生まれたので、「SMB」の名前が含まれていることを起こります。Sambaのサービスプログラムは現在、LinuxシステムとWindowsシステム間でファイルを共有するための最良の選択肢となっています。
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba


(A)Sambaサーバの基本的な構成
SMBとNMB:(1.1)Sambaサーバ、二つの主要なサービスがあります。主にWindows 95またはWindows 98オペレーティングシステムの古いを目的とした、とあなたはオペレーティングシステムのこのタイプを必要とする場合は、NMBサービスをファイル共有をオンにする必要がありますされてNMBサービス。SMBサービスの仕事は、主に主にUDPポート137および138上のTCPポート139および445、NMBサービス作業で実行されます。
(1.2)は最初のホストvms001サンバサービスにインストールされ、その後、我々はファイアウォールの設定を通じてサンバのサービスが可能になり、とSELinuxは、オープンモードに施行に設定されているは、/ etc /サンバ/ smb.confのディレクトリの編集設定ファイル入力
#firewall-を--add-サービス=サンバCMD --permanent
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(1.3)我々は力のsmb.conf設定ファイルに設定情報をフィルタリングするためのegrepコマンドを使用することができます。LinuxとWindowsホストがワークグループ情報が正しく認識された埋めるために、この時間が必要で、ホストと通信する必要がある場合は、前記ワークグループワークグループ情報は、Windowsホスト(図1-5)を伝え表しています。2番目のパラメータは、その注釈情報サーバ列、「%vが」バージョンを示して示した(図1-7)。
#EGREP -v '(#|; | ^ $') "/etc/samba/smb.conf---"^$は空白行で表現された
#男のsmb.conf
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
三番目のパラメータインタフェースを表している(1.4)これは、ポート上のデフォルトのランで実行中のサービスのIPアドレスの範囲は、すべてのアドレス(図1-9)を監視しています。
スタートSMB systemctl#
#systemctl有効SMB
#netstatの-tunlp | grepのSMB
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(1.5)第四パラメータは、ログファイルが位置を実行しているログSambaサービスを保存している表します。5番目のパラメータの最大ログサイズは、ファイルサイズが始まる回転(回転)した後、一定のサイズに達する記録し、私たちの/ var / logディレクトリ内のメッセージファイルを保存するために、例えば、ログレコードの最大記憶容量の情報を表し、すぐに「メッセージ+日付」圧縮ファイル形式にバックアップメッセージを提出した後、メッセージファイルレコード新しいログ情報(図1-11)の内容を空にします。
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba


(二)Samba服务中关于SELinux的一些注意点
(2.1)第六个参数security表示的是一种验证方式,用来设置客户端来访问我的samba服务器的时候,是否需要输入密码,默认值user表示的是必须要输入用户名和密码进行验证才可以登录samba服务(图1-13)。其中Windows系统在登录samba服务的时候,使用的是samba服务中的用户名和密码,而这个samba用户必须是samba服务器上存在的本地用户,即必须要存在于/etc/passwd文件里。首先我们在系统中我们查询到存在tom用户和bob用户,但是不存在marry用户,同时设置bob用户为/sbin/nologin,使得bob用户可以登录samba服务,但是无法登录vms001主机。
# usermod -s /sbin/nologin bob---修改bob用户的登录shell为/sbin/nologin
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(2.2)我们在vms001主机上安装包含smbpasswd命令的软件包,不过此时由于firewall是属于public开启的状态,所以我们需要设置防火墙允许samba服务通过,同时还要设置允许ftp服务通过。同时还要配置SELinux中的bool值,将ftpd_full_access的bool值设置为on,此时我们就可以正常的安装smbpasswd命令的软件包了。
# yum whatprovides */smbpasswd
# yum install samba-client-4.1.12-21.el7_1.x86_64 -y
# firewall-cmd --list-all
# firewall-cmd --add-service=samba --permanent
# firewall-cmd --add-service=ftp --permanent
# getsebool -a | grep ftp
# setsebool -P ftpd_full_access on
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(2.3)接着我们可以将相关的用户添加到samba服务中,注意,此处添加用户时设置的samba密码可以和用户登录系统时使用的密码不同,添加bob用户是正常的,虽然bob用户设置的是/sbin/nologin,但是仍然可以正常的添加到samba服务中,而marry用户在vms001主机上并不存在,所以也无法添加到samba服务中。接着我们从Win7主机上尝试登陆vms001主机的samba服务(图1-20),在/etc/samba/目录下的smb.conf文件中已经提示我们需要设置目录的SELinux权限,此时我们是可以正常的登录samba服务中bob用户的文件夹中的(图1-24)。
# pdbedit -L---查询当前samba服务中的所有用户
# smbpasswd -a tom---将tom用户添加到samba服务中
# smbpasswd -d tom---将tom用户禁用
# smbpasswd -e tom---将tom用户启用
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(2.4)接下来我们在vms001主机上创建一个目录,我们创建一个/zz目录,希望将这个目录共享出去,在smb.conf配置文件中配置完毕后,将smb服务重启一下。此时我们在Win7主机上便可以看到hello-zz目录,由于没有修改目录的上下文信息,所以无法正常的进入hello-zz目录,修改完毕后便可以正常的登录/zz目录了
# chcon -t samba_share_t /zz
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(2.5)接着我们使用Linux客户端尝试登录vms001主机的samba服务,我们首先在vms002主机上安装smbclient命令的软件。此时我们从vms002主机上可以正常的登录vms001主机上samba服务共享的目录,但是却没有创建文件的权限(图1-32)。
# smbclient -L //vms001 -U bob%redhat---在Linux客户端上查询samba服务的共享目录信息
# smbclient //vms001/hello-zz -U bob%redhat---在Linux客户端上登录samba服务
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(2.6)此时我们可以使用以下思路进行判断,如果我们搭建了某个服务,从客户端上开始往服务器上传输文件,但是没法传输上去,应该从以下三部曲来检查:1.检查配置文件是否允许写;2.检查文件系统是否有权限;3.检查SELinux的权限设置情况,一般SELinux涉及的就是上下文和布尔值两个方面。首先我们在vms001主机的smb.conf配置文件中的hello-zz目录下添加可写的权限,并将samba服务重启一下(图1-33);然后我们还要修改文件系统的权限,由于登录系统时,我们使用的是tom和bob用户,但是/zz目录中其他用户并没有可以写的权限,所以我们应该给/zz目录的“o”加上可写的权限(图1-35)。
# smbclient -L //vms001 -U bob%redhat
# smbclient //vms001/hello-zz -U bob%redhat
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(2.7)现在我们的需求是允许指定的用户可以在samba服务器的目录中可以写,一般是通过以下的两种方式进行控制:1控制配置文件可否写的权限;2文件系统是否允许写的权限。而我们实现这种需求可以通过两种方法实现:第一种我们首先允许文件系统中所有的其他用户都可以写,然后在smb.conf配置文件中只是允许tom用户可以写,此时在Win7客户端上使用tom用户可以正常的在samba服务的hello-zz文件夹中创建文件(图1-38),而使用bob用户则无法正常的在samba服务的hello-zz文件夹中创建文件(图1-39)。
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(2.8)第二种方法我们可以指定配置文件中的所有用户都可以写并将samba服务重启一下,但是在文件系统中我们去除其他用户可写的权限,同时使用acl来指定bob用户可以写,此时在Win7系统上使用tom用户登录vms001主机的samba服务,发现在hello-zz目录中无法创建文件了(图1-42),但是使用bob用户在vms001主机的samba服务上,发现是可以在hello-zz目录中创建文件的(图1-43)。
# chmod o-w /zz
# setfacl -m u:bob:rwx /zz/
# smbclient //vms001/hello-zz -U bob%redhat
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(2.9)接着我们也可以使用hosts allow和hosts deny来指定特定的客户端可以访问或者无法访问samba服务,我们设置IP地址为192.168.26.104主机,用户名为tom的用户可以访问vms001主机的samba服务,此时我们发现Win7主机上tom用户是可以正常的访问vms001主机的samba服务的(图1-45),此时我们发现在vms002主机上使用bob用户是无法登录vms001主机的samba服务的(图1-46)。
注意:hosts allow指的是在smb.conf配置文件中指定的主机IP地址才可以正常的访问samba服务,没有指定的IP地址都不能访问;hosts deny指的是在smb.conf配置文件中指定的主机IP地址为拒绝访问samba服务,没有指定的IP地址才可以正常的访问。
# setfacl -x u:bob /zz/---取消bob用户对/zz目录的特殊权限
# smbclient //vms001/hello-zz -U bob%redhat
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(2.10)在Windows中存在着隐藏共享的概念,即目录名后有“$”符,那么正常的时候用户登录共享服务是看不到目录名的,但是用户如果自己在知晓的情况下在目录名后加上一个“$”符号,此时便可以正常的登录到目录中去。现在我们的需求是将vms001主机的samba服务中的hello-zz目录设置为一个隐藏共享,我们将browseable的值设置为no,并将服务重启一下,此时用户便无法看到这个目录(图1-49),但是仍然可以登录到这个目录中(图1-50)。
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(2.11)上面的目录设置了隐藏共享后对所有用户都是不可见的,并不能对特定的用户单独设置开放可见目录的操作。现在我们的需求是我们只对tom用户设置可见隐藏共享的目录,只有tom进入到隐藏共享的目录hello-zz后仍然是可见的,但是其他用户进入后仍然是看不见的。首先我们在smb.conf配置文件中将browseable设置为no(图1-51),表示对所有的用户都是隐藏不可见的,同时在Network-Related Options后添加一行信息“config file = /etc/samba/smb.conf.%U”(图1-52),这样我们就可以为指定的用户来配置特定的配置文件,例如我们创建了一个smb.conf.tom文件,在smb.conf.tom配置文件中我们设置值为yes,表示对tom用户目录是可见的(图1-53)。
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba


(三)multiuser多用户挂载的配置
(3.1)我们在vms001主机的samba服务器端有两个用户,其中tom用户访问/zz目录的权限是rwx,而bob用户访问/zz目录的权限是r-x,此时我们从客户端vms002上访问vms001主机的samba服务时,vms002主机上如果存在多个用户tom1、tom2、tom3的时候,multiuser多用户挂载可以实现tom1用户以samba服务器上的tom用户身份访问/zz目录,tom2用户以samba服务器上的bob用户身份访问/zz目录这样的功能。
(3.2)我们在vms002主机上创建一个/smb目录,然后将/smb目录挂载到/hello-zz目录下,此时我们还需要在vms002客户端安装cifs软件包,安装完cifs软件包后,此时可以正常的将/smb挂载到/hello-zz目录下了。
# smbclient -L //vms001 -U bob%redhat
# mkdir /smb
# mount -o username=tom,password=redhat //vms001/hello-zz /smb
# yum install cifs-* -y---安装cifs模块的软件包
# cifscreds clearall---清除相关的缓存
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
(3.3)は、このケースでは、クライアントのvms002 / SMBは、ハロー-ZZディレクトリ/にマウント、およびマルチユーザー、マルチユーザーモードを搭載し、暗号化NTLMSSPを設定するように配置されます。私たちは、ホストvms002 3人のユーザーTOM1、TOM2、TOM3、およびパスワードを設定します(図1-60)で作成しました。私たちは、TOM2ユーザーへvms002ホストに切り替えるに/ SMBディレクトリのパーミッションを行くと何のクエリディレクトリのファイルを発見した、我々はSambaサーバの権限でユーザートム「ベスト」を入れ、その後、ユーザーは、トムを持っています、あなたは新しいファイルを作成することができ、ディレクトリ内(図1-61)の情報を照会することができます。私たちがTOM3ユーザーにvms002ホストに切り替えた後、へ/ SMB行くディレクトリがないクエリディレクトリファイルのパーミッション発見され、その後、我々はSambaサーバのユーザbob「ベスト」を置く、この時間は、彼らはボブのユーザー権限を持っていますあなたは、ディレクトリ内の情報を照会することができますが、(図1-62)ファイルを作成する権限がありません。これらは、私たちの共通のマルチユーザー、マルチユーザーマウント設定されています。
#マウント-oユーザ名=トム、パスワード = redhatの、マルチユーザ、秒= NTLMSSP //192.168.26.101/hello-zz / SMB --- / SMBのはvms001ディレクトリはハローZZ下のホスト/ディレクトリにマウントされ
cifscreds追加# vms001 -uタム---ユーザートムの権限を使ってSambaサーバに切り替え
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba
[それを言うために、それを明確に! ]一般に、共有ストレージ・サーバ構成戦闘--Samba

------この記事を締結、読んでくれてありがとう------

おすすめ

転載: blog.51cto.com/13613726/2458748