एंड्रॉयड

Ubuntu 18.04 पर nfs सर्वर को कैसे संस्थापित और कॉन्फ़िगर किया जाए

How to configure PXE Network Boot Server for Ubuntu 18.04 Desktop

How to configure PXE Network Boot Server for Ubuntu 18.04 Desktop

विषयसूची:

Anonim

नेटवर्क फाइल सिस्टम (एनएफएस) एक वितरित फाइल सिस्टम प्रोटोकॉल है जो आपको एक नेटवर्क पर दूरस्थ निर्देशिकाओं को साझा करने की अनुमति देता है। एनएफएस के साथ, आप अपने सिस्टम पर दूरस्थ निर्देशिकाओं को माउंट कर सकते हैं और दूरस्थ मशीन पर फाइलों के साथ काम कर सकते हैं जैसे कि वे स्थानीय फाइलें थीं।

NFS प्रोटोकॉल डिफ़ॉल्ट रूप से एन्क्रिप्ट नहीं किया गया है और सांबा के विपरीत, यह उपयोगकर्ता प्रमाणीकरण प्रदान नहीं करता है। सर्वर तक पहुंच ग्राहकों के आईपी पते या होस्टनाम द्वारा प्रतिबंधित है।

इस ट्यूटोरियल में, हम Ubuntu 18.04 पर NFSv4 सर्वर सेट करने के तरीके के बारे में बताएंगे। हम आपको यह भी दिखाएंगे कि क्लाइंट पर एनएफएस फाइल सिस्टम कैसे माउंट किया जाए।

आवश्यक शर्तें

यह उदाहरण मानता है कि आपके पास एक सर्वर है जो Ubuntu 18.04 पर चल रहा है और दूसरा कोई अन्य लिनक्स वितरण चला रहा है। सर्वर और क्लाइंट को एक निजी नेटवर्क पर एक दूसरे के साथ संवाद करने में सक्षम होना चाहिए। यदि आपका होस्टिंग प्रदाता निजी आईपी पते प्रदान नहीं करता है, तो आप सार्वजनिक आईपी पते का उपयोग कर सकते हैं और केवल विश्वसनीय स्रोतों से पोर्ट 2049 पर यातायात की अनुमति देने के लिए सर्वर फ़ायरवॉल को कॉन्फ़िगर कर सकते हैं।

इस उदाहरण की मशीनों में निम्नलिखित IP हैं:

NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range

NFS सर्वर सेट अप करें

हम एनएफएस सर्वर को स्थापित और कॉन्फ़िगर करके शुरू करेंगे।

एनएफएस सर्वर स्थापित करना

संकुल अनुक्रमणिका को ताज़ा करें और NFS सर्वर पैकेज स्थापित करें:

sudo apt update sudo apt install nfs-kernel-server

एक बार स्थापना पूर्ण हो जाने के बाद, एनएफएस सेवाएं अपने आप शुरू हो जाएंगी।

डिफ़ॉल्ट रूप से, Ubuntu पर 18.04 NFS संस्करण 2 अक्षम है। संस्करण 3 और 4 सक्षम हैं। आप निम्न cat कमांड चलाकर सत्यापित कर सकते हैं:

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

NFSv2 अभी बहुत पुराना है, और इसे सक्षम करने का कोई कारण नहीं है।

NFS सर्वर कॉन्फ़िगरेशन विकल्प /etc/default/nfs-kernel-server और /etc/default/nfs-common फ़ाइलों में सेट होते हैं। हमारे मामले में डिफ़ॉल्ट सेटिंग्स पर्याप्त हैं।

फ़ाइल सिस्टम बनाना

NFSv4 सर्वर को कॉन्फ़िगर करते समय यह एक अच्छा अभ्यास है एक वैश्विक NFS रूट निर्देशिका का उपयोग करना और वास्तविक निर्देशिकाओं को माउंट माउंट बिंदु पर बांधना। इस उदाहरण में, हम /srv/nfs4 निदेशक का उपयोग NFS रूट के रूप में करेंगे।

हम दो निर्देशिकाओं ( /var/www और /opt/backups ) को साझा करने जा रहे हैं, विभिन्न कॉन्फ़िगरेशन सेटिंग्स के साथ, बेहतर तरीके से यह समझाने के लिए कि एनएफएस माउंट को कैसे कॉन्फ़िगर किया जा सकता है।

/var/www/ उपयोगकर्ता और समूह www-data स्वामित्व में है और /opt/backups root स्वामित्व में root

mkdir कमांड का उपयोग कर एक्सपोर्ट फाइलसिस्टम बनाएँ:

sudo mkdir -p /srv/nfs4/backups sudo mkdir -p /srv/nfs4/www

वास्तविक निर्देशिकाएं माउंट करें:

sudo mount --bind /opt/backups /srv/nfs4/backups sudo mount --bind /var/www /srv/nfs4/www

बाइंड माउंट को स्थायी बनाने के लिए /etc/fstab फ़ाइल खोलें:

sudo nano /etc/fstab

और निम्नलिखित पंक्तियाँ जोड़ें:

/ Etc / fstab

/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0

फ़ाइल सिस्टम निर्यात करना

अगला कदम एनएफएस सर्वर, शेयर विकल्प और उन क्लाइंट द्वारा निर्यात की जाने वाली फाइल सिस्टम को परिभाषित करना है, जिन्हें आपकी फाइल सिस्टम तक पहुंचने की अनुमति है। ऐसा करने के लिए /etc/exports फ़ाइल खोलें:

sudo nano /etc/exports /etc/exports फ़ाइल में ऐसी टिप्पणियां भी होती हैं जो यह बताती हैं कि किसी निर्देशिका को कैसे निर्यात किया जाए।

हमारे मामले में हमें www और backups निर्देशिकाओं को निर्यात करने की आवश्यकता है और केवल 192.168.33.0/24 नेटवर्क पर ग्राहकों से एक्सेस की अनुमति है:

/ Etc / निर्यात

/srv/nfs4 192.168.33.0/24(rw, sync, no_subtree_check, crossmnt, fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro, sync, no_subtree_check) 192.168.33.3(rw, sync, no_subtree_check) /srv/nfs4/www 192.168.33.110(rw, sync, no_subtree_check)

पहली पंक्ति में fsid=0 जो NFS रूट डायरेक्टरी /srv/nfs को परिभाषित करता है। इस एनएफएस वॉल्यूम पर पहुंच केवल 192.168.33.0/24 सबनेट से ग्राहकों को दी जाती है। crossmnt विकल्प को उन निर्देशिकाओं को साझा करने की आवश्यकता होती है जो किसी निर्यात की गई निर्देशिका की उप-निर्देशिका होती हैं।

दूसरी पंक्ति में दिखाया गया है कि एक फाइल सिस्टम के लिए कई निर्यात नियमों को कैसे निर्दिष्ट किया जाए। यह /srv/nfs4/backups डायरेक्टरी को एक्सपोर्ट करता है और पूरी 192.168.33.0/24 रेंज तक केवल पढ़ने की अनुमति देता है और दोनों 192.168.33.3 तक पहुंच को पढ़ते हैं और लिखते हैं। sync विकल्प एनएफएस को जवाब देने से पहले डिस्क में परिवर्तन लिखने के लिए कहता है।

अंतिम पंक्ति आत्म-व्याख्यात्मक होनी चाहिए। सभी उपलब्ध विकल्पों के बारे में अधिक जानकारी के लिए अपने टर्मिनल में man exports टाइप करें।

फ़ाइल सहेजें और शेयर निर्यात करें:

sudo exportfs -ra

जब आप /etc/exports फ़ाइल को संशोधित करते हैं, तो आपको हर बार ऊपर कमांड चलाने की आवश्यकता होती है। यदि कोई त्रुटि या चेतावनी है, तो उन्हें टर्मिनल पर दिखाया जाएगा।

वर्तमान सक्रिय निर्यात और उनके राज्य को देखने के लिए, उपयोग करें:

sudo exportfs -v

आउटपुट में उनके विकल्पों के साथ सभी शेयर शामिल होंगे। जैसा कि आप देख सकते हैं कि ऐसे विकल्प भी हैं जिन्हें हमने /etc/exports फ़ाइल में परिभाषित नहीं किया है। वे डिफ़ॉल्ट विकल्प हैं और यदि आप उन्हें बदलना चाहते हैं, तो आपको उन विकल्पों को स्पष्ट रूप से सेट करना होगा।

/srv/nfs4/backups 192.168.33.3(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(rw, wdelay, crossmnt, root_squash, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(ro, wdelay, root_squash, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)

Ubuntu पर, root_squash डिफ़ॉल्ट रूप से सक्षम है। यह एनएफएस सुरक्षा से संबंधित सबसे महत्वपूर्ण विकल्पों में से एक है। यह माउंटेड शेयरों पर रूट विशेषाधिकार रखने के लिए क्लाइंट से जुड़े रूट उपयोगकर्ताओं को रोकता है। यह रूट UID और GID को nobody को nobody nogroup UID / GID

क्लाइंट मशीनों पर उपयोग करने वाले उपयोगकर्ताओं के लिए, NFS क्लाइंट के उपयोगकर्ता और समूह आईडी के सर्वर पर उन लोगों के साथ मेल खाने की अपेक्षा करता है। एक अन्य विकल्प NFSv4 आइड्मैपिंग फीचर का उपयोग करना है जो उपयोगकर्ता और समूह आईडी को नाम और दूसरे तरीके से अनुवाद करता है।

बस। इस बिंदु पर, आपने अपने Ubuntu सर्वर पर एक NFS सर्वर स्थापित किया है। अब आप अगले चरण पर जा सकते हैं और ग्राहकों को कॉन्फ़िगर कर सकते हैं और एनएफएस सर्वर से जुड़ सकते हैं।

फ़ायरवॉल कॉन्फ़िगरेशन

मान लें कि आप 192.168.33.0/24 सबनेट से एक्सेस करने के लिए अपने फ़ायरवॉल को प्रबंधित करने के लिए UFW का उपयोग कर रहे हैं, आपको निम्न कमांड चलाने की आवश्यकता है:

sudo ufw allow from 192.168.33.0/24 to any port nfs

परिवर्तन चलाने की पुष्टि करने के लिए:

sudo ufw status

आउटपुट दिखाना चाहिए कि पोर्ट 2049 पर यातायात की अनुमति है:

To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)

NFS ग्राहक सेट करें

अब जब NFS सर्वर सेटअप हो गया है और शेयर निर्यात किए गए हैं तो अगला चरण क्लाइंट्स को कॉन्फ़िगर करता है और रिमोट फाइल सिस्टम को माउंट करता है।

आप MacOS और Windows मशीनों पर NFS शेयर भी माउंट कर सकते हैं लेकिन हम लिनक्स सिस्टम पर ध्यान केंद्रित करेंगे।

एनएफएस क्लाइंट स्थापित करना

क्लाइंट मशीनों पर हमें दूरस्थ NFS फ़ाइल सिस्टम को माउंट करने के लिए केवल आवश्यक उपकरण स्थापित करने की आवश्यकता होती है।

  • डेबियन और उबंटू पर एनएफएस क्लाइंट स्थापित करें

    पैकेज का नाम जिसमें डेबियन आधारित वितरणों पर बढ़ते एनएफएस फाइल सिस्टम के लिए प्रोग्राम शामिल हैं, एनएफ़एस nfs-common । इसे चलाने के लिए स्थापित करें:

    sudo apt update sudo apt install nfs-common

    CentOS और Fedora पर NFS क्लाइंट स्थापित करें

    Red Hat और उसके डेरिवेटिव पर nfs-utils पैकेज स्थापित करें:

    sudo yum install nfs-utils

बढ़ते फाइल सिस्टम

हम IP 192.168.33.110 साथ क्लाइंट मशीन पर काम करेंगे, जिसने /srv/nfs4/www फाइल सिस्टम तक पहुंच और पढ़ी है और केवल /srv/nfs4/backups फाइल सिस्टम तक पहुंच पढ़ी है।

माउंट बिंदुओं के लिए दो नई निर्देशिका बनाएं। आप इस निर्देशिका को अपने इच्छित स्थान पर बना सकते हैं।

sudo mkdir -p /backups sudo mkdir -p /srv/www

mount आदेश के साथ निर्यात फ़ाइल सिस्टम mount :

sudo mount -t nfs -o vers=4 192.168.33.10:/backups /backups sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www

जहां 192.168.33.10 एनएफएस सर्वर का आईपी है। आप IP पते के बजाय hostname का उपयोग कर सकते हैं लेकिन क्लाइंट मशीन द्वारा इसे फिर से शुरू करने की आवश्यकता है। यह आमतौर पर होस्टनाम को आईपी /etc/hosts फ़ाइल में मैप करके किया जाता है।

NFSv4 फाइलसिस्टम बढ़ते समय, आपको NFS रूट डायरेक्टरी को ommit करने की आवश्यकता होती है, इसलिए /srv/nfs4/backups बजाय आपको /srv/nfs4/backups का उपयोग करने की आवश्यकता होती है।

सत्यापित करें कि दूरस्थ फ़ाइल सिस्टम माउंट या df कमांड का उपयोग करके सफलतापूर्वक माउंट किया गया है:

df -h

कमांड सभी माउंटेड फाइल सिस्टम को प्रिंट करेगा। अंतिम दो पंक्तियाँ घुड़सवार शेयर हैं:

Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% / devtmpfs 236M 0 236M 0% /dev tmpfs 244M 0 244M 0% /dev/shm tmpfs 244M 4.5M 240M 2% /run tmpfs 244M 0 244M 0% /sys/fs/cgroup /dev/sda2 1014M 87M 928M 9% /boot tmpfs 49M 0 49M 0% /run/user/1000 192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.10:/www 9.7G 1.2G 8.5G 13% /srv/www

रिबूट पर mounts को स्थायी बनाने के लिए, /etc/fstab फ़ाइल खोलें:

sudo nano /etc/fstab

और निम्नलिखित पंक्तियाँ जोड़ें:

/ Etc / fstab

192.168.33.10:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.10:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0

एनएफएस फ़ाइल सिस्टम बढ़ते समय उपलब्ध विकल्पों के बारे में अधिक जानकारी प्राप्त करने के लिए, अपने टर्मिनल में man nfs एनएफएस टाइप करें।

रिमोट फाइल सिस्टम को माउंट करने का एक अन्य विकल्प या तो autofs टूल का उपयोग करना है या सिस्टम यूनिट बनाना है।

परीक्षण एनएफएस एक्सेस

आइए उनमें से प्रत्येक के लिए एक नई फ़ाइल बनाकर शेयरों तक पहुंच का परीक्षण करें।

सबसे पहले, touch कमांड का उपयोग करके /backups निर्देशिका में एक परीक्षण फ़ाइल बनाने का प्रयास touch :

sudo touch /backups/test.txt

/backup फ़ाइल सिस्टम को केवल-पढ़ने के लिए निर्यात किया जाता है और उम्मीद के Permission denied आपको एक Permission denied त्रुटि संदेश दिखाई देगा:

touch: cannot touch '/backups/test': Permission denied

इसके बाद, sudo कमांड का उपयोग करके रूट के रूप में /srv/www निर्देशिका में एक परीक्षण फ़ाइल बनाने का प्रयास करें:

sudo touch /srv/www/test.txt

फिर से, आप Permission denied संदेश देखेंगे।

touch: cannot touch '/srv/www': Permission denied

मान लें कि आपके पास क्लाइंट मशीन पर एक ही UID और GID साथ रिमोट सर्वर पर एक www-data उपयोग है (जो कि यदि उदाहरण के लिए होना चाहिए, तो आपने दोनों मशीनों पर nginx स्थापित किया है) आप उपयोगकर्ता के रूप में एक फ़ाइल बनाने के लिए परीक्षण कर सकते हैं www-data साथ:

sudo -u www-data touch /srv/www/test.txt

कमांड कोई आउटपुट नहीं दिखाएगा जिसका अर्थ है कि फ़ाइल सफलतापूर्वक बनाई गई थी।

यह सत्यापित करने के लिए /srv/www निर्देशिका में फ़ाइलें सूचीबद्ध करें:

ls -la /srv/www

आउटपुट को नई बनाई गई फ़ाइल दिखाना चाहिए:

drwxr-xr-x 3 www-data www-data 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 www-data www-data 0 Jun 23 21:58 index.html -rw-r--r-- 1 www-data www-data 0 Jun 23 22:18 test.txt

NFS फाइल सिस्टम को अनमाउंट करना

sudo umount /backups

यदि माउंट बिंदु को /etc/fstab फ़ाइल में परिभाषित किया गया है, तो सुनिश्चित करें कि आप लाइन को हटा दें या लाइन की शुरुआत में # जोड़कर टिप्पणी करें।

निष्कर्ष

इस ट्यूटोरियल में, हमने आपको दिखाया है कि एनएफएस सर्वर कैसे सेट करें और क्लाइंट मशीनों पर रिमोट फाइल सिस्टम कैसे माउंट करें। यदि आप उत्पादन में एनएफएस को लागू कर रहे हैं और समझदार डेटा साझा कर रहे हैं तो केर्बोस प्रमाणीकरण सक्षम करना एक अच्छा विचार है।

NFS के विकल्प के रूप में, आप SSH कनेक्शन पर दूरस्थ निर्देशिका को माउंट करने के लिए SSHFS का उपयोग कर सकते हैं। SSHFS को डिफ़ॉल्ट रूप से एन्क्रिप्ट किया गया है और कॉन्फ़िगर करने और उपयोग करने में बहुत आसान है।

यदि आपके कोई प्रश्न हैं, तो टिप्पणी छोड़ने के लिए स्वतंत्र महसूस करें।

ubuntu nfs माउंट टर्मिनल