1. 程式人生 > >配置SMB共享 、 配置NFS共享

配置SMB共享 、 配置NFS共享

配置smb共享 、 配置nfs共享

虛擬機,均要檢測

1. Yum是否可用
2. 防火墻默認區域修改為trusted
3. IP地址是否配置

###########################################################################################################
samba 文件共享(共享文件夾)

Samba 軟件項目
– 用途:為客戶機提供共享使用的文件夾
– 協議:SMB(TCP 139)、CIFS(TCP 445)

所需軟件包:samba
系統服務:smb



一、搭建基本samba服務
1.安裝samba軟件包
2.創建samba的共享帳號。與系統相同用戶名,不同密碼


# useradd -s /sbin/nologin harry
# useradd -s /sbin/nologin kenji
# useradd -s /sbin/nologin chihiro

# pdbedit -a harry #添加samba帳號,設置密碼
# pdbedit -a kenji #添加samba帳號,設置密碼
# pdbedit -a chihiro #添加samba帳號,設置密碼

# pdbedit -L #列出所有有效的samba帳號
# pdbedit -x 用戶名 //刪除用戶

3.修改服務配置文件 /etc/samba/smb.conf

補充:vim 末行模式 set nu 添加行號

89行 workgroup = STAFF
321行 [common] #共享名
322行 path = /common #共享實際路徑

[root@server0 ~]# mkdir /common //創建共享文件夾
[root@server0 ~]# echo haha > /common/abc.txt

4. 重起smb服務,設置為開機自起
#systemctl restart smb
#systemctl enable smb

虛擬機Desktop0
所需軟件包:samba-client

[root@desktop0 ~]# smbclient -L //172.25.0.11 //顯示共享文件
Enter root‘s password:

[root@desktop0 ~]# smbclient -U harry //172.25.0.11/common //查看共享文件內容
Enter harry‘s password:
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \* //經過以下思路可判斷。報錯為SElinux限制

思路:客戶端訪問服務端資源
1.防火墻是否限制
2.服務本身的訪問控制
3.SELinux 是否限制

SELinux: 布爾值 (功能的開關)

getsebool 查看 SELinux 開關
[root@server0 ~]# getsebool -a | grep samba //查看samba功能的開關
samba_export_all_ro --> off
samba_export_all_rw --> off

setsebool 控制 SELinux 開關
– 需要加 -P 選項才能實現永久設置
[root@server0 ~]# setsebool samba_export_all_ro=on //打開只讀
[root@server0 ~]# getsebool -a | grep samba //查看開關狀態

虛擬機Desktop0
[root@desktop0 ~]# smbclient -U harry //172.25.0.11/common
Enter harry‘s password:
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls

掛載:
# mount /etc/common //設置掛載點
# vim /etc/fstab
//172.25.0.11/common /mnt/common cifs username=harry,password=123,_netdev 0 0
文件類型為cifs(需要安裝nfs-utils),username=harry,password=123,_netdev (這相當於一個映射,相當於在訪問時,使用的時harry這個用戶的身份,所以在對文件進行操作時,harry對/common有什麽權限,客戶端用戶就對這個文件有什麽權限)。
#mount -a //開機自動掛載
#df -ah //查看掛載情況

########################################################################################################
Samba讀寫的共享

1.修改配置文件/etc/samba/smb.conf

[devops]
path = /devops
write list = chihiro //chihiro具有寫權限

[root@server0 /]# mkdir /devops //創建共享文件
[root@server0 /]# echo hahaxixi > /devops/123.txt
2.重起smb服務
#systemctl restart smb
3.客戶端驗證:
[root@desktop0 ~]# smbclient -L 172.25.0.11
Enter root‘s password:

4.客戶端掛載驗證
[root@desktop0 ~]# mkdir /mnt/dev //創建掛載點
[root@desktop0 ~]# vim /etc/fstab
//172.25.0.11/devops /mnt/dev cifs user=chihiro,pass=123,_netdev 0 0
[root@desktop0 ~]# mount -a //掛載
[root@desktop0 ~]# df -h

[root@desktop0 ~]# touch /mnt/dev/b.txt //驗證是否可以創建文件
touch: 無法創建"/mnt/dev/b.txt": 權限不夠 //分析原因,防火墻已經設置為trusted,服務本身也做了,問題在於SElinux是否限制。

#####################################################################################################
實現讀寫samba的思路:
1.防火墻是否限制
2.服務本身是否訪問控制
3.SElinux是否限制
4.服務端目錄的本地權限

在服務端server0上進行操作:
一、修改服務端SELinux布爾值,開放讀寫
# getsebool -a | grep samba //查看功能開關
samba_export_all_rw --> off //限制狀態
#setsebool samba_export_all_rw=on
# getsebool -a | grep samba
samba_export_all_rw --> on

驗證:
[root@desktop0 ~]# touch /mnt/dev/b.txt
touch: 無法創建"/mnt/dev/b.txt": 權限不夠 //證明問題在於服務端目錄的本地權限

二。目錄本地權限
[root@server0 ~]# ls -ld /devops //查看目錄權限
drwxr-xr-x. 2 root root 18 11月 6 19:53 /devops //沒有寫權限
[root@server0 ~]# setfacl -m u:chihiro:rwx /devops //設置用戶chihiro對目錄有寫權限
[root@server0 ~]# getfacl /devops //查看權限列表

三、客戶端驗證
[root@desktop0 ~]# touch /mnt/dev/test.txt

##########################################################################################################
配置NFS共享

Network File System,網絡文件系統
– 用途:為客戶機提供共享使用的文件夾
– 協議:NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)

所需軟件包: nfs-utils
系統服務: nfs-server

搭建基本的只讀NFS服務
1.在虛擬機server0上,檢測nfs-utils是否安裝
[root@server0 /]# rpm -q nfs-utils

2.修改配置文件/etc/exports
[root@server0 /]# mkdir /public
[root@server0 /]# echo hehelele > /public/nsd.txt
[root@server0 /]# vim /etc/exports

/public 172.25.0.0/24(ro)

3.重起nfs-server服務,設置開機自起
[root@server0 /]# systemctl restart nfs-server
[root@server0 /]# systemctl enable nfs-server

4.客戶端 訪問nfs-server服務
[root@desktop0 /]# mkdir /mnt/nfs
[root@desktop0 /]# showmount -e 172.25.0.11
[root@desktop0 /]# vim /etc/fstab

172.25.0.11:/public /mnt/nfs nfs _netdev 0 0

[root@desktop0 /]# mount -a
[root@desktop0 /]# ls /mnt/nfs
#######################################################

讀寫nfs-server服務

一.客戶端root用戶的讀寫
服務端:
[root@server0 /]# mkdir /abc
[root@server0 /]# echo 123 > /abc/a.txt
[root@server0 /]# vim /etc/exports
/abc 172.25.0.0/24(rw)

[root@server0 /]# systemctl restart nfs-server

客戶端:
[root@desktop0 /]# vim /etc/fstab
172.25.0.11:/abc /mnt/nsd nfs _netdev 0 0

[root@desktop0 /]# mkdir /mnt/nsd
[root@desktop0 /]# mount -a
[root@desktop0 /]# df -h

服務端:
[root@server0 /]# vim /etc/exports
/abc 172.25.0.0/24(rw,no_root_squash) #不壓榨客戶端root權限

[root@server0 /]# systemctl restart nfs-server

客戶端:

[root@desktop0 /]# systemctl restart nfs #重起客戶端服務
[root@desktop0 /]# touch /mnt/nsd/5.txt


二、普通用戶

客戶端普通用戶訪問服務端nfs-server服務,
服務端會以客戶端相同UID身份的本地用戶進行權限判定

LDAP : 網絡用戶,提供用戶名
kerberos : 密碼驗證,實現“一次密碼認證,多次免密登錄”的通行證機制

服務端:
[root@server0 /]# lab nfskrb5 setup
[root@server0 /]# grep ldapuser0 /etc/passwd
[root@server0 /]# id ldapuser0

1.部署kerberos加密的密鑰文件
wget http://172.25.254.254/pub/keytabs/server0.keytab -O /etc/krb5.keytab
[root@server0 /]# ls /etc/krb5.keytab

2.修改配置文件
[root@server0 /]# vim /etc/exports
/abc 172.25.0.0/24(rw,no_root_squash,sec=krb5p)

3.重起nfs-server與nfs-secure-server
# systemctl restart nfs-server nfs-secure-server



客戶端:
[root@desktop0 /]# lab nfskrb5 setup
[root@desktop0 /]# grep ldapuser0 /etc/passwd
[root@desktop0 /]# id ldapuser0

1.部署kerberos加密的密鑰文件
wget http://172.25.254.254/pub/keytabs/desktop0.keytab -O /etc/krb5.keytab

[root@desktop0 /]# ls /etc/krb5.keytab

2.修改/etc/fstab
172.25.0.11:/abc /mnt/nsd nfs _netdev,sec=krb5p 0 0

3.重起nfs與nfs-secure服務
[root@desktop0 /]# systemctl restart nfs nfs-secure

4.驗證掛載
[root@desktop0 /]# umount /mnt/nsd
[root@desktop0 /]# mount -a
[root@desktop0 /]# df -ah



配置SMB共享 、 配置NFS共享