Saya akan merinci pembuatan titik pemasangan NFS pada klien Windows 10 di Bagian 2 dari seri ini. Untuk saat ini mari kita fokus pada server Ubuntu yang menawarkan penyimpanan NFS dan klien Ubuntu yang mencoba menghubungkannya.
Pengaturan
Server NFS saya akan didasarkan pada Ubuntu 18.04 LTS. Anda dapat menggunakan distro Linux atau FreeBSD favorit Anda, atau OS lain yang mendukung OpenZFS. Alasan saya menggunakan Ubuntu 18.04 adalah bahwa itu cukup populer dan akan sangat mengurangi penghalang masuk.
NFS seharusnya hanya tersedia di LAN saya yang memiliki subnet mask 255.255.255.0 dan 192.168.0.1 sebagai gerbang default. Dalam bahasa Inggris biasa, ini berarti bahwa semua perangkat yang terhubung ke jaringan rumah saya (WiFi dan Ethernet, dkk) akan memiliki alamat IP mulai dari 192.168.0.2 sampai 192.168.0.254.
Server NFS akan dikonfigurasi untuk mengizinkan hanya perangkat dengan alamat IP yang disebutkan di atas saja yang memiliki akses ke server NFS. Ini akan memastikan bahwa hanya perangkat yang terhubung ke LAN saya yang mengakses file saya dan dunia luar tidak dapat mengaksesnya. Jika Anda memiliki pengaturan 'Wifi terbuka' atau jika keamanan pada titik akhir router Anda meragukan, ini tidak akan menjamin keamanan apa pun.
Saya tidak akan merekomendasikan menjalankan NFS melalui internet publik tanpa tindakan keamanan tambahan.
Terakhir, perintah yang dijalankan di server NFS memiliki prompt, server $ dan perintah yang akan dijalankan di sisi klien memiliki prompt client $
Membuat kumpulan OpenZFS dan Dataset
1. Membuat zpool
Jika Anda sudah menjalankan dan menjalankan zpool, lewati langkah ini. Di server NFS saya, yang menjalankan Ubuntu 18.04 LTS server, saya pertama kali menginstal OpenZFS.
server $ sudo apt install zfsutils-linuxSelanjutnya kita akan membuat daftar semua perangkat blok yang tersedia, untuk melihat disk (dan partisi) baru yang menunggu untuk diformat dengan zfs.
$ lsblkNAMA MAJ:MIN RM UKURAN RO TYPE MOUNTPOINT
loop0 7:0 0 89.5M 1 putaran /snap/core/6130
loop1 7:1 0 86.9M 1 putaran /snap/core/4917
loop2 7:2 0 91.1M 1 putaran /snap/core/6259
sda 8:0 0 50G 0 disk
sda1 8:1 0 1M 0 bagian
sda2 8:2 0 50G 0 bagian /
sdb 8:16 0 931G 0 disk
sdc 8:32 0 931G 0 disk
sr0 11:0 1 1024M 0 rom
Contoh tipikal ditunjukkan di atas, tetapi konvensi penamaan Anda mungkin sangat berbeda. Anda harus menggunakan penilaian Anda sendiri, dan sangat berhati-hati tentang hal itu. Anda tidak ingin memformat disk OS Anda secara tidak sengaja. Misalnya, partisi sda1 jelas memiliki sistem file root sebagai titik pemasangannya sehingga tidak bijaksana untuk menyentuhnya. Jika Anda menggunakan disk baru, kemungkinan disk tersebut tidak memiliki titik pemasangan atau jenis partisi apa pun.
Setelah Anda mengetahui nama perangkat Anda, kami akan menggunakan perintah zpool create untuk memformat beberapa perangkat blok ini (disebut sdb dan sdc) menjadi zpool dengan satu vdev yang terdiri dari dua disk cermin.
server $ sudo zpool buat cermin tangki sdb sdcserver $ sudo zpool tangki status
tangki status zpool
kolam renang: tangki
negara: ONLINE
pindaian: tidak ada yang diminta
konfigurasi:
NAMA NEGARA BACA TULIS CKSUM
tangki ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
kesalahan: Tidak ada kesalahan data yang diketahui
Ke depan, Anda dapat menambahkan disk dalam set dua (disebut vdev) untuk memperbesar ukuran zpool ini, disk baru akan muncul sebagai mirror-1, mirror-2 dll. Anda tidak perlu membuat zpool seperti yang saya lakukan, Anda dapat menggunakan mirroring dengan lebih banyak disk, Anda dapat menggunakan striping tanpa redundansi tetapi kinerja yang lebih baik, atau Anda dapat menggunakan RAIDZ. Anda dapat mempelajarinya lebih lanjut di sini.
Pada akhirnya, yang penting adalah kita telah membuat zpool bernama tank. Di mana NFS bersama akan hidup. Mari kita buat dataset yang akan dibagikan. Pertama-tama pastikan bahwa kolam, bernama 'tangki', sudah terpasang. Titik pemasangan default adalah '/ tank' .
server $ sudo zfs memasang tangkiserver $ sudo zfs create tank/nfsshare #create a new dataset on top of the pool
Mengatur Izin
Saat berbagi direktori NFS, pengguna super pada sistem klien tidak memiliki akses ke apa pun yang dibagikan. Sementara pengguna super sisi klien mampu melakukan apa saja di mesin klien, pemasangan NFS secara teknis bukan bagian dari mesin klien. Jadi mengizinkan operasi atas nama pengguna super sisi klien yang dipetakan sebagai pengguna super sisi server dapat mengakibatkan masalah keamanan. Secara default, NFS memetakan tindakan superuser sisi klien ke siapa pun: pengguna nogroup dan grup pengguna. Jika Anda bermaksud mengakses file yang di-mount sebagai root, maka dataset di server NFS kami juga harus memiliki izin yang sama,
server $ sudo chown none:nogroup /tank/nfsshareServer NFS akan menjalankan tindakan apa pun oleh root sisi klien sebagai pengguna bukan siapa-siapa, jadi izin di atas akan memungkinkan operasi untuk dilakukan.
Jika Anda menggunakan nama pengguna (biasa) yang berbeda, seringkali lebih mudah untuk memiliki pengguna dengan nama pengguna yang sama persis di kedua sisi.
Membuat berbagi NFS
Setelah Zpool dibuat, Anda harus menginstal paket server nfs dari manajer paket Anda:
server $ sudo apt install nfs-kernel-serverSecara tradisional, server NFS menggunakan file /etc/exports untuk mendapatkan daftar klien yang disetujui dan file yang akan mereka akses. Namun, kami akan menggunakan fitur bawaan ZFS untuk mencapai hal yang sama.
Cukup gunakan perintah:
server $ sudo zfs set sharenfs=”on” /tank/nfsshareSebelumnya, saya menyinggung hanya memberikan IP tertentu akses. Anda dapat melakukannya sebagai berikut:
server $ sudo zfs set sharenfs="[email protected]/24" tank/nfsshare'rw' adalah singkatan dari izin baca-tulis, dan diikuti oleh kisaran IP. Pastikan nomor port 111 dan 2049 terbuka di firewall Anda. Jika Anda menggunakan ufw, Anda dapat memeriksanya dengan menjalankan:
status server $ ufwCatat IP server Anda di LAN, dengan menggunakan perintah ifconfig atau ip addr. Sebut saja itu server.aku p
Pemasangan Sisi Klien
Setelah share dibuat, Anda dapat memasangnya di mesin klien Anda, dengan menjalankan perintah:
klien $ mount -t nfs server.ip:/tank/nfsshare /mntIni akan memasang share NFS pada folder /mnt tetapi Anda dapat dengan mudah memilih titik pemasangan lain pilihan Anda.
Kesimpulan
Berbagi file mungkin merupakan aspek terpenting dari administrasi sistem. Ini meningkatkan pemahaman Anda tentang tumpukan penyimpanan, jaringan, izin pengguna, dan hak istimewa. Anda akan segera menyadari pentingnya Prinsip Privilege Terkecil - Artinya, hanya memberi pengguna akses paling sederhana yang diperlukan untuk pekerjaannya.
Anda juga akan belajar tentang interoperabilitas antara sistem operasi yang berbeda. Pengguna Windows dapat mengakses file NFS, begitu juga pengguna Mac dan BSD. Anda tidak dapat membatasi diri Anda pada satu OS ketika berhadapan dengan jaringan mesin yang semuanya memiliki konvensi dan bahasa mereka sendiri. Jadi silakan dan bereksperimen dengan share NFS Anda your. Saya harap Anda belajar sesuatu.