nfc怎么使用,Day10 sambaNFS(Enginner04)

 2023-10-08 阅读 20 评论 0

摘要:一、samba服務基礎 1.1 用途 為客戶機提供共享使用的文件夾 1.2 協議 1.2.1 SMB協議 SMB(Server Message Block)服務器消息塊 端口:139/tcp 1.2.2 CIFS協議 CIFS(Common Internet File System)通用網際文件系統 端口tcp/445 1.3 帳號體系 帳號體系與linux系統賬戶有很

一、samba服務基礎

1.1 用途

為客戶機提供共享使用的文件夾

1.2 協議

1.2.1 SMB協議

SMB(Server Message Block)服務器消息塊
端口:139/tcp

1.2.2 CIFS協議

CIFS(Common Internet File System)通用網際文件系統
端口tcp/445

1.3 帳號體系

帳號體系與linux系統賬戶有很大的關聯
samba的共享帳號和linux系統帳號名字相同、但密碼不同

1.3.1 賬戶默認禁止本地登陸

useradd harry -s /sbin/nologin

1.4 搭建samba服務準備工作

1.4.1 yum -y install samba

安裝samba軟件包

1.4.2 useradd username -s /sbin/nologin

創建samba共享帳號
useradd harry -s /sbin/nologin
useradd kenji -s /sbin/nologin
useradd chihiro -s /sbin/nologin

1.4.3 pdbedit -a username

把系統賬戶添加到samba的賬戶數據庫,并且修改密碼
pdbedit -a harry
pdbedit -a kenji
pdbedit -a chihiro

1.4.4 pdbedit -L

列出所有有效的samba賬戶

1.4.5 /etc/samba/smb.conf

samba的主配置文件
字段解釋:
[global]
workgroup = 工作組名 #windows專用
[homes] #家目錄共享
[printer] #打印機共享
[共享名]
path = 要共享的文件夾絕對路徑
browseable = yes #no為隱藏共享
read only = yes #yes為只讀
write list = user #允許寫入的用戶
valid users = username #有效的用戶

1.5 搭建samba只讀共享

1.5.1 修改配置文件

89行,修改workgroup為STAFF
追加到配置文件的最后
[common]
path = /common
hosts allow = 172.25.0.0/24

1.5.2 重啟服務并設置開機自啟動

systemctl restart smb
systemctl enable smb

1.5.3 yum -y install samba-client

安裝smaba客戶端軟件

1.5.4 smbclient -L //172.25.0.11

列出172.25.0.11上共享的目錄

1.5.5 smbclient -U harry //172.25.0.11/common

這個包可裝可不裝。連接\172.25.0.11,進入交互式界面,對\172.25.0.11\common目錄的內容進行操作

1.5.6 getsebool -a

查看受SELinux管理的服務布爾值的開關狀態

1.5.7 setsebool -P samba_export_all_ro=on

設置SELinux管理的samba服務,它的samba_export_all_ro這個值為on的狀態。即對該項功能的開關,需要加-P選項才能永久生效

1.5.8 mount -o ro,user=harry,pass=123 //172.25.0.11/common /mnt/samba

臨時掛載服務器的共享文件夾到/mnt/samba

1.5.9 yum -y install cifs-utils

安裝cifs軟件包

1.5.10 echo "//172.25.0.11/common /mnt/samba cifs user=harry,pass=123,_netdev 0 0" >>/etc/fstab

_netdev這個參數很重要,它表示是一個網絡設備,必須等網絡服務啟動之后再掛載
永久掛載共享目錄

1.5.11 mount -a

測試掛載配置是否正確

1.5.12 df -hT

測試掛載是否正常

1.6 搭建samba讀寫的共享

客戶端訪問服務端不正常的排錯思路:
1.防火墻是否限制
2.服務本身的訪問控制
3.SELinux是否限制
4.服務端目錄是否有權限

1.6.1 修改配置文件

追加到文件最后
[devops]
path = /devops
write list = chihiro

1.6.2 創建目錄及測試文件

mkdir /devops
echo dev >/devops/te.txt

1.6.3 systemctl restart smb

重啟samba服務

1.6.4 setsebool samba_export_all_rw=on

設置samba的讀寫功能為開啟(on)
在共享目錄中嘗試創建文件,還是提示權限不足。原因是服務端本地目錄對chihiro用戶沒有寫的權限

1.6.5 setfacl -m u:chihiro:rwx /devops/

單獨為chihiro用戶添加/devops目錄的讀寫權限

1.7 samba多用戶訪問

管理員一次掛載,客戶端可以臨時切換身份對共享目錄做寫操作

1.7.1 echo '//172.25.0.11/devops /mnt/dev cifs user=kenji,pass=123,_netdev,multiuser,sec=ntlmssp 0 0' >>/etc/fstab

客戶端:
掛載mnt目錄。
修改user為kenji
增加multiuser,sec=ntlmssp參數

1.7.2 su - student

客戶端:
切換到普通用戶

1.7.3 cifscreds add -u chihiro 172.25.0.11

客戶端:
切換到chihiro的身份,訪問/mnt/dev,可以執行讀寫操作

1.8 排錯

故障現象:
mount -a
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
可能原因:
server沒有使用pdbedit添加samba用戶

故障現象:
掛載成功后無法創建文件
可能原因:
server samba共享的目錄沒用setfacl分配寫權限
server的setsebool沒打開samba_export_all_rw=on

二、配置NFS共享

2.1 概述

為客戶機提供共享使用的文件夾

2.2 協議

2.2.1 NFS協議

NFS(Network File System)網絡文件系統
端口:2049/TCP、2049/UDP

2.2.2 RPC協議

RPC(Remote Process Call)遠程進程調用
端口:111/TCP、111/UDP

2.3 所需軟件包

nfs-utils

2.4 服務名稱

nfs-server

2.5 搭建只讀NFS服務

2.5.1 /etc/exports

NFS的配置文件
echo "/public 172.25.0.0/24(ro)" >>/etc/exports
服務端設置共享目錄

2.5.2 systemctr restart nfs-server

重啟NFS服務

2.5.3 echo "172.25.0.11:/public /mnt/nfs nfs _netdev 0 0" >>/etc/fstab

添加nfs掛載

2.6 搭建讀寫NFS服務

2.6.1 echo "/protected 172.25.0.0/24(rw)" >>/etc/exports

服務端設置可讀寫的共享目錄

2.6.2 systemctl restart nfs-server

服務端重啟NFS服務

2.6.3 echo "172.25.0.11:/protected /mnt/protected nfs _netdev 0 0" >>/etc/fstab

客戶端添加NFS掛載配置文件

2.6.4 mount -a

掛載測試

2.6.5 讀寫測試

touch /mnt/protected/aaa.txt

2.6.6 no_root_squash參數

不壓榨root用戶權限,即允許root在nfs共享里面創建的文件還是屬于root用戶,而不是屬于nfsnobody用戶
/abc 172.25.0.0/24(rw,no_root_squash)

2.6.7 普通用戶訪問NFS

當客戶端的普通用戶訪問服務端時,服務端會映射成本地相同uid的用戶,然后查找是否存在相同uid的用戶。如果有,那么就以本地用戶的身份去訪問文件夾;如果沒有,直接拒絕

2.7 搭建安全的NFS共享

2.7.1 lab nfskrb5 setup

初始化服務端和客戶端的ldap環境

2.7.2 LDAP和kerberos

LDAP:網絡用戶,提供用戶名
Kerberos:密碼驗證。nfc怎么使用?一次密碼認證,多次免密登陸
生產環境中會用LDAP驗證用戶名,再用kerberos驗證密碼。
用戶首次訪問時,找LDAP驗證用戶名,驗證通過后再找kerberos驗證密碼。全部驗證通過后,kerberos會給用戶頒發令牌(token)
當用戶再次訪問時,找LDAP驗證用戶名,驗證通過后。服務端發現有token,就不再去找kerberos,直接放行

2.7.3 下載kerberos的密鑰文件

服務端:
wget -O /etc/krb5.keytab?http://172.25.254.254/pub/keytabs/server0.keytab
客戶端:
wget -O /etc/krb5.keytab?http://172.25.254.254/pub/keytabs/desktop0.keytab

2.7.4 在/etc/exports增加sec=krb5p參數

服務端:
mkdir -p /protected/project
chown ldapuser0 /protected/project
ls -l /protected/project
echo "/protected 172.25.0.0/24(rw,sec=krb5p)" >>/etc/exports

2.7.5 systemctl restart nfs-secure-server nfs-server

服務端:重啟安全nfs服務及nfs服務

2.7.6 echo '172.25.0.11:/protected /mnt/nfssecure nfs sec=krb5p,_netdev 0 0' >>/etc/fstab

客戶端:
mkdir /mnt/nfssecure
ls -l /mnt/nfssecure
tail -1 /etc/fstab

2.7.7 systemctl restart nfs-secure

客戶端:重啟nfs-secure服務

2.7.8 mount -a

客戶端:掛載測試

2.7.9 df -hT

客戶端:查看掛載

2.7.10 ssh ldapuser0@server0.example.com

遠程登陸server0
touch /protected/project/ldfile.txt

2.8 排錯

2.8.1 客戶端沒啟動nfs-secure服務

mount -a
mount.nfs: an incorrect mount option was specified

2.8.2 客戶端沒有/etc/krb5.keytab密鑰文件

mount -a
mount.nfs: access denied by server while mounting 172.25.0.11:/protected



本文轉自 goldwinner 51CTO博客,原文鏈接:http://blog.51cto.com/355665/2068712,如需轉載請自行聯系原作者

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/130878.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息