NFS का उपयोग करने के लिए मुझे फ़ायरवॉल में कौन से पोर्ट खोलने की आवश्यकता है?


73

मैं Ubuntu 11.10 चला रहा हूं - कई अन्य सर्वरों के बीच निर्देशिका साझा करने के लिए एनएफएस की स्थापना। फ़ायरवॉल पर कौन से पोर्ट खोलने की आवश्यकता है?


6
यह उस प्रोटोकॉल के संस्करण पर निर्भर करता है जिसका आप उपयोग करना चाहते हैं। NFS 4 को केवल 2049 की आवश्यकता होती है जबकि पुराने संस्करणों को अधिक की आवश्यकता होती है।
लज़ाप

जवाबों:


97
$ rpcinfo -p | grep nfs

पोर्ट 111 (टीसीपी और यूडीपी) और एनएफएस सर्वर के लिए 2049 (टीसीपी और यूडीपी)।

क्लस्टर और क्लाइंट स्थिति (पूर्व के लिए पोर्ट 1110 टीसीपी, और बाद के लिए 1110 यूडीपी) के साथ-साथ एनएफएस लॉक मैनेजर (पोर्ट 4045 टीसीपी और यूडीपी) के लिए पोर्ट भी हैं। केवल आप ही यह निर्धारित कर सकते हैं कि किन पोर्ट्स के लिए आपको किन सेवाओं की आवश्यकता है, इसके आधार पर क्रॉस-गेटवे की आवश्यकता है।


4
मैं rpcinfo के बारे में नहीं जानता था, यह काफी उपयोगी है। मैं 111 के साथ पोर्ट नहीं देख रहा था grep nfs, लेकिन मैंने यह जानने के लिए कि यह 111 है के लिए grep छोड़ दिया portmapper। यह जानकर भी अच्छा लगा! (और जैसा आपने उल्लेख किया है, आवश्यक है)
केनी

@KennyYounger rpcinfo एक उपयोगी भी है। यदि यह आपके प्रश्न का उत्तर देता है, तो भविष्य के दर्शकों के लाभ के लिए इसे उत्तर के रूप में चिह्नित करना न भूलें।
वेस्ले

6
जब आप पहली बार फाइलसिस्टम माउंट करते हैं, तो आपको आरोहण की आवश्यकता होती है। यह एक गतिशील बंदरगाह पर चलता है, इसलिए यह हमेशा एक जैसा नहीं रहेगा। मैंने अपने उत्तर में एक गाइड का लिंक डाला।
bonsaiviking

1
साभार @bonsaiviking इस प्रक्रिया के लिए महत्वपूर्ण जानकारी। मैंने आपके जवाब को गलत बताया!
केनी

क्या आप उन सेवाओं ("क्लस्टर और क्लाइंट स्थिति", "एनएफएस लॉक मैनेजर") का एक संक्षिप्त विवरण दे सकते हैं कि उन्हें कब और क्या ज़रूरत हो सकती है? यदि उन सेवाओं को एक फ़ायरवॉल द्वारा अवरुद्ध किया जाता है, तो क्या NFS सर्वर और क्लाइंट्स इनायत से नीचा दिखाते हैं, या बस एक प्रतिक्रिया की प्रतीक्षा कर रहे हैं?
नाथन क्रेक

27

पोर्टमैप के लिए 111 और एनएफ़एस के लिए 2049 के अलावा, आपको माउंट पोर्ट और संभवतः रैकोटैड, लॉकड, और स्टेट की अनुमति देने की आवश्यकता होगी, जो सभी गतिशील हो सकते हैं। यह उत्कृष्ट एनएफएस सुरक्षा गाइड आपके स्टार्टअप स्क्रिप्ट को बदलने की सिफारिश करता है और कर्नेल मॉड्यूल को स्थिर बंदरगाहों का उपयोग करने के लिए मजबूर करता है।

ऊपर दिए गए गाइड के अलावा, जिसमें फायरवॉल पर एक सेक्शन है , एनएफएस को सख्त करने के बारे में एक और सवाल का मेरा जवाब देखें ।


7
हम वास्तव में सामग्री को पसंद करते हैं, सामग्री को इंगित नहीं करते हैं। एक लिंक के साथ सामग्री की एक शर्त भी ठीक है और एक लिंक के लिए पसंद किया है।
user9517

2
2012 के बारे में निश्चित नहीं है, लेकिन लिंक में सिफारिश सकल रूप से पुरानी प्रतीत होती है। टीसीपी पर एनएफएस विभिन्न कारणों से पसंद किया जाता है और यूडीपी पर एनएफएस प्रोटोकॉल सीमाओं के कारण फास्ट लिंक पर मूक डेटा भ्रष्टाचार का कारण बन सकता है। सुरक्षा गाइड में
केर्बरोस

आरोहित होने के संबंध में, जीवन बहुत आसान है यदि आप सुनिश्चित करते हैं कि आरोहित बंदरगाह तय हो जाए। डेबियन सिस्टम पर, RPCMOUNTDOPTS मूल्य को कुछ इस तरह से संपादित करें RPCMOUNTDOPTS="--port 34567"और फिर से शुरू करें sysctl --systemऔर/etc/init.d/nfs-kernel-server restart
user45793

14

मुझे इस पृष्ठ पर अपनी समस्या के लिए उपयोगी निर्देश मिले, लेकिन नुस्खा का पालन करना आसान नहीं था। तो यहाँ मेरा नुस्खा है।

टीएल; डीआर - दोनों एनएफएस पोर्ट (111, 2049) और इसे ठीक करने के बाद माउंट पोर्ट की अनुमति देने की आवश्यकता है।

निर्देश:


आरोह के लिए एक निश्चित बंदरगाह की स्थापना

gksudo gedit /etc/default/nfs-kernel-server
  • इस लाइन पर टिप्पणी करें: RPCMOUNTDOPTS=--manage-gids
  • इसके बजाय इसे जोड़ें: RPCMOUNTDOPTS="--port 33333"

या कोई अन्य पोर्ट नंबर।

अब nfs का उपयोग करके रीसेट करने का प्रयास करें:

sudo service nfs-kernel-server restart

और परीक्षण अगर यह प्रयोग करने में मदद करता है:

rpcinfo -p | grep "tcp.*mountd"

मेरे लिए यह पर्याप्त नहीं था, लेकिन एक पूर्ण पुनरारंभ ने इस मुद्दे को ठीक कर दिया।

( क्रेडिट )


फ़ायरवॉल की स्थापना

(1) पुराने नियम हटाएं, इसे मैन्युअल रूप से करें या रीसेट करें यदि यह फ़ायरवॉल के लिए एकमात्र उपयोग है:

sudo ufw reset
sudo ufw enable

(2) nfs और आरोहित पोर्ट जोड़ें

sudo ufw allow in from 10.0.0.1/20 to any port 111 
sudo ufw allow in from 10.0.0.1/20 to any port 2049
sudo ufw allow in from 10.0.0.1/20 to any port 33333

(अपने स्थानीय आईपी या के anyबजाय " " में बदलें 10.0.0.1/20)

बस इतना ही है।


3
आपको संपूर्ण बॉक्स को पुनरारंभ करने की आवश्यकता नहीं है। sudo service nfs-config restartपुनः आरंभ करने से पहले एक सरल nfs-kernel-serverबस ठीक होगा।
शोप १

@ शोपी १ ९ thanks४ धन्यवाद, मैं अगली बार कोशिश करूंगा
आमिर

या यदि आपका सिस्टम उपयोग करता है systemctl, तो यह है systemctl restart nfs-kernel-server.service
fbicknel

आप यह सब एक प्रफुल्ल फूप में भी कर सकते हैं: sudo nfs allow proto tcp from 10.0.0.1/20 to any port 111,2049,33333इसके बाद (ठीक है, दो प्रफुल्लित फूप्स) sudo nfs allow proto udp from 10.0.0.1/20 to any port 111,2049,33333। नोट पोर्ट 33333 उपरोक्त उदाहरण के अनुसार है। उत्तर इंगित करता है के रूप में आप किसी अन्य पोर्ट का उपयोग कर सकते हैं।
फीकलीन

5

यह सभी NFS से संबंधित कार्यक्रम द्वारा उपयोग किए जाने वाले सभी बंदरगाहों की एक सूची देगा:

rpcinfo -p | awk '{print $3" "$4}' | sort -k2n | uniq

3

FERM के साथ , rpcinfo से पोर्ट्स प्राप्त करने के लिए Backticks का उपयोग कर सकते हैं , उदाहरण के लिए:

सर्वर:

proto tcp {saddr ($CLIENT) {
  dport (`rpcinfo -p | perl -e 'while(<>){/\s+\d+\s+\d\s+(?:tcp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}
proto udp {saddr ($CLIENT) {
  dport (`rpcinfo -p | perl -e 'while(<>){/\s+\d+\s+\d\s+(?:udp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}

ग्राहक:

proto udp {saddr ($SERVER) {ACCEPT;}}  # NFS

(यदि आप केवल टीसीपी का उपयोग करने जा रहे हैं तो आपको केवल proto tcpभाग की आवश्यकता है )।


1

अभिलेखों के लिए, मुझे एक विन्यास के लिए बंदरगाहों 111, 2049 और 1048 के लिए अनुमतियों को जोड़ना पड़ा जहां एक एनएफएस शेयर विंडोज 2008 आर 2 सर्वर द्वारा निर्यात किया जाता है और ग्राहक उबंटू 12.04.4 हैं।

मुझे उम्मीद है इससे किसी को सहायता मिलेगी।


2
यह समझाने में मदद कर सकता है कि आपको पोर्ट 1048 की आवश्यकता क्यों थी और आपने इसे कैसे निर्धारित किया।
HBruijn

3
सच कहूँ तो, मेरे पास कोई सुराग नहीं है कि मुझे १०४ for की अनुमति की आवश्यकता क्यों थी, लेकिन इसे जोड़ने से मेरी समस्या हल हो गई। मैं सिर्फ यह साझा करना चाहता था कि भविष्य में किसी और को समय बचा सकता है या नहीं। मुझे इस सवाल का जवाब नहीं देने के लिए खेद है।
इरेडेम काया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.