जेल उपयोगकर्ताओं के लिए सरल और आसान तरीका


33

मुझे Oneiric में अपने घर निर्देशिकाओं में उपयोगकर्ताओं को जेल करने के लिए एक सरल और आसान तरीका चाहिए। क्या आपके पास पूरी मदद, या कुछ अच्छे वेब लिंक के साथ, उपयोगकर्ताओं के लिए एक सरल विन्यास है?

मैं 10 से 20 जीबी मुक्त स्थान के साथ एक ऑनलाइन मुफ्त सार्वजनिक सर्वर की पेशकश करूंगा। मैं नहीं जानता कि कितने उपयोगकर्ता हैं। मैं उन्हें SSH और SFTP देना चाहता हूं ताकि वे FileZilla के माध्यम से जुड़ सकें।


यदि उपयोगकर्ता घरेलू निर्देशिकाओं में बंद नहीं हैं तो दूसरा अद्यतन
वन जीरो

फिर मेरा मानना ​​है कि @Marco द्वारा बताए गए 1-के रूप में आप SSH 2- के लिए चेरोटडायरेक्टरी की कोशिश करना चाहते हैं - आप चीजों को करने के मानक तरीकों से परे जाना चाह सकते हैं क्योंकि आपको इसे "बहुत" स्टोरेज को संभालने के लिए स्केल करने की आवश्यकता है, ... 3- क्या एसएसएच आपकी सबसे अच्छी पसंद है? क्या लोगों को आपकी सेवा में SSH की आवश्यकता है? 4- सौभाग्य
अली

1
मेरे पास अन्य योजना भी है .... सामान्य उपयोगकर्ताओं के लिए हम केवल MY SECURE SHELL के साथ केवल SFTP की पेशकश करेंगे, यह बहुत आसान है 2 संभालना
One Zero

मैं इस जेल को कैसे हटा सकता हूं जैसे (घर / जेल)? <br> और जब मैं कुछ जेल अनुभाग जैसे jk_init -v -f / home / जेल netutils जोड़ूंगा, तो मैं इसे कैसे निकालूंगा?

जवाबों:


23

जेलकिट उपयोगिताओं का एक सेट है जो उपयोगकर्ता खातों को एक विशिष्ट निर्देशिका ट्री और विशिष्ट आदेशों तक सीमित कर सकता है। जेलकिट उपयोगिताओं का उपयोग करके जेल स्थापित करना बहुत आसान है जो ऐसा 'हाथ से' कर रहा है। एक जेल एक निर्देशिका पेड़ है जिसे आप अपनी फ़ाइल प्रणाली में बनाते हैं; उपयोगकर्ता किसी भी निर्देशिका या फ़ाइलों को नहीं देख सकता है जो जेल निर्देशिका के बाहर हैं। उपयोगकर्ता को उस निर्देशिका में जेल दिया गया है और यह उपनिर्देशिका है।

डाउनलोड और स्थापित करें:

http://olivier.sessink.nl/jailkit/index.html#download

VERSION=2.20 # from November 2018
cd /tmp
wget https://olivier.sessink.nl/jailkit/jailkit-$VERSION.tar.gz
tar -zxvf jailkit-$VERSION.tar.gz
cd jailkit-$VERSION/
./configure
make
su -
make install

जेल की स्थापना

अब जेल निर्देशिका को स्थापित करने का समय आ गया है। जेल किए गए उपयोगकर्ता इस निर्देशिका को सर्वर की रूट निर्देशिका के रूप में देखेंगे। मैंने उपयोग करने के लिए चुना / घर / जेल:

mkdir /home/jail
chown root:root /home/jail

jk_init का उपयोग किसी कार्य या प्रोफ़ाइल के लिए आवश्यक कई फ़ाइलों या निर्देशिकाओं के साथ जल्दी से जेल बनाने के लिए किया जा सकता है, (इस पर क्लिक करें और पूर्ण विवरण पढ़ें)।

jk_init -v /home/jail basicshell
jk_init -v /home/jail netutils
jk_init -v /home/jail ssh
jk_init -v /home/jail jk_lsh

एक उपयोगकर्ता जोड़ें

होम डायरेक्टरी और बैश शेल के साथ एक नया उपयोगकर्ता जोड़ें, और पासवर्ड सेट करें:

useradd -d /home/jailtest -m jailtest -s /bin/bash
passwd jailtest

अब इस उपयोगकर्ता को जेल करने का समय आ गया है

निम्नलिखित आदेश का उपयोग करें:

jk_jailuser -m -j /home/jail jailtest

आपके पास /etc/passwdकुछ इस तरह होना चाहिए:

jailtest:x:1001:1001::/home/jail/./home/jailtest:/usr/sbin/jk_chrootsh

बैश सक्षम करें

Jk_cp का उपयोग करके bash पुस्तकालयों को जेल में कॉपी किया जाता है:

jk_cp -v -f /home/jail /bin/bash

संपादित करें /home/jail/etc/passwd

इस पंक्ति को बदलें:

jailtest:x:1001:1001::test:/usr/sbin/jk_lsh

इसके साथ:

jailtest:x:1001:1001::/home/jailtest:/bin/bash

रखरखाव

jk_updateअसली सिस्टम पर अपडेट का उपयोग करके जेल में अपडेट किया जा सकता है।

ड्राई-रन दिखाएगा कि क्या चल रहा है:

jk_update -j /home/jail -d

-D वाद के बिना वास्तविक अद्यतन किया जाता है। अधिक रखरखाव संचालन यहां पाया जा सकता है।

(यदि मामला /home/jail/optगायब है, तो इसे फिर से बनाएं mkdir -p /home/jail/opt/ और चलाएं jk_update -j /home/jail)

अन्य निर्देशिकाओं तक पहुंच प्रदान करें

आप विशेष फ़ोल्डरों को माउंट कर सकते हैं, जो कि जेल उपयोगकर्ता अब ले सकते हैं। उदाहरण के लिए:

mount --bind /media/$USER/Data/ /home/jail/home/jailtest/test/

लिया मदद

http://olivier.sessink.nl/jailkit/howtos_chroot_shell.html

http://olivier.sessink.nl/jailkit/index.html#intro (एक बहुत अच्छी मदद)

यह भी एक

यह जाँच और सत्यापित किया गया है, ठीक से काम कर रहा है


+1 बहुत अच्छा। अत्यधिक आपके द्वारा "हेल्प टेकन" सेक्शन में ऊपर बताए गए लिंक्स को भी पढ़ने की सलाह दें
cwd

2
यह उबंटू 13.10 पर काम नहीं करता है। जब आप अंत में लॉगिन करने का प्रयास करते हैं तो आपको तुरंत बंद हुए कनेक्शन के बाद स्वागत संदेश मिलता है।
मैट एच

मैट एच: अंतिम दो चरणों का पालन करना सुनिश्चित करें; बैश बायनेरिज़ की प्रतिलिपि बनाना और / होम / जेल / आदि / पासवार्ड फ़ाइल को संपादित करना।
ONOZ

2
यह या तो काम नहीं करता है या कुछ बदल गया है क्योंकि इस ट्यूटोरियल को रखा गया था। Im मैट के रूप में बिल्कुल वही समस्याएं हो रही हैं।
जेम्स हेडल

मैंने भी स्वागत संदेश के तुरंत बाद कनेक्शन बंद कर दिया था। मैंने chroot passwd फ़ाइल के भीतर लॉगिन खोल को jk_lsh से bash के रूप में बदल दिया है क्योंकि यहाँ पढ़ा linuxquestions.org/questions/linux-software-2/… यह एक समाधान नहीं है बल्कि एक समाधान है!
अत्तिला फुलोप

6

आप उन्हें / घर तक सीमित नहीं कर सकते क्योंकि उन्हें सिस्टम बायनेरीज़ तक पहुंचने और / आदि में बैश और कॉन्फ़िगरेशन फ़ाइलों की आवश्यकता होती है

उपयोगकर्ताओं को सुरक्षित करने के लिए IMO का सबसे आसान तरीका ऐपर्मर का उपयोग करना है।

आप एक कड़ी बनाते हैं

ln /bin/bash /usr/local/bin/jailbash

आप जेलबश को / etc / गोले में जोड़ते हैं

फिर आप उपयोगकर्ताओं को शेलबेल के लिए जेलबश असाइन करते हैं, और उसके बाद कम से कम एक्सेस की अनुमति देते हुए जेलबैश के लिए एक एपॉर्मर प्रोफाइल लिखते हैं।

sudo chsh -s /usr/local/bin/jailbash user_to_confine

आपको स्वयं एक एपर्मोर प्रोफाइल लिखना होगा, लेकिन मेरे पास एक ऐसा प्रोफाइल है जिसे आप संभावित रूप से शुरू कर सकते हैं

http://bodhizazen.com/aa-profiles/bodhizazen/ubuntu-10.04/usr.local.bin.jailbash


You can not confine them to /home as they need access to the system binaries and bash and configuration files in /etcआपको उन फ़ाइलों को लिंक करने / कॉपी करने से रोकना नहीं है जो आपको लगता है कि उनकी आवश्यकता है।
user606723

1
उपयोगकर्ता 606023 का सुझाव "हाँ" कर सकते हैं, लेकिन यह इतना आसान नहीं है, और सभी संभावित समाधानों का IMO सबसे कम व्यावहारिक या आसान है। साथ ही चेरोट का निर्माण कर सकते हैं या lxc का उपयोग कर सकते हैं। आप एक बाइनरी कॉपी करते हैं, फिर लिबास। अक्सर आपको मैन्युअल रूप से ldd के साथ libs की पहचान करने की आवश्यकता होगी। इस विधि को स्थापित करने में एक टन का काम लगता है। और फिर आपको जेल को अद्यतित रखना होगा, आपको बायनेरिज़ / लिबास को मैन्युअल रूप से अपडेट (कॉपी) करना होगा। लिंक अपडेट के मामले में बेहतर काम कर सकते हैं, लेकिन फिर भी आपको उन्हें सेट अप करने की आवश्यकता है। किसी तरह मुझे नहीं लगता कि यह ओपी के दिमाग में था। फिर उन्हें कैसे सीमित रखा जाए?
पैंथर

1
मुझे लगता है कि सवाल का पूरा बिंदु इस प्रक्रिया को स्वचालित करने के लिए उपकरणों को इंगित करना था ... जैसे jailkit, एक उपकरण ओपी का उल्लेख करता है।
user606723

@ बॉडी.ज़ाज़ेन आप इस बारे में क्या सोचते हैं .. debootstrap (वनरिक) तो lxc का उपयोग करके एक कंटेनर बनाएं। जेल किट> कंटेनर में उपयोगकर्ता> का उपयोग करना। मैंने अभी तक क्या किया है मेरे पास डेबूटस्ट्रैप वनैरिक न्यूनतम है तो जेलकिट का इस्तेमाल किया> ठीक काम कर रहा है
एक शून्य

आप इस कार्य के लिए LXC का उपयोग कर सकते हैं, सावधान रहें कि LXC के साथ अलगाव कभी-कभी अधूरा होता है। जब तक उपयोगकर्ताओं के पास कंटेनर में रूट एक्सेस नहीं है तब तक आपको ठीक होना चाहिए और आप LXC मेलिंग सूची की सदस्यता लेना चाहते हैं।
पैंथर

1

यह अनुमान लगाना मुश्किल है कि आप किस उद्देश्य को पूरा करना चाहते हैं। अगर यह FTP के माध्यम से जेल पहुँच प्रदान करते समय ssh / sftp को अस्वीकार करना है ... आसान:

एक नया शेल जोड़ने के लिए / etc / गोले:

sudo -e /etc/shells

एक पंक्ति जोड़ें:

/bin/false

बचाना। प्रत्येक उपयोगकर्ता के लिए आप ssh / sftp को अस्वीकार करना चाहते हैं, उपयोगकर्ता के शेल को बदलें:

sudo chsh -s /bin/false userx

अब उपयोगकर्ता ssh / sftp के माध्यम से लॉग इन नहीं कर सकता है।

Vsftpd स्थापित करें:

sudo apt-get install vsftpd

कॉन्फ़िगरेशन फ़ाइल संपादित करें:

sudo -e /etc/vsftpd.conf

और कुछ बदलाव…।

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES

बचाना। पुनः आरंभ बनाम

sudo /etc/init.d/vsftpd restart

अच्छी तरह से im उन्हें ssh + sftp (फाइलज़िला के माध्यम से कनेक्ट) देना चाहते हैं
एक शून्य

0

आप rbashअपने उपयोगकर्ताओं के लिए एक शेल के रूप में देख सकते हैं ।

man bash

RESTRICTED SHELLअनुभाग के लिए खोजें

या इस पृष्ठ http://linux.die.net/man/1/bash पर देखें


3
बस rbash के साथ बहुत सावधान रहें, आउटडेटेड माना जाता है और इसे तोड़ना बहुत आसान है। देखें blog.bodhizazen.net/linux/how-to-restrict-access-with-rbash
पैंथर

@ bodhi.zazen तुम्हारा मतलब rbash?
कार्लसन

हाँ, माफ करना, मैंने तय किया है। कई साल पहले एक ब्लॉग था जहाँ किसी ने मेरे द्वारा स्थापित एक रबाश जेल को तोड़ दिया था, और मैं हालांकि तंग, न्यूनतम जेल था। उन्हें 5 मिनट तक कम लिया। किसी को भी जेल तोड़ बाहर नहीं आया था।
पैंथर

क्या आप मुझे बता सकते हैं कि मैं इसे कैसे कॉन्फ़िगर करूं .... जेलबश
वन जीरो

हाँ, आदमी बैश मदद करता है, बैश प्रतिबंध खोल क्षमताओं का उपयोग और अधिक सरल है
c4f4t0r
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.