जैमिंटो ने सवाल का जवाब देने का बहुत अच्छा काम किया, लेकिन मैं हाल ही में खुद इस प्रक्रिया से गुज़रा और जैमिंटो के जवाब पर विस्तार करना चाहता था।
मैं मान रहा हूं कि आपके पास पहले से ही EC2 का एक उदाहरण है और इसमें एक इलास्टिक आईपी एड्रेस जुड़ा है।
चरण # 1: स्थापित करें vsftpd
SSH अपने EC2 सर्वर पर। प्रकार:
> sudo yum install vsftpd
यह vsftpd को स्थापित करना चाहिए।
चरण # 2: अपने EC2 उदाहरण पर FTP पोर्ट खोलें
इसके बाद, आपको अपने EC2 सर्वर पर FTP पोर्ट खोलने की आवश्यकता होगी। AWS EC2 मैनेजमेंट कंसोल में लॉग इन करें और बाईं ओर नेविगेशन ट्री से सुरक्षा समूहों का चयन करें। अपने EC2 उदाहरण के लिए निर्दिष्ट सुरक्षा समूह का चयन करें। फिर इनबाउंड टैब चुनें, फिर संपादित करें पर क्लिक करें:
पोर्ट सीमा 20-21 और 1024-1048 के साथ दो कस्टम टीसीपी नियम जोड़ें। स्रोत के लिए, आप 'कहीं भी' का चयन कर सकते हैं। यदि आप अपने खुद के आईपी पते के लिए स्रोत निर्धारित करने का निर्णय लेते हैं, तो यह जान लें कि यदि डीएचसीपी के माध्यम से इसे सौंपा जा रहा है, तो आपका आईपी पता बदल सकता है।
चरण # 3: vsftpd.conf फ़ाइल में अपडेट करें
टाइप करके अपनी vsftpd conf फाइल संपादित करें:
> sudo vi /etc/vsftpd/vsftpd.conf
अनाम एफ़टीपी को इस लाइन को बदलकर अक्षम करें:
anonymous_enable=YES
सेवा
anonymous_enable=NO
फिर vsftpd.conf फ़ाइल के नीचे निम्न पंक्तियाँ जोड़ें:
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<Public IP of your instance>
आपकी vsftpd.conf फ़ाइल को कुछ इस तरह दिखना चाहिए - सिवाय इसके कि pasv_address को अपने सार्वजनिक IP पते के साथ बदलना सुनिश्चित करें:
परिवर्तनों को सहेजने के लिए, प्रेस से बच, फिर टाइप करें :wq
, फिर हिट दर्ज करें।
चरण # 4: vsftpd को पुनरारंभ करें
टाइप करके vsftpd को पुनरारंभ करें:
> sudo /etc/init.d/vsftpd restart
आपको एक संदेश देखना चाहिए जो ऐसा दिखता है:
यदि यह काम नहीं करता है, तो कोशिश करें:
> sudo /sbin/service vsftpd restart
चरण # 5: एक एफ़टीपी उपयोगकर्ता बनाएँ
यदि आप / etc / vsftpd / user_list पर एक नज़र डालते हैं, तो आप निम्नलिखित देखेंगे:
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
यह मूल रूप से कह रहा है, "इन उपयोगकर्ताओं को एफ़टीपी एक्सेस की अनुमति न दें।" vsftpd किसी भी उपयोगकर्ता को इस सूची में एफ़टीपी का उपयोग करने की अनुमति देगा।
इसलिए, एक नया एफ़टीपी खाता बनाने के लिए, आपको अपने सर्वर पर एक नया उपयोगकर्ता बनाने की आवश्यकता हो सकती है। (या, यदि आपके पास पहले से ही एक उपयोगकर्ता खाता है जो / etc / vsftpd / user_list में सूचीबद्ध नहीं है, तो आप अगले चरण पर जा सकते हैं।)
EC2 उदाहरण पर एक नया उपयोगकर्ता बनाना बहुत सरल है। उदाहरण के लिए, उपयोगकर्ता को 'ब्रेट' बनाने के लिए, टाइप करें:
> sudo adduser bret
> sudo passwd bret
यहाँ यह कैसा दिखेगा:
चरण # 6: उपयोगकर्ताओं को उनके घर निर्देशिकाओं के लिए प्रतिबंधित करना
इस बिंदु पर, आपके एफ़टीपी उपयोगकर्ता अपने घर निर्देशिकाओं तक सीमित नहीं हैं। यह बहुत सुरक्षित नहीं है, लेकिन हम इसे बहुत आसानी से ठीक कर सकते हैं।
अपनी vsftpd conf फाइल को दोबारा टाइप करके संपादित करें:
> sudo vi /etc/vsftpd/vsftpd.conf
लाइन से बाहर टिप्पणी न करें:
chroot_local_user=YES
एक बार ऐसा करने के बाद यह दिखना चाहिए:
फिर से vsftpd सर्वर को फिर से शुरू करें:
> sudo /etc/init.d/vsftpd restart
सब कुछ कर दिया!
परिशिष्ट A: एक रिबूट बच रहा है
जब आपका सर्वर बूट हो जाता है तो vsftpd अपने आप शुरू नहीं होता है। यदि आप मेरी तरह हैं, तो इसका मतलब है कि आपके EC2 उदाहरण को रिबूट करने के बाद, आप आतंक का एक क्षण महसूस करेंगे जब एफ़टीपी टूटने लगता है - लेकिन वास्तव में, यह बस नहीं चल रहा है!। इसे ठीक करने का एक आसान तरीका यहां दिया गया है:
> sudo chkconfig --level 345 vsftpd on
वैकल्पिक रूप से, यदि आप रेडहैट का उपयोग कर रहे हैं, तो अपनी सेवाओं को प्रबंधित करने का एक और तरीका इस निफ्टी ग्राफिक यूजर इंटरफेस का उपयोग करके नियंत्रित करना है कि कौन सी सेवाएं अपने आप शुरू हो जाएंगी:
> sudo ntsysv
जब आपका सर्वर बूट हो जाएगा तो अब vsftpd अपने आप स्टार्ट हो जाएगा।
परिशिष्ट बी: उपयोगकर्ता के एफ़टीपी होम निर्देशिका को बदलना
* नोट: ईमान सेदिगी ने उपयोगकर्ताओं को किसी विशिष्ट निर्देशिका तक पहुँच को प्रतिबंधित करने के लिए अधिक सुरुचिपूर्ण समाधान पोस्ट किया है। कृपया उत्तर के रूप में पोस्ट किए गए उनके उत्कृष्ट समाधान को देखें *
आप एक उपयोगकर्ता बनाना चाहते हैं और अपने FTP एक्सेस को एक विशिष्ट फ़ोल्डर तक सीमित कर सकते हैं, जैसे / var / www। ऐसा करने के लिए, आपको उपयोगकर्ता की डिफ़ॉल्ट होम निर्देशिका को बदलना होगा:
> sudo usermod -d /var/www/ username
इस विशिष्ट उदाहरण में, उपयोगकर्ता को 'www' समूह की अनुमति देना विशिष्ट है, जो अक्सर / var / www फ़ोल्डर से जुड़ा होता है:
> sudo usermod -a -G www username