NFSv4 dengan Autentikasi Kerberos
Arch Linux
Contoh servis prinsipal di hos dan vm:
nfs/kdc.archey.loc@CLUSTER.LOC
nfs/master.debian.vm@CLUSTER.LOC
Konfigurasi NFS versi 4
idmapd.conf
Sunting fail di bawah, dengan menggantinkan Domain
kepada nama Kerberos REALM
:
/etc/idmapd.conf
[General]
Domain = cluster.loc
[Mapping]
Nobody-User = nobody
Nobody-Group = nobody
[Translation]
raihan@CLUSTER.LOC = raihan
Untuk konfigurasi NFS
tanpa Kerberos
, gantikan domain dengan nama domain yang ditetapkan di /etc/hosts
, e.g. jika FQDN
adalah kdc.archey.loc
, maka nama Domain
adalah archey.loc
.
exports
Contoh konfigurasi:
/etc/exports
# /etc/exports - exports(5) - directories exported to NFS clients
# Use `exportfs -arv` to reload.
#/srv/nfs4 kdc.archey.loc(rw,sync,fsid=0)
#/srv/nfs4/home kdc.archey.loc(rw,sync,nohide)
# NFSv4 root (fsid=0)
/srv/nfs4 192.168.0.0/24(rw,sync,fsid=0,no_subtree_check,sec=krb5p)
# Home dir under pseudo-root
/srv/nfs4/home 192.168.0.0/24(rw,sync,no_root_squash,no_subtree_check,sec=krb5p)
gssproxy.conf
Tetapkan entri [global]
dengan baris kosong:
/etc/gssproxy/gssproxy.conf
[global]
24-nfs-server.conf
Tetapan lalai (biarkan dengan entri di bawah):
/etc/gssproxy/24-nfs-server.conf
[service/nfs-server]
mechs = krb5
socket = /run/gssproxy.sock
cred_store = keytab:/etc/krb5.keytab
trusted = yes
kernel_nfsd = yes
euid = 0
Prinsipal Servis Kerberos untuk NFS
- Tambahkan prinsipal servis
nfs/full.hostname
pada fail keytab/etc/krb5.keytab
.
Aktifkan direktori dan daemons
bash
# Reload:
sudo exportfs -arv
# If there is stale kernel export tab, remove the file:
sudo rm -f /var/lib/nfs/etab /var/lib/nfs/rmtab
# `UFW` settings:
sudo ufw allow from 192.168.0.0/24 to any port 2049 proto tcp
# Activate the daemons:
sudo systemctl enable --now nfsv4-server nfs-idmapd gssproxy nfs-client.target rpc-gssd
# Display the exported directories:
showmount -e
# Create directories:
sudo mkdir -p /srv/nfs4/home/raihan
sudo mkdir -p /mnt/test # as `mountpoint`
# Change the ownership to the user, i.e. `raihan` in my case:
sudo chown raihan:raihan /srv/nfs4/home/raihan
# Mount the `root` directory:
sudo mount -t nfs4 -o sec=krb5p kdc.archey.loc:/ /mnt/test
# Run a test by writing to a file within the exported directory:
echo "Hello from kdc.archey.loc" > /mnt/test/home/raihan/greeting.txt
Uji dengan Direktori Baru di VM
Menggunakan VM Debian 13 sebagai contoh, berikut adalah langkah-langkahnya:
Tetapan di Hos
Kemas kini fail eksport
/etc/exports
...
# VM
/srv/nfs4/vmshare master.debian.vm(rw,sync,no_subtree_check,sec=krb5p)
Cipta Direktori dan Tetapkan Pemilikan
bash
sudo mkdir -p /srv/nfs4/vmshare
sudo chown raihan:raihan /srv/nfs4/vmshare
sudo chmod 700 /srv/nfs4/vmshare
Prinsipal Servis Kerberos untuk NFS
- Tambahkan prinsipal servis
nfs/full.hostname
yang dimiliki oleh VM pada fail keytab/etc/krb5.keytab
.
Proses di VM
Pemasangan pakej
bash
sudo apt install nfs-common nmap # `nmap` untuk uji rangkaian
Aktifkan Daemons
bash
sudo systemctl enable --now nfs-client.target rpc-gssd
Uji sama ada VM dapat bersambung dengan Hos pada port NFS
Contoh:
bash
nmap -p 2049 kdc.archey.loc
Starting Nmap 7.95 ( https://nmap.org ) at 2025-09-10 18:50 +08 Nmap scan report for kdc.archey.loc (192.168.0.50) Host is up (0.00043s latency).
PORT STATE SERVICE 2049/tcp open nfs
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
Mount Direktori
bash
sudo mkdir -p /mnt/vmshare
sudo mount -t nfs4 -o sec=krb5p kdc.archey.loc:/vmshare /mnt/vmshare
mount | grep nfs4
kdc.archey.loc:/vmshare on /mnt/vmshare type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=krb5p,clientaddr=192.168.0.101,local_lock=none,addr=192.168.0.50)
- Buat percubaan dengan menulis fail di hos dalam direktori
/srv/nfs4/vmshare
atau/mnt/test/vmshare
, manakala di VM, tambah baris entri pada fail yang sama dalam direktori/mnt/vmshare
.
Kali terakhir dikemaskini: