NFS atau Network File System adalah protokol jaringan yang memungkinkan Anda memasang sistem file jarak jauh melalui jaringan. Protokol NFS menggunakan arsitektur server-client, server NFS yang menyediakan semua direktori atau partisi yang siap diakses dan di-mount, dan klien yang menggunakan protokol rpcbind untuk mengakses semua direktori dan sistem file melalui koneksi jaringan internal.
Status terkini dari protokol Sistem File Jaringan dijelaskan di bawah ini.
1. NFSv2 dan NFSv3 masih didukung oleh sistem operasi utama, tetapi untuk alasan keamanan, Anda harus membatasi akses server NFS ke jaringan lokal tepercaya. NFSv2 dan NFSv3 direkomendasikan untuk jenis penerapan kecil dan menengah.
2. Protokol NFSv4 menyediakan fitur keamanan dasar seperti otentikasi dan enkripsi, tetapi protokol ini bergantung pada Kerberos untuk bagian tersebut. Jadi, Anda perlu menambahkan konfigurasi tambahan untuk menggunakan NFSv4 dengan fitur keamanan dasar.
Untuk tutorial ini, Anda akan mempelajari cara menginstal dan mengkonfigurasi Server NFS pada Debian 11 Bullseye terbaru. Anda akan menginstal server NFS dan mengamankan akses dengan membatasi host menggunakan firewall ufw. Dan kemudian Anda akan mempelajari cara mengatur klien untuk memasang direktori dan partisi yang disediakan oleh server NFS, dan mengatur server NFS yang dipasang secara otomatis saat sistem boot melalui konfigurasi '/etc/fstab'.
Prasyarat
1. Kami akan menggunakan dua mesin berbeda pada jaringan yang sama seperti di bawah ini.
- debian64 - 192.168.1.25 - sebagai Server NFS
- client-debian - 192.168.1.30 - sebagai klien
2. Pengguna root atau pengguna dengan hak akses root. Pengguna ini akan digunakan untuk menginstal paket baru dan mengedit konfigurasi sistem.
Memasang dan Mengonfigurasi Server NFS
Pada awalnya, Anda akan menginstal paket server nfs dan menyiapkan direktori bersama untuk klien.
1. Jalankan perintah berikut untuk menginstal paket nfs-server.
apt install nfs-kernel-server rpcbind
Ketik 'y ' dan tekan 'Enter ' untuk melanjutkan penginstalan.
2. Sekarang buat direktori baru yang ingin Anda bagikan dengan klien. Untuk contoh ini, Anda akan membagikan dua direktori '/mnt/shared' dan '/srv/data' kepada klien. Dan jangan berbagi direktori root '/' default atau direktori '/etc'.
Buat direktori bersama baru menggunakan perintah mkdir di bawah ini.
mkdir -p /mnt/shared
mkdir -p /srv/data
Buat file baru di setiap direktori dengan menjalankan perintah echo di bawah ini.
echo "test file nfs server" > /mnt/shared/test-file.txt
echo "test file nfs server" > /srv/data/test-file.txt
Sekarang ubah kepemilikan kedua direktori bersama menjadi 'nobody:nogroup' dengan menjalankan perintah di bawah ini.
chown nobody:nogroup /mnt/shared /srv/data
Dan Anda siap untuk mengonfigurasi Server NFS.
3. Untuk mengkonfigurasi direktori bersama untuk nfs, edit konfigurasi '/etc/exports' menggunakan editor nano.
nano /etc/exports
Di bawah ini adalah beberapa contoh konfigurasi untuk beberapa skenario
Bagikan direktori untuk klien host tunggal dengan akses baca-tulis.
/mnt/shared 192.168.1.30(rw,sync,no_subtree_check)
Bagikan direktori untuk beberapa klien, termasuk grup jaringan host.
/srv/data 172.16.1.0/24(rw,sync,no_root_squash,no_subtree_check) 10.11.12.0/24(rw,no_subtree_check)
Bagikan direktori untuk satu klien dengan akses hanya baca.
/srv/data 192.168.1.30(ro)
Di bawah ini adalah contoh konfigurasi terakhir.
/mnt/shared 192.168.1.30(rw,sync,no_subtree_check)
/srv/data 172.16.1.0/24(rw,sync,no_root_squash,no_subtree_check) 10.11.12.0/24(rw,no_subtree_check)
/srv/data 192.168.1.30(ro,no_root_squash)
Simpan konfigurasi dengan menekan 'Ctrl+x tombol ', ketik 'y ', lalu tekan 'Enter ' untuk keluar.
Opsi yang harus Anda ketahui:
- rw :mengizinkan akses baca dan tulis untuk server dan klien NFS ke volume/direktori.
- ro :izinkan akses hanya-baca untuk klien.
- sinkronisasi :membalas permintaan hanya setelah perubahan telah dilakukan ke penyimpanan yang stabil. Opsi ini diaktifkan secara default.
- tidak sinkron :memungkinkan server NFS melanggar protokol NFS dan membalas permintaan sebelum perubahan apa pun yang dibuat oleh permintaan itu dilakukan ke penyimpanan stabil.
- subtree_check :izinkan dan aktifkan pemeriksaan subpohon. Opsi ini diaktifkan secara default.
- no_subtree_check :menonaktifkan pemeriksaan subpohon, yang memiliki implikasi keamanan ringan, tetapi dapat meningkatkan keandalan dalam beberapa keadaan.
- root_squash :Memetakan permintaan dari uid/gid 0 ke uid/gid anonim. Perhatikan bahwa ini tidak berlaku untuk uid atau gid lain yang mungkin sama sensitifnya, seperti bin pengguna atau staf grup.
- no_root_sqash :menonaktifkan root squashing. Opsi ini terutama berguna untuk klien tanpa disk.
4. Selanjutnya, restart layanan nfs-server untuk menerapkan konfigurasi baru menggunakan perintah di bawah ini.
systemctl restart nfs-server
Sekarang periksa dan verifikasi layanan nfs-server menggunakan perintah berikut.
systemctl is-enabled nfs-server
systemctl status nfs-server
Dan Anda akan mendapatkan output yang sama seperti di bawah ini.
Seperti yang dapat dilihat, layanan nfs-server 'diaktifkan' dan akan berjalan secara otomatis saat sistem dinyalakan. Dan status nfs-service saat ini adalah 'active (exited)', yang berarti layanan sedang berjalan, tetapi systemd tidak dapat menemukan daemon untuk dipantau.
Mengamankan Server NFS dengan Firewall UFW
Untuk tahap ini, Anda akan menginstal firewall ufw dan membatasi akses ke server NFS untuk host dan jaringan tertentu saja.
1. Jalankan perintah apt di bawah ini untuk menginstal paket ufw.
apt install ufw
Ketik 'y ' dan tekan 'Enter ' untuk mengonfirmasi dan melanjutkan penginstalan.
2. Jika semua instalasi selesai, tambahkan layanan SSH ke aturan firewall ufw menggunakan perintah di bawah ini.
ufw allow ssh
3. Selanjutnya, jalankan perintah ufw di bawah ini untuk menambahkan host atau jaringan ke firewall ufw Anda.
Izinkan host dengan alamat IP '192.168.1.30 ' untuk mengakses server NFS.
ufw allow from 192.168.1.30 to any port nfs
Izinkan blok jaringan untuk mengakses server NFS.
ufw allow from 172.16.1.0/24 to any port nfs
ufw allow from 10.11.12.0/24 to any port nfs
4. Setelah itu, aktifkan ufw firewall menggunakan perintah berikut.
ufw enable
Ketik 'y ' dan tekan 'Enter ' untuk memulai dan mengaktifkan firewall ufw.
Sekarang periksa status firewall ufw menggunakan perintah di bawah ini.
ufw status
Dan Anda akan melihat output serupa seperti di bawah ini.
Seperti yang dapat dilihat, status firewall ufw adalah 'aktif', dan layanan NFS pada port default '2049' tersedia pada daftar aturan.
Menyiapkan Klien NFS
Untuk langkah ini, Anda akan mengonfigurasi klien untuk mengakses direktori dan partisi bersama di server NFS.
1. Pertama, instal 'nfs-common ' paket menggunakan perintah apt di bawah ini.
apt install nfs-common
Ketik 'y ' dan tekan 'Enter ' untuk mengonfirmasi dan melanjutkan penginstalan.
2. Setelah instalasi selesai, buat direktori baru untuk direktori mount.
mkdir -p /nfs/shared; mkdir -p /nfs/data
3. Untuk me-mount direktori atau partisi nfs dari server NFS, jalankan perintah mount di bawah ini.
mount 192.168.1.25:/mnt/shared /nfs/shared
mount 192.168.1.25:/srv/data /nfs/data
Perintah mount dasar untuk mengakses NFS adalah dengan menentukan alamat IP server NFS '192.168.1.25' dengan direktori mount jalur '/mnt/shared' dan '/srv/data' dan jalur target di sisi klien '/nfs /shared' dan direktori '/nfs/data'.
4. Selanjutnya, jalankan perintah berikut untuk memverifikasi bahwa pemasangan NFS berhasil.
df -h
Selain itu, Anda dapat memeriksa file yang baru saja Anda buat di atas dengan menjalankan perintah berikut.
cat /nfs/shared/test-file.txt
cat /nfs/data/test-file.txt
Di bawah ini adalah output yang akan Anda dapatkan.
Seperti yang terlihat, Anda telah berhasil memasang server NFS ke direktori '/nfs/shared' dan '/nfs/data', dan Anda akan dapat membaca file yang baru saja Anda buat di atas.
Verifikasi Akses Baca dan Tulis ke Server NFS
Untuk tahap ini, Anda akan memverifikasi akses baca dan tulis ke direktori server NFS.
1. ubah direktori kerja menjadi '/nfs/shared', periksa file yang tersedia di direktori tersebut, dan tampilkan konten file tersebut menggunakan perintah seperti di bawah ini.
cd /nfs/shared
ls
cat test-file.txt
Selanjutnya, buat file baru menggunakan perintah echo di bawah ini.
echo "This file from nfs-client" > client.txt
cat client.txt
Jika Anda dapat membuat file 'client.txt', akses tulis ke direktori NFS '/nfs/share' berhasil, seperti yang dijelaskan dalam konfigurasi di bawah ini.
/mnt/shared 192.168.1.30(rw,sync,no_subtree_check)
2. Selanjutnya, pada konfigurasi yang telah Anda buat di atas, cline hanya memiliki akses untuk membaca direktori NFS '/nfs/data', seperti yang Anda lihat pada konfigurasi di bawah ini.
/srv/data 192.168.1.30(ro,no_root_squash)
Ubah direktori kerja menjadi '/nfs/data', periksa file di dalamnya, periksa file yang tersedia di direktori tersebut, dan tampilkan konten file tersebut menggunakan perintah seperti di bawah ini.
cd /nfs/data
ls
cat test-file.txt
Selanjutnya, jika Anda ingin membuat file baru, Anda akan mendapatkan error 'Read-only file system'. Karena Anda hanya memiliki izin untuk 'hanya-baca' seperti yang dijelaskan pada konfigurasi teratas.
echo "This is a file from client to data" > client-data.txt
Di bawah ini adalah output serupa yang akan Anda dapatkan.
Izin baca dan tulis dicocokkan dengan konfigurasi server NFS saat ini.
Pasang NFS saat boot
Untuk tahap ini, Anda akan mempelajari cara me-mount direktori/partisi NFS pada boot/startup sistem melalui konfigurasi '/etc/fstab'.
1. Edit '/etc/fstab' konfigurasi menggunakan editor nano.
nano /etc/fstab
Ubah detail alamat IP, direktori bersama, dan direktori pemasangan jalur dengan milik Anda, lalu tempel konfigurasi.
192.168.1.25:/mnt/shared /nfs/shared nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.1.25:/srv/data /nfs/data nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Simpan konfigurasi dengan menekan 'Ctrl+x ' dan ketik 'y ', lalu tekan 'Enter ' untuk keluar.
2. Selanjutnya, verifikasi '/etc/fstab ' konfigurasi sudah benar dengan menggunakan perintah berikut.
Umount semua direktori mount menggunakan perintah di bawah ini.
umount -R /nfs/shared
umount -R /nfs/data
Jalankan perintah berikut untuk memasang semua sistem file yang tersedia pada file konfigurasi '/etc/fstab'.
mount -a
Pastikan Anda tidak memiliki kesalahan.
Sekarang jalankan perintah berikut untuk menampilkan semua sistem file yang terpasang.
df -h
Jika konfigurasi Anda benar, Anda akan melihat server NFS dipasang ke direktori target seperti yang dijelaskan pada konfigurasi '/etc/fstab'.
3. Anda dapat mem-boot ulang mesin klien dan login kembali, lalu verifikasi kembali menggunakan perintah seperti di bawah ini.
df -h
Dan Anda akan melihat server NFS secara otomatis munted pada sistem boot pada mesin klien melalui file '/etc/fstab'.
Kesimpulan
Selamat! Anda telah berhasil menginstal NFS Server pada Debian 11 Bullseye terbaru. Selain itu, Anda telah berhasil mengamankan penerapan Server NFS menggunakan firewall ufw, menyiapkan mesin klien NFS, dan menyetel pemasangan otomatis menggunakan konfigurasi '/etc/fstab'. Untuk langkah selanjutnya, Anda mungkin juga tertarik dengan protokol NFSv4, yang menyediakan mekanisme keamanan seperti enkripsi dan otentikasi melalui server Kerberos.