1. 程式人生 > >11.24 cifs通用網路檔案系統

11.24 cifs通用網路檔案系統

1.cifs和samba的介紹

CIFS (Common Internet File System),通用Internet檔案系統。在windows主機之間進行網路檔案共享是通過使用微軟公司自己的CIFS服務實現的。

CIFS 是一個新提出的協議,它使程式可以訪問遠端Internet計算機上的檔案並要求此計算機提供服務。CIFS 使用客戶/伺服器模式。客戶程式請求遠在伺服器上的伺服器程式為它提供服務。伺服器獲得請求並返回響應。CIFS是公共的或開放的SMB協議版本,並由Microsoft使用。SMB協議在區域網上用於伺服器檔案訪問和列印的協議。像SMB協議一樣,CIFS在高層執行,而不像

TCP/IP協議那樣執行在底層。CIFS可以看做是應用程式協議如檔案傳輸協議超文字傳輸協議的一個實現。

Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟體,由伺服器及客戶端程式構成。SMB(Server Messages Block,資訊服務塊)是一種在區域網上共享檔案和印表機的一種通訊協議, 它為區域網內的不同計算機之間提供檔案及印表機等資源的共享服務。SMB協議是客戶機/伺服器型協議,客戶機通過該協議可以訪問伺服器上的共享檔案系統、 印表機及其他資源。通過設定“NetBIOS over TCP/IP”使得Samba不但能與區域網絡主機分享資源,還能與全世界的電腦分享資源。

samba是由微軟和sun公司一起建立起來的,是用來讓windows和linux進行檔案傳輸,sun公司是類linux公司,。
 

實驗環境
server虛擬機器重置:
設定主機名字server
IP地址 :物理機+100
yum 源配置好 
如果遇到無法掛載,檢視uid,然後kill 9 uid

Desktop重置:

設定主機名字client
IP 地址:物理機+20
yum源配置好

2.samba的安裝與使用

server端:
1)檔案安裝

yum install samba samba-common samba-client


2)開啟服務

systemctl start smb


3)火牆關閉

systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service


4)samba使用者的創立,檢視,刪除

一、新增使用者

smbpasswd -a student      ##必須服務端存在的使用者

二、列舉使用者

pdbedit -L


三、刪除使用者

pdbedit -x student

現在建立兩個使用者,一個名為student,一個為westos

5)核心防火牆

getenforce
setenforce 0    ##設定為警告模式

client端
1)客戶端安裝

yum install samba-client -y

2)檢視使用者的登陸

匿名使用者:smbclient -L //172.25.254.185


以使用者身份檢視:smbclient -L //172.25.254.185 -U westos

3)使用者登陸

匿名登陸:smbclient //172.25.254.152/westos    ##登陸不上


指定使用者登陸:smbclient //172.25.254.152/westos -U westos

掛載上傳:將server的目錄掛載到client上。
儲存分離手段:眾多伺服器收集到的資訊儲存到一個不對外開放的儲存器,抵抗攻擊,一個主機掛掉以後,別的主機還可以從儲存器取出資料。

mount -o username=westos,password=westos //172.25.254.152/westos /mnt

實驗可以看出,登陸的是westos 的家目錄

2.samba的配置檔案

設定server端配置檔案:vim /etc/samba/smb.conf

1)設定域名

89         workgroup = MYGROUP  改為  workgroup = westos

 workgroup = westos:

檢視結果,domain變為westos


2)samba的訪問控制


控制一:允許訪問家目錄


核心開啟的狀態下,開啟samba
setsebool -P samba_enable_home_dirs on

 

實驗結果


控制二:黑白名單


hosts allow=172.25.254.152

172.25.254.85登陸

172.25.254.105登陸


hosts deny= 172.25.254.152

172.25.254.85登陸

172.25.254.105登陸


3.共享檔案的設定

server端

1)建立檔案/westos,配置檔案內編寫目錄

mkdir /westos


配置檔案內編寫
322         [wen]                                  ##共享自己建立的檔案
323         comment=shis file           ##說明
324         path = /westos                  ##絕對路徑
325
326         [mntdir]
327         comment=mnt directory
328         path=/mnt                        ##系統原來的目錄

2)訪問


使用者自己建立的檔案:修改安全上下文    ##不修改安全上下文無法訪問
semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -RvvF

 

如果是共享系統建立的檔案,必須開放selinux對samba的許可權
getsebool -a |grep samba
setsebool -P samba_export_all_rw on  #開啟讀寫

3)samba的配置檔案:vim /etc/samba/smb.conf    ##修改完重啟服務

修改一:可寫配置

writable = yes


修改目錄許可權 chmod 777 /westos


上傳

!ls :檢視可以上傳的檔案,        ##為當前目錄的檔案


修改二:指定使用者和組可寫

指定某一個使用者可寫
write list = westos


組可寫 @ +
write list = @westos

測試student使用者無法寫

現在修改student的額外組為westos

測試可以寫

修改三:指定使用者和組可以登陸

那些使用者可以登陸訪問
valid users = student

測試student使用者可以登陸。westos使用者不可登陸


組可以訪問
valid users = +student

測試twetos不可以登陸

修改westos的額外使用者組為student

測試westos可以登陸

修改四:smbclient -L //172.25.254.152/wen -U westos 下面的目錄可以發現


是否可以發現共享的目錄    ##可發現所有的共享目錄
browseable = yes

測試前

修改為

修改後無法看到wen的檔案

 

修改五:以超級使用者身份登陸

admin users = westos                  ##westos 以超級使用者身份登陸

修改前上傳一個檔案

在server檢視所屬使用者

修改為

重新上傳檔案

server端檢視擁有者為root使用者

修改六:匿名使用者登陸共享目錄


windows的匿名名字guest
linux的匿名名字anonymous
對映名字 map to guest= bad user

server端
guest ok = yes                                    ##允許匿名使用者登陸
map to guest = bad user                  ##對映windows的匿名使用者到linux的你名使用者

client端:

smbclient  //172.25.254.185/wen -U guest

4.samba的多使用者掛載

客戶端root使用者掛載後,切換到普通使用者後,普通使用者可以看到掛載目錄的內容。存在安全問題

客戶端的samba安全鎖:限制沒有通過認證的使用者訪問samba

client端
1)安裝

yum install cifs-utils.x86_64 -y
檢視手冊

2)建立認證檔案

建立檔案 vim /root/smbpass
編寫內容
username=westos
password=westos

3)修改許可權 只有使用者有許可權600

chmod 600 /root/smbpass

4)客戶端root使用者掛載


mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.152/wen /mnt/
                              指定認證方式    普通使用者可以認證    多使用者登陸

5)切換使用者檢視/mnt

6)新增使用者認證

新增使用者cifscreds add -u student 172.25.254.152
輸入密碼:使用者的密碼

如果新增錯誤
[[email protected] ~]$ cifscreds add -u student 172.25.254.152
You already have stashed credentials for 172.25.254.152 (172.25.254.152)
If you want to update them use:
    cifscreds update
清除
cifscreds clearall
重新掛載會清除記錄


5.自動掛載

vim /etv/fstab

//172.25.254.185/wen  /mnt  cifs defaults,username=student,password=student  0   0