Chroot'd rsync को सेटअप करने की कोशिश कर रहा है


10

मैं एक बैकअप सर्वर सेट करने का प्रयास कर रहा हूं। मैं प्रत्येक उपयोगकर्ता (क्लाइंट) को उसके होम डायरेक्टरी को चेरोट करना चाहता हूं , और केवल इसे sftp और rsync का उपयोग करने की अनुमति देता हूं ।

मुझे जल्दी से पता चला कि मैं ऐसा कुछ करने की कोशिश करने वाला अकेला नहीं था, और मैंने इस गाइड को पाया और उसका पालन किया। तो अब मुझे उपयोगकर्ताओं को केवल sftp के साथ chroot'd मिल गया है।

तब मुझे पता चला कि rsync को दूसरी मशीन पर स्वयं स्पॉन करने के लिए ssh की आवश्यकता है, और यह sftp पर्याप्त नहीं है। प्रत्येक उपयोगकर्ता को एक ssh लॉगिन देना कुछ ऐसा है जिसे मैं पहले स्थान पर बचना चाहता था।

किसी को भी कुछ संभव समाधान के बारे में सोच सकते हैं?

धन्यवाद,

निशान


इस उत्तर पर एक नज़र डालें मैंने कुछ समय लिखा है serverfault.com/questions/255084/…
user9517

जवाबों:


11

एक sftp समाधान भी सभी के लिए एक ssh लॉगिन की आवश्यकता होगी, तो आप वास्तव में यहाँ कुछ भी नहीं खो दिया है। उदाहरण के लिए, ssh एक्सेस देना अनिवार्य रूप से पूर्ण शेल एक्सेस नहीं है, यह दिखाता है कि बस rsync रिसीवर authorized_keysको उपलब्ध कमांड को सीमित करते हुए rsync के माध्यम से बैकअप की अनुमति देने के लिए ssh फ़ाइल का उपयोग कैसे करें ।

वास्तव में, यदि आप पासवर्ड प्रमाणीकरण (जो आपको चाहिए) के बजाय कुंजी आधारित प्रमाणीकरण का विकल्प चुनते हैं, तो आप कई खातों की आवश्यकता के बजाय एक उपयोगकर्ता खाते के तहत सब कुछ चला सकते हैं। आप दूरस्थ उपयोगकर्ताओं की पहचान करने के लिए कुंजियों का उपयोग करेंगे, और किसी विशेष निर्देशिका में rsync रिसीवर को निर्देशित करेंगे।

कुछ इस तरह, आपकी authorized_keysफ़ाइल में:

command="/usr/bin/rsync --server -a . /tmp/user1" ssh-rsa ... user1
command="/usr/bin/rsync --server -a . /tmp/user2" ssh-rsa ... user2

किसी का उपयोग कर user1में निजी कुंजी इच्छा बैकअप /tmp/user1, और किसी का उपयोग कर user2में निजी कुंजी इच्छा बैकअप /tmp/user2। इत्यादि...


लिंक 404 हो गया है।
भाग्यशाली 14

मैंने लिंक अपडेट किया है।
लार्क्स

6

rsyncक्लाइंट से दूरस्थ सर्वर पर सामान्य रूप से निष्पादित करें, लेकिन अतिरिक्त वर्बोज़ स्विच जोड़ें: SSH -vफिर के लिए grep Sending command। आप देखेंगे कि सटीक कमांड क्लाइंट दूरस्थ सर्वर को भेज रहा है:

rsync -avz -e'ssh -v -i /ssh-keys/clientprivate.key' --bwlimit=8000 --delete root@server:/path/ /backup/myserver/ 2>&1 | grep "Sending command"

मेरे मामले में, यह था

rsync --server -vvlogDtprze.iLsf --bwlimit=8000 --delete . /path

इसे command="..."दूरस्थ सर्वर /home/USER/.ssh/authorized_keysफ़ाइल के रूप में @larsks उल्लेख के रूप में जोड़ें। यदि आवश्यक हो, तो सुरक्षा सुरक्षा सेटिंग्स जोड़ें:

no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2..CPhIJ+LVULWz arnis@server

सभी एक साथ:

command="rsync --server -vvlogDtprze.iLsf --bwlimit=8000 --delete . /backup/path",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2..CPhIJ+LVULWz arnis@server

(बहुत अच्छे ट्यूटोरियल से लिया गया http://en.positon.org/post/Rsync-command-restriction-over-SSH )


अच्छा 1 जवाब।
स्लम

2

जब तक आप rsync सर्वर से सीधे कनेक्ट नहीं हो रहे हैं, तब तक आपको शेल एक्सेस का कुछ रूप प्रदान करने की आवश्यकता है जब तक कि आप rsync सर्वर से सीधे कनेक्ट न हों - डिफ़ॉल्ट पोर्ट 873 (टीसीपी) है।

से rysnc आदमी पेज :

रिमोट सिस्टम से संपर्क करने के लिए rsync के दो अलग-अलग तरीके हैं: ट्रांसपोर्ट के रूप में रिमोट-शेल प्रोग्राम का उपयोग करना (जैसे ssh या rsh) या सीधे rsync डेमॉन से टीसीपी के माध्यम से संपर्क करना। रिमोट-शेल ट्रांसपोर्ट का उपयोग तब किया जाता है, जब स्रोत या गंतव्य पथ में एक मेजबान बृहदान्त्र के बाद एक एकल बृहदान्त्र (:) विभाजक होता है। Rsync डेमॉन से संपर्क करना सीधे तब होता है जब स्रोत या गंतव्य पथ में एक डबल कोलन होता है (: :) एक होस्ट विनिर्देशन के बाद विभाजक, या जब एक rsync: // URL निर्दिष्ट किया जाता है (यह भी देखें कि RSYNC-DAEMON फीचर्स VIA A REMOTE-SHELL इस बाद के नियम के अपवाद के लिए कनेक्शन खंड)।

सीमित शेल पहुंच प्रदान करने के लिए, निम्नलिखित मार्गदर्शिका पर विचार करें । (नोट: मूल लिंक मृत है) सारांश:

यह सेटअप rsync, SSH और चेरोट से सर्वश्रेष्ठ सुविधाओं को जोड़ती है। Rsync फाइल ट्रांसफर में लचीलापन और दक्षता प्रदान करता है, SSH डेटा को ट्रांसफर होने से बचाता है, और चेरोट डेटा को अनधिकृत एक्सेस से बचाता है। Dummysh केवल rsync तक पहुँच को सीमित करता है।

जबकि rsync सर्वर chroot को कार्यान्वित करता है, इसमें SSH सुरक्षा का अभाव होता है जिसकी अक्सर आवश्यकता होती है। इसके अलावा, एक अतिरिक्त rsync सर्वर पोर्ट खोलना एक सुरक्षा जोखिम प्रस्तुत करता है और कभी-कभी तकनीकी या राजनीतिक रूप से संभव नहीं होता है। Sftp और scp में rsync द्वारा प्रदान किए गए लचीलेपन और दक्षता का अभाव है, खासकर जब एक निर्देशिका ट्री शामिल होता है, जैसे कि एक वेब साइट।

या rssh का उपयोग करने पर एक नज़र डालें ( यहाँ rssh स्थापित करने के लिए एक गाइड है ):

rssh ओपनएसएसएच के साथ उपयोग के लिए एक प्रतिबंधित शेल है, जो केवल स्कैप और / या sftp की अनुमति देता है। इसमें अब rdist, rsync, और cvs का समर्थन भी शामिल है। उदाहरण के लिए, यदि आपके पास एक सर्वर है, जिसे आप केवल शेल एक्सेस के माध्यम से उपयोगकर्ताओं को फ़ाइलों को कॉपी करने की अनुमति देना चाहते हैं, तो शेल एक्सेस प्रदान किए बिना, आप ऐसा करने के लिए rssh का उपयोग कर सकते हैं।


1
वर्तमान खबर यह है कि rshsh का रखरखाव नहीं किया जा रहा है और इसमें कुछ विषम सुरक्षा छेद हैं। इसमें निवेश करने से पहले वर्तमान स्थिति की जाँच करें।
चुतज

2
आप rrsyncआधिकारिक rsync पैकेज में शामिल rssh के बजाय पर्ल स्क्रिप्ट का उपयोग कर सकते हैं । देखें derek.simkowiak.net/backing-up-multiple-servers-with-rsnapshot
unhammer

0

आप एक शेल लिख सकते हैं जो rsync को लपेटता है।

सामान्य विचार यहाँ देखें: https://sixohthree.com/1458/locking-down-rsync-use-ssh

अपने रैपिंग शेल में आप वह कर सकते हैं जो आप चाहते हैं और शायद उपयोगकर्ता को काट दें।

मेरे मामले में मुझे उसी * निक्स उपयोगकर्ता का उपयोग करके वर्चुअल खाते पर स्विच करने की आवश्यकता थी। मैं ऐसा करने का प्रबंधन करता हूं इस तरह के शेल का उपयोग करके अधिकृत_की फ़ाइल में कई लाइनें। मैंने उपयोगकर्ता को काट नहीं दिया है, लेकिन मैंने rsync सर्वर कमांड में एक उपयोगकर्ता फ़ोल्डर स्तर जोड़ा है।

अलग से ssh कुंजी का उपयोग कर प्रक्रिया उपयोगकर्ता को देखो


0

शेल के बिना रुपी क्षमताओं के साथ SFTP

आप LFTP + SFTP का उपयोग चेरोट वातावरण में कर सकते हैं और rsync का उपयोग करने के समान परिणाम प्राप्त कर सकते हैं, उपयोगकर्ता को शेल प्रदान किए बिना या आवरण के साथ ssh में कोई भारी अनुकूलन कर सकते हैं।

यह अधिक सुरक्षित है और काफी तेजी से हो सकता है।


0

चिरोट में रुपी छल करना मुश्किल है :) काम करने के लिए आपको चिरौट निर्देशिका (गंतव्य-पक्ष) के भीतर / बिन / श और / usr / bin / rsync के लिए न्यूनतम वातावरण सेटअप करने की आवश्यकता होगी।

पूरा लेख यहाँ देखें, rsync- पर्यावरण सेटअप अंत तक है
https://medium.com/@deltazero/linux-remote-backup-rsync-chroot-d797ba6babe5

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.