RH254-第二十五節-Samba和NFS以及Iscsi服務

samba文件共享

能在linux與windows之間進行文件案共享
通用Internet文件系統(CIFS)也稱爲服務器信息塊(SMB),是適用於Microsoft
Windows服務器和客戶端的標準文件和打印機共享系統。
Samba服務可用於將Linux文件系統作爲CIFS/SMB網絡文件共享進行共享,並將Linux
打印機作爲CIFS/SMB打印機共享進行共享。

服務器安裝及基本調試

服務器ip:172.25.254.223
hostnamectl set-hostname samba.example.com
yum install samba-client samba-common samba -y
systemctl stop firewalld.service
setsebool -P samba_enable_home_dirs on
systemctl start smb
smbpasswd -a student ##student用戶必須是本機存在的用戶、
##不能添加系統不存在的用戶:
********************
[root@localhost ~]# smbpasswd -a peter (或者pdbedit -a )
New SMB password:
Retype new SMB password:
Failed to add entry foR user peter. ##添加的用戶必須是系統中真是存在的不存在會報錯
pdbedit -L ##列出smb用戶
pdbedit -x student ##刪除smb用戶
pdbedit -L
smbpasswd -a student

測試(ip:172.25.254.223):
smbclient -L //172.25.254.223 -U student ##列出共享目錄的信息
smbclient //172.25.254.223/student -U student ##進入共享目錄,默認共享的是登陸用戶家目錄
如果出現以下報錯:
[root@desktop ~]# smbclient -L //172.25.254.223 -U student
Enter students password:
protocol negotiation failed: NT_STATUS_IO_TIMEOUT
解決方法:
服務器/etc/hosts 下加上服務器ip和名字

samba共享目錄

 cd /
 mkdir westos
 cd westos/
 touch file{1..10}
 ls
 vim /etc/samba/smb.conf
 ---------
    [westos1]            ##共享目錄的名字(自己定義)
    comment = local directory westos    ##共享說明
    path = /westos      ##文件路徑
 --------- 
 systemctl restart smb

測試(ip:172.25.254.223):

 smbclient -L //172.25.254.223 -U student
 vim /etc/samba/smb.conf 
 smbclient  //172.25.254.223/westos -U student


 登陸上去之後不能ls查看   因爲selinux標籤沒有改變

` semanage  fcontext -a -t samba_share_t '/westos(/.*)?'     
 restorecon  -FvvR /westos/`

 smbclient  //172.25.254.223/westos -U student
              此時登陸上去之後ls能查看到目錄下的文件

 vim /etc/samba/smb.conf
           ----------
    [linux]
    comment = local directory westos
    path = /linux
           -----------

 systemctl restart smb
 smbclient -L //172.25.254.223 -U student
 cd /
 mkdir linux
 touch linux/tong

 **共享 系統建立的目錄時需要修改的selinux sebool屬性,此方式修改針對所有目錄,
         一旦開放,selinux標籤不再保護目錄訪問
 setsebool -P samba_export_all_rw on           ##可以讀寫 
 setsebool -P samba_export_all_ro on           ##只讀
 smbclient  //172.25.254.223/linux -U student

 用戶要在共享目錄下建立文件夾(擁有寫權限)必須具備三點:
       1>服務器分享的目錄具有寫權限
 2>selinux sebool 開啓寫權限
 3>samba配置文件裏添加了允許寫的參數(samba服務允許寫的權力)

smb: > ls
. D 0 Mon Mar 20 16:42:45 2017
.. D 0 Mon Mar 20 15:59:53 2017
ss D 0 Mon Mar 20 16:41:20 2017
gile N 0 Mon Mar 20 16:42:09 2017

##服務器自己建立的文件或目錄顯示的是 N 通過samba服務在共享目錄下建立的文件或目錄顯示的是 D
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

匿名訪問

vim /etc/samba/smb.conf
------------
 125         map to guest = bad user     ##所有未認證的用戶影射爲guest(給guest一個身份)

[share]
comment = samab share dir
path = /samba/
guest = ok
writable = yes
browseable = yes
這裏寫圖片描述

samba共享目錄的管理參數

vim /etc/samba/smb.conf
-----------------
    [westos]
    comment = local directory westos
    path = /westos
    guest ok = yes
    writeable = yes             ##允許所有人可寫
 #  write list = yang           ##只允許用戶yang可寫
 #  write list = @yang          ##只允許用戶組yang可寫
 #  valid users = yang          ##只允許用戶yang登陸
 #  valid users = +yang         ##只允許用戶組yang登陸
 #  browseable = no             ##是否顯示本共享目錄
 #  admin users = yang          ##讓yang用戶擁有超級用戶權限
------------------

systemctl restart smb

  • usermod -G yang student ##將student加到用戶組yang中
  • usermod -G “” student

    測試(ip:172.25.254.223):
    mount //172.25.254.223/westos /mnt -o password=yang,username=yang

5>多用戶掛載

yum install cifs-utils -y
vim /root/passfile

 username=yang
 password=yang

mount //172.25.254.223/westos /mnt -o credentials=/root/passfile,multiuser,sec=ntlmssp

su - yang        ##與passfile文件裏用戶同名
 ls /mnt
 cifscreds add 172.25.254.223
 ls /mnt         ##查看成功

su - kiosk       ##與passfile文件裏用戶不同名
 ls /mnt         ##查看不成功 
 cifscreds add 172.25.254.223
 ls /mnt         ##查看不成功      

自動掛載(autofs服務)

autofs與mount/unmount不同之處在於,他是一種服務程序。如果它檢測到用戶正試圖訪問一個尚未掛載的文件系統,
它就會自動檢測該文件系統,如果存在,那麼autofs會自動將其掛載。另一方面,如果它檢測到某個已掛載的文件系統
在一段時間內沒有被使用,那麼autofs會自動將其卸載,因此,一旦運行了autofs之後,用戶就不用手動完成文件系統
的掛載和卸載了。

=====
服務的安裝與啓動
=====
yum install autofs -y ##安裝autofs服務
systemctl start autofs

======
編輯配置文件
======
vim /etc/auto.master ##主配置文件
———————————-
這個文件裏的每一行對應一個掛載點
autofs服務的每個掛載點都有一個相應的配置文件,比如 /etc/auto.master 文件裏有一行
/misc /etc/auto.misc 這一行表示 /misc 掛載點的配置文件是 /etc/auto.misc
這裏/misc 代表的是你要掛載的真正目錄的上層目錄 比如你真正要掛載的位置是 /mnt/server
那麼這裏你就該寫的掛載點是 /mnt 後面配置文件格式一般都統一寫成 auto.xxx 後綴應與
掛載點名稱相同 。 如我要掛載在 /mnt/server下 我就該在 /etc/auto.master 里加這一行:
/mnt /etc/auto.mnt
———————————-

vim /etc/auto.mnt ##編輯掛載點配置文件
——————–
server -fstype=cifs,username=[],password=[] ://ip/dir
——————–
server代表是/mnt/server
-fstype=cifs 代表文件系統格式是cifs
在Red Hat Enterprise Linux 5以下(不包括5),samba的共享的文件系統類型是smbfs,
在Red Hat Enterprise Linux 5及5以上則是cifs類型
username password 填寫你自己samab賬戶username password

=========
更改掛載時間
=========
默認情況下掛載時間是300s,5min不使用就自動卸載,當然這個時間是可以改變的
在 /etc/sysconfig/autofs 下 有一行參數 :
TIMEOUT=300
將300改爲你自己想要的值就ok了默認單位爲秒
注意這個配置文件在不同版本的redhat下存在位置也不同:
7.0系統:
/etc/sysconfig/autofs
7.2系統:
/etc/autofs.conf

NFS網絡文件存儲

簡介

網絡文件系統(NFS)是Unix系統和網絡附加存儲文件管理器常用的網絡文件 系統,允許多個客戶端通過網絡共享文件訪問。它可用於提供對共享二進制目錄的訪問,也可用於允許用戶在同一工作組中從不同客戶端訪問其文件。  NFS協議有多個版本:Linux支持版本4、版本3和版本2, 而大多數系統管理員 熟悉的是NFSv3。默認情況下,該協議並不安全,但是更新的版本(如NFSv4 )提供了對更安全的身份驗證的支持,甚至可以通過kerberos進行加密NFSv4還導出pseudo-root(所有導出的文件系統的root)。如果客戶端掛載nfs-server:/ ,這將在NFS服務器上的/下面相對於其位置掛載所有導出文件系統。這對於瀏覽從客戶端的服務器導出的所有文件系統有用。您仍可單獨掛載文件系統。

默認情況下,NFS服務器將NFS客戶端上的root視爲用戶nfsnobody。即,如果root嘗試訪問掛載的導出中的文件,服務器會將其視作用戶nfsnobody訪問。在NFS導出被無磁盤客戶端用作/和root需要被視作root的情況中,這種安全措施存在隱患。若要禁用此保護,服務器需要將no_root_squash 添加到在/etc/exports中導出設置的選項列表:

/exports/root 172.25.254.223(rw,no_root_squash)

對於NFSv4,必須在服務器上打開端口2049/TCP(對於nfsd)。對於NFSv3和更早版本,必須爲rpcbind、rpc.mountd、lockd和rpc.rquotad打開更多端口,而在“隨機”選擇的端口上啓動其中許多服務這一事實又增加了複雜性。此外,NFSv2和NFSv3支持UDP傳輸,還要求打開相應的端口。

服務器配置(ip:172.25.254.223):

 yum search nfs            
 yum install nfs-utils.x86_64 -y    ##安裝軟件
 systemctl start nfs                ##開啓服務
 firewall-cmd --list-all            ##查看火牆設置
 firewall-cmd --permanent --add-service=nfs
 firewall-cmd --permanent --add-service=mountd
 firewall-cmd --permanent --add-service=rpc-bind
 firewall-cmd --reload 
 firewall-cmd --list-all    
 mkdir /westos           ##建立共享目錄(也能分享系統本就存在的目錄)
 vim /etc/exports
        -------------------
   /westos        172.25.254.12(rw)   ##分享目錄爲/westos  只允許172.25.254.223讀寫
        -------------------

 exportfs -rv                        ##-r 確保應用這些更改  -v 顯示所有導出(共享)
 showmount -e 172.25.254.223         ##顯示指定NFS服務器共享目錄列表

  ****************

NFS共享常用參數
******
ro #只讀訪問
rw #讀寫訪問
sync #所有數據在請求時寫入共享
async #NFS在寫入數據前可以相應請求
secure #NFS通過1024以下的安全TCP/IP端口發送
insecure #NFS通過1024以上的端口發送
wdelay #如果多個用戶要寫入NFS目錄,則歸組寫入(默認)
no_wdelay #如果多個用戶要寫入NFS目錄,則立即寫入,當使用async時,無需此設置。
hide #在NFS共享目錄中不共享其子目錄
no_hide #共享NFS目錄的子目錄
subtree_check #如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限(默認)
no_subtree_check #和上面相對,不檢查父目錄權限
all_squash #共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。
no_all_squash #保留共享文件的UID和GID(默認)
root_squash #root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)
no_root_squas #root用戶具有根目錄的完全管理訪問權限
anonuid=xxx #指定NFS服務器/etc/passwd文件中匿名用戶的UID
anongid=xxx #指定NFS服務器/etc/passwd文件中匿名用戶的GID

 *************************

/etc/exports 文件編寫
***************
/nfsshare/read 172.25.0.0/24(ro,sync) ##允許一個網段的機器去訪問此共享目錄
/nfsshare/write 172.25.0.0/24(rw,sync) 127.0.0.1(rw,sync) ##允許這兩個網段的機器去讀寫此共享目錄
/nfsshare/read *(ro,sync) ##允許所有機器訪問此目錄
/nfsshare/read 172.25.254.223(ro,sync) ##允許這個ip訪問此目錄

客戶端查看並掛載(ip:172.25.254.223)

showmount -e 172.25.254.223
mount 172.25.254.223:/westos /mnt
df
cd /mnt
mkdir aaa
ls
touch hello

永久掛載NFS文件系統:

將相應的行添加至/etc/fstab:

nfsserver:/nfsshare /mnt/nfsshare nfs defaults 0 0

客戶端NFS掛載選項

rw:掛載可讀寫的文件系統
ro:掛載只讀文件系統
vers=4:嘗試只使用指定的NFS版本進行掛載。如果服務器不支持該版本,則掛載請求失敗
soft:如果NFS請求超時,三次嘗試後返回錯誤。權衡數據完整性與提高客戶端響應性。(默
認行爲hard,將無限期地重試)。

保護NFS輸出

在serverx和desktopx上運行腳本,加入kerberos認證域:
# lab nfskrb5 setup
安裝kerberos服務所需的keytab:(以下操作都在server0上進行)
# wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/server0.keytab
激活NFS v4.2版本,可以輸出selinux標籤,編輯/etc/sysconfig/nfs修改如下選項:
RPCNFSDARGS=”-V 4.2”
啓動nfs-secure-server服務:
# systemctl start nfs-secure-server; systemctl enable nfs-secure-server
配置NFS輸出:
# mkdir /securenfs
# echo ‘/securenfs desktop0(sec=krb5p,rw)’ >> /etc/exports
# exportfs -r
安裝kerberos服務所需keytab:(以下操作都在dekstop0進行)
# wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/desktop0.keytab
啓動nfs-secure服務:
# systemctl start nfs-secure; systemctl enable nfs-secure
配置客戶端掛載:
# mkdir /mnt/secureshare
/etc/fstab
server0:/securenfs /mnt/secureshare nfs defaults,v4.2,sec=krb5p 0 0
# mount -a

自動掛載(autofs)

在客戶端:
vim /etc/auto.master
—————-
/mnt /etc/auto.mnt
—————-

vim /etc/auto.mnt
    ------------------
 yang    -rw,vers=4      172.25.254.112:/westos
    ------------------

systemctl restart autofs
cd /mnt/yang

iscsi磁盤分區共享

服務端:

=======
服務的安裝與啓動
=======
  yum install targetcli.noarch -y
  systemctl start target
  systemctl enable target
  systemctl stop firewalld
=====
共享硬盤的建立
======
  fdisk /dev/vdb   ##先從本機分割一塊空間
  targetcli        ##啓動軟件,建立共享
********
   ls
   /backstores/block  create westos:storage1 /dev/vdb1         
   /iscsi  create iqn.2017-08.com.westos:storage1
   iscsi/iqn.2017-08.com.westos:storage1/tpg1/acls create  iqn.2017-08.com.westos:key1
   iscsi/iqn.2017-08.com.westos:storage1/tpg1/luns create  /backstores/block/westos:storage1
   iscsi/iqn.2017-08.com.westos:storage1/tpg1/portals create  172.25.254.223
   exit
*********
 依照上面命令建立好的文件系統:

=======================
/> ls
o- / …………………………………………………………… […]
o- backstores …………………………………………………. […]
| o- block ………………………………………. [Storage Objects: 1]
| | o- westos:storage1 ……….. [/dev/vdb1 (100.0MiB) write-thru activated]
| o- fileio ……………………………………… [Storage Objects: 0]
| o- pscsi ………………………………………. [Storage Objects: 0]
| o- ramdisk …………………………………….. [Storage Objects: 0]
o- iscsi ……………………………………………….. [Targets: 1]
| o- iqn.2017-08.com.westos:storage1 …………………………. [TPGs: 1]
| o- tpg1 ……………………………………. [no-gen-acls, no-auth]
| o- acls ……………………………………………… [ACLs: 1]
| | o- iqn.2017-08.com.westos:key1 …………………. [Mapped LUNs: 1]
| | o- mapped_lun0 ………………. [lun0 block/westos:storage1 (rw)]
| o- luns ……………………………………………… [LUNs: 1]
| | o- lun0 …………………….. [block/westos:storage1 (/dev/vdb1)]
| o- portals ………………………………………… [Portals: 1]
| o- 172.25.254.223:3260 …………………………………… [OK]
o- loopback …………………………………………….. [Targets: 0]
==========================

  vim /etc/iscsi/initiatorname.iscsi 
   --------
    InitiatorName=iqn.2017-08.com.westos:key1
   --------

測試:

客戶端:
yum install iscsi-initiator-utils -y
vim /etc/iscsi/initiatorname.iscsi
—————
InitiatorName=iqn.2017-08.com.westos:key1
—————
systemctl restart iscsi
systemctl status iscsi
systemctl restart iscsid
systemctl status iscsid
history
iscsiadm -m discovery -t st -p 172.25.254.223 ##發現
iscsiadm -m node -T iqn.2017-03.com.westos:storage1 -p 172.25.254.223 -l ##登陸

=====
客戶端訪問存儲
=====
fdisk -l ##發現多了一塊設備 /dev/sda
fdisk /dev/sda
partprobe
fdisk -l
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt
df
umount /mnt
=====
中斷使用iSCSI目標
=====
確保沒有使用目標所提供的任何設備。
確保從/etc/fstab等位置中刪除使用目標的所有永久掛載。
登出iSCSI目標,以暫時斷開連接。
# iscsiadm -m node -T iqn.2017-08.com.westos:storage1 -p 172.25.254.223 -u
刪除iSCSI目標的本地記錄,以永久斷開連接。
# iscsiadm -m node -T iqn.2017-08.com.westos:storage1 -p 172.25.254.223 -o delete

如果沒有中斷刪除就重啓電腦,iscsi會自動連接,如果服務器那邊沒有開啓此服務,開機速度會非常慢,在開機後
清除 /var/lib/iscsi/nodes/ /var/lib/iscsi/send_targets/ 下的所有內容就ok了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章