文件共享服務之samba 的配置與應用

SMB (Service  Message Block,服務信息塊):局域網上共享文件夾/打印機的一種協議。既可以用在TCP/IP之上,亦可以在其他網絡協議之上。

提供兩種服務:文件共享服務  smbd

              名稱解析服務  nmbd

進程:winbindd  將linux加入到windows 域中,使用windows域中的資源。

軟件包:samba(服務器端),samba-client(客戶端),samba-common(額外組件)

samba-swat  基於web接口,提供samba服務器配置管理。

samba-client  samba-common  默認已經安裝

主配置文件:/etc/samba/smb.conf

啓動腳本:/etc/init.d/smb

語法檢查工具:testparm

端口:137 (向別人提供服務 服務器端) 提供netbios服務

      138 (接受別人服務 客戶端)     提供netbios服務

      139  (文件傳輸)  445(文件傳輸)

主配置文件相關參數:

[global]

        workgroup = MYGROUP          //** 工作組

        server string = Samba Server Version %v  //** 說明信息

        interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24   //**定義監聽接口

        hosts allow = 127. 192.168.12. 192.168.13.    //** ACL 白名單

        log file = /var/log/samba/%m.log  //** 定義日誌

        security = user    //** 安全級別 默認 user 

安全等級:share  不用賬號和密碼可以直接登錄,最不安全。

           user   需要輸入有效地賬號和密碼,通過驗證後才能使用服務器的共享資源。

          server  與user等級,也需要輸入有效地賬號和密碼,但密碼的驗證會由另一

               臺SMB服務器負責,必須指定口令服務器,即“password server”選項。

[homes]

        comment = Home Directories     //**註釋信息

        browseable = no               //** 是否可被瀏覽

        writable = yes                 //** 是否可寫

;       valid users = %S               //** 哪些用戶可以使用此類共享

;       valid users = MYDOMAIN\%S   

[printers]

      printable = yes         //** 標識一個打印設備

下面就來共享一個目錄:

[root@mail samba]# mkdir /share

編輯/etc/samba/smb.conf 添加一個共享目錄

[tools]

  comment = Public Software

  path = /share

  browseable = yes

  writable = yes

  public = yes         //**允許所有人訪問

保存退出。

添加samba用戶:

smbpasswd    -a  添加一個用戶

             -d  禁用一個用戶

             -e  啓用用戶

             -x  刪除用戶

PS:Samba要求來訪問的用戶必須是系統賬號,但是密碼必須是samba提供的密碼。

[root@mail samba]# setenforce 0

爲用戶添加寫權限:

[root@mail samba]# setfacl -m u:lucy:rwx /share

只允許某些用戶有寫權限:

編輯主配置文件

[tools]

  comment = Public Software

  path = /share

  browseable = yes

  write list = lucy     //** 如果允許一組用戶有寫權限  則 write list = @develop

  public = yes

爲組添加/share目錄的寫權限:

[root@mail samba]# setfacl -m g:develop:rwx /share/

在SElinux開啓的情況下允許用戶有寫權限:

首先改變目錄的標籤:

[root@mail samba]# chcon -R -t samba_share_t /share

[root@mail samba]# ls -dZ /share

drwxrwxr-x+ root root root:object_r:samba_share_t      /share

開放samba家目錄的訪問權限:

[root@mail samba]# setsebool -P use_samba_home_dirs 1

[root@mail samba]# setsebool -P samba_enable_home_dirs 1

利用smbclient訪問共享資源:

列出目標主機上所有可以訪問的共享資源

[root@mail samba]# smbclient -L //192.168.0.39

[root@mail samba]# smbclient -L //192.168.0.39 -U lucy%lucy    //** 以某個用戶身份來查看

訪問共享目錄:

[root@mail samba]# smbclient  //192.168.0.39/tools  -U lucy

將遠端共享目錄掛載到本地主機目錄下

[root@mail ~]# mount -t cifs //192.168.0.39/share /samba -o username=lucy

設置開機設置自動掛載

編輯/etc/fstab

//192.168.0.181/tools      /mnt       cifs        credentials=/etc/samba/cred   0  0

credentials=/etc/samba/cred    //** 驗證信息存放位置

建立cred文件:

uername=lucy

password=lucy

實現samba的訪問控制功能

編輯主配置文件:

    hosts allow = 127. 192.168.0.      line 81

設置iptables規則:

[root@mail ~]# iptables -t filter -A INPUT -s 192.168.0.1 -d 192.168.0.39 -p tcp -m multiport --dports 139,445 -j ACCEPT

[root@mail ~]# iptables -t filter -A INPUT -s 192.168.0.1 -d 192.168.0.39 -p udp -m multiport --dports 137,138 -j ACCEPT

[root@mail ~]# iptables -A INPUT -s 0.0.0.0/0.0.0.0 -d 192.168.0.39 -p tcp -m multiport --dports 139,445 -j REJECT

[root@mail ~]# iptables -A INPUT -s 0.0.0.0/0.0.0.0 -d 192.168.0.39 -p udp -m multiport --dports 137,138 -j REJECT

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