Arch Linux

Contoh servis prinsipal di hos dan vm:

  1. nfs/kdc.archey.loc@CLUSTER.LOC
  2. 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:

Tentang Blog & Penulis

Topik perbincangan dalam blog ini merangkumi Linux dan perisian sumber terbuka, Virtual Machine, serta Typesetting system.
Fokus semasa: Full Stack Development
Minat sampingan: Analisis Data
Bakat tersembunyi hamba (yang patutlah dipendam buat selama-lamanya): Menyanyi dan melukis.

Sumber dari Wallpaper Cave.