सवाल एनएफएस का उपयोग करने के लिए फ़ायरवॉल में मुझे कौन से बंदरगाहों को खोलने की ज़रूरत है?


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


55
2018-04-05 21:01


मूल


यह आपके द्वारा उपयोग किए जाने वाले प्रोटोकॉल के संस्करण पर निर्भर करता है। एनएफएस 4 को केवल 2049 की आवश्यकता होती है जबकि पुराने संस्करणों की आवश्यकता होती है। - lzap


जवाब:


rpcinfo -p | grep nfs

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

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


80
2018-04-05 21:03



मुझे rpcinfo के बारे में पता नहीं था, यह काफी उपयोगी है। मुझे बंदरगाह 111 नहीं मिला grep nfs, लेकिन मैंने सीखने के लिए grep को छोड़ दिया कि 111 के लिए है portmapper। जानना भी अच्छा है! (और जैसा कि आपने उल्लेख किया है, आवश्यक) - kenny
@KennyYounger rpcinfo भी एक उपयोगी है। यदि इसने आपके प्रश्न का उत्तर दिया है, तो इसे भविष्य के दर्शकों के लाभ के उत्तर के रूप में चिह्नित करना न भूलें। - Wesley
जब आप पहले फाइल सिस्टम को माउंट करते हैं तो आपको माउंट ओपन की आवश्यकता होती है। यह एक गतिशील बंदरगाह पर चलता है, इसलिए यह हमेशा एक जैसा नहीं होगा। मैंने अपने जवाब में एक गाइड के लिए एक लिंक रखा। - bonsaiviking
@bonsaiviking उत्कृष्ट! धन्यवाद। - Wesley
धन्यवाद @ bonsaiviking। इस प्रक्रिया के लिए गंभीर जानकारी। मैंने तुम्हारा जवाब उड़ाया! - kenny


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

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


21
2018-04-05 21:22



हम वास्तव में सामग्री पसंद करते हैं, सामग्री के संकेतक नहीं। एक लिंक के साथ सामग्री का एक प्राइस भी ठीक है और एक लिंक को पसंद किया जाता है। - Iain
2012 के बारे में निश्चित नहीं है लेकिन लिंक में सिफारिश पूरी तरह से पुरानी प्रतीत होती है। टीसीपी पर एनएफएस को विभिन्न कारणों से प्राथमिकता दी जाती है और यूडीपी पर एनएफएस प्रोटोकॉल सीमाओं के कारण तेजी से लिंक पर चुप डेटा भ्रष्टाचार का कारण बन सकता है। सुरक्षा गाइड में केर्बेरोस / जीएसएस इत्यादि का कोई उल्लेख नहीं है। - Maciej Piechotka


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

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

निर्देश:


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

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

या कोई अन्य बंदरगाह संख्या।

अब एनएफएस को रीसेट करने का प्रयास करें:

sudo service nfs-kernel-server restart

और परीक्षण करें कि इसका उपयोग करने में मदद मिली है:

rpcinfo -p | grep tcp.*mountd

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

(श्रेय)


फ़ायरवॉल सेट अप करना

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

sudo ufw reset
sudo ufw enable

(2) एनएफएस और माउंट बंदरगाहों को जोड़ें

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)

यह सब कुछ है।


7
2017-12-29 16:47



आपको पूरे बॉक्स को पुनरारंभ करने की आवश्यकता नहीं है। एक सरल sudo service nfs-config restart पुनरारंभ करने से पहले nfs-kernel-server ठीक काम करेगा। - showp1984
@ showp1984 धन्यवाद, मैं अगली बार कोशिश करूंगा - auval


एफईआरएम के साथ एक का उपयोग कर सकते हैं बैकटिक आरपीसीएनएफओ से बंदरगाहों को प्राप्त करने के लिए, उदाहरण के लिए:

सर्वर:

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 अंश)।


3
2017-08-13 21:39





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

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

2
2017-07-02 13:54





रिकॉर्ड के लिए, मुझे बंदरगाहों 111, 2049 के लिए अनुमतियां जोड़नी पड़ीं तथा 1048 कॉन्फ़िगरेशन के लिए जहां एक Windows 2008 R2 सर्वर द्वारा NFS साझा किया जाता है और क्लाइंट उबंटू 12.04.4 हैं।

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


1
2017-12-16 08:13



यह समझाने में मदद कर सकता है कि आपको पोर्ट 1048 की आवश्यकता क्यों है और आपने इसे कैसे निर्धारित किया है। - HBruijn
सचमुच, मेरे पास कोई सुराग नहीं है कि मुझे 1048 के लिए अनुमति जोड़ने की आवश्यकता क्यों थी, लेकिन इसमें मेरी समस्या हल हो गई। मैं बस साझा करना चाहता था अगर वह भविष्य में किसी और को समय बचा सके। मुझे खेद का जवाब देने में सक्षम होने के लिए खेद है। - Erdem KAYA