Saya akan memperincikan penciptaan titik pemasangan NFS pada klien Windows 10 dalam Bahagian 2 siri ini. Buat masa ini mari fokus pada pelayan Ubuntu yang menawarkan simpanan NFS dan pelanggan Ubuntu yang cuba menyambung ke sana.
Persediaan
Pelayan NFS saya akan berasaskan Ubuntu 18.04 LTS. Anda boleh menggunakan distro Linux kegemaran anda atau FreeBSD, atau OS lain yang menyokong OpenZFS. Sebab saya menggunakan Ubuntu 18.04 adalah bahawa ia cukup popular dan akan mengurangkan halangan masuk.
NFS sepatutnya hanya tersedia di LAN saya yang mempunyai subnet mask 255.255.255.0 dan 192.168.0.1 sebagai pintu masuk lalai. Dalam bahasa Inggeris biasa, ini bermaksud bahawa semua peranti yang disambungkan ke rangkaian rumah saya (WiFi dan Ethernet, et al) akan mempunyai alamat IP antara 192.168.0.2 hingga 192.168.0.254.
Pelayan NFS akan dikonfigurasi untuk membenarkan hanya peranti dengan alamat IP yang disebutkan di atas sahaja yang dapat mengakses pelayan NFS. Ini akan memastikan bahawa hanya peranti yang telah menyambung ke LAN saya yang mengakses fail saya dan dunia luar tidak dapat mengaksesnya. Sekiranya anda mempunyai persediaan 'Wifi terbuka' atau jika keselamatan di titik akhir penghala anda meragukan, ini tidak akan menjamin keselamatan.
Saya tidak akan mengesyorkan menjalankan NFS melalui internet awam tanpa langkah keselamatan tambahan.
Terakhir, arahan yang dijalankan di pelayan NFS mempunyai arahan, pelayan $ dan perintah yang akan dijalankan di sisi klien mempunyai pelanggan yang cepat $
Membuat kumpulan dan Dataset OpenZFS
1. Membuat zpool
Sekiranya anda sudah mempunyai zpool dan berjalan, langkau langkah ini. Pada pelayan NFS saya, yang menjalankan Ubuntu 18.04 pelayan LTS, saya mula-mula memasang OpenZFS.
pelayan $ sudo apt pasangkan zfsutils-linuxSeterusnya kami akan menyenaraikan semua peranti blok yang tersedia, untuk melihat cakera baru (dan partisi) yang menunggu untuk diformat dengan zfs.
$ lsblkNAMA MAJ: MIN RM SAIZ RO JENIS MOUNTPOINT
gelung0 7: 0 0 89.Gelung 5M 1 / snap / inti / 6130
gelung1 7: 1 0 86.Gelung / snap / teras 9M 1/4917
gelung2 7: 2 0 91.Gelung 1M / snap / teras / 6259 1M
sda 8: 0 0 50G 0 cakera
├─sda1 8: 1 0 1M 0 bahagian
└─sda2 8: 2 0 50G 0 bahagian /
sdb 8:16 0 931G 0 cakera
sdc 8:32 0 931G 0 cakera
sr0 11: 0 1 1024M 0 rom
Contoh biasa ditunjukkan di atas, tetapi konvensyen penamaan anda mungkin sangat berbeza. Anda harus menggunakan pertimbangan anda sendiri, dan sangat berhati-hati mengenainya. Anda tidak mahu memformat cakera OS anda secara tidak sengaja. Sebagai contoh, partisi sda1 jelas mempunyai sistem fail root sebagai titik pemasangannya sehingga tidak bijak untuk menyentuhnya. Sekiranya anda menggunakan cakera baru, kemungkinan mereka tidak mempunyai titik pemasangan atau partition apa pun.
Setelah anda mengetahui nama peranti anda, kami akan menggunakan perintah buat zpool untuk memformat beberapa peranti blok ini (disebut sdb dan sdc) menjadi zpool dengan vdev tunggal yang terdiri daripada dua cakera cermin.
pelayan $ sudo zpool buat tangki cermin sdb sdcpelayan $ sudo status tangki zpool
tangki status zpool
kolam: tangki
nyatakan: ONLINE
imbasan: tiada yang diminta
konfigurasi:
NAMA NEGERI BACA MENULIS CKSUM
tangki ONLINE 0 0 0
cermin-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
ralat: Tidak ada ralat data yang diketahui
Melangkah ke hadapan, anda boleh menambah cakera dalam set dua (disebut vdev) untuk mengembangkan ukuran zpool ini, cakera baru akan muncul sebagai cermin-1, cermin-2 dan lain-lain. Anda tidak perlu membuat zpool anda seperti yang saya lakukan, anda boleh menggunakan mirroring dengan lebih banyak disk, anda boleh menggunakan striping tanpa kelebihan tetapi prestasi yang lebih baik, atau anda boleh menggunakan RAIDZ. Anda boleh mengetahui lebih lanjut mengenainya di sini.
Pada penghujung hari, yang penting ialah kami telah membuat tangki bernama zpool. Setelah itu NFS yang dikongsi akan disiarkan. Mari buat set data yang akan dikongsi. Mula-mula pastikan kolam yang dinamakan 'tangki' dipasang. Titik pemasangan lalai adalah '/ tangki' .
pelayan $ sudo zfs mount tankpelayan $ sudo zfs buat tangki / nfsshare #ciptakan set data baru di atas kolam
Menetapkan Kebenaran
Semasa berkongsi direktori NFS, superuser pada sistem pelanggan tidak mempunyai akses kepada apa-apa yang ada di bahagian tersebut. Walaupun pengguna sisi pelanggan mampu melakukan apa sahaja pada mesin pelanggan, pemasangan NFS secara teknikal bukan merupakan bahagian mesin pelanggan. Oleh itu, membenarkan operasi bagi pihak pengguna super-sisi yang dipetakan sebagai pelayan sisi pelayan boleh mengakibatkan masalah keselamatan. Secara lalai, NFS memetakan tindakan superuser sisi klien kepada sesiapa sahaja: pengguna dan kumpulan pengguna nogroup. Sekiranya anda bermaksud mengakses fail yang dipasang sebagai root, maka set data di pelayan NFS kami juga harus mempunyai kebenaran yang sama,
pelayan $ sudo chown tiada siapa: nogroup / tank / nfssharePelayan NFS akan menjalankan apa-apa tindakan oleh root sisi klien sebagai pengguna tidak ada, jadi kebenaran di atas akan membolehkan operasi dijalankan.
Sekiranya anda menggunakan nama pengguna (biasa) yang lain, selalunya mudah untuk mempunyai pengguna dengan nama pengguna tepat yang sama di kedua-dua belah pihak.
Membuat bahagian NFS
Sebaik sahaja anda membuat Zpool, anda harus memasang pakej pelayan nfs dari pengurus pakej anda:
pelayan $ sudo apt pasang nfs-kernel-serverSecara tradisinya, pelayan NFS menggunakan / etc / export file untuk mendapatkan senarai pelanggan yang diluluskan dan fail yang akan mereka akses. Walau bagaimanapun, kami akan menggunakan ciri dalaman ZFS untuk mencapai yang sama.
Cukup gunakan arahan:
pelayan $ sudo zfs tetapkan sharenfs = "on" / tank / nfsshareSebelumnya, saya menyinggung hanya memberi akses kepada IP tertentu. Anda boleh melakukannya seperti berikut:
pelayan $ sudo zfs set sharenfs = "[dilindungi e-mel] / 24" tangki / nfsshare'Rw' bermaksud kebenaran baca-tulis, dan diikuti oleh rangkaian IP. Pastikan nombor port 111 dan 2049 terbuka di firewall anda. Sekiranya anda menggunakan ufw, anda boleh memeriksanya dengan menjalankan:
status $ ufw pelayanBuat nota IP pelayan anda di LAN, dengan menggunakan perintah ifconfig atau ip addr. Mari namakannya sebagai pelayan.ip
Pemasangan Sisi Pelanggan
Setelah bahagian dibuat, anda boleh memasangnya di mesin pelanggan anda, dengan menjalankan perintah:
pelanggan $ mount -t nfs pelayan.ip: / tank / nfsshare / mntIni akan memasangkan folder NFS pada folder / mnt tetapi anda boleh dengan mudah memilih titik pemasangan lain pilihan anda.
Kesimpulannya
Perkongsian fail mungkin merupakan aspek terpenting dalam pentadbiran sistem. Ini meningkatkan pemahaman anda mengenai timbunan storan, rangkaian, izin pengguna dan hak istimewa. Anda akan dengan cepat menyedari betapa pentingnya Principle of Least Privilege - Maksudnya, hanya memberi pengguna akses paling minimum yang diperlukan untuk tugasnya.
Anda juga akan belajar mengenai interoperabiliti antara sistem operasi yang berbeza. Pengguna Windows boleh mengakses fail NFS, begitu juga pengguna Mac dan BSD. Anda tidak boleh membataskan diri anda pada satu OS ketika berurusan dengan rangkaian mesin yang semuanya mempunyai konvensi dan bahasa biasa mereka sendiri. Oleh itu, teruskan dan bereksperimen dengan bahagian NFS anda. Saya harap anda belajar sesuatu.