मैं आपको सलाह दूंगा कि आप पहली बार रूट खाते का उपयोग करें। यदि आप इसे इस तरह सेट करते हैं:
- अपने
sshd_config
को लक्ष्य मशीन पर कॉन्फ़िगर करें PermitRootLogin without-password
।
ssh-keygen
SSH निजी कुंजी बनाने के लिए बैकअप खींचने वाली मशीन का उपयोग करें (केवल अगर आपके पास पहले से SSH कुंजी नहीं है)। एक पासफ़्रेज़ सेट न करें। Google एक ट्यूटोरियल अगर आपको इसके लिए विवरण की आवश्यकता है, तो बहुत कुछ होना चाहिए।
/root/.ssh/id_rsa.pub
बैकअप मशीन की सामग्री /root/.ssh/authorized_keys
को अपने लक्ष्य मशीन पर लागू करें।
- अब आपके बैकअप मशीन में पासवर्ड प्रमाणीकरण का उपयोग किए बिना, आपके लक्ष्य मशीन के लिए रूट एक्सेस है।
तब परिणामी सेटअप बहुत सुरक्षित होना चाहिए।
sudo
, विशेष NOPASSWD
रूप से टिप्पणियों में सिफारिश के साथ संयुक्त , रूट खाते का उपयोग करने पर कोई सुरक्षा लाभ नहीं है। उदाहरण के लिए यह सुझाव:
अपनी /etc/sudoers
फ़ाइल में निम्न जोड़ें :rsyncuser ALL= NOPASSWD:/usr/bin/rsync
अनिवार्य रूप से rsyncuser
वैसे भी रूट अनुमति देता है। तुम पूछो:
@MartinvonWittich के rsync
साथ निष्पादित होने के कारण एक पूर्ण रूट शेल हासिल करना आसान है sudo
? कृपया [एम] ई [माध्यम से] चलें।
खैर, सरल। अनुशंसित कॉन्फ़िगरेशन के साथ, rsyncuser
अब rsync
पासवर्ड के लिए पूछे बिना भी रूट के रूप में चल सकता है । rsync
फ़ाइलों में हेरफेर करने के लिए एक बहुत शक्तिशाली उपकरण है, इसलिए अब rsyncuser
रूट अनुमतियों के साथ फ़ाइलों में हेरफेर करने के लिए एक बहुत शक्तिशाली उपकरण है। इसका फायदा उठाने का एक तरीका मुझे बस कुछ ही मिनटों में मिला (उबंटू 13.04 पर परीक्षण किया गया, आवश्यकता है dash
, bash
काम नहीं किया):
martin@martin ~ % sudo rsync --perms --chmod u+s /bin/dash /bin/rootdash
martin@martin ~ % rootdash
# whoami
root
# touch /etc/evil
# tail -n1 /etc/shadow
dnsmasq:*:15942:0:99999:7:::
जैसा कि आप देख सकते हैं, मैंने खुद को एक मूल खोल बनाया है; whoami
अपने खाते को रूट के रूप में पहचानता है, मैं फ़ाइलों को बना /etc
सकता हूं और मैं इससे पढ़ सकता हूं /etc/shadow
। मेरा शोषण बाइनरी पर सेट्यूड बिट सेट करना था dash
; यह लिनक्स को हमेशा इस मामले में स्वामी की अनुमति के साथ उस बाइनरी को चलाने का कारण बनता है।
अच्छे कारणों से वास्तविक जड़ का होना [अनुशंसित] नहीं है। - 15 घंटे पहले रेडानिमलवार
नहीं, अनाड़ी रूप से उन स्थितियों में रूट खाते के आसपास काम करना जहां यह उपयोग करने के लिए बिल्कुल उपयुक्त है यह अच्छे कारणों के लिए नहीं है। यह कार्गो पंथ प्रोग्रामिंग का सिर्फ एक और रूप है - आप वास्तव में sudo बनाम रूट के पीछे की अवधारणा को नहीं समझते हैं, आप बस इस धारणा को "मूल रूप से बुरा है, sudo अच्छा है" लागू करते हैं क्योंकि आपने कहीं पढ़ा है।
एक तरफ, ऐसी परिस्थितियां हैं जहां sudo
निश्चित रूप से नौकरी के लिए सही उपकरण है। उदाहरण के लिए, जब आप अंतःक्रियात्मक रूप से एक ग्राफ़िकल लिनक्स डेस्कटॉप पर काम कर रहे हैं, तो हम उबंटू कहते हैं, तो उपयोग करने के लिए sudo
उन दुर्लभ मामलों में ठीक है जहां आपको कभी-कभी रूट एक्सेस की आवश्यकता होती है। उबंटू जानबूझकर एक निष्क्रिय रूट खाता है और आपको sudo
उपयोगकर्ताओं को हमेशा लॉग इन करने के लिए रूट खाते का उपयोग करने से रोकने के लिए डिफ़ॉल्ट रूप से उपयोग करने के लिए मजबूर करता है। जब उपयोगकर्ता बस वेब ब्राउज़र जैसे उदा का उपयोग करना चाहता है, तो रूट के रूप में लॉग इन करना एक खतरनाक बात होगी। , और इसलिए डिफ़ॉल्ट रूप से रूट खाता नहीं होना बेवकूफ लोगों को ऐसा करने से रोकता है।
दूसरी तरफ, आपकी जैसी स्थितियां हैं, जहां एक स्वचालित स्क्रिप्ट को किसी चीज़ के लिए रूट अनुमतियों की आवश्यकता होती है, उदाहरण के लिए बैकअप बनाने के लिए। अब sudo
रूट खाते के चारों ओर काम करने के लिए उपयोग करना न केवल व्यर्थ है, यह खतरनाक भी है: पहली नज़र में rsyncuser
यह एक सामान्य अप्रभावित खाते की तरह दिखता है। लेकिन जैसा कि मैंने पहले ही समझाया है, एक हमलावर के लिए पूर्ण रूट एक्सेस हासिल करना बहुत आसान होगा यदि वह पहले से ही rsyncuser
एक्सेस प्राप्त कर चुका है । तो अनिवार्य रूप से, अब आपके पास एक अतिरिक्त रूट खाता है जो रूट खाते की तरह बिल्कुल नहीं दिखता है, जो अच्छी बात नहीं है।
root
पहली बार में खाते का उपयोग करें ।sudo
, विशेषNOPASSWD
रूप से टिप्पणियों में अनुशंसित के साथ संयुक्त , वास्तव में आपकी मशीन की सुरक्षा में सुधार नहीं करता है।