एंड्रॉयड

Sftp चुरोट जेल कैसे स्थापित करें

CentOS 7 - क्रूट जेल के साथ सेटअप SFTP

CentOS 7 - क्रूट जेल के साथ सेटअप SFTP

विषयसूची:

Anonim

इस ट्यूटोरियल में, हम बताएंगे कि कैसे एक SFTP चेरोट जेल पर्यावरण की स्थापना की जाए जो उपयोगकर्ताओं को उनके घरेलू निर्देशिकाओं तक सीमित कर देगा। उपयोगकर्ताओं के पास केवल SFTP पहुँच होगी, SSH पहुँच अक्षम की जाएगी। ये निर्देश उबंटू, सेंटोस, डेबियन और फेडोरा सहित किसी भी आधुनिक लिनक्स वितरण के लिए काम करना चाहिए।

एक SFTP समूह बनाना

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

sftponly उपयोगकर्ता समूह बनाने के लिए निम्न groupadd कमांड चलाएँ:

sudo groupadd sftponly आप जैसा चाहें ग्रुप का नाम बता सकते हैं।

SFTP समूह में उपयोगकर्ता जोड़ना

अगला चरण उन उपयोगकर्ताओं को जोड़ना है जिन्हें आप sftponly समूह में प्रतिबंधित करना चाहते हैं।

यदि यह एक नया सेटअप है और उपयोगकर्ता मौजूद नहीं है तो आप टाइप करके एक नया उपयोगकर्ता खाता बना सकते हैं:

sudo useradd -g sftponly -s /bin/false -m -d /home/username username

  • -g sftponly विकल्प उपयोगकर्ता को sftponly group में जोड़ देगा। -s /bin/false विकल्प उपयोगकर्ता के लॉगिन शेल को सेट करता है। लॉगिन शेल को /bin/false करने से उपयोगकर्ता SSH के माध्यम से सर्वर में प्रवेश नहीं कर पाएगा। -m -d /home/username विकल्प useradd को उपयोगकर्ता होम डायरेक्टरी बनाने के लिए कहता है।

नए बनाए गए उपयोगकर्ता के लिए एक मजबूत पासवर्ड सेट करें:

sudo passwd username

अन्यथा यदि आप जिस उपयोगकर्ता को पहले से ही प्रतिबंधित करना चाहते हैं, वह उपयोगकर्ता को sftponly समूह में जोड़ें और उपयोगकर्ता के शेल को बदल दें:

sudo usermod -G sftponly -s /bin/false username2

उपयोगकर्ता होम निर्देशिका को रूट के स्वामित्व में होना चाहिए और इसकी 755 अनुमतियां होनी चाहिए:

sudo chown root: /home/username sudo chmod 755 /home/username

चूंकि उपयोगकर्ता होम डाइरेक्टरी रूट उपयोगकर्ता के स्वामित्व में हैं, इसलिए ये उपयोगकर्ता अपने होम डाइरेक्टरी में फाइल और डायरेक्टरी नहीं बना पाएंगे। यदि उपयोगकर्ता के घर में कोई निर्देशिका नहीं है, तो आपको नई निर्देशिकाएँ बनाने की आवश्यकता होगी, जिसके लिए उपयोगकर्ता की पूर्ण पहुँच होगी। उदाहरण के लिए, आप निम्न निर्देशिका बना सकते हैं:

sudo mkdir /home/username/{public_html, uploads} sudo chmod 755 /home/username/{public_html, uploads} sudo chown username:sftponly /home/username/{public_html, uploads}

यदि कोई वेब एप्लिकेशन उपयोगकर्ता के public_html निर्देशिका को दस्तावेज़ रूट के रूप में उपयोग कर रहा है, तो इन परिवर्तनों से अनुमतियाँ समस्याएँ हो सकती हैं। उदाहरण के लिए, यदि आप वर्डप्रेस चला रहे हैं, तो आपको एक PHP पूल बनाने की आवश्यकता होगी जो फ़ाइलों को रखने वाले उपयोगकर्ता के रूप में चलेगा और sftponly समूह में जाले को जोड़ sftponly

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

SFTP SSH का एक सबसिस्टम है और सभी SSH प्रमाणीकरण तंत्रों का समर्थन करता है।

अपने पाठ संपादक के साथ SSH कॉन्फ़िगरेशन फ़ाइल /etc/ssh/sshd_config खोलें:

sudo nano /etc/ssh/sshd_config

आमतौर पर फ़ाइल के अंत में Subsystem sftp शुरू होने वाली लाइन को खोजें। यदि रेखा हैश # शुरू होती है तो # हैश को हटा दें और इसे संशोधित करके निम्नलिखित की तरह देखें:

/ Etc / ssh / sshd_config

Subsystem sftp internal-sftp

फ़ाइल के अंत में, सेटिंग्स का निम्नलिखित ब्लॉक:

/ Etc / ssh / sshd_config

Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

ChrootDirectory निर्देश ChrootDirectory निर्देशिका के लिए पथ निर्दिष्ट करता है। %h अर्थ है उपयोगकर्ता होम डायरेक्टरी। यह निर्देशिका, रूट उपयोगकर्ता के पास होनी चाहिए और किसी अन्य उपयोगकर्ता या समूह द्वारा लिखित नहीं होनी चाहिए।

SSH कॉन्फ़िगरेशन फ़ाइल को संशोधित करते समय अतिरिक्त सावधानी बरतें। गलत कॉन्फ़िगरेशन SSH सेवा को प्रारंभ करने में विफल हो सकता है।

एक बार जब आप फ़ाइल को सेव कर लेते हैं और परिवर्तनों को लागू करने के लिए SSH सेवा को पुनः आरंभ करते हैं:

sudo systemctl restart ssh

CentOS और Fedora में ssh सेवा का नाम sshd :

sudo systemctl restart sshd

कॉन्फ़िगरेशन का परीक्षण करना

अब जब आपने SFTP चेरोट को कॉन्फ़िगर कर लिया है, तो आप दूरस्थ उपयोगकर्ता को chtot उपयोगकर्ता के क्रेडेंशियल्स का उपयोग करके SFTP के माध्यम से लॉगिन करने का प्रयास कर सकते हैं। ज्यादातर मामलों में, आप FileZilla जैसे डेस्कटॉप SFTP क्लाइंट का उपयोग करेंगे, लेकिन इस उदाहरण में, हम sftp कमांड का उपयोग करेंगे।

दूरस्थ सर्वर उपयोगकर्ता नाम और सर्वर आईपी पते या डोमेन नाम के बाद sftp कमांड का उपयोग करके एक SFTP कनेक्शन खोलें:

sftp [email protected]

आपको उपयोगकर्ता पासवर्ड दर्ज करने के लिए प्रेरित किया जाएगा। एक बार कनेक्ट होने के बाद, रिमोट सर्वर एक पुष्टिकरण संदेश और sftp> प्रॉम्प्ट प्रदर्शित करेगा:

[email protected]'s password: sftp>

pwd कमांड को चलाएं, जैसा कि नीचे दिखाया गया है, और यदि सब कुछ काम कर रहा है तो उम्मीद है कि कमांड को वापस लौटना चाहिए /

sftp> pwd Remote working directory: /

आप ls कमांड का उपयोग करके दूरस्थ फ़ाइलों और निर्देशिकाओं को भी सूचीबद्ध कर सकते हैं और आपको उन निर्देशिकाओं को देखना चाहिए जो हमने पहले बनाई हैं:

sftp> ls public_html uploads

निष्कर्ष

इस ट्यूटोरियल में, आपने सीखा है कि अपने लिनक्स सर्वर पर SFTP चेरोट जेल के वातावरण को कैसे सेटअप करें और उपयोगकर्ता की घर निर्देशिका तक पहुँच को सीमित करें।

डिफ़ॉल्ट रूप से, SSH पोर्ट 22 पर सुनता है। डिफ़ॉल्ट SSH पोर्ट को बदलना स्वचालित हमलों के जोखिम को कम करके आपके सर्वर पर सुरक्षा की एक अतिरिक्त परत जोड़ता है। आप एक SSH कुंजी-आधारित प्रमाणीकरण सेट करना चाहते हैं और पासवर्ड दर्ज किए बिना सर्वर से कनेक्ट कर सकते हैं।

ssh sftp सुरक्षा