OpenSSH 'आंतरिक- sftp' की तरह कुछ भी लेकिन SCP के लिए?


16

मैं डेबियन स्थिर चल रहा हूं और मैं अपने 'sftponly' समूह में उपयोगकर्ताओं के लिए निम्न वातावरण स्थापित करना चाहता हूं:

  • जेल में बंद
  • SFTP के साथ स्थानांतरण कर सकते हैं
  • एससीपी के साथ स्थानांतरण कर सकते हैं
  • SSH के साथ अंतःक्रियात्मक रूप से लॉगिन नहीं कर सकता

मेरे प्रयोग और अनुसंधान से, ऐसा लगता है कि sshd_config में निम्नलिखित श्लोक मुझे वहाँ 90% मिलता है:

Match group sftponly
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

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

यह समझ में आता है कि यह कॉन्फ़िगरेशन एससीपी को निष्क्रिय कर देगा, क्योंकि आने वाले एससीपी कनेक्शन उपयोगकर्ता के लॉगिन शेल के माध्यम से एक `एससीपी 'प्रक्रिया को जन्म देते हैं, क्योंकि वह उपयोगकर्ता है। ऐसा लगता है कि यह सामान्य रूप से एसएफटीपी के लिए सही होगा, क्या यह विशेष 'आंतरिक-एसटीपी' हैंडलर के लिए नहीं था।

इसलिए, मुझे लगता है कि मेरा प्रश्न यह है: क्या 'आंतरिक-sftp' के समान प्रभाव को प्राप्त करने का एक तरीका है, लेकिन SCP के लिए, बिना थकाऊ और rshsh जैसे तृतीय-पक्ष टूल का उपयोग किए बिना? -इंटरनल-एसएफटीपी ’के बारे में वास्तव में अच्छी बात यह है कि इसमें समर्थन फाइलों के साथ जेल स्थापित करने की आवश्यकता नहीं है, या संभावित-शोषक तृतीय पक्ष सेतु बायनेरिज़ के साथ काम करना (विशेष रूप से, शोषण का इतिहास है)।


1
क्या क्लाइंट ssh कुंजी फ़ाइल का उपयोग कर कनेक्ट कर रहे हैं, या वे पासवर्ड का उपयोग कर रहे हैं? यदि यह एक कीफाइल है, तो यह प्रतिबंधित करना संभव है कि वे क्या कर सकते हैं।
जेनी डी

वे पासवर्ड से जुड़ रहे हैं।
brianjcohen 15

जवाबों:


3

Rssh पर एक नज़र डालें जो एक वैकल्पिक शेल है जो एक सिस्टम तक सीमित पहुंच की अनुमति देता है।

rssh ssh (1) के माध्यम से एक मेजबान तक सीमित पहुंच प्रदान करने के लिए एक प्रतिबंधित शेल है, जिससे एक उपयोगकर्ता जिसका शेल rssh से एक या अधिक कमांड (s) एससीपी (1), sftp (1) cs (1) का उपयोग करने के लिए कॉन्फ़िगर किया गया है ), rdist (1), और rsync (1), और केवल उन कमांड्स।

आप कॉन्फ़िगर कर सकते हैं कि rssh.conf फ़ाइल का उपयोग करके कौन -सी आज्ञाओं का उपयोग प्रति-उपयोगकर्ता या सिस्टम विस्तृत आधार पर किया जा सकता है

वैकल्पिक रूप से आप क्या चाहते हैं करने के लिए scponly का उपयोग कर सकते हैं। यह ssh सुइट के लिए एक आवरण के रूप में कार्य करता है और फ़ाइल स्थानांतरण की अनुमति देता है लेकिन शेल एक्सेस नहीं।


2

क्या आपको ssh के माध्यम से ऐसा करने की आवश्यकता है?

यदि ऐसा है तो आप उनके शेल सेट करने का प्रयास कर सकते हैं:

/usr/libexec/openssh/sftp-server

और सुनिश्चित करें कि आप उपरोक्त को / etc / गोले में जोड़ते हैं

यदि आप बिल्ट इन अकाउंट्स का उपयोग करने से रोकना चाहते हैं, तो आप प्रॉपर सेटअप कर सकते हैं

मैं एक सुरक्षित SFTP का उपयोग कर proftpd सेटअप करता हूं। संकलित proftpd जैसे:

./configure --prefix = / usr - sysconfdir = / etc - साथ-मॉड्यूल = mods.sp

नीचे इस लेख का उपयोग कर सकते हैं, और इसे स्थापित करने के तरीके के बारे में Google पर कुछ और जानकारी दे सकते हैं:

http://tutorialgenius.blogspot.com/2012/02/linux-installing-and-configuring.html


2

मुझे डर है कि OpenSSH के साथ ऐसा कुछ भी आसान या विश्वसनीय नहीं है, क्योंकि आपने देखा कि एक अंतर्निहित SFTP सर्वर है, लेकिन कोई अंतर्निहित SCP सर्वर नहीं है।

चेतावनी: विंस बर्क का सुझाव कई कारणों से खराब है:

  1. स्टार्टअप फ़ाइलों के संबंध में शेल का व्यवहार पर्यावरण चर से प्रभावित हो सकता है, जिसे एसएसएच दूरस्थ रूप से सर्वर कॉन्फ़िगरेशन के आधार पर सेट कर सकता है।
  2. उपयोगकर्ता केवल ssh / bin / bash चला सकता है और एक शेल प्राप्त कर सकता है। यह एक tty नहीं है और इसलिए उपयोग करने के लिए असुविधाजनक हो जाएगा, लेकिन इतना क्या ... अन्य सभी कार्यक्रमों का उल्लेख नहीं करने के लिए जो वह चला सकते हैं कि आप संभवतः उसे नहीं चाहते हैं।
  3. अगर .bash_profile की अनुमतियों को बदलना थोड़ा अच्छा है अगर उपयोगकर्ता "ssh host rm -f .bash_profile" कर सकता है; होम निर्देशिका अनुमतियों के बारे में कुछ भी उल्लेख नहीं किया गया था।

... और इसी तरह। इस तरह का तरीका बहुत नाजुक है।


0

यह एक थर्ड पार्टी टूल है, जो सवाल के दायरे में नहीं है, लेकिन मुझे लगा कि यह किसी भी तरह से एक उल्लेख के योग्य है।

जेलकिट: https://olivier.sessink.nl/jailkit/

इसमें उपयोगकर्ता जेलों को स्थापित करने के लिए आसान उपकरण बनाने के लिए उपकरणों का एक संग्रह है - बायनेरिज़ और लाइब्रेरीज़ को जेल में कॉपी करना और जेल के अंदर से लॉगिंग को ओएस पर सेट करना। मैंने इसका इस्तेमाल sftp / scp / rsync-only chroots बनाने में किया है।

यह jk_lsh(जेलकिट लिमिटेड शेल) के साथ भी आता है, जिसका उपयोग जेल के बाहर उन कमांडों को सीमित करने के लिए किया जा सकता है, जो उपयोगकर्ता चला सकते हैं, उदाहरण के लिए यदि आप केवल chroot के बिना scp / sftp / rsync की अनुमति देना चाहते हैं।


-1

यहाँ पर एक ट्रिक है कि इस सर्वरसाइड को कैसे करें। उपयोगकर्ताओं का शेल सेट करें, कहें, मारें:

usermod -S /bin/bash [username]

अब निम्नलिखित पंक्ति के साथ उनके होमडेयर में एक '.bash_profile' बनाएँ:

[ -n "$PS1" ] && exit

यह जारी रखने के लिए गैर-संवादात्मक सत्र (जैसे 'scp') का कारण बनता है। हालाँकि, यदि वे 'ssh' लॉगिन का प्रयास करते हैं, तो 'निकास' कहा जाता है, और कनेक्शन बंद हो जाता है।

सुनिश्चित करें कि वे अपने घर निर्देशिकाओं में 'sftp' को एक नया '.bash_profile' नहीं बना सकते हैं!

chown root:root .bash_profile

उम्मीद है की वो मदद करदे!


यह दृष्टिकोण जेल की आवश्यकता को ध्यान में नहीं रखता है।
brianjcohen

हां, दुर्भाग्यवश आपको 'scp' साइड के लिए एक मैनुअल चेरोट वातावरण बनाना होगा, जो sshd_config में दिए गए चेरोट डायरेक्टरी के साथ ओवरलैप हो रहा है, और प्रत्येक उपयोगकर्ता के लिए उपरोक्त ट्रिक को आप प्रतिबंधित करना चाहते हैं। 'Spp' आंतरिक sftp सर्वर के साथ काम नहीं करता है।
विंस बर्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.