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

आवश्यकताएँ

ओपन एसएसएच के साथ उबंटू 14.04 एलटीएस सर्वर स्थापित।

प्रारंभ करना: सिस्टम अपडेट करें

किसी भी ऑपरेटिंग सिस्टम को स्थापित करने के बाद सिस्टम को अद्यतित रखना आवश्यक है। इससे ज्ञात भेद्यताएं कम हो जाएंगी जो आपके सिस्टम में हैं।

उबंटू 14.04 के लिए निम्नलिखित चलाएं:

 sudo apt-get अद्यतन sudo apt-get upgrade sudo apt-get autoremove sudo apt-get autoclean 

स्वचालित सुरक्षा अद्यतन सक्षम करें

अपने सर्वर को सुरक्षित करने के लिए स्वचालित अपडेट सक्षम करना बहुत महत्वपूर्ण हो सकता है। "अनुपयुक्त-उन्नयन, " चलाने के लिए

 sudo apt-unattended-उन्नयन स्थापित करें 

इसे सक्षम करने के लिए, निम्न आदेश चलाएं:

 sudo dpkg-reconfigure -plow unattended-उन्नयन 

यह नीचे दिखाए गए "/etc/apt/apt.conf.d/20auto-upgrades" फ़ाइल बनाएगा।

 एपीटी :: आवधिक :: अद्यतन-पैकेज-सूची "1"; एपीटी :: आवधिक :: अनुपयुक्त-अपग्रेड "1"; 

सूडो शक्तियों के साथ "छाया उपयोगकर्ता" बनाएँ

सुरक्षा कारणों से रूट खाते के बजाय "छाया उपयोगकर्ता" का उपयोग करना आवश्यक है। आप ऐसे उपयोगकर्ता को बना सकते हैं जो अन्य उपयोगकर्ताओं के अनुमान के लिए आसान नहीं होगा। इस ट्यूटोरियल में हम उपयोगकर्ता नाम के रूप में "maketech111" का उपयोग करेंगे।

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

 sudo useradd -d / home / maketech111 -s / bin / bash -m maketech111 

उपयोगकर्ता को सुडो एक्सेस देने के लिए, निम्न आदेश चलाएं:

 सुडो usermod -a -G sudo maketech111 

पासवर्ड सेट करने के लिए, निम्न आदेश चलाएं:

 सुडो पासवुड maketech111 

नोट: सुनिश्चित करें कि आपका पासवर्ड कम से कम आठ वर्ण लंबा है और इसमें संख्याओं, अक्षरों और विराम चिह्नों का जटिल संयोजन शामिल है।

सूडो के लिए पासवर्ड प्रॉम्प्ट को हटाने के लिए, sudoers फ़ाइल को संपादित करें।

 सुडो नैनो / आदि / सूडोर्स 

नीचे वर्णित के रूप में जोड़ें / संपादित करें।

 maketech111 सभी = (सभी) NOPASSWD: सभी 

फ़ाइल को सहेजें और बाहर निकलें।

रूट खाता अक्षम करें

सुरक्षा कारणों से रूट खाते को अक्षम करना आवश्यक है।

रूट खाते को अक्षम करने के लिए, निम्न आदेश का उपयोग करें:

 sudo passwd -l रूट 

यदि आपको खाता पुनः सक्षम करने की आवश्यकता है, तो निम्न आदेश चलाएं:

 sudo passwd -u रूट 

एक एसडब्ल्यूएपी विभाजन जोड़ें

कुछ उबंटू सर्वर SWAP के साथ कॉन्फ़िगर नहीं किए गए हैं। एसडएपी का उपयोग तब किया जाता है जब कुल भौतिक स्मृति (रैम) की मात्रा पूरी होती है।

SWAP स्थान की जांच करने के लिए, निम्न आदेश चलाएं:

 सूडो स्वैपॉन-एस 

यदि कोई SWAP फ़ाइल नहीं है, तो आपको निम्न आउटपुट प्राप्त करना चाहिए।

 फ़ाइल नाम प्रकार का उपयोग प्राथमिकता 

4 जीबी एसडब्ल्यूएपी फ़ाइल बनाने के लिए आपको "डीडी" कमांड का उपयोग करने की आवश्यकता होगी।

 sudo dd if = / dev / zero = = swapfile bs = 4M count = 1000 

SWAP फ़ाइल सेट अप करने के लिए, निम्न आदेश चलाएं:

 sudo mkswap / swapfile 

स्वैप फ़ाइल को सक्रिय करने के लिए, चलाएं

 सूडो स्वैपॉन / स्वैपफाइल सूडो स्वैप-एस 

यह निम्न की तरह आउटपुट होगा:

 फ़ाइल नाम प्रकार आकार प्राथमिकता / स्वैप फ़ाइल फ़ाइल 4096000 0 -1 

इसे स्थायी रूप से सक्षम करने के लिए, "/ etc / fstab" फ़ाइल संपादित करें।

 सुडो नैनो / आदि / fstab 

निम्नलिखित पंक्ति जोड़ें:

 / swapfile स्वैप स्वैप डिफ़ॉल्ट 0 0 

SWAP प्रदर्शन में सुधार करें

सिस्टम के समग्र प्रदर्शन को बेहतर बनाने के लिए उचित स्वैपनेस मूल्य सेट करें।

आप निम्न आदेश के साथ ऐसा कर सकते हैं:

 सुडो इको 0 >> / proc / sys / vm / swappiness sudo echo vm.swappiness = 0 >> /etc/sysctl.conf 

यह जांचने के लिए सिस्टम को रीबूट करें कि क्या SWAP ठीक से सक्रिय हो जाता है या नहीं।

आईपीवी 6 अक्षम करें

IPv6 को अक्षम करने की अनुशंसा की जाती है क्योंकि यह इंटरनेट कनेक्शन धीमा होने के कारण समस्याएं उत्पन्न करता है।

IPv6 को अक्षम करने के लिए, "/etc/sysctl.conf" फ़ाइल संपादित करें।

 सुडो नैनो /etc/sysctl.conf 

नीचे वर्णित के रूप में संपादित करें:

 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 

कॉन्फ़िगरेशन को पुनः लोड करने के लिए, चलाएं

 सुडो sysctl -p 

IRQBALANCE अक्षम करें

IRQBALANCE का उपयोग सिस्टम प्रदर्शन को बढ़ाने के लिए एकाधिक CPU में हार्डवेयर इंटरप्ट को वितरित करने के लिए किया जाता है। अपने धागे में हार्डवेयर इंटरप्ट से बचने के लिए IRQBALANCE को अक्षम करने की अनुशंसा की जाती है।

IRQBALANCE को अक्षम करने के लिए, "/ etc / default / irqbalance" संपादित करें

 सूडो नैनो / आदि / डिफ़ॉल्ट / irqbalance 

और ENABLED मान को 0 में बदलें:

 सक्षम = 0 

OpenSSL दिल से बग फिक्स ठीक करें

ओपनएसएसएल में हार्टबलेड एक गंभीर भेद्यता है। यह रिमोट उपयोगकर्ता को 64k भाग तक मेमोरी को रिसाव करने की अनुमति देता है। हैकर उपयोगकर्ता के उपयोगकर्ता नाम और पासवर्ड जैसे किसी भी डेटा को डिक्रिप्ट करने के लिए निजी कुंजी पुनर्प्राप्त कर सकते हैं।

दिल की धड़कन वाली बग OpenSSL 1.0.1 में मिली थी और निम्न संस्करणों में मौजूद है:

  • 1.0.1
  • 1.0.1a
  • 1.0.1b
  • 1.0.1c
  • 1.0.1d
  • 1.0.1e
  • 1.0.1f

अपने सिस्टम में ओपनएसएसएल के संस्करण की जांच करने के लिए, निम्न आदेश चलाएं:

 sudo openssl संस्करण -v sudo openssl संस्करण -b 

यह कुछ निम्न की तरह आउटपुट करेगा:

 ओपनएसएसएल 1.0.1 10 मार्च 2012 को बनाया गया: बुध जनवरी 2 18:45:51 यूटीसी 2015 

यदि तिथि "सोम अप्रैल 7 20:33:29 यूटीसी 2014" से पुरानी है, और संस्करण "1.0.1" है, तो आपका सिस्टम हार्टलेड बग के लिए कमजोर है।

इस बग को ठीक करने के लिए, ओपनएसएसएल को नवीनतम संस्करण में अपडेट करें और चलाएं

 sudo apt-get अद्यतन sudo apt-get उन्नयन openssl libssl-dev sudo apt-cache नीति opensl libssl-dev 

अब संस्करण की जांच करें और चलाएं

 sudo openssl संस्करण-बी 

यह कुछ निम्न की तरह आउटपुट करेगा:

 बनाया गया: सोम अप्रैल 7 20:31:55 यूटीसी 2014 

कंसोल सुरक्षित, साझा स्मृति, / tmp और / var / tmp सुरक्षित करें

कंसोल सुरक्षित करें

डिफ़ॉल्ट रूप से, आपके सिस्टम में बहुत से टर्मिनलों को सक्षम किया जाता है। आप केवल एक टर्मिनल की अनुमति दे सकते हैं और अन्य टर्मिनलों को अक्षम कर सकते हैं।

केवल "tty1" को अनुमति देने और अन्य टर्मिनलों को अक्षम करने के लिए, "/ etc / securetty" फ़ाइल संपादित करें।

 सुडो नैनो / आदि / सुरक्षित 

निम्नलिखित पंक्तियां जोड़ें / संपादित करें:

 tty1 # tty2 # tty3 # tty4 # आदि ... 

"/ Etc / securetty" फ़ाइल को सुरक्षित करने के लिए, फ़ाइल की अनुमति बदलें और निम्न आदेश चलाएं:

 सूडो चाउन रूट: रूट / आदि / सुरक्षित सुडो chmod 0600 / etc / securetty 

सुरक्षित साझा मेमोरी

कोई भी उपयोगकर्ता चलती सेवा, जैसे अपाचे या httpd के खिलाफ हमला करने के लिए साझा स्मृति का उपयोग कर सकता है। डिफ़ॉल्ट रूप से, साझा मेमोरी निष्पादित अनुमति के साथ पढ़ / लिखती है।

इसे और अधिक सुरक्षित बनाने के लिए, "/ etc / fstab" फ़ाइल संपादित करें।

 सुडो नैनो / आदि / fstab 

निम्नलिखित पंक्ति जोड़ें:

 tmpfs / run / shm tmpfs ro, noexec, nosuid 0 0 

रीबूट किए बिना परिवर्तन करने के लिए, आप चला सकते हैं

 सुडो माउंट-ए 

सुरक्षित / tmp और / var / tmp

/ Tmp, / var / tmp, और / dev / shm जैसे अस्थायी निर्देशिका स्क्रिप्ट और दुर्भावनापूर्ण निष्पादन योग्य चलाने के लिए स्थान प्रदान करने के लिए हमलावरों के लिए दरवाजा खोलती हैं।

सुरक्षित / टीएमपी फ़ोल्डर

/ Tmp विभाजन के लिए 1 जीबी फाइल सिस्टम फ़ाइल बनाएं।

 sudo dd if = / dev / zero = = usr / tmpDSK bs = 1024 count = 1024000 sudo mkfs.ext4 / usr / tmpDSK 

वर्तमान / tmp फ़ोल्डर का बैकअप बनाएं:

 sudo cp -avr / tmp / tmpbackup 

नए / tmp विभाजन को माउंट करें, और सही अनुमतियां सेट करें।

 sudo mount -t tmpfs -o loop, noexec, nosuid, rw / usr / tmpDSk / tmp sudo chmod 1777 / tmp 

बैकअप फ़ोल्डर से डेटा कॉपी करें, और बैकअप फ़ोल्डर को हटा दें।

 sudo cp -avr / tmpbackup / * / tmp / sudo rm -rf / tmpbackup 

Fbtab में / tmp सेट करें।

 सुडो नैनो / आदि / fstab 

निम्नलिखित पंक्ति जोड़ें:

 / usr / tmpDSk / tmp tmpfs लूप, nosuid, noexec, rw 0 0 

अपने fstab प्रविष्टि का परीक्षण करें।

 सुडो माउंट-ए 

सुरक्षित / var / tmp:

कुछ सॉफ़्टवेयर इस फ़ोल्डर को एक अस्थायी फ़ोल्डर के रूप में उपयोग करते हैं, इसलिए हमें इसे सुरक्षित भी करना चाहिए।

/ Var / tmp को सुरक्षित करने के लिए, एक प्रतीकात्मक लिंक बनाएं जो / var / tmp बिंदु / tmp को बनाता है।

 सुडो एमवी / var / tmp / var / tmpold sudo ln -s / tmp / var / tmp sudo cp -avr / var / tmpold / * / tmp / 

सुरक्षा सीमाएं सेट करें और अवांछित सेवाओं को अक्षम करें

सुरक्षा सीमा निर्धारित करें

फोर्क बम हमलों से अपने सिस्टम की रक्षा के लिए, आपको अपने उपयोगकर्ताओं के लिए एक प्रक्रिया सीमा स्थापित करनी चाहिए।

इसे सेट अप करने के लिए, "/etc/security/limits.conf" फ़ाइल संपादित करें,

 सुडो नैनो /etc/security/limits.conf 

और निम्न पंक्ति संपादित करें:

 उपयोगकर्ता 1 हार्ड nproc 100 @ group1 हार्ड nproc 20 

यह किसी विशिष्ट समूह के उपयोगकर्ताओं को अधिकतम बीस प्रक्रियाओं से रोक देगा और प्रक्रियाओं की संख्या को सौ से उपयोगकर्ता 1 तक अधिकतम करेगा।

अनावश्यक सेवाओं को अक्षम करें

उबंटू में बहुत सारी सेवाएं मेमोरी और डिस्क स्पेस लेती हैं जिन्हें आपको उपयोग करने की आवश्यकता हो सकती है। अनावश्यक सेवाओं को अक्षम या हटाने से समग्र सिस्टम प्रदर्शन में सुधार हो सकता है।

यह पता लगाने के लिए कि कौन सी सेवाएं वर्तमान में चल रही हैं, निम्न आदेश चलाएं:

 सूडो initctl सूची | grep चल रहा है 

आप इस आदेश को चलाकर इसे अक्षम कर सकते हैं।

 sudo update-rc.d -f service_name sudo apt-get purge service_name को हटा दें 

शैलशॉक बैश भेद्यता को ठीक करें:

शेलशॉक भेद्यता हैकर को बैश पर्यावरण चर निर्दिष्ट करने और सिस्टम में अनधिकृत पहुंच प्राप्त करने की अनुमति देती है। इस भेद्यता का फायदा उठाना बहुत आसान है।

सिस्टम भेद्यता की जांच करने के लिए, निम्न आदेश चलाएं:

 sudo env i = '() {:;}; गूंजें आपका सिस्टम बैश कमजोर 'बैश-सी' है बैच भेद्यता परीक्षण गूंजता है " 

यदि आप नीचे आउटपुट देखते हैं, तो इसका मतलब है कि आपका सिस्टम कमजोर है।

 आपका सिस्टम बैश कमजोर बैश भेद्यता परीक्षण है 

इस भेद्यता को ठीक करने के लिए, निम्न आदेश चलाएं:

 sudo apt-get अद्यतन; sudo apt-get इंस्टॉल करें - केवल अपग्रेड बैश 

यदि आप फिर से आदेश चलाते हैं, तो आप देखेंगे:

 बैश: चेतावनी: VAR: फ़ंक्शन परिभाषा प्रयास को अनदेखा करना: 'VAR' के लिए फ़ंक्शन परिभाषा आयात करने में त्रुटि बैश भेद्यता परीक्षण 

निष्कर्ष:

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

संदर्भ : उबंटू हार्डनिंग गाइड