本文文章記錄使用FreeBSD 13.1 當作NIS(Network Information System) 和使用ZFS檔案系統的NFS(Network File System) Server提供給FreeBSD或其他Non-FreeBSD系統用戶端使用。
目標:
- 建立NIS server,提供區網內(FreeBSD or Non-FreeBSD)帳號驗證與hostname對應。
- 用戶端home directory放在NFS server上,達到使用者漫遊目的。
- ZFS server提供共同儲存空間,透過ACL控制存取權限,達到分類控管。
一、安裝過程
- /etc/rc.conf:
nisdomainname="nis-nfs.local"
nis_server_enable="YES"
nis_yppasswdd_enable="YES"
nis_yppasswdd_flags="-i -u -a"
說明: nisdomainname可任意設定,但為了讓其他Non-FreeBSD Client,可設定為Internet Domain Name。
啟用rpc.yppasswd讓使用著可以更改password
nis_yppasswdd_flags額外設定讓ubuntu client可順利執行yppasswd - 建立NIS maps(NIS 資料庫):
FreeBSD NIS Client查詢NIS map為/var/yp/nis-nfs.local/master.passwd.byname,Ubuntu NIS Clinet 查詢的是/var/yp/nis-nfs.local/passwd.byname,因此
FreeBSD NIS server for Non-FreeBSD NIS Client:
👉/var/yp/Makefile: uncomment UNSECURE = "True", and then
執行指令,建立NIS maps:
建立空的/var/yp/mster.passwd:
touch /var/yp/master.passwd
chmod 600 /var/yp/master.passwd
ypinit -m nis-domainname
password.byname, password.byid 才會提供加密密碼
(為提供加密的passwd.byname or password.byid)
使用pw指令建立NIS user maps
pw useradd <username> -u uid -c "user name" -d /nfshome/<username> -M 700 -y /var/yp/master.passwd -Y -m -w yes
同時建立NIS user與nfs user directory - /etc/hosts:
192.168.1.71 nfs nfs.nis-nfs.local
192.168.1.72 nis nis.nis-nfs.local
其他Clinet即可透過maps中的hosts.byname即可使用此設定 - /var/yp/securenets加入可存取限制
#此行一定樣加入
127.0.0.1 255.255.255.255
#其他
192.168.1.0 255.255.255.0
🌱詳細步驟可參閱文末影片連結:
🌱FreeBSD NIS Client:
- /etc/rc.conf:
nisdomainname="nis-nfs.local"
nis_client_enable="YES" - /etc/master.passwd: 在最後加入
+::::::::: - /etc/group: 在最後加入
+:*::
🌱Ubuntu NIS Client:
- 安裝NIS套件:
sudo apt install ypbind-mt nis - /etc/passwd、/etc/group、/etc/shadow、/etc/gshadow等檔案 最後加入一行
+ - /etc/nsswitch.conf: 更改加入紅色框部分
- /etc/hosts: 加入nis hostname
192.168.1.72 nis nis.nis-nfs.local
指加上一行即可,其他可由NIS server /etc/hosts(/var/yp/nis-nfs.local/hosts.byname取的定義 - /etc/yp.conf加入
domain nis-nfs.local server nis.nis-nfs.local - 執行ypdomainname設定domainname:
ypdomainname nis-nfs.local - /etc/defaultdomain:
- nis-nfs.local
- 執行
sudo systemctl enable ypbind
在系統啟用時即啟用NIS client ypbind
🌱FreeBSD NFS Server設定:
使用ZFS 檔案系統,有關ZFS操作說明請參閱(ZFS介紹--在FreeBSD與ubuntu環境下實作(ZFS file system introduction and experiment in FreeBSD and ubuntu))
✅啟用FreeBSD NFS Server功能:
- /etc/rc.conf:
rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_enable="YES"
rpc_lockd_enable="YES" # 有些應用程式需要lock
rpc_statd_enable="YES" - /etc/exports:
設定分享的目錄,例如: "/usr/src -ro -network 192.168.1.0/24"
但是以ZFS dataset為NFS share directory時改用設定 zfs set sharenfs property,不用再/etc/exports設定,會自動在/etc/zfs/exports中加入設定。例如,分享兩個dataset,一個做為users的home directory,讓user可在不同機器間漫遊。另外一個dataset作為共用資料夾,並透過ACL設定存取權限。
zfs set sharenfs="-alldirs -maproot=root -network 192.168.1.0/24" datastor/nfshome
zfs set sharenfs="alldirs -network 192.168.1.0/24" datastor/sharedir
✅啟用FreeBSD NFS client功能:
- /etc/rc.conf:
nfs_client_enable="YES" - /etc/fstab:
192.168.1.71:/datastor/nfshome /nsfhome nfs rw 0 0
讓系統啟用及mount nfs home directory
✅啟用Ubuntu NFS client功能:
- 安裝套件:
sudo apt install zfs-common - /etc/fstab:
192.168.1.71:/datastor/nfshome /nsfhome nfs rw 0 0
沒有留言:
張貼留言