centos में कॉन्फ़िगर FTP सर्वर करने के लिए vsftpd स्थापित करें 7
विषयसूची:
- आवश्यक शर्तें
- CentOS 7 पर vsftpd स्थापित करना
- Vsftpd को कॉन्फ़िगर करना
- 1. एफ़टीपी एक्सेस
- 2. अपलोड सक्षम करना
- 3. चेरोट जेल
- 4. निष्क्रिय एफ़टीपी कनेक्शन
- 5. उपयोगकर्ता लॉगिन को सीमित करना
- 6. एसएसएल / टीएलएस के साथ ट्रांसमिशन सुरक्षित करना
- Vsftpd सेवा को पुनरारंभ करें
- फ़ायरवॉल खोलना
- एफ़टीपी उपयोगकर्ता बनाना
- शेल एक्सेस को अक्षम करना
- निष्कर्ष
एफ़टीपी (फ़ाइल ट्रांसफ़र प्रोटोकॉल) एक मानक क्लाइंट-सर्वर नेटवर्क प्रोटोकॉल है जो उपयोगकर्ताओं को दूरस्थ नेटवर्क से फ़ाइलों को स्थानांतरित करने की अनुमति देता है।
लिनक्स के लिए कई ओपन सोर्स एफ़टीपी सर्वर उपलब्ध हैं। सबसे लोकप्रिय और व्यापक रूप से उपयोग किए जाने वाले PureFTPd, ProFTPD और vsftpd हैं।
इस ट्यूटोरियल में, हम CentOS 7 पर vsftpd (Very Secure Ftp Daemon) स्थापित करेंगे। यह एक स्थिर, सुरक्षित और तेज़ एफ़टीपी सर्वर है। हम आपको यह भी दिखाएंगे कि उपयोगकर्ताओं को अपने होम निर्देशिका में प्रतिबंधित करने के लिए vsftpd को कैसे कॉन्फ़िगर करें और SSL / TLS के साथ संपूर्ण ट्रांसमिशन को एन्क्रिप्ट करें।
अधिक सुरक्षित और तेज़ डेटा ट्रांसफ़र के लिए, SCP या SFTP का उपयोग करें।
आवश्यक शर्तें
इस ट्यूटोरियल को जारी रखने से पहले, सुनिश्चित करें कि आप sudo विशेषाधिकार वाले उपयोगकर्ता के रूप में लॉग इन हैं।
CentOS 7 पर vsftpd स्थापित करना
Vsftpd पैकेज डिफ़ॉल्ट CentOS रिपॉजिटरी में उपलब्ध है। इसे स्थापित करने के लिए, निम्न आदेश जारी करें:
sudo yum install vsftpd
पैकेज स्थापित होने के बाद, vsftpd डेमॉन को शुरू करें और इसे बूट समय पर स्वचालित रूप से शुरू करने में सक्षम करें:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
आप सत्यापित कर सकते हैं कि vsftpd सेवा इसकी स्थिति को प्रिंट करके चल रही है:
sudo systemctl status vsftpd
आउटपुट नीचे की तरह कुछ दिखाई देगा, यह दर्शाता है कि vsftpd सेवा सक्रिय और चल रही है:
● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Vsftpd को कॉन्फ़िगर करना
/etc/vsftpd/vsftpd.conf
सेवा को कॉन्फ़िगर करने में
/etc/vsftpd/vsftpd.conf
कॉन्फ़िगरेशन फ़ाइल को संपादित करना शामिल है। अधिकांश सेटिंग्स कॉन्फ़िगरेशन फ़ाइल के अंदर अच्छी तरह से प्रलेखित हैं। सभी उपलब्ध विकल्पों के लिए आधिकारिक vsftpd पेज पर जाएँ।
निम्नलिखित अनुभागों में, हम एक सुरक्षित vsftpd अधिष्ठापन को कॉन्फ़िगर करने के लिए आवश्यक कुछ महत्वपूर्ण सेटिंग्स पर जाएंगे।
Vsftpd कॉन्फ़िगरेशन फ़ाइल खोलने से प्रारंभ करें:
sudo nano /etc/vsftpd/vsftpd.conf
1. एफ़टीपी एक्सेस
हम एफ़टीपी सर्वर तक केवल स्थानीय उपयोगकर्ताओं की पहुंच की अनुमति देंगे,
local_enable
स्थानीय और स्थानीय निर्देश खोजें और नीचे दिए गए लाइनों के लिए अपने कॉन्फ़िगरेशन मैच को सत्यापित करें:
anonymous_enable=NO local_enable=YES
2. अपलोड सक्षम करना
फ़ाइलों को अपलोड करने और हटाने जैसी फाइलसिस्टम में परिवर्तन की अनुमति देने के लिए
write_enable
सेटिंग को
write_enable
करें।
3. चेरोट जेल
एफ़टीपी उपयोगकर्ताओं को चुरोट के निर्देश को अनसुना करके अपने घर निर्देशिकाओं के बाहर किसी भी फ़ाइल का उपयोग करने से रोकें।
/etc/vsftpd/vsftpd.conf
chroot_local_user=YES
डिफ़ॉल्ट रूप से, जब चेरोट को सक्षम किया जाता है, तो vsftpd फ़ाइलों को अपलोड करने से इंकार कर देगा यदि निर्देशिका जो उपयोगकर्ताओं को लॉक की गई है वह लिखने योग्य है। यह सुरक्षा भेद्यता को रोकने के लिए है।
जब chroot सक्षम हो तो अपलोड करने की अनुमति देने के लिए नीचे दी गई विधियों में से किसी एक का उपयोग करें।
-
विधि 1. - अपलोड करने की अनुमति देने के लिए अनुशंसित विधि चेरोट को सक्षम रखने और FTP निर्देशिकाओं को कॉन्फ़िगर करने के लिए है। इस ट्यूटोरियल में, हम उपयोगकर्ता के घर के अंदर एक
/etc/vsftpd/vsftpd.confftp
डायरेक्टरी बनाएंगे जो कि चिरोट के रूप में काम करेगी और फाइल्स अपलोड करने के लिए एक राइटलीuploads
डायरेक्टरी है।user_sub_token=$USER local_root=/home/$USER/ftp
विधि 2. - एक अन्य विकल्प vsftpd कॉन्फ़िगरेशन फ़ाइल में निम्न निर्देश को जोड़ना है। इस विकल्प का उपयोग करें यदि आपको अपने उपयोगकर्ता को उसके होम डायरेक्टरी में लिखने योग्य पहुँच प्रदान करनी होगी।
/etc/vsftpd/vsftpd.confallow_writeable_chroot=YES
4. निष्क्रिय एफ़टीपी कनेक्शन
vsftpd निष्क्रिय FTP कनेक्शन के लिए किसी भी पोर्ट का उपयोग कर सकता है। हम बंदरगाहों की न्यूनतम और अधिकतम सीमा निर्दिष्ट करेंगे और बाद में अपने फ़ायरवॉल में सीमा को खोलेंगे।
कॉन्फ़िगरेशन फ़ाइल में निम्न पंक्तियाँ जोड़ें:
/etc/vsftpd/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. उपयोगकर्ता लॉगिन को सीमित करना
FTP सर्वर में प्रवेश करने के लिए केवल कुछ उपयोगकर्ताओं को अनुमति देने के लिए
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/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
एक बार SSL प्रमाणपत्र बन जाने के बाद vsftpd कॉन्फ़िगरेशन फ़ाइल खोलें:
sudo nano /etc/vsftpd/vsftpd.conf
rsa_cert_file
और
rsa_private_key_file
निर्देशों को
rsa_private_key_file
, अपने मानों को
pam
फ़ाइल पथ में
ssl_enable
और
ssl_enable
निर्देश को
YES
सेट करें:
rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
यदि अन्यथा निर्दिष्ट नहीं है, तो FTP सर्वर सुरक्षित कनेक्शन बनाने के लिए केवल TLS का उपयोग करेगा।
Vsftpd सेवा को पुनरारंभ करें
एक बार जब आप संपादन कर लेते हैं, तो vsftpd कॉन्फ़िगरेशन फ़ाइल (टिप्पणियों को छोड़कर) कुछ इस तरह दिखना चाहिए:
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
परिवर्तनों को प्रभावी बनाने के लिए फ़ाइल को सहेजें और vsftpd सेवा को फिर से शुरू करें:
फ़ायरवॉल खोलना
पोर्ट
21
(एफ़टीपी कमांड पोर्ट), पोर्ट
20
(एफ़टीपी डेटा पोर्ट) और
30000-31000
(पैसिव पोर्ट्स रेंज)
30000-31000
, निम्न कमांड जारी करें:
sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
टाइप करके फ़ायरवॉल नियम पुनः लोड करें:
एफ़टीपी उपयोगकर्ता बनाना
हमारे एफ़टीपी सर्वर का परीक्षण करने के लिए हम एक नया उपयोगकर्ता बनाएंगे।
- यदि आपके पास पहले से ही एक उपयोगकर्ता है जिसे आप एफ़टीपी एक्सेस देना चाहते हैं, तो पहले चरण को छोड़ दें। यदि आप अपने कॉन्फ़िगरेशन फ़ाइल में
allow_writeable_chroot=YES
सेट करते हैं तो तीसरा चरण छोड़ें।
-
newftpuser
नाम का एक नया उपयोगकर्ता बनाएँ:sudo adduser newftpuser
अगला, आपको उपयोगकर्ता पासवर्ड सेट करने की आवश्यकता होगी:
sudo passwd 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
अन्य उपयोगकर्ताओं के लिए शेल को बदलने के लिए उसी कमांड का उपयोग करें जिसे आप केवल एफ़टीपी एक्सेस देना चाहते हैं।
निष्कर्ष
इस ट्यूटोरियल में, आपने सीखा कि अपने CentOS 7 सिस्टम पर एक सुरक्षित और तेज़ FTP सर्वर को कैसे संस्थापित और कॉन्फ़िगर किया जाए।
फीट सेंटोसएंड्रॉइड पर ftp सर्वर को सेटअप और उपयोग कैसे करें
अपने एंड्रॉइड डिवाइस से पीसी को बिना यूएसबी केबल के फाइल ट्रांसफर करना चाहते हैं? एंड्रॉइड और पीसी के बीच फ़ाइलों को वायरलेस तरीके से साझा करने के लिए एफ़टीपी सर्वर विधि का प्रयास करें।
डेबियन 9 पर vsftpd के साथ ftp सर्वर सेटअप कैसे करें
इस ट्यूटोरियल में हम vsftpd स्थापित करेंगे। यह एक स्थिर, सुरक्षित और तेज एफ़टीपी सर्वर है। हम आपको यह भी दिखाएंगे कि उपयोगकर्ताओं को उनके घर निर्देशिका में प्रतिबंधित करने और SSL / TLS के साथ संपूर्ण प्रसारण को एन्क्रिप्ट करने के लिए vsftpd को कैसे कॉन्फ़िगर करें।
Ubuntu 18.04 पर vsftpd के साथ ftp सर्वर सेटअप कैसे करें
इस ट्यूटोरियल में हम vsftpd स्थापित करेंगे। यह एक स्थिर, सुरक्षित और तेज एफ़टीपी सर्वर है। हम आपको यह भी दिखाएंगे कि उपयोगकर्ताओं को उनके घर निर्देशिका में प्रतिबंधित करने और SSL / TLS के साथ संपूर्ण प्रसारण को एन्क्रिप्ट करने के लिए vsftpd को कैसे कॉन्फ़िगर करें।