part_24 :cifs檔案系統
在本次做實驗之前需要將兩臺虛擬機器都重置一下,然後ip和yum都配置好,為了方便區分可以將兩個虛擬機器改名為一個服務端,一個客戶端。
1、配置samba服務
SMB檔案共享:用Internet 檔案系統(CIFS)也稱為伺服器信是適用於MicrosoftWindows伺服器和客戶端的標準檔案和印表機共享系統息塊(SMB)。Samba服務可用於將Linux檔案系統作為CIFS/SMB網路檔案共享進行共享,並將Linux印表機作為CIFS/SMB印表機共享進行共享。
以支付寶為例,使用者在註冊帳號的時候其實是在很多臺伺服器隨機註冊的,但是這樣的話不僅不穩定(資料一旦丟失,將永久丟失),而且不安全(與外網連線,容易被攻擊),所以其實是一個安全的伺服器共享到其他很多臺與外網連線的伺服器。這就用到了檔案共享。
-
服務端配置:
(1)安裝samba服務,samba-common是共享服務端安裝,client在客戶測試端安裝,此時是為了方便測試,所以在共享服務端也安裝了samba-client,並開啟服務。
(2)檢視火牆狀態和設定。
關閉火牆並使火牆開機不自動開啟
(3)sellinux設定,將核心級火牆改為警告級
(4)給student使用者新增smb服務中,新增檔案共享密碼 ,以及檢視能smb檔案共享的使用者和刪除smb檔案共享的student使用者。smbpasswd -a westos ## 給student使用者新增smb服務中並新增檔案共享密碼 pdbedit -x student ## 刪除smb檔案共享的student使用者 pdbedit -L ## 檢視能smb檔案共享的使用者
-
客戶端配置:
(1)在客戶端安裝samba-client服務
(2)匿名登陸訪問共享測試,不用密碼,直接回車
(3)westos使用者登入訪問共享測試。
(3)以掛載的方式操作共享目錄,將其掛載在/mnt下。
(4)在/mnt下可以檢視共享的檔案也可以建立和刪除,也就是間接對服務端共享目錄/home/westos操作。例如:在客戶測試端的/mnt中建立檔案,在共享服務端進入/home/westos可以檢視建立的檔案。
(5)westos使用者可以直接訪問共享直接修改
2、 修改samba配置檔案和許可權
- sellinux為強制狀態下檢視共享檔案的配置
當sellinux為強制狀態下,在客戶端是沒法檢視的。
服務端配置:
getenforce ##檢視sellinux狀態
setenforce 1 ##將sellinux設定成強制狀態
setsebool -P samba_enable_home_dirs on ##將檢視共享目錄的設定開啟
getsebool -a | grep samba ##將檢視samba設定開關狀態
-
修改域名
在配置檔案/etc/samba/smb.conf 下修改域名的名字為WESTOS,workgroup = WESTOS,配置完後重啟smb服務 -
使用者共享黑白名單
在/etc/samba/smb.conf 設定使用者白名單hosts allow = 172.25.254.170 ##使用者白名單 hosts deny = 172.25.254.170 ##使用者黑名單 smbclient //172.25.254.170/westos -U westos ##測試端測試
設定使用者白名單,白名單內ip為172.25.254.170
ip為172.25.254.160測試端測試是沒法檢視的,就是沒法共享。
ip為172.25.254.170測試端測試是可以檢視的,就是可以共享。
設定使用者白名單,白名單內ip為172.25.254.170
ip為172.25.254.170測試端測試是沒法檢視的,就是沒法共享。
ip為172.25.254.160測試端測試是可以檢視的,就是可以共享。
3、 共享目錄
-
本地目錄的共享
先建立一個共享目錄
(1)修改 /etc/samba/smb.conf 配置檔案,將本地建立的共享目錄寫入裡面[mulu] 共享名稱,用於登陸,可以任意 comment = westos dir share 說明,可以任意 path = /westos 真正的需要共享的目錄,不可以任意。
(2)配置完後要重啟smb服務
如果selinux在強制狀態下,且沒有開啟服務允許,則不能看到共享目錄, 如果selinux在強制狀態下,且開啟服務允許,則可以看到共享目錄,但是系統安全級別會降低。因此,我們只需更改建立的目錄的上下文即可看到共享目錄,這樣不會使系統安全級別降低
(3)測試:
-
系統目錄的共享
(1)配置/etc/samba/smb.conf 檔案,將共享的系統級的檔案寫入。
(2) systemctl restart smb.service ##重啟服務
(3)設定sellinux狀態getsebool -a | grep samba ##將檢視samba設定開關狀態 setsebool -P samba_export_all_ro on ##將讀系統目錄的設定開啟
(4)測試
4、使用者管理配置
- 執行時先給/westos一個777的許可權
- 常規配置/etc/samba/smb.conf
(1) writable = yes ##允許可寫(服務可寫)。
測試:
(2) write list = @westos ##只允許westos組的使用者可寫 +和@表示組 沒有這一句的話表示所有人都可寫
測試:
(3)browseable = yes ##是否可以發現共享檔案,預設不寫表示可以發現。
(4) valid users = +student 只允許student組的使用者登陸 +和@表示組
測試:
(5)admin users = student student 使用者上傳的檔案,檔案所有人為root 上傳檔案只能上傳當前路徑下的檔案,
!ls ## 看到當前路徑的檔案
![](https://img-blog.csdnimg.cn/20181126160503567.png)
(6)guest ok =yes 匿名使用者可以登陸
map to guest = bad user guest的描述,所有的guest都是不合法的使用者。
測試:
5、 多使用者掛載(在客戶端做)
針對的問題:當mount -o username=westos,password=redhat //172.25.254.160/westos /mnt 其他使用者也都能訪問共享檔案,因此,沒有安全性。客戶端samba鎖就是限制沒有通過samba認證的使用者不能檢視掛載。
-
先安裝cifs-utils認證外掛
-
解除原來的掛載 : umount /mnt/ 先解除原來的掛載 : umount /mnt/
-
編寫/root/smbpass檔案, 此檔案用來驗證掛載人的身份。
-
給檔案一個只有超級使用者才有讀寫的許可權,提高系統安全性。
-
掛載
credentials=/root/smbpass ##指定掛載時所用到的使用者檔案 sec=ntlmssp ##認證方式為標準smb認證方式 multiuser ##支援多使用者認證
-
普通使用者需要用密碼驗證:
cifscreds add -u limin 172.25.254.160 ## 表示普通使用者以共享伺服器端的westos使用者身份登陸
6、開機自動掛載
編輯/etc/fstab