एफ़टीपी प्रोटोकॉल सबसे पुराने प्रोटोकॉल में से एक है (यह 40 वर्ष से अधिक पुराना है), लेकिन यह अभी भी व्यापक रूप से उपयोग किया जाता है जहां एक साधारण फ़ाइल स्थानांतरण प्रोटोकॉल की आवश्यकता होती है। Microsoft ऑपरेशन सिस्टम के किसी भी संस्करण पर FTP सर्वर स्थापित करना संभव है। FTP सेवा का अंतिम गहन आधुनिकीकरण Windows 7 / Server 2008 R2 में किया गया था (वास्तव में सेवा कोड लगभग खरोंच से लिखा गया है)। सेवा की सुरक्षा में काफी सुधार हुआ है और कई नई सुविधाएँ सामने आई हैं। विशेष रूप से, विंडोज़ पर एफ़टीपी सर्वर आपको एफ़टीपी उपयोगकर्ता अलगाव को कॉन्फ़िगर करने की अनुमति देता है . यह एक ही FTP सर्वर पर कई उपयोगकर्ताओं के अपने स्वयं के फ़ोल्डरों तक पहुंच को प्रतिबंधित करने की अनुमति देता है।
अलगाव के कारण, उपयोगकर्ता केवल अपने फ़ोल्डरों के साथ काम कर सकते हैं और FTP निर्देशिका ट्री में ऊपर नहीं जा सकते (उपयोगकर्ता की शीर्ष ftp स्तर निर्देशिका को FTP सर्वर के रूट के रूप में प्रदर्शित किया जाता है)। इस प्रकार, एफ़टीपी सर्वर पर अन्य उपयोगकर्ताओं के डेटा तक पहुंच को रोका जा सकता है। एफ़टीपी उपयोगकर्ता अलगाव का व्यापक रूप से आईएसपी/होस्टिंग प्रदाताओं द्वारा उपयोग किया जाता है जब अलग-अलग उपयोगकर्ताओं के लिए एकल फ़ाइल संग्रहण के लिए व्यक्तिगत पहुंच प्रदान करना आवश्यक होता है।
पिछले Windows संस्करणों की तरह, Windows Server 2016/2012 R2 में FTP सेवा (इसे sFTP और TFTP के साथ भ्रमित न करें) आधारित है और IIS सेवा में गहराई से एकीकृत है और इसमें एक एकल व्यवस्थापकीय प्रबंधन इंटरफ़ेस है।
इस लेख में हम दिखाएंगे कि Windows Server 2016/2012 R2 पर IIS-आधारित FTP सर्वर कैसे स्थापित करें और FTP उपयोगकर्ता अलगाव को कैसे कॉन्फ़िगर करें (यह मैनुअल विंडोज 10 और 8.1 पर भी लागू होता है)।
Windows Server 2016/2012 R2 पर FTP सर्वर भूमिका कैसे स्थापित करें?
आप एफ़टीपी सेवा . विकल्प की जांच करके सर्वर प्रबंधक कंसोल का उपयोग करके एफ़टीपी सेवा स्थापित कर सकते हैं और एफ़टीपी एक्स्टेंसिबिलिटी अनुभाग में वेब सर्वर (IIS) -> FTP सर्वर .
इसके अलावा आप एकल पावरशेल कमांड के साथ एफ़टीपी सर्वर भूमिका स्थापित कर सकते हैं:Install-WindowsFeature Web-FTP-Server
FTP सर्वर प्रबंधन कंसोल को स्थापित करने के लिए, निम्न कमांड चलाएँ:
Install-WindowsFeature -Name "Web-Mgmt-Console"
एफ़टीपी साइट बनाना, एफ़टीपी उपयोगकर्ता अनुमतियां प्रबंधित करना
सर्वर प्रबंधक प्रारंभ करें और IIS प्रबंधन कंसोल (इंटरनेट सूचना सेवा प्रबंधक) खोलें।
एक नई FTP साइट बनाएं (साइटें -> FTP साइट जोड़ें )
FTP साइट का नाम:MyTestSite
FTP साइट की मूल निर्देशिका:C:\inetpub\ftproot
नेटवर्क पर प्रसारित एफ़टीपी डेटा की सुरक्षा के लिए, एफ़टीपी के लिए एसएसएल को कॉन्फ़िगर करना संभव है (इस मामले में, सत्र के दौरान एफ़टीपी उपयोगकर्ताओं द्वारा भेजे गए सभी डेटा और पासवर्ड / खाते एन्क्रिप्ट किए जाएंगे), लेकिन हमारे प्रदर्शन में यह आवश्यक नहीं है। अन्य सभी सेटिंग्स डिफ़ॉल्ट छोड़ दी जाती हैं।
आप पावरशेल मॉड्यूल वेब व्यवस्थापन . का उपयोग करके अपनी FTP साइट का प्रबंधन कर सकते हैं . उदाहरण के लिए, एक नई FTP साइट बनाने के लिए, बस कमांड चलाएँ:
Import-Module WebAdministration
# Set the FTP site name
$FTPSiteName = 'CORP_FTP'
#FTP folder
$FTPRoot = 'D:\www\FTPRoot'
#FTP port
$FTPPort = 21
New-WebFtpSite -Name $FTPSiteName -PhysicalPath $FTPRoot -Port $FTPPort
एक नई FTP साइट चुनें और अनाम प्रमाणीकरण . को अक्षम करें FTP प्रमाणीकरण . में अनुभाग। मूल प्रमाणीकरण सक्षम होना चाहिए।
Windows Server 2016/2012 R2 पर FTP सेवा दो खाता प्रकारों का उपयोग कर सकती है:डोमेन या स्थानीय। खाता प्रकार के आधार पर, FTP निर्देशिकाओं की संरचना और उपयोगकर्ता अलगाव सेटिंग्स में कुछ अंतर हैं। वर्णन करना आसान बनाने के लिए, हम स्थानीय विंडोज़ खातों का उपयोग करेंगे।
कुछ FTP उपयोगकर्ता बनाएँ, मान लीजिए, ये ftp_user1 हैं , ftp_user2 और ftp_user3 . ftp_users समूह भी बनाएं जिसमें ये उपयोगकर्ता शामिल हैं। आप स्थानीय उपयोगकर्ता और समूह . में स्थानीय उपयोगकर्ता बना सकते हैं कंप्यूटर प्रबंधन . का अनुभाग कंसोल.
आप कमांड प्रॉम्प्ट (या पॉवरशेल का उपयोग करके) से स्थानीय उपयोगकर्ता और समूह भी बना सकते हैं। एक स्थानीय समूह बनाएं:net localgroup ftp_users /add
एक नया स्थानीय उपयोगकर्ता बनाएँ:net user ftp_user1 /add *
उपयोगकर्ता को समूह में जोड़ें:net localgroup ftp_users ftp_user1 /add
इसी तरह दो अन्य उपयोगकर्ता बनाएं।
निर्देशिका C:\inetpub\ftproot पर ftp_users समूह के लिए पढ़ें और लिखें अनुमतियाँ असाइन करें।
LocalUser . नाम से एक निर्देशिका बनाएं (नाम वही होना चाहिए, यह महत्वपूर्ण है!!! ) फ़ोल्डर में C:\inetpub\ftproot. फिर C:\inetpub\ftproot\LocalUser फ़ोल्डर में ftp_user1, ftp_user2, ftp_user3 नामों से तीन निर्देशिकाएं बनाएं।
नोट <मजबूत>। खाता प्रकार के आधार पर, आपको निम्नलिखित निर्देशिका संरचनाएं बनानी होंगी (%FtpRoot%\ के तहत हमारा मतलब FTP साइट की जड़ है; हमारे मामले में यह C:\inetpub\ftproot\ है):खाता प्रकार | होम निर्देशिका नामकरण का सिंटैक्स |
अनाम उपयोगकर्ता | %FtpRoot%\LocalUser\Public |
स्थानीय Windows खाता | %FtpRoot%\LocalUser\%UserName% |
डोमेन Windows खाता | %FtpRoot%\%UserDomain%\%UserName% |
विशेष IIS प्रबंधक या ASP.NET खाते | %FtpRoot%\LocalUser\%UserName% |
आईआईएस कंसोल पर वापस लौटें और एक नया नियम बनाएं (अनुमति नियम जोड़ें ) एफ़टीपी प्राधिकरण नियम . में साइट का खंड। निर्दिष्ट करें कि ftp_users समूह के पास पढ़ने और लिखने की अनुमति होनी चाहिए।
Windows Server 2016/2012 R2 पर FTP उपयोगकर्ता अलगाव को कैसे कॉन्फ़िगर करें?
आइए एफ़टीपी उपयोगकर्ता अलगाव को कॉन्फ़िगर करने के लिए आगे बढ़ते हैं। FTP उपयोगकर्ताओं का अलगाव FTP साइट स्तर पर कॉन्फ़िगर किया गया है, संपूर्ण सर्वर पर नहीं। एफ़टीपी उपयोगकर्ता अलगाव आपको प्रत्येक उपयोगकर्ता के लिए अपने एफ़टीपी-होम फ़ोल्डर को व्यवस्थित करने की अनुमति देता है।
खोलें एफ़टीपी उपयोगकर्ता अलगाव FTP साइट की सेटिंग में।
इस खंड में कई सेटिंग्स हैं। उनमें से पहले दो उपयोगकर्ता अलगाव का सुझाव नहीं देते:
- एफ़टीपी रूट निर्देशिका (उपयोगकर्ता का एफ़टीपी सत्र एफ़टीपी साइट की मूल निर्देशिका में शुरू होता है);
- उपयोगकर्ता नाम निर्देशिका (उपयोगकर्ता उपयोगकर्ता नाम के साथ भौतिक/आभासी निर्देशिका से शुरू होता है। यदि निर्देशिका गुम है, तो साइट की रूट एफ़टीपी निर्देशिका में एक सत्र शुरू होता है)।
अगले तीन विकल्प उपयोगकर्ता अलगाव के विभिन्न तरीके हैं:
- उपयोगकर्ता नाम निर्देशिका (वैश्विक वर्चुअल निर्देशिका अक्षम करें) सुझाव देता है कि उपयोगकर्ता का ftp सत्र एक भौतिक/आभासी निर्देशिका में अलग है जिसका नाम ftp उपयोगकर्ता के समान है। उपयोगकर्ता केवल अपनी निर्देशिका देखते हैं (यह उनकी रूट ftp-directory है) और इससे आगे नहीं जा सकते (एफ़टीपी पेड़ की ऊपरी निर्देशिका में)। किसी भी वैश्विक वर्चुअल निर्देशिका को अनदेखा कर दिया जाता है;
- उपयोगकर्ता नाम भौतिक निर्देशिका (वैश्विक वर्चुअल निर्देशिका सक्षम करें) यह सुझाव देता है कि उपयोगकर्ता का ftp सत्र एक भौतिक निर्देशिका में अलग है जिसका नाम ftp उपयोगकर्ता खाते के नाम के समान है। एक उपयोगकर्ता अपनी निर्देशिका से ऊपर नहीं जा सकता है। हालांकि, सभी निर्मित वैश्विक वर्चुअल निर्देशिकाएं उपयोगकर्ता के लिए उपलब्ध हैं;
- एफ़टीपी होम निर्देशिका सक्रिय निर्देशिका में कॉन्फ़िगर की गई है - एक एफ़टीपी उपयोगकर्ता अपने सक्रिय निर्देशिका खाते (एफटीपीरूट और एफ़टीपीडीआईआर संपत्तियों) की सेटिंग में निर्दिष्ट अपनी होम निर्देशिका के भीतर अलग-थलग है।
आवश्यक आइसोलेशन मोड का चयन करें (मैं एफ़टीपी उपयोगकर्ताओं को अलग करने के लिए दूसरे विकल्प का उपयोग करता हूं)।
Microsoft FTP सेवा (FTPSVC) को FTP साइट सेटिंग्स में किसी भी परिवर्तन के साथ पुनरारंभ करने की सलाह दी जाती है।FTP सर्वर तक पहुंचने के लिए Windows फ़ायरवॉल नियमों को कॉन्फ़िगर करना
जब आप एफ़टीपी सर्वर भूमिका स्थापित करते हैं, तो एफ़टीपी तक पहुँचने के लिए उपयोगकर्ताओं के लिए आवश्यक सभी आवश्यक नियम स्वचालित रूप से विंडोज फ़ायरवॉल सेटिंग्स में सक्रिय हो जाते हैं।
एफ़टीपी को निष्क्रिय एफ़टीपी मोड में सही ढंग से काम करने के लिए, उपयोगकर्ताओं को आरपीसी पोर्ट रेंज (1025-65535) से कनेक्ट करने की आवश्यकता है। इन सभी पोर्ट को बाहरी फ़ायरवॉल पर न खोलने के लिए, आप FTP डेटा ट्रांसमिशन के लिए उपयोग किए जाने वाले डायनेमिक TCP पोर्ट की सीमा को सीमित कर सकते हैं।
- एफ़टीपी फ़ायरवॉल समर्थन खोलें FTP साइट सेटिंग में और डेटा चैनल पोर्ट रेंज . में अनुभाग फ़ील्ड उस पोर्ट श्रेणी को निर्दिष्ट करें जिसे आप FTP कनेक्शन के लिए उपयोग करना चाहते हैं। उदाहरण के लिए - 50000-50100;
- परिवर्तन सहेजें और IIS पुनः आरंभ करें (
iisreset
); - Windows Control Panel खोलें और Control Panel\System and Security\Windows Firewall\Allowed ऐप्स पर जाएं;
- सुनिश्चित करें कि फ़ायरवॉल के माध्यम से एक्सेस की अनुमति वाले एप्लिकेशन की सूची में FTP सर्वर के लिए अनुमतियां हैं भूमिका।
फिर जांचें कि उन्नत सुरक्षा के साथ Windows फ़ायरवॉल की सेटिंग में निम्न नियम सक्षम हैं:
- एफ़टीपी सर्वर (एफ़टीपी ट्रैफ़िक-इन) - टीसीपी प्रोटोकॉल, पोर्ट 21;
- एफ़टीपी सर्वर पैसिव (एफ़टीपी पैसिव ट्रैफ़िक-इन) - स्थानीय पोर्ट पता 1024-65535 (हमारे मामले में 50000-50100);
- एफ़टीपी सर्वर सिक्योर (एफ़टीपी एसएसएल ट्रैफ़िक-इन) -पोर्ट 990 (एसएसएल के साथ एफ़टीपी का उपयोग करते समय);
- एफ़टीपी सर्वर (एफ़टीपी ट्रैफ़िक-आउट) - पोर्ट 20;
- एफ़टीपी सर्वर सिक्योर (एफ़टीपी एसएसएल ट्रैफ़िक-आउट) -पोर्ट 989 (एसएसएल के साथ एफ़टीपी का उपयोग करते समय)।
तदनुसार, इन बंदरगाहों को आपके राउटर (गेटवे, फ़ायरवॉल) पर खोलने की आवश्यकता है ताकि बाहरी एफ़टीपी उपयोगकर्ता आपकी साइट से जुड़ सकें।
Windows से FTP सर्वर कनेक्शन का परीक्षण करना
आप टेस्ट-नेटकनेक्शन cmdlet का उपयोग करके किसी FTP सर्वर पर पोर्ट की उपलब्धता की जांच कर सकते हैं:
Test-NetConnection -ComputerName yourftpservername -Port 21
या ftp . का उपयोग कर रहे हैं आदेश:
ftp yourftpservername
किसी भी FTP क्लाइंट के साथ या सीधे फाइल एक्सप्लोरर से अपनी FTP साइट से कनेक्ट करने का प्रयास करें (एड्रेस बार में ftp://yourservername/ निर्दिष्ट करें)।
उपयोगकर्ता नाम और पासवर्ड दर्ज करें।
और अब आपके पास उपयोगकर्ता की फ़ाइलों के साथ होम निर्देशिका तक पहुंच है (जो उपयोगकर्ता के लिए एफ़टीपी साइट की जड़ है)। जैसा कि हम देख सकते हैं, उपयोगकर्ता सत्र अलग-थलग है और उपयोगकर्ता केवल ftp सर्वर पर अपनी फ़ाइलें देखता है।
टिप. यदि आप अनाम पहुंच (सभी अनाम उपयोगकर्ता) का उपयोग करना चाहते हैं, तो कोई भी उपयोगकर्ता क्रेडेंशियल का उपयोग करके आपके FTP सर्वर से कनेक्ट करने में सक्षम होगा:अनाम या अतिथि पासवर्ड के रूप में उपयोगकर्ता नाम और ईमेल पता के रूप में। यदि आप गुमनाम रूप से किसी FTP साइट से जुड़ते हैं, तो सत्र LocalUser\Public निर्देशिका तक सीमित रहेगा (यह स्पष्ट है, सार्वजनिक निर्देशिका पहले से ही बनाई जानी चाहिए)।
एफ़टीपी सर्वर तक उपयोगकर्ता पहुंच के बारे में जानकारी देखने के लिए आप एफ़टीपी लॉग का उपयोग कर सकते हैं। लॉग फ़ाइलें डिफ़ॉल्ट रूप से c:\inetpub\logs\logfiles में संग्रहित की जाती हैं u_exYYMMDD.log . में फ़ोल्डर फ़ाइलें.
अपने FTP सर्वर से सक्रिय उपयोगकर्ता कनेक्शन देखने के लिए, आप PowerShell या “वर्तमान FTP सत्र के माध्यम से IIS प्रदर्शन काउंटरों के मानों का उपयोग कर सकते हैं। आईआईएस कंसोल में "अनुभाग। इस कंसोल में, आप एफ़टीपी उपयोगकर्ता के नाम और आईपी पते देख सकते हैं और यदि आवश्यक हो तो एफ़टीपी-सत्र को डिस्कनेक्ट कर सकते हैं।
इसलिए, हमने देखा है कि विंडोज सर्वर 2016/2012 R2 के आधार पर उपयोगकर्ता अलगाव के साथ एक एफ़टीपी साइट को कैसे कॉन्फ़िगर किया जाए। आइसोलेशन मोड में उपयोगकर्ताओं को उनके स्थानीय या डोमेन क्रेडेंशियल्स का उपयोग करके एफ़टीपी पर प्रमाणित किया जाता है ताकि वे उपयोगकर्ता नाम के अनुरूप अपनी रूट निर्देशिका तक पहुंच सकें।