एंड्रॉयड

सेंटो 8 पर एक एनएफ़एस सर्वर को कैसे स्थापित करें और कॉन्फ़िगर करें

अति सरल पूजा विधि जिससे आपकी दिन दोगुनी रात चौगुनी तरक्की होगी ।

अति सरल पूजा विधि जिससे आपकी दिन दोगुनी रात चौगुनी तरक्की होगी ।

विषयसूची:

Anonim

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

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

इस ट्यूटोरियल में, आप CentOS 8 पर NFSv4 सर्वर स्थापित करने के लिए आवश्यक चरणों से गुजरेंगे। हम आपको यह भी दिखाएंगे कि क्लाइंट पर NFS फाइल सिस्टम कैसे माउंट करें।

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

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

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

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

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

यह अनुभाग बताता है कि आवश्यक पैकेज कैसे स्थापित करें, एनएफएस निर्देशिकाओं को बनाएं और निर्यात करें और फ़ायरवॉल को कॉन्फ़िगर करें।

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

"Nfs-utils" पैकेज NFS सर्वर के लिए NFS उपयोगिताओं और डेमॉन प्रदान करता है। इसे स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:

sudo dnf install nfs-utils

एक बार इंस्टॉलेशन पूरा हो जाने पर, एनएफएस सेवा को टाइप करके सक्षम और शुरू करें:

sudo systemctl enable --now nfs-server

डिफ़ॉल्ट रूप से, CentOS 8 NFS संस्करण पर 3 और 4.x सक्षम हैं, संस्करण 2 अक्षम है। NFSv2 अभी बहुत पुराना है, और इसे सक्षम करने का कोई कारण नहीं है। इसे सत्यापित करने के लिए निम्नलिखित cat कमांड चलाएँ:

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

NFS सर्वर कॉन्फ़िगरेशन विकल्प /etc/nfsmount.conf और /etc/nfs.conf फ़ाइलों में सेट किए जाते हैं। डिफ़ॉल्ट सेटिंग्स हमारे ट्यूटोरियल के लिए पर्याप्त हैं।

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

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

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

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

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

sudo mkdir -p /srv/nfs4/{backups, 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

www और backups निर्देशिकाओं को निर्यात www और केवल 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(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(sync, wdelay, hide, crossmnt, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(sync, wdelay, hide, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)

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

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

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

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

फ़ायरवॉलड सेंटोस 8 पर डिफ़ॉल्ट फ़ायरवॉल समाधान है।

NFS सेवा में NFS सर्वर तक पहुँच की अनुमति देने के लिए पूर्वनिर्धारित नियम शामिल हैं।

निम्न कमांड स्थायी रूप से 192.168.33.0/24 सबनेट से एक्सेस की अनुमति देंगे:

sudo firewall-cmd --new-zone=nfs --permanent sudo firewall-cmd --zone=nfs --add-service=nfs --permanent sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent sudo firewall-cmd --reload

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.148:/backups /backups sudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www

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

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

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

df -h

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

… 192.168.33.148:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.148:/www 9.7G 1.2G 8.5G 13% /srv/www

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

sudo nano /etc/fstab

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

/ Etc / fstab

192.168.33.148:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.148:/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 त्रुटि संदेश दिखाई देगा:

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

/var/www निर्देशिका apache उपयोगकर्ता के स्वामित्व में है, और इस शेयर में root_squash विकल्प सेट है, जो रूट उपयोगकर्ता को nobody उपयोगकर्ता और nogroup समूह में nogroup करता है, जिनके पास रिमोट शेयर के लिए लिखने की अनुमति नहीं है।

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

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

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

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

ls -la /srv/www

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

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

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

sudo umount /backups

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

निष्कर्ष

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

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

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

सेंटो एनएफएस माउंट टर्मिनल