samba服務配置

samba是一個實現類UNIX操作系統與WINDOWS操作系統之間共享的一種SMB協議的軟件。包括的文件共享和打印機共享。

 

        samba軟件主要結構及文件: 

                /etc/samba/smb.conf                   #samba服務的主要配置文件 

                /etc/samba/lmhosts                       #samba服務的域名設定,主要設置IP地址對應的域名,類似linux系統的/etc/hosts 

                /etc/samba/smbusers                    #samba服務設置samba虛擬用戶的配置文件 

                /var/log/samba                         #samab服務存放日誌文件 

                /var/lib/samba/private/{passdb.tdb,secrets.tdb}     #存放samba的用戶賬號和密碼數據庫文檔 

        

        Samba安裝(yum安裝)

                [root@centos7 ~]# yum -y install samba*                    #yum在線安裝samba

                [root@centos7 ~]# rpm -qa | grep samba                    #檢查samba安裝情況

                    

                    samba-client-3.6.23-41.el6.x86_64

                    samba-winbind-clients-3.6.23-41.el6.x86_64

                    samba-3.6.23-41.el6.x86_64

                    samba4-libs-4.0.0-58.el6.rc4.x86_64

                    samba-common-3.6.23-41.el6.x86_64

                    samba-winbind-3.6.23-41.el6.x86_64 


                注:Samab服務開啓之前需要關閉兩個服務,防火牆(如果你熟練使用防火牆可以不關閉,放行smb的端口即可,SAMBA服務TCP端口139,445  UDP端口 137,138);selinux服務


        關閉防火牆: 

                

                [root@centos7 ~]# systemctl stop firewalld.service                         #停止防火牆

                [root@centos7 ~]# systemctl disable firewalld.service                     #禁止firewall開機啓動


        關閉selinux:

                [root@centos7 ~]# vim /etc/selinux/config  #永久關閉selinux

                set SELINUX=disabled                                   #SELINUX=enforcing改爲SELINUX=disabled

                [root@centos7 ~]# getenforce                      #查看SELinux狀態


        注:smb.conf配置文件分爲兩大類,一個全局配置參數,一個是共享專用配置參數:


        #全局配置參數

            [global]

            workgroup = WORKGROUP        #工作組名稱

            server string = Samba Server Version %v    #主機的簡要說明

            netbios name = MYSERVER     #主機的netBIOS名稱,如果不填寫則默認服務器DNS的一部分,workgroup和netbios name名字不要設置成一樣 


            interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24      #設置samba服務器監聽網卡,可以寫網卡名稱或IP地址,默認註釋

            hosts allow = 127. 192.168.12. 192.168.13.     #設置允許連接到samba服務器的客戶端,默認註釋

            hosts deny =192.168.12.0/255.255.255.0       #設置不允許連接到samba服務器的客戶端,默認註釋


            log level =1          #日誌文件安全級別,0~10級別,默認0

            log file = /var/log/samba/%m    #產生日誌文件的命名,默認以訪問者IP地址命名

            max log size = 50     #日誌文件最大容量50,默認50,單位爲KB,0表示不限制 


            security = share    #設置用戶訪問samba服務器的驗證方式 ,一共四種驗證方式。

                1. share:用戶訪問Samba Server不需要提供用戶名和口令, 安全性能較低。

                 2. user:Samba Server共享目錄只能被授權的用戶訪問,由Samba Server負責檢查賬號和密碼的正確性。賬號和密碼要在本Samba Server中建立。

                 3. server:依靠其他Windows NT/2000或Samba Server來驗證用戶的賬號和密碼,是一種代理驗證。此種安全模式下,系統管理員可以把所有的Windows用戶和口令集中到一個NT系統上,使用Windows NT進行Samba認證, 遠程服務器可以自動認證全部用戶和口令,如果認證失敗,Samba將使用用戶級安全模式作爲替代的方式。

                 4. domain:域安全級別,使用主域控制器(PDC)來完成認證。


            passdb backend = tdbsam     #定義用戶後臺類型

              1、smbpasswd:使用SMB服務的smbpasswd命令給系統用戶設置SMB密碼

                2、tdbsam:創建數據庫文件並使用pdbedit建立SMB獨立用戶,smbpasswd –a username建立samba用戶並設置密碼,不過建立samba用戶必須先建立系統用戶,也可以使用pdbedit命令來建立samba用戶:

                pdbedit –a username:新建Samba賬戶。

                pdbedit –x username:刪除Samba賬戶。

                pdbedit –L:列出Samba用戶列表,讀取passdb.tdb數據庫文件。

                pdbedit –Lv:列出Samba用戶列表的詳細信息。

              pdbedit –c “[D]” –u username:暫停該Samba用戶的賬號。

                pdbedit –c “[]” –u username:恢復該Samba用戶的賬號。

            3、ldapsam:基於LDAP服務進行賬戶驗證

              username map = /etc/samba/smbusers   #配合/etc/samba/smbusers文件設置虛擬用戶 


        #共享文件設置參數

            [share]   #共享專用配置參數

                comment =  This is share directory      #共享描述

                path  =  /tmp/share     #共享目錄路徑

                browseable  =  yes/no      #設置共享是否可瀏覽,如果no就表示隱藏,需要通過IP+共享名稱進行訪問

                writable  =  yes/no   #設置共享是否具有可寫權限

                read only  =  yes/no   #設置共享是否具有隻讀權限

                admin users  =  root  #設置共享的管理員,如果security =share 時,引項無效,多用戶中間使用逗號隔開,例如admin users = root,user1,user2

                valid users  =  username    #設置允許訪問共享的用戶,例如valid users = user1,user2,@group1,@group2(多用戶或組使用逗號隔開,@group表示group用戶組)

                invalid users  =  username     #設置不允許訪問共享的用戶

                write list  =  username     #設置在共享具有寫入權限的用戶,例如例如write list  = user1,user2,@group1,@group2(多用戶或組使用逗號隔開,@group表示group用戶組)

                public  =  yes/no     #設置共享是否允許guest賬戶訪問

                guest  ok  =  yes/no     #功能同public 一樣

                create mask = 0700         #創建的文件權限爲700

                directory mode = 0700        #創建的文件目錄爲 700  


            一、不需要賬號密碼訪問的共享(security  =  share )

                [root@centos7 samba]# systemctl start smb.service   #啓動samba服務

                [root@centos7 samba]# ls -ld /tmp/share/       #查看共享文件權限

                [root@centos7 samba]# chmod 777 /tmp/share/   #分配共享文件最大權限

                [root@centos7 samba]# testparm     #檢查smb.conf配置文件是否有語法錯誤

                [root@centos7 samba]# netstat -tlnp | grep mbd      #查看samba端口,TCP端口139,445  UDP端口 137,138

                [root@centos7 samba]# vim /etc/samba/smb.conf    #設置smb.conf配置文件

            

                [global]

                workgroup = WORKGROUP     #設置主機工作組

                server string = Samba Server Version %v     #samba服務註釋

            

                log level = 1    #設置日誌文件安全級別爲1

                log file = /var/log/samba/%m      #設置日誌文件名稱,%m以IP地址爲名稱

                max log size = 50     #設置日誌文件最大容量50KB,0表示不限制 

                

                security = share      #以share驗證方式訪問

                passdb backend = tdbsam      #定義用戶後臺類型 

                

                load printers = no       #關閉打印共享功能

                cups options = raw       #打印機選項 

                

                [usershare]

                comment  =  Home Directories     #共享文件描述

                path  =  /home/shareuser   #共享路徑

                browseable  =  yes     #共享文件可以瀏覽

                writable  =  yes      #共享文件可寫

                ; read only  =  yes    #共享文件可讀,不能與writable共用

                guest ok =  yes    #允許guest用戶訪問

                

                [root@centos7 samba]# systemctl restart smb.service  #重啓samba服務


                注:出現下面提示 WARNING: Ignoring invalid value 'share' for parameter 'security' 

                解決方法:                

                samba4較之前的SAMBA 3有一個重大的變化是:security不再支持share,參數需要做調整

                原來:

                security=share

                現在:

                security=user

                map to guest =Bad User

             

                測試:            

                Windows系統操作:

                在win 7系統打開運行輸入 \\192.168.42.222訪問,不需要輸入任何用戶和密碼 

            

                在linux操作需要進行掛載:

                [root@centos7 ~]# yum -y install samba-client   #在線安裝samba-client才能使用smbclient命令

                [root@centos7 ~]# smbclient -L //192.168.42.222    #查看samba服務器共享目錄

                [root@centos7 ~]# mount -t cifs //192.168.42.222/usershare /mnt/share   #掛載 


            二、需要輸入賬號和密碼訪問的共享(security  =  user)

            標註:創建samba用戶之前必須先創建系統用戶,系統用戶和samba用戶名一樣,但密碼可以設置成不一樣

            [root@centos7 samba]# useradd test01      #創建系統用戶test01

            [root@centos7 samba]# useradd test02      #創建系統用戶test02

            [root@centos7 samba]# passwd test01       #設置系統用戶test01密碼

            [root@centos7 samba]# passwd test01       #設置系統用戶test02密碼

            [root@centos7 samba]# smbpasswd -a test01    #把系統用戶test01添加爲samba用戶並設置samba用戶登錄密碼

            [root@centos7 samba]# smbpasswd -a test02     #把系統用戶test02添加爲samba用戶並設置samba用戶登錄密碼

            [root@centos7 samba]# pdbedit –L    #查看samba用戶

            [root@centos7 samba]# mkdir /home/{smbadmin01,smbuser01}   #home創建兩個共享目錄

            [root@centos7 samba]# chmod 777 /home/{smbadmin01,smbuser01}   #目錄分配最高權限

            [root@centos7 ~]# vim /etc/samba/smb.conf   #設置smb.conf配置文件

            

            [global]

            workgroup = WORKGROUP                 #設置主機工作組

            server string = Samba Server Version %v      #samba服務註釋

            

            log level = 1         #設置日誌文件安全級別爲1

            log file = /var/log/samba/%m             #設置日誌文件名稱,%m以IP地址爲名稱

            max log size = 50          #設置日誌文件最大容量50KB,0表示不限制

            

            security = user           #以user驗證方式訪問

            passdb backend = tdbsam            #定義用戶後臺類型 

            

            load printers = no          #關閉打印共享功能

            cups options = raw        #打印機選項 

            

            [usershare]

            comment  =  Home Directories            #共享文件描述

            path  =  /home/smbuser01              #共享路徑

            browseable  =  yes              #共享文件可以瀏覽

            read only  =  yes             #共享文件可讀,不能與writable共用

            valid users  =  test01,test02         #設置允許訪問共享用戶 

            

            [adminshare]

            comment  =  Home Directories          #共享文件描述

            path  =  /home/smbadmin01               #共享路徑

            browseable  =  yes           #共享文件可以瀏覽

            writable  =  yes              #共享文件可寫

            create  make  =  0664            #設置用戶創建文件權限0664

            directory  make  =  0775             #設置用戶創建目錄權限0775

            write  list   =   test01         #設置允許訪問共享具有寫入權限的用戶 

            

            [root@centos7 samba]# systemctl restart smb.service         #重啓samba服務 

            

            測試:

            Windows系統操作:

            在win 7系統打開運行輸入 \\192.168.42.222訪問,輸入test01用戶和密碼 

            

            在linux操作需要進行掛載:

            [root@centos7 ~]# yum -y install samba-client       #在線安裝samba-client才能使用smbclient命令

            [root@centos7 ~]# smbclient -L //192.168.42.222       #查看samba服務器共享目錄

            [root@centos7 ~]# mount -t cifs //192.168.42.222/usershare /mnt/share    #掛載 


三、特殊操作:(samba用戶映射,又稱作虛擬用戶)

      上述操作是創建系統用戶再分配對應的samab用戶,通過samba用戶就能知道你的系統用戶,缺乏一定的安全性。不過,samba提供了一種方法,就是把samba用戶映射成虛擬用戶。比如linux系統創建了一個用戶user,samba把user添加爲samba用戶,samba再把user用戶虛擬成user01,user02等用戶,一個samba用戶可以虛擬成一個或多個虛擬用戶。這樣就可以保證系統用戶安全性。 


            操作跟上述操作一樣,只是修改一些地方即可:

            [root@centos7 ~]# vim /etc/samba/smb.conf         #設置smb.conf配置文件

            security = user       #以user驗證方式訪問

            passdb backend = tdbsam       #定義用戶後臺類型

            username map = /etc/samba/smbusers     #添加這行配置,開啓samba虛擬用戶配置功能

            [root@centos7 samba]# vim /etc/samba/smbusers    #添加samba虛擬用戶

            # Unix_name = SMB_name1 SMB_name2 ...

            root = administrator admin

            nobody = guest  pcguest  smbguest

            test01 = user01  user02  user03 

            [root@centos7 samba]# systemctl restart smb.service       #重啓samba服務 


            測試:

            Windows系統操作:

            在win 7系統打開運行輸入 \\192.168.42.222訪問,輸入user01用戶,密碼是test01用戶密碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章