999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

NFS服務的用戶身份映射

2019-12-23 15:21:38煙臺曲廣平
網絡安全和信息化 2019年9期
關鍵詞:設置用戶服務

■ 煙臺 曲廣平

編者按:NFS服務雖然在CentOS7.6系統中采用的是目前最新的NFSv4版本,但由于NFS服務本身比較簡單,所以如果對NFS服務設置不當,將會在企業網絡中產生比較嚴重的安全隱患。本文就NFS服務的用戶身份映射問題進行了分析,并給出了推薦的配置和使用方法。

NFS(Network File System,網絡文件系統)主要用于Linux以及類UNIX系統之間的文件共享。它采用C/S工作模式,在NFS服務器上將某個目錄設置為共享目錄,然后在客戶端可以將這個目錄掛載到本地使用。

筆者準備了兩臺Linux虛擬機來搭建實驗環境,虛擬機所使用的操作系統版本為CentOS7.6。其中名為Server的虛擬機IP地 址 是 192.168.80.10,名為Client的虛擬機IP地址是192.168.80.101。

NFS的基本配置

NFS服務在CentOS7系統中默認已經安裝,但并未運行,因而首先需要在虛擬機Server中執行“systemctl start nfs”命令啟動服務,然后再執行“systemctl enable nfs”命令將服務設置為開機自動運行。

在服務器端新建一個/var/share目錄,并在其中創建一個測試文件test.txt。

[root@server ~]#mkdir /var/share

[root@server ~]# echo'hello,world!' > /var/share/test.txt

下面將/var/share目錄設置為NFS共享,并允許所有客戶端訪問。

NFS服務的主配置文件是 /etc/exports,在 /etc/exports文件中,每一行定義一個共享目錄。

利用vi編輯器打開配置文件/etc/exports,在其中增加下面的一行:

[root@server ~]# vim/etc/exports

/var/share*(ro,sync)

在 設 置 項 中,“/var/share”表示要共享的目錄,“*”表示所有客戶端都可以訪問該共享目錄,選項“ro”用于定義客戶端的權限為 read-only(只讀),選項“sync”表示啟用同步模式,可以將內存中的數據實時寫入到磁盤中。

修改完配置文件之后,重啟NFS服務生效。

[root@server ~]#systemctl restart nfs

然后在客戶端就可以將共享目錄掛載到本地使用。

[root@client ~]#mkdir /mnt/nfs

#創建掛載點目錄

[root@client~]# mount -t nfs 192.168.80.10:/common /mnt/nfs

#掛載共享目錄

[root@client ~]# ls /mnt/nfs

#查看共享目錄中的文件

test.txt

由于NFS服務本身并不具備用戶身份驗證的功能,而僅支持基于客戶端IP進行認證。

也就是說,我們在對NFS服務進行權限設置時,不能針對用戶來分配權限,而只能針對客戶端IP進行權限分配。

所以如果希望IP地址為192.168.80.101的客戶端可以對共享目錄執行寫入操作,那么可以在服務器端對配置文件進行如下修改,添加客戶端的IP,并設置權限選項為“rw(read-write)”:

[root@server ~]# vim/etc/exports

/var/share*(ro,sync)

192.16 8.80.101(rw,sync)

修改完成后,需要重啟NFS服務生效。

但是如果NFS共享正在被某些服務器使用的話,那么NFS服務是不允許隨便重啟的,所以在CentOS系統中提供了exportfs命令,可以在不重啟NFS服務的情況下,重新加載/etc/exports文件,使得新的設置項生效。

exportfs命令的常用選項有:-a(全部掛載或全部卸載)、-r(重新掛載)、-v(顯示詳細信息),通常都是將這三個選項組合使用。

下面通過exportfs命令使得我們剛才所做的設置生效。

[root@server ~]#exportfs -arv

exporting 192.168.80.101:/var/share

exporting *:/var/share

在客戶端先將共享目錄卸載,然后再重新掛載,以使得服務器端的設置生效。

但在對共享目錄進行寫入測試時失敗。

[root@Client ~]#umount /mnt/share

#卸載共享目錄

[root@Client ~]#mount 192.168.80.10:/var/share /mnt/share

#重新掛載共享目錄

[root@Client ~]#touch /mnt/share/a.txt

#寫入測試失敗

touch: 無法創建"/mnt/share/a.txt": 只讀文件系統

這是由于雖然在服務器端的配置文件/etc/exports中設置了允許用戶對/var/share目錄具有讀寫權限,但在操作系統層面,用戶對/var/share目錄卻不具備寫入權限。

因而,要實現對共享目錄的寫入操作,必須要保證在NFS服務和操作系統兩個層面全部都具有寫入權限才可以。

如何使得客戶端可以在操作系統層面對共享目錄具有寫入權限,這就要涉及到用戶身份映射問題。

用戶身份映射的原理

NFS服務雖然不具備用戶身份驗證的功能,但是NFS提供了一種身份映射的機制來對用戶身份進行管理。

當客戶端訪問NFS服務時,服務器會根據情況將客戶端用戶的身份映射成NFS匿名用戶nfsnobody。

nfsnobody是由NFS服務在系統中自動創建的一個程序用戶賬號,該賬號不能用于登錄系統,專門用作NFS服務的匿名用戶賬號。

[root@Server ~]# grep nfsnobody /etc/passwd

#查看nfsnobody用戶的信息。

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

所謂用戶身份映射,是指當客戶端訪問NFS服務器時,會自動被視作服務器中的nfsnobody用戶,并按照該用戶的權限設置去執行操作。

但是并非所有的客戶端都會被映射為nfsnobody用戶,在/etc/exports配置文件中提供了以下選項,以決定是否將NFS客戶端映射為nfsnobody用戶:

1.root_squash,當 NFS客戶端以root用戶身份訪問時,映射為NFS服務器的nfsnobody用戶。

2.no_root_squash,當NFS客戶端以root身份訪問時,映射為NFS服務器的root用戶,也就是要為超級用戶保留權限。

這個選項會留下嚴重的安全隱患,一般不建議采用。

3.all_squash,無論 NFS客戶端以哪種用戶身份訪問,均映射為NFS服務器的nfsnobody用戶。

其中默認值是root_squash,即當客戶端以root用戶的身份訪問NFS共享時,在服務器端會自動被映射為匿名賬號nfsnobody。

下面將分幾種情況分別予以說明。

root用戶的身份映射

我們之前之所以無法在客戶端執行寫入操作,是因為還沒有在系統層面賦予nfsnobody用戶對共享目錄/var/share具有寫入權限。

這里通過設置ACL規則賦予nfsnobody用戶rwx權限。

[root@Server~]# setfacl -m u:nfsnobody:rwx /var/share

然后在客戶端重新掛載共享目錄,并測試能否寫入。

[root@Client ~]#umount /mnt/share

[root@Client~]# mount -t nfs 192.168.80.10:/var/share/mnt/share

[root@Client ~]#touch /mnt/share/b.txt

可以看到此時客戶端可以寫入,并且所創建文件的所有者正是nfsnobody。

[root@Client ~]# ll /mnt/share/b.txt

-rw-r--r--. 1 nfsnobody nfsnobody 0 3月 21 07:39 /mnt/share/b.txt

由于客戶端當前所使用的用戶身份是root,默認情況下,當客戶端訪問NFS服務器時,在服務器端會將其用戶身份映射為nfsnobody,所以在服務器端只要賦予nfsnobody用戶對共享目錄具有寫入權限,那么客戶端自然就可以寫入了。

下面我們再驗證一下no_root_squash設置項,即root用戶不進行身份映射。

首先在服務器端修改配置文件/etc/exports,為/var/share共享目錄添加no_root_squash選項。

[root@server ~]# vim/etc/exports#修改配置文件

/var/share *(rw,no_root_squash,sync)

[root@Server ~]#exportfs -arv

#重新加載服務

exporting *:/var/share

然后去掉對共享目錄/var/share所設置的ACL規則,取消nfsnobody用戶對該目錄的寫入權限。

[root@Server ~]#setfacl -b /var/share

最后在客戶端重新掛載共享目錄,并測試能否寫入。

[root@Client ~]#umount /mnt/share

[root@Client~]# mount -t nfs 192.168.80.10:/var/share/mnt/share

[root@Client ~]#touch /mnt/share/c.txt

[root@Client ~]# ll /mnt/share/c.txt

-rw-r--r--. 1 root root 0 4月 14 17:08 /mnt/share/c.txt

可以發現,此時客戶端仍然是可以寫入的。

因為對于NFS服務器而言,訪問共享目錄的客戶端就是服務器中的root用戶,對共享目錄具有完全權限。

所以no_root_squash選項會產生很大的安全隱患,一般情況下都不建議采用。

普通用戶的身份映射

如果客戶端所使用的用戶身份不是root,而是一個普通用戶,那么默認情況下在服務器端會將其視作其它用戶(other)。

下面我們在客戶端以普通用戶的身份繼續進行測試。

首先在服務器端修改配置文件/etc/exports,將共享目錄/var/share中的no_root_squash選項去掉,重新加載服務后,再次通過設置ACL規則的方式賦予nfsnobody用戶讀寫執行權限。

[root@server ~]# vim/etc/exports

#修改配置文件/var/share *(rw,sync)[root@Server ~]#exportfs -arv#重新加載服務

exporting *:/var/share

#通過設置ACL賦予nfsnobody用戶rwx權限

[root@Server~]# setfacl -m u:nfsnobody:rwx /var/share

在客戶端重新掛載共享,并測試以root用戶身份可以正常寫入。

[root@Client ~]#umount /mnt/share

[root@Client ~]#mount 192.168.80.10:/var/share /mnt/share

[root@Client ~]#touch /mnt/share/d.txt

[root@Client ~]# ll /mnt/share/d.txt

-rw-r--r--. 1 nfsnobody nfsnobody 0 4月 14 17:29 /mnt/share/d.txt

下面在客戶端創建一個admin用戶,并設置密碼。

[root@Client ~]#useradd admin

[root@Client ~]# echo 123 | passwd --stdin admin

切換到admin用戶身份,嘗試向共享目錄中寫入文件,寫入失敗,但是可以讀取目錄中的內容。

因而,如果客戶端是以普通用戶的身份訪問NFS共享,那么默認情況下在服務器端并不將其映射為nfsnobody,而是視作其他用戶(other)。

[root@Client ~]# su -admin

[admin@Client ~]$touch /mnt/share/e.txt

touch: 無法創建"/mnt/share/e.txt": 權限不夠

[admin@Client ~]$ cat/mnt/share/e.txt

下面在服務器端繼續修改配置文件/etc/exports,在共享設置中添加“all_squash”選項,將所有客戶端用戶均映射為nfsnobody。

[root@server ~]# vim/etc/exports

#修改配置文件

/var/share*(rw,sync,all_squash)

[root@Server ~]#exportfs -arv

#重新加載服務

exporting *:/var/share

然后在客戶端再次重新掛載共享(具體操作從略),此時以admin用戶身份就可以寫入了,并且可以發現所創建文件的所有者同樣是nfsnobody。

[admin@Client ~]$touch /mnt/share/e.txt

[admin@Client ~]$ ll/mnt/share/e.txt

-rw-rw-r--. 1 nfsnobody nfsnobody 0 4月14 17:37 /mnt/share/e.txt

用戶身份重疊

在使用NFS共享的過程中,有時還可能會遇到用戶身份重疊的問題。

所謂用戶身份重疊,是指在NFS服務采用默認設置(用戶身份映射選項為root_squash)時,如果在服務器端賦予某個用戶對共享目錄具有相應權限,而且在客戶端恰好也有一個具有相同uid的用戶,那么當在客戶端以該用戶身份訪問共享時,將自動具有服務器端對應用戶的權限。

下面舉例予以說明。

首先在服務器端將/var/share共享還原為默認設置,并且取消/var/share目錄針對nfsnobody用戶的ACL規則,具體操作從略。

假設服務器端存在一個名為teacher的用戶賬號,uid為1246,將該用戶設置為共享目錄的所有者。

[root@Server ~]# id teacher

#查看teacher用戶的身份信息

uid=1246(teacher)gid=1246(teacher) 組=1246(teacher)

#將teacher用戶設置為/var/share目錄的所有者

[root@Server ~]#chown teacher /var/share

[root@Server ~]# ll-d /var/share

drwxr-xr-x. 2 teacher root 45 4月 14 17:37 /var/share

下面在客戶端進行操作。首先仍是重新掛載共享目錄,然后將原先admin用戶的uid也改為1246。

[root@Client ~]#usermod -u 1246 admin

[root@Client ~]# id admin

uid=1246(admin)gid=1002(admin) 組=1002(admin)

然后以admin用戶身份測試能否對共享目錄執行寫入操作,發現可以正常寫入,并且所創建文件的所有者是admin。

[root@Client ~]# su -admin

[admin@Client ~]$touch /mnt/share/f.txt

[admin@Client ~]$ ll/mnt/share/f.txt

-rw-rw-r--. 1 admin admin 0 4月 14 17:47 /mnt/share/f.txt

在服務器端查看admin用戶所創建的文件,發現所有者則是teacher。

[root@Server ~]# ll /var/share/f.txt

-rw-rw-r--. 1 teacher 1002 0 4月 14 17:47 /var/share/f.txt

這是因為對于Linux系統而言,區分不同用戶的唯一標識就是uid,至于用戶名只是為了方便人類理解。所以在系統層面,無論是teacher用戶還是admin用戶,只要他們的uid一樣,就認為是同一個用戶。但也正是因為這個原因,才會導致出現用戶身份重疊的問題,對于NFS服務而言,這也是一個比較嚴重的安全隱患。

如何避免用戶身份重疊呢?可以從以下兩個方面著手:

一是在設置NFS共享時,建議采用“all_squash”選項,將所有客戶端用戶均映射為nfsnobody。這樣就可以有效避免用戶身份重疊的問題。

二是應嚴格控制NFS共享目錄的系統權限,盡量不用為普通用戶賦予權限。

猜你喜歡
設置用戶服務
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 四虎精品国产永久在线观看| 久久狠狠色噜噜狠狠狠狠97视色| 国产精选小视频在线观看| 黄色网页在线播放| 日韩在线2020专区| 中文字幕人成人乱码亚洲电影| 在线免费观看AV| 99尹人香蕉国产免费天天拍| 国产欧美又粗又猛又爽老| 亚洲人成人伊人成综合网无码| 亚洲AⅤ无码国产精品| 亚洲精品黄| 一级香蕉人体视频| 国产99视频免费精品是看6| 精品无码人妻一区二区| 精品丝袜美腿国产一区| 男人天堂亚洲天堂| 思思99思思久久最新精品| 国产一级视频久久| 青草视频在线观看国产| 人人91人人澡人人妻人人爽| 国产午夜一级毛片| 青青网在线国产| 久久无码av三级| 亚洲日本在线免费观看| 国产一区二区三区在线无码| 欧美中文字幕第一页线路一| 国产玖玖视频| 成人va亚洲va欧美天堂| 日韩精品中文字幕一区三区| 91精品国产91久久久久久三级| 亚洲欧美日本国产专区一区| 亚洲性日韩精品一区二区| 亚洲国产天堂久久综合226114| 黄色三级毛片网站| 91蜜芽尤物福利在线观看| 性色生活片在线观看| 国产一级二级三级毛片| 国产凹凸一区在线观看视频| 2019国产在线| 一级毛片在线播放免费观看| 人人爽人人爽人人片| 成人免费黄色小视频| 亚洲天堂区| 婷婷五月在线视频| 日韩国产黄色网站| 久久无码高潮喷水| 女人av社区男人的天堂| 国产流白浆视频| 欧美成人在线免费| 91精品免费久久久| 欧美在线精品一区二区三区| 国内精品久久久久久久久久影视| 国产丝袜精品| 国产原创演绎剧情有字幕的| 在线a网站| 国产第一色| 亚洲色精品国产一区二区三区| 67194亚洲无码| 青青草国产在线视频| 日本爱爱精品一区二区| 国产大片黄在线观看| 亚洲天堂成人在线观看| 小13箩利洗澡无码视频免费网站| 亚洲精品午夜天堂网页| 成人精品免费视频| 亚洲人精品亚洲人成在线| 91人妻日韩人妻无码专区精品| 福利在线不卡一区| 国产成人精品在线| 亚洲天堂网在线播放| 五月婷婷综合色| 亚洲高清中文字幕| 极品尤物av美乳在线观看| 在线观看的黄网| 国产精品久久久久久久久久久久| 亚洲福利网址| 国产精品尤物在线| 91小视频版在线观看www| 日本欧美精品| 国产黑丝一区| 亚洲一区二区黄色|