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


33

मुझे किसी विक्रेता की साइट पर FTPS सर्वर (vsftpd) का उपयोग करने की आवश्यकता है। विक्रेता के पास ftps सर्वर के सामने एक फ़ायरवॉल है। मेरे पास मेरे FTPS क्लाइंट के सामने एक फ़ायरवॉल है।

मैं समझता हूं कि बंदरगाहों को ९ ० ९ ०, ९९ १ और शायद ९ 90 ९ को नियंत्रण यातायात के लिए खोलने की आवश्यकता है।

मेरे कुछ सवाल है:

  1. जब इसे विक्रेता के फ़ायरवॉल परिप्रेक्ष्य से देखते हैं, तो क्या इन बंदरगाहों को इनबाउंड और आउटबाउंड ट्रैफ़िक दोनों के लिए खोला जाना चाहिए?
  2. डेटा चैनल के लिए बंदरगाहों के बारे में क्या?
  3. क्या मुझे 1000 से ऊपर के सभी पोर्ट खोलने होंगे?
  4. क्या मुझे इसे इनबाउंड और आउटबाउंड ट्रैफ़िक दोनों के लिए करना चाहिए?

जवाबों:


19

SSL (ftps) पर FTP की मेरी समझ यह है कि यह फ़ायरवॉल और NAT के साथ अच्छी तरह से काम नहीं करता है। एक साधारण एफ़टीपी सत्र में, फ़ायरवॉल द्वारा फ़ायरवॉल के लिए आवश्यक पोर्ट को गतिशील रूप से खोलने के लिए फ़ायरवॉल द्वारा डेटा कनेक्शन के बारे में जानकारी पढ़ी जाती है और संशोधित की जाती है। यदि वह जानकारी एसएसएल द्वारा सुरक्षित है, तो फ़ायरवॉल इसे पढ़ नहीं सकता है या इसे बदल नहीं सकता है।

SFTP, या scp का उपयोग करने से नेटवर्क प्रशासक का काम बहुत आसान हो जाता है - सब कुछ सर्वर के पोर्ट 22 पर होता है, और लेन-देन सामान्य क्लाइंट / सर्वर मॉडल का अनुसरण करता है।

एक बात का उल्लेख नहीं किया गया है कि आपका फ़ायरवॉल NAT का प्रदर्शन कर रहा है या नहीं और वह static NAT या गतिशील NAT है या नहीं। यदि आपकी क्लाइंट मशीन का स्थैतिक पता है या स्टेटिक रूप से नेट किया जा रहा है, तो आपको किसी भी फ़ायरवॉल परिवर्तन करने की आवश्यकता नहीं हो सकती है, यह मानकर कि आप सभी आउटबाउंड ट्रैफ़िक को अनुमति देते हैं और सर्वर केवल पैसिव मोड (PASV) में संचालित होता है।

यह जानने के लिए कि आपको किन पोर्ट को खोलने की आवश्यकता होगी, आपको या तो:

a) अपने सिस्टम को कैसे कॉन्फ़िगर किया गया है, इसके बारे में विवरण प्राप्त करने के लिए विक्रेता से बात करें।

b) ट्रैफ़िक विश्लेषक, जैसे tcpdump या wirehark, ट्रैफ़िक को देखने के लिए, अपने फ़ायरवॉल के बाहर और अपने फ़ायरवॉल के अंदर दोनों का उपयोग करें।

आपको यह पता लगाना होगा कि कौन सा पोर्ट कंट्रोल कनेक्शन है। आप सूची 3, जो मुझे अजीब लगती है। सर्वर केवल PASV (निष्क्रिय) मोड में काम करता है, तो आपको यह पता लगाना होगा कि सर्वर को आवंटित डेटा पोर्टों में कैसे कॉन्फ़िगर किया गया है। क्या उन्होंने DATA चैनल को एक इनबाउंड पोर्ट में बंद कर दिया है? क्या उन्होंने DATA चैनल को छोटी रेंज या पोर्ट्स में बंद कर दिया है?

इन उत्तरों के साथ, आप अपने फ़ायरवॉल को कॉन्फ़िगर करना शुरू कर सकते हैं।


3
निष्क्रिय मोड FTPS पोर्ट # 1024 पर एक नियंत्रण बंदरगाह का उपयोग करेगा और इसलिए यह गैर-निष्क्रिय की तुलना में फ़ायरवॉल के साथ बेहतर काम करेगा। क्लाइंट पोर्ट 21 को बताता है कि ऊपरी-बाउंड पोर्ट को क्या खोलना है और इसलिए आप क्लाइंट को "2000 या 2001 पोर्ट पर नियंत्रण" कहने के लिए कॉन्फ़िगर कर सकते हैं और फिर सर्वर आउटबाउंड पोर्ट 2000 या 2001 को खोल देगा। अधिकांश FTP क्लाइंट एक विशिष्ट सीमा को परिभाषित करने का समर्थन करते हैं। "नियंत्रण" के लिए बंदरगाहों का होना और जो फ़ायरवॉल परिभाषाओं को आसान बनाता है।
djangofan

27

मेरा मानना ​​है कि 990 के आसपास के पोर्ट इंप्लांट एसएसएल के लिए थे, जो कि एफ़टीपी / एसएसएल करने का एक पुराना गैर-मानक तरीका था। इन दिनों "सही" तरीका स्पष्ट है एसएसएल, जिसका अर्थ है कि आप अभी भी पोर्ट 21 से कनेक्ट करते हैं और फिर एसएसएल को अपनी अच्छाइयों को भेजने से पहले बातचीत करते हैं। एक फ़ायरवॉल के माध्यम से कनेक्शन का समर्थन करने के लिए, आपको PASV मोड का उपयोग करने और उपयोग किए जाने वाले डेटा पोर्ट को हार्ड सेट करने की आवश्यकता है।

मेरा मानना ​​है कि आपको कम से कम एक पोर्ट प्रति डेटा कनेक्शन की आवश्यकता है जिसका आप समर्थन करना चाहते हैं। यदि यह सिर्फ आप है, तो आप शायद केवल कुछ अतिरिक्त पोर्ट खोल रहे हैं। विशेष रूप से मेरे लिए, मैं 21000-21010 का उपयोग करता हूं।

Vsftpd.conf में, मेरे पास ये दो लाइनें हैं (SSL का समर्थन करने के लिए अन्य सभी सामानों के साथ):

pasv_min_port=21000

pasv_max_port=21010

मेरे फ़ायरवॉल पर, मेरे पास एक सार्वजनिक स्टेटिक आईपी है जिसमें आंतरिक आईपी के लिए एक-से-एक / स्थिर NAT है और केवल tcp पोर्ट 21, 21000-21010 खुले हैं।


10

मुझे पता है कि यह एक बहुत पुराना धागा है, हालांकि ..

कृपया ध्यान दें कि SFTP FTPS से पूरी तरह अलग है। (एसएसएच बनाम एसएसएल)

2 तरीके से एफटीपीएस वर्स्क। स्पष्ट और निहित। डेटा ट्रांसफर के दौरान प्रारंभिक हैंडशेक स्किप एन्क्रिप्शन के बाद [यदि डेटा एन्क्रिप्शन बनाए रखा जाता है तो PROT P के साथ सर्वर साइड पर कॉन्फ़िगर किया जा सकता है], जबकि Implicit डेटा के एन्क्रिप्शन को हैंडशेक के बाद भी सुरक्षित रखता है। डिफ़ॉल्ट स्पष्ट FTPS पोर्ट 21 है। डिफ़ॉल्ट इंप्लांट पोर्ट 990 है (हैंडशेक के बाद यह डेटा ट्रांसमिशन के लिए स्वचालित रूप से 989 पर स्विच हो जाएगा, यदि अलग से कॉन्फ़िगर नहीं किया गया है)। जबकि पोर्ट 21 को आम तौर पर EXPLICIT FTPS के रूप में स्वीकार किया जाता है और 990 को IMPLICIT FTPS के रूप में स्वीकार किया जाता है, वास्तव में जो भी पोर्ट आप कॉन्फ़िगर करेंगे, 990/989 को छोड़कर, EXPLICIT FTPS को बढ़ावा देगा, जबकि केवल 990-989 को IMPLICIT FTPS के रूप में स्वीकार किया जाएगा।

तो, आपके प्रश्न का उत्तर देने के लिए: - FTPS सर्वर कॉन्फ़िगरेशन के आधार पर, आपको 21 या 990/989 पोर्ट खोलने की आवश्यकता होगी। हालांकि, बस सुनिश्चित करने के लिए, आपको एफटीपीएस सर्वर व्यवस्थापक से संपर्क करना चाहिए और निर्देशों के लिए पूछना चाहिए। इसके अलावा, ध्यान रखें कि निष्क्रिय मोड के लिए, हर दूसरे एफ़टीपी सॉफ़्टवेयर की तरह, आपको अतिरिक्त पोर्ट (टीसीपी / यूडीपी) खोलना होगा, जो कि आमतौर पर 64000-65000 की सीमा से कुछ होता है।


2

मूल रूप से ftps लगभग बेकार है, क्योंकि आपको फ़ायरवॉल व्यवस्थापक को शर्मनाक अनुरोध करना चाहिए। बंदरगाहों को 10 तक सीमित रखने की सलाह अच्छी है। बहुत अधिक, यह दयनीय हो जाता है।

सिद्धांत में sftp बहुत बेहतर है। लेकिन आपको एक व्यवहार्य sftp सर्वर की आवश्यकता होती है, उदाहरण के लिए, जो ग्राहकों को अपने घर निर्देशिका में प्रतिबंधित करता है।

आवेदन के आधार पर, HTTPS पर विचार करें। एक फ़ाइल अपलोड वास्तव में सरल है, और एक स्पष्ट रूप से डाउनलोड भी है। यदि आप एफ़टीपी को किसी भी तरह से स्क्रिप्ट कर रहे हैं, तो संभवतः एचटीटीपीएस फ़ाइल अपलोड को स्क्रिप्ट करना पूरी तरह से आसान हो जाएगा।

स्वचालित एफ़टीपी एक डिज़ाइन समस्या का संकेत है। मैंने इस पर ध्यान दिया जब कुल दर्जन से अधिक विक्रेताओं के साथ व्यवहार किया गया, जिसमें 'आवश्यक' एक जगह थी जो मैंने स्वचालित एफ़टीपी (बहुत महत्वपूर्ण चीज़ों के लिए) करने के लिए काम की थी, और जब दर्जनों ग्राहक इसे उसी दुकान (लगभग एक डिज़ाइन विफलता) के साथ करते हैं 20 अलग-अलग का उपयोग करता है मैंने देखा)। अधिकांश ऐप लोगों को HTTPS (आमतौर पर उल्लेख के समय) का उपयोग करने के लिए राजी करना आसान था, उन्होंने कहा "प्रतीक्षा करें, कोई कारण नहीं है कि हम उन्हें वेब सर्वर से HTTPS के साथ प्राप्त नहीं कर रहे हैं जो हम पहले से ही उन्हें डेटा प्रदान कर रहे हैं?" ), कुछ को छोड़कर, जिन्होंने "अच्छी तरह से प्रतिक्रियाएं दीं, हमारे पास पहले से ही ये स्क्रिप्ट हैं जो काम करने लगती हैं, और हमारी टीम में से कोई भी स्क्रिप्टिंग के साथ वास्तव में अच्छा नहीं है इसलिए हम वास्तव में कोई बदलाव नहीं कर सकते हैं" (5-10 प्रोग्रामर की टीम,


1

विक्रेता DATA कनेक्शन पोर्ट के लिए एक संकीर्ण पोर्ट रेंज को कॉन्फ़िगर करने में सक्षम हो सकता है, अगर वे पहले से ही नहीं हैं। फिर आप अपने छोर पर उसी सीमा को खोल सकते हैं, जो मेजबान को ऐसी पहुंच की आवश्यकता है। PASV मोड का उपयोग किया जाना चाहिए।


-1

पोर्ट 22 मानक है क्योंकि UNIX पर SSH डेमॉन में SFTP मॉड्यूल है जिसे आप मूल रूप से एक स्पष्ट SFTP सर्वर बनाने में सक्षम कर सकते हैं। यदि आप Filezilla के साथ एक अंतर्निहित FTP सर्वर चलाना चाहते हैं तो आप इसे किसी भी पोर्ट पर चला सकते हैं जिसे आप चाहते हैं लेकिन एक पकड़ है: यदि आप FileZilla क्लाइंट का उपयोग करते हैं तो आपको ftp साइट URL को ftps के रूप में निर्दिष्ट करने की आवश्यकता है: //mysite.com: 8086 फ़ाइलज़िला क्लाइंट प्रदान करता है जो पोर्ट को अलग पोर्ट फ़ील्ड में डालने के बजाय।

स्पष्ट विकल्प के लिए आपको केवल एक पोर्ट की आवश्यकता है: 22. अंतर्निहित विकल्प के लिए आपको केवल नियंत्रण पोर्ट के लिए फ़ायरवॉल को खोलने की आवश्यकता है: 8086 (जो आंतरिक रूप से आपके फ़ाइलज़िला सर्वर पर 21 पोर्ट के लिए आगे है)।


6
एफटीपीएस के बारे में पूछे गए सवाल, एसएफटीपी नहीं।
माइकल लैंग

-7

यदि ftps sftp के समान है , तो आपको केवल विक्रेता की साइट पर पोर्ट 22 तक पहुंचने में सक्षम होना चाहिए।

अपने अंत में आपको पोर्ट 22 को आउटगोइंग और संबंधित इनकमिंग ट्रैफ़िक की अनुमति देने के लिए अपने फ़ायरवॉल को कॉन्फ़िगर करना चाहिए । यह किसी भी आने वाले पोर्ट पर संचार की अनुमति देगा जो पोर्ट 22 पर प्रारंभिक आउटगोइंग कनेक्शन से संबंधित है


11
SFTP ftps ( codeguru.com/csharp/.net/net_general/internet/article.php/… ) के समान नहीं है । SFTP SSH के साथ प्रयोग किया जाने वाला फाइल ट्रांसफर प्रोटोकॉल है। एफटीपीएस एसएसएल के साथ एफटीपी है, एफटीपीएस एक नए यादृच्छिक पोर्ट पर एक नया डेटा कनेक्शन शुरू करता है, जो फायरवॉल के पीछे तैनात करना कठिन बनाता है, लेकिन मैं इस स्थिति में फ़ायरवॉल को हटा नहीं सकता।

2
माफ करो फिर। मैं इस पद को छोड़ दूंगा, हालांकि अन्य में भी यही भ्रम है।
ब्रेंट

यह बेहद आम भ्रम है। फ़ायरवॉल की ओर से, sftp को अनुमति देना आसान है, सिवाय इसके कि यह एक प्रोटोकॉल पर बनाया गया है जो लॉगिन एक्सेस के लिए अभिप्रेत है। महत्वपूर्ण स्वतंत्र सत्यापन के बिना अनुमति देने के लिए स्वतंत्र सुरक्षा समूहों के लिए लापरवाही। अविश्वसनीय ग्राहकों के लिए उचित sftp सर्वर को खोजने / कॉन्फ़िगर करने के लिए sysadmins के लिए मुश्किल। Sftp या ftps की किसी भी चर्चा में अन्य प्रोटोकॉल का उल्लेख होना चाहिए क्योंकि भ्रम भ्रम एसओ आम है।
कारलिटो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.