एंड्रॉयड

Ubuntu 18.04 पर vsftpd के साथ ftp सर्वर सेटअप कैसे करें

कैसे usb में लिनक्स स्थापित करने के लिए | ubuntu | हिंदी | ट्यूटोरियल | ओएस यूएसबी मुख्य कासे चलें?

कैसे usb में लिनक्स स्थापित करने के लिए | ubuntu | हिंदी | ट्यूटोरियल | ओएस यूएसबी मुख्य कासे चलें?

विषयसूची:

Anonim

एफ़टीपी (फाइल ट्रांसफर प्रोटोकॉल) एक मानक नेटवर्क प्रोटोकॉल है जिसका उपयोग रिमोट नेटवर्क से फ़ाइलों को स्थानांतरित करने के लिए किया जाता है। अधिक सुरक्षित और तेज़ डेटा ट्रांसफ़र के लिए, SCP या SFTP का उपयोग करें।

लिनक्स के लिए कई ओपन सोर्स एफ़टीपी सर्वर उपलब्ध हैं। सबसे लोकप्रिय और व्यापक रूप से उपयोग किए जाने वाले PureFTPd, ProFTPD और vsftpd हैं। इस ट्यूटोरियल में, हम vsftpd (Very Secure Ftp Daemon) स्थापित करेंगे। यह एक स्थिर, सुरक्षित और तेज एफ़टीपी सर्वर है। हम आपको यह भी दिखाएंगे कि उपयोगकर्ताओं को अपने होम निर्देशिका में प्रतिबंधित करने के लिए vsftpd को कैसे कॉन्फ़िगर करें और SSL / TLS के साथ संपूर्ण ट्रांसमिशन को एन्क्रिप्ट करें।

यद्यपि यह ट्यूटोरियल उबंटू 18.04 के लिए लिखा गया है, उबंटू 16.04 और किसी भी डेबियन आधारित वितरण के लिए समान निर्देश लागू होते हैं, जिसमें डेबियन, लिनक्स मिंट और एलिमेंटरी ओएस शामिल हैं।

आवश्यक शर्तें

इस ट्यूटोरियल को जारी रखने से पहले, सुनिश्चित करें कि आप sudo विशेषाधिकार वाले उपयोगकर्ता के रूप में लॉग इन हैं।

उबंटू 18.04 पर vsftpd स्थापित करना

Vsftpd पैकेज उबंटू रिपॉजिटरी में उपलब्ध है। इसे स्थापित करने के लिए, बस निम्नलिखित कमांड चलाएँ:

sudo apt update sudo apt install vsftpd

स्थापना प्रक्रिया पूरी होने के बाद vsftpd सेवा स्वचालित रूप से शुरू हो जाएगी। सेवा की स्थिति मुद्रित करके इसे सत्यापित करें:

sudo systemctl status vsftpd

आउटपुट नीचे की तरह कुछ दिखाई देगा, यह दर्शाता है कि vsftpd सेवा सक्रिय और चल रही है:

* vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf

Vsftpd को कॉन्फ़िगर करना

/etc/vsftpd.conf सर्वर को /etc/vsftpd.conf फ़ाइल को संपादित करके कॉन्फ़िगर किया जा सकता है। अधिकांश सेटिंग्स कॉन्फ़िगरेशन फ़ाइल के अंदर अच्छी तरह से प्रलेखित हैं। सभी उपलब्ध विकल्पों के लिए आधिकारिक vsftpd पेज पर जाएँ।

निम्नलिखित अनुभागों में, हम एक सुरक्षित vsftpd स्थापना को कॉन्फ़िगर करने के लिए आवश्यक कुछ महत्वपूर्ण सेटिंग्स पर जाएंगे।

Vsftpd कॉन्फ़िगरेशन फ़ाइल खोलने से प्रारंभ करें:

sudo nano /etc/vsftpd.conf

1. एफ़टीपी एक्सेस

हम एफ़टीपी सर्वर तक केवल स्थानीय उपयोगकर्ताओं की पहुंच की अनुमति देंगे, local_enable स्थानीय और स्थानीय निर्देश खोजें और नीचे दिए गए लाइनों के लिए अपने कॉन्फ़िगरेशन मैच को सत्यापित करें:

/etc/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. अपलोड सक्षम करना

फ़ाइलों को अपलोड करने और हटाने जैसी फाइलसिस्टम में परिवर्तन की अनुमति देने के लिए write_enable सेटिंग को write_enable करें।

/etc/vsftpd.conf

write_enable=YES

3. चेरोट जेल

एफ़टीपी उपयोगकर्ताओं को अपने होम डाइरेक्टरीज़ के बाहर किसी भी फाइल को एक्सेस करने से रोकने के लिए chroot सेटिंग को chroot

/etc/vsftpd.conf

chroot_local_user=YES

डिफ़ॉल्ट रूप से एक सुरक्षा भेद्यता को रोकने के लिए, जब चेरोट सक्षम होता है vsftpd फ़ाइलों को अपलोड करने से इंकार कर देगा यदि उपयोगकर्ता जिस निर्देशिका में बंद है वह लिखने योग्य है।

जब chroot सक्षम हो तो अपलोड करने की अनुमति देने के लिए नीचे दी गई विधियों में से किसी एक का उपयोग करें।

  • विधि 1. - अपलोड करने की अनुमति देने के लिए अनुशंसित विधि चेरोट को सक्षम रखने और FTP निर्देशिकाओं को कॉन्फ़िगर करने के लिए है। इस ट्यूटोरियल में, हम उपयोगकर्ता के घर के अंदर एक ftp डायरेक्टरी बनाएंगे जो कि चिरोट के रूप में काम करेगी और फाइल्स अपलोड करने के लिए एक राइटली uploads डायरेक्टरी है।

    /etc/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    विधि 2. - एक अन्य विकल्प vsftpd कॉन्फ़िगरेशन फ़ाइल में निम्न निर्देश को जोड़ना है। इस विकल्प का उपयोग करें यदि आपको अपने उपयोगकर्ता को उसके होम डायरेक्टरी में लिखने योग्य पहुँच प्रदान करनी होगी।

    /etc/vsftpd.conf

    allow_writeable_chroot=YES

4. निष्क्रिय एफ़टीपी कनेक्शन

vsftpd निष्क्रिय FTP कनेक्शन के लिए किसी भी पोर्ट का उपयोग कर सकता है। हम बंदरगाहों की न्यूनतम और अधिकतम सीमा निर्दिष्ट करेंगे और बाद में अपने फ़ायरवॉल में सीमा को खोलेंगे।

कॉन्फ़िगरेशन फ़ाइल में निम्न पंक्तियाँ जोड़ें:

/etc/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. उपयोगकर्ता लॉगिन को सीमित करना

FTP सर्वर में लॉग इन करने के लिए केवल कुछ उपयोगकर्ताओं को फाइल के अंत में निम्नलिखित लाइनें जोड़ने की अनुमति देने के लिए:

/etc/vsftpd.conf

userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

जब यह विकल्प सक्षम हो जाता है, तो आपको स्पष्ट रूप से निर्दिष्ट करना होगा कि कौन से उपयोगकर्ता /etc/vsftpd.user_list फ़ाइल (प्रति पंक्ति एक उपयोगकर्ता) में उपयोगकर्ता नाम जोड़कर लॉग इन करने में सक्षम हैं।

6. एसएसएल / टीएलएस के साथ ट्रांसमिशन सुरक्षित करना

SSL / TLS के साथ FTP प्रसारण को एन्क्रिप्ट करने के लिए, आपको इसका उपयोग करने के लिए SSL प्रमाणपत्र होना चाहिए और FTP सर्वर को कॉन्फ़िगर करना होगा।

आप किसी विश्वसनीय प्रमाणपत्र प्राधिकरण द्वारा हस्ताक्षरित मौजूदा एसएसएल प्रमाणपत्र का उपयोग कर सकते हैं या स्व-हस्ताक्षरित प्रमाण पत्र बना सकते हैं।

हम openssl कमांड का उपयोग करके एक स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र उत्पन्न करेंगे।

निम्न आदेश 2048-बिट निजी कुंजी और 10 वर्षों के लिए स्व-हस्ताक्षरित प्रमाण पत्र बनाएगा। निजी कुंजी और प्रमाणपत्र दोनों को एक ही फ़ाइल में सहेजा जाएगा:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

एक बार SSL प्रमाणपत्र बन जाने के बाद vsftpd कॉन्फ़िगरेशन फ़ाइल खोलें:

sudo nano /etc/vsftpd.conf

rsa_cert_file और rsa_private_key_file निर्देशों को rsa_private_key_file , अपने मानों को pam फ़ाइल पथ में ssl_enable और ssl_enable निर्देश को YES सेट करें:

/etc/vsftpd.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES

यदि अन्यथा निर्दिष्ट नहीं है, तो FTP सर्वर सुरक्षित कनेक्शन बनाने के लिए केवल TLS का उपयोग करेगा।

Vsftpd सेवा को पुनरारंभ करें

एक बार जब आप संपादन कर लेते हैं, तो vsftpd कॉन्फ़िगरेशन फ़ाइल (टिप्पणियों को छोड़कर) कुछ इस तरह दिखना चाहिए:

/etc/vsftpd.conf

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

परिवर्तनों को प्रभावी बनाने के लिए फ़ाइल को सहेजें और vsftpd सेवा को फिर से शुरू करें:

sudo systemctl restart vsftpd

फ़ायरवॉल खोलना

पोर्ट 21 (एफ़टीपी कमांड पोर्ट), पोर्ट 20 (एफ़टीपी डेटा पोर्ट) और 30000-31000 (पैसिव पोर्ट्स रेंज) 30000-31000 लिए, निम्न कमांड चलाएँ:

sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp

लॉक होने से बचने के लिए, पोर्ट 22 खोलें:

sudo ufw allow OpenSSH

UFW को अक्षम और पुनः सक्षम करके UFW नियमों को पुनः लोड करें:

sudo ufw disable sudo ufw enable

परिवर्तनों को सत्यापित करने के लिए:

sudo ufw status

Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

एफ़टीपी उपयोगकर्ता बनाना

हमारे एफ़टीपी सर्वर का परीक्षण करने के लिए हम एक नया उपयोगकर्ता बनाएंगे।

  • यदि आपके पास पहले से ही एक उपयोगकर्ता है जिसे आप एफ़टीपी एक्सेस देना चाहते हैं, तो पहले चरण को छोड़ दें। यदि आप अपने कॉन्फ़िगरेशन फ़ाइल में allow_writeable_chroot=YES सेट करते हैं तो तीसरा चरण छोड़ें।
  1. newftpuser नाम का एक नया उपयोगकर्ता बनाएँ:

    sudo adduser newftpuser

    उपयोगकर्ता को अनुमत FTP उपयोगकर्ता सूची में जोड़ें:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

    FTP डायरेक्टरी ट्री बनाएं और सही अनुमतियां सेट करें:

    sudo mkdir -p /home/newftpuser/ftp/upload sudo chmod 550 /home/newftpuser/ftp sudo chmod 750 /home/newftpuser/ftp/upload sudo chown -R newftpuser: /home/newftpuser/ftp

    जैसा कि पिछले अनुभाग में चर्चा की गई है उपयोगकर्ता अपनी फ़ाइलों को ftp/upload निर्देशिका में ftp/upload करने में सक्षम होंगे।

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

शेल एक्सेस को अक्षम करना

डिफ़ॉल्ट रूप से, उपयोगकर्ता बनाते समय, यदि स्पष्ट रूप से निर्दिष्ट नहीं है तो उपयोगकर्ता के पास सर्वर तक एसएसएच पहुंच होगी।

शेल एक्सेस को अक्षम करने के लिए, हम एक नया शेल बनाएंगे जो उपयोगकर्ता को यह कहते हुए एक संदेश प्रिंट करेगा कि उनका खाता केवल एफ़टीपी एक्सेस तक सीमित है।

/bin/ftponly शेल बनाएं और इसे निष्पादन योग्य बनाएं:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly

नए शेल को /etc/shells फ़ाइल में मान्य शेल की सूची में जोड़ें:

echo "/bin/ftponly" | sudo tee -a /etc/shells

उपयोगकर्ता शेल को /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

सभी उपयोगकर्ताओं के शेल को बदलने के लिए एक ही कमांड का उपयोग करें जिसे आप केवल एफ़टीपी एक्सेस देना चाहते हैं।

निष्कर्ष

इस ट्यूटोरियल में, आपने सीखा कि अपने उबंटू 18.04 सिस्टम पर एक सुरक्षित और तेज़ एफ़टीपी सर्वर को कैसे स्थापित करें और कॉन्फ़िगर करें।

ftp ubuntu