कमजोरियों को संबोधित करने के कई तरीके हैं, हालांकि पहली बात जो आपको पता होनी चाहिए कि लिनक्स अन्य ऑपरेटिंग सिस्टम के रूप में घुसपैठ के लिए अतिसंवेदनशील नहीं है। यह मुख्य रूप से मैलवेयर की कमी के कारण है जो * NIX को लक्षित करता है। फिर भी, आप उन तरीकों से अवगत होना चाहते हैं, जिनसे आपका सिस्टम एक्सेस किया जा सकता है।
पासवर्डों
सबसे पहले आपको उन उपयोगकर्ताओं के लिए डिफ़ॉल्ट पासवर्ड बदलना चाहिए जो लॉगिन करने में सक्षम हैं। डेबियन के लिए यह केवल डिफ़ॉल्ट उपयोगकर्ता Pi है । आर्क लिनक्स के लिए यह सुपर यूजर रूट है । passwd
कमांड लाइन पर टाइप करने पर उपयोगकर्ता के रूप में लॉग इन करने पर पासवर्ड बदल जाते हैं ।
एक सुरक्षित पासवर्ड नीति को प्रोत्साहित किया जाता है, क्योंकि यह आपके डिफ़ॉल्ट उपयोगकर्ता पर जानवर बल शब्दकोश हमलों को चलाने के लिए काफी सरल होगा। एक सभ्य, मध्यम लंबाई का पासवर्ड चुनें।
अंधकार
रिमोट एक्सेस शायद सबसे महत्वपूर्ण सुरक्षा छेद है। यहां हम जो उपयोग कर सकते हैं, उसे अस्पष्टता से सुरक्षा नाम दिया गया है । हमले का एक सामान्य तरीका खुले बंदरगाहों के लिए कई आईपी पते को स्कैन करना है। तो हम जो सरलतम प्रतिसाद ले रहे हैं, उनमें से एक ऐसा उपयोगकर्ता होना है जो डिफ़ॉल्ट पोर्ट का उपयोग नहीं करता है ।
यहां जो कुछ भी करने की आवश्यकता है, वह आमतौर पर इस्तेमाल किए जाने वाले प्रोटोकॉल के लिए डिफ़ॉल्ट बंदरगाहों को बदलना है। उदाहरण के लिए, डिफ़ॉल्ट SSH पोर्ट 22 और FTP 21 है। मेरे सिस्टम पर SSH 222 और FTP 221 का उपयोग करता है, जो किसी भी स्वचालित हमले से इन प्रोटोकॉल को अस्पष्ट करना चाहिए।
कनेक्शन सुरक्षा
सबसे पहले, सबसे महत्वपूर्ण सुरक्षा चिंता यह है कि रूट खाता SSH के माध्यम से लॉग इन करने में सक्षम नहीं होना चाहिए । आप /etc/ssh/sshd_config
इस लाइन पर टिप्पणी या हटाकर फ़ाइल में रूट लॉगिन को अक्षम कर सकते हैं :
PermitRootLogin yes
इसे डिफ़ॉल्ट रूप से सेट नहीं किया जाना चाहिए, लेकिन यह सुनिश्चित करना सबसे अच्छा है।
यदि आप एसएसएच का उपयोग करते हैं, और बीच के हमलों में आदमी के बारे में चिंतित हैं, तो अपने पासवर्ड के खिलाफ शब्दकोश में हमला करते हैं, तो आप उपयोग कर सकते हैं SSH Keys
।
की-बेस्ड ऑथेंटिकेशन में पासवर्ड ऑथेंटिकेशन के कई फायदे हैं, उदाहरण के लिए प्लेन-फोर्स की तुलना में की-ब्रूट-फोर्स के लिए की-वैल्यू काफी कठिन हैं।
SSH कुंजी प्रमाणीकरण सेट करने के लिए आपको पहले कुंजी जोड़ी बनाने की आवश्यकता है। यह आपके क्लाइंट मशीन पर सबसे आसानी से किया जाता है (वह मशीन जिसके साथ आप Pi को एक्सेस करना चाहते हैं)।
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.
जैसा कि आप देख सकते हैं, इसने दो फाइलें बनाई हैं, निजी कुंजी id_rsa
और सार्वजनिक कुंजी id_rsa.pub
।
निजी कुंजी केवल आपके लिए जानी जाती है और इसे सुरक्षित रूप से संरक्षित किया जाना चाहिए । इसके विपरीत, सार्वजनिक कुंजी किसी भी SSH सर्वर के साथ स्वतंत्र रूप से साझा की जा सकती है जिससे आप कनेक्ट करना चाहते हैं।
तो हम क्या करना चाहते हैं रास्पबेरी पाई पर सार्वजनिक कुंजी की प्रतिलिपि बनाएँ । हम इसे बहुत आसानी से कर सकते हैं:
ssh-copy-id pi@address
pi
रास्पबेरी पाई उपयोगकर्ता नाम कहां है, और पाई address
का आईपी पता है।
मैं दोहराऊंगा, हम सार्वजनिक कुंजी वितरित करते हैं । निजी कुंजी तुम्हारी है। इसे कसकर पकड़ें, उस कुंजी को जारी करने के लिए सिस्टम की सुरक्षा को तोड़ता है।
आर्क विकि यह कैसे काम करता है पर एक उत्कृष्ट विवरण नहीं है:
जब SSH सर्वर में फ़ाइल पर आपकी सार्वजनिक कुंजी होती है और आप एक कनेक्शन का अनुरोध करते हुए देखते हैं, तो यह आपकी सार्वजनिक कुंजी का निर्माण करता है और आपको एक चुनौती भेजता है। यह चुनौती एक कोडित संदेश की तरह है और सर्वर द्वारा आपकी पहुँच प्रदान करने से पहले इसे उचित प्रतिक्रिया के साथ पूरा किया जाना चाहिए। यह कोडित संदेश विशेष रूप से सुरक्षित बनाता है, यह केवल निजी कुंजी वाले किसी व्यक्ति द्वारा समझा जा सकता है। जबकि सार्वजनिक कुंजी का उपयोग संदेश को एन्क्रिप्ट करने के लिए किया जा सकता है, इसका उपयोग उसी संदेश को डिक्रिप्ट करने के लिए नहीं किया जा सकता है। केवल आप, निजी कुंजी के धारक, चुनौती को सही ढंग से समझने और सही प्रतिक्रिया देने में सक्षम होंगे।
सार्वजनिक कुंजी प्रमाणीकरण की सुरक्षा के बारे में अधिक जानकारी के लिए, विकिपीडिया की गहन व्याख्या है ।
जगह में SSH सुरक्षा के साथ आप एन्क्रिप्टेड, सुरक्षित डेटा स्थानान्तरण की एक भयानक राशि कर सकते हैं। यदि आवश्यक हो तो व्यावहारिक रूप से हर दूसरे पोर्ट कनेक्शन को एसएसएच के माध्यम से रूट किया जा सकता है। आप एसएसएच के माध्यम से एक्स सत्र को भी आगे बढ़ा सकते हैं ताकि यह दूसरी मशीन पर दिखाई दे।
एक दिलचस्प उदाहरण के रूप में, कल मैं अपने डेस्कटॉप पर एक्लिप्स चला रहा था, इसे अपने रास्पबेरी पाई पर देख रहा था, और मेरी नेटबुक से माउस और कीबोर्ड को नियंत्रित कर रहा था। ऐसी है एसएसएच की शक्ति।
अनुमतियां
फ़ाइल अनुमतियाँ लिनक्स सुरक्षा प्रणाली की क्रुक्स हैं। वे प्रभाव डालते हैं जो आपकी फ़ाइलों और फ़ोल्डरों को देख सकते हैं, और आपके डेटा की सुरक्षा में बहुत महत्वपूर्ण हो सकते हैं। उदाहरण के लिए, एक सामान्य उपयोगकर्ता के रूप में रास्पबेरी पाई में प्रवेश करें और चलाएं:
cat /etc/shadow
shadow
फाइल सिस्टम पर उपयोगकर्ताओं के लिए एन्क्रिप्टेड पासवर्ड होता है, इसलिए हम इसे पर एक नज़र लेने के लिए किसी को भी के बारे में अभी नहीं चाहेगा! तो आपको यह प्रतिक्रिया देखनी चाहिए:
cat: /etc/shadow: Permission denied
हम देख सकते हैं कि यह फ़ाइल की अनुमतियों पर एक नज़र डालकर क्यों है:
ls -l /etc/shadow
-rw------- 1 root root 821 Jun 11 22:13 /etc/shadow
यह हमें बताता है कि फ़ाइल रूट के स्वामित्व में है, और केवल स्वामी ने अनुमतियों को पढ़ा / लिखा है। चलिए उस आउटपुट को तोड़ते हैं।
-rw-------
यह अनुमतियों की स्थिति है। पहला बिट हमें फ़ाइल का प्रकार बताता है ( -
मतलब नियमित फ़ाइल)। अगले तीन बिट्स फ़ाइल के स्वामी के लिए उपलब्ध कार्यों का प्रतिनिधित्व करते हैं । दूसरे तीन बिट्स समूह का प्रतिनिधित्व करते हैं , और अंतिम तीन अन्य या सभी के लिए हैं। इस प्रकार पूर्ण अनुमति वाली एक निर्देशिका इस तरह दिखाई देगी:
drwxrwxrwx 10 root root 280 Jun 20 11:40 tmp/
यह स्वामी, समूह और अन्य सभी के लिए अनुमतियों को पढ़ने, लिखने और निष्पादित करने के लिए है।
अगला महत्वपूर्ण हिस्सा दो नाम हैं। हमारे मामले में root root
। पहला उपयोगकर्ता फ़ाइल का स्वामी है। दूसरा यूजरग्रुप है । उदाहरण के लिए यह देखना आम होगा:
drwxr-xr-x 10 pi users 280 Jun 20 11:40 home/pi
यह उपयोगकर्ता pi
को उसकी होम डायरेक्टरी पर पढ़ने / लिखने और अन्य सभी उपयोगकर्ताओं के लिए एक्सेस पढ़ने की अनुमति देता है।
अनुमतियाँ अक्सर अष्टांगिक मूल्यों का उपयोग करके नियंत्रित और संदर्भित की जाती हैं। उदाहरण के लिए, यदि हम केवल उस स्वामी के लिए rw सेट करना चाहते हैं जिसे हम टाइप करेंगे:
chmod 600 /path/to/file
यह एक मूल अवलोकन है, लिनक्स फ़ाइल अनुमतियों के बारे में अधिक जानकारी के लिए, यहां एक अच्छा लेख है।
फ़ाइलों और फ़ोल्डरों को सुरक्षित करते समय यह समझ महत्वपूर्ण है। उदाहरण के लिए, मान लें कि हमने SSH कीज़ लगाई हैं। हम निश्चित रूप से किसी अन्य उपयोगकर्ता को हमारी ~/.ssh
निर्देशिका के अंदर नहीं देखना चाहते हैं , या वे हमारी निजी कुंजी लेने में सक्षम होंगे। इस प्रकार हम उनके पढ़ने के विशेषाधिकार हटा देते हैं:
chmod 700 ~/.ssh
ls -la ~/.ssh
drwx------ 2 james users 4096 Jun 18 03:05 .
मुझे उम्मीद है कि यह लिनक्स को सुरक्षित करने के साथ आपकी कुछ चिंताओं को दूर करता है। इससे आपको यह देखने में सक्षम होना चाहिए कि यह एक बहुत ही सुरक्षित प्रणाली है और यदि आप सावधान हैं तो आपको कोई सुरक्षा समस्या नहीं होनी चाहिए।
su
उन्हें प्रयास करके देख सकते हैं।