एक ताज़ा उबंटू सर्वर को सुरक्षित करना [बंद]


37

मान लीजिए कि मुझे उबंटू की एक नई स्थापना मिल गई है, मुझे रेल एप्लिकेशन सर्वर के रूप में उपयोग के लिए इसे सुरक्षित करने के लिए क्या कदम उठाने चाहिए?


यहाँ एक समान प्रश्न है, यह मदद कर सकता है; serverfault.com/questions/11659
hayalci

जवाबों:


25

मैं किसी उबंटू-विशिष्ट ट्विक्स के बारे में नहीं सोच सकता, लेकिन यहां कुछ ऐसा है जो सभी वितरणों पर लागू होता है:

  1. सभी अनावश्यक पैकेजों की स्थापना रद्द करें
  2. SSH में सार्वजनिक-कुंजी केवल प्रमाणीकरण का उपयोग करें
  3. SSH के माध्यम से रूट लॉगिन अक्षम करें (Ubuntu पर लागू नहीं होता है)
  4. PHP के लिए उत्पादन सेटिंग्स का उपयोग करें (php.ini-Recommended)
  5. केवल सॉकेट्स का उपयोग करने के लिए MySQL कॉन्फ़िगर करें

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

इसके अलावा, मैंने जो कारनामे देखे हैं वे लगभग हमेशा असुरक्षित कोड से संबंधित थे, न कि असुरक्षित कॉन्फ़िगरेशन से। डिफ़ॉल्ट कॉन्फ़िगरेशन न्यूनतम में, सर्वर वितरण बहुत सुरक्षित होते हैं।


1
MySQL जैसी सेवाओं के लिए पोर्ट बदलें (बेकार है तो केवल सॉकेट्स का उपयोग करने के लिए इसे कॉन्फ़िगर करें), FTP (हालाँकि, यदि आप सुरक्षित हैं तो आपको FTP का उपयोग बिल्कुल नहीं करना चाहिए), SSH और सभी प्रकार।
जोश हंट

3
"सभी अनावश्यक पैकेजों की स्थापना रद्द करें"। ठीक है। यह बहुत अस्पष्ट है। क्या 'अनावश्यक' संकुल?
ल्यूक

2
@ ल्यूक: जो भी आप उपयोग नहीं कर रहे हैं वह अनावश्यक है। अधिक विशिष्ट, चल रही सेवाएं जिन्हें आपको अनावश्यक जोखिम में डालने की मशीन की आवश्यकता नहीं है।
एंड्रियॉयड

@ ल्यूक: बिल्ली / आदि / सेवाओं को आपको कुछ विचार देना चाहिए।
जशूरुन

17

एक त्वरित चीज जो मैं जल्दी करता हूं वह है डेनिहोस्ट्स को स्थापित करना । यह नियमित रूप से / var / log / safe के माध्यम से दिखेगा, असफल लॉगिन की तलाश में, और कुछ विफलताओं के बाद, IP को ब्लॉक करें। मैंने इसे पहले नो-यूज़र्स के बाद, दूसरे प्रयास में रूट पर, और वास्तविक उपयोगकर्ताओं के लिए कुछ प्रयासों के बाद ब्लॉक करने के लिए सेट किया है (यदि आप गड़बड़ करते हैं, लेकिन आपको लॉगिन करने के लिए SSH सार्वजनिक कुंजी का उपयोग करना चाहिए)।


3
जैसा कि आप sourceforge होमपेज से लिंक करते हैं - denyhosts भी रिपॉजिटरी (ब्रह्मांड) में "sudo aptitude install denyhosts" के माध्यम से उपलब्ध है
Olaf

अच्छी बात @olaf मैंने इसे स्थापित किए अधिकांश सर्वर आरएचईएल थे, जहां यह डीएजी के रेपो में भी है।
एलिस्टर बुलमैन


2
DenyHosts केवल ssh brute बल के हमलों का पता लगाने और ब्लॉक करने के लिए लगता है। एक बेहतर विकल्प फेल 2ब्बन होगा (यह रेपो में भी उपलब्ध है), जो विभिन्न चीजों की निगरानी करता है, जिसमें अन्य चीजों के साथ अपाचे लॉग भी शामिल है। Help.ubuntu.com/community/Fail2ban
jeshurun

10

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


क्या आपके पास उसके लिए लिंक है?
फ्लेम

1
क्षमा करें, लगा कि लिंक पोस्ट में था। यह यहां है: debian.org/doc/manuals/securing-debian-howto
माइक

5

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


4

लॉगचेक स्थापित करें, लेकिन ट्वीक करें ताकि आप कभी भी नियमित घटनाओं से संदेश प्राप्त न करें, अन्यथा आपको ईमेल को अनदेखा करने की आदत होगी।

चेक करें कि कौन सी प्रक्रियाएं नेटस्टैट का उपयोग करके सुन रही हैं, और सुनिश्चित करें कि कुछ भी नहीं चल रहा है जिसे चलाने की आवश्यकता नहीं है। कई इंटरफेस को केवल सभी इंटरफेस के बजाय आंतरिक आईपी (या लोकलहोस्ट) पर सुनने के लिए कॉन्फ़िगर किया जा सकता है।


3

क्या कर सकते हैं सुझाव ...

होस्ट को नॅम्प करें और सभी गैर-आवश्यक सेवाओं को अक्षम करें। यदि आवश्यक हो तो iptables का उपयोग करें।


2
किसी भी सर्वर पर जो इंटरनेट के माध्यम से सुलभ है, iptables हमेशा आवश्यक होता है। ;-)
क्रिस्टोफर कैशेल

3

यदि आप सर्वर के साथ इंटरनेट के पास कहीं भी जा रहे हैं, तो स्नॉर्ट की तरह एक घुसपैठ का पता लगाने वाली प्रणाली स्थापित करें।



3

कुछ फ़ायरवॉल सुझाव।

एक फ़ायरवॉल और एक बॉक्स को ठीक से लॉक करने की अवधारणाओं का उपयोग करना सीखें। डिफ़ॉल्ट पोर्ट बदलना काफी हद तक एक बेकार बात है; उचित अनुप्रयोग और फ़ायरवॉल कॉन्फ़िगरेशन बहुत अधिक महत्वपूर्ण हैं।

दोनों उबुन्टू रेपो में हैं:

FireHOL

सिंटैक्स सीखने के लिए बहुत आसान प्रलेखन और बहुत आसान है। मैं बीस मिनट में एक गेटवे / फ़ायरवॉल स्थापित करने में सक्षम था। इसका एकमात्र कारण है कि मैं इससे दूर हो गया हूं, ऐसा लगता नहीं है कि इसे बनाए रखा जाएगा (अंतिम रिलीज 2 साल पहले)। इसका मतलब यह नहीं है कि यह काम नहीं करता है, लेकिन ...

Ferm

एक और एक है अधिक iptables- जैसे सिंटैक्स, लेकिन एक ही अवधारणा। फायरहॉल की तुलना में अधिक समुदाय को बनाए रखा गया है, लेकिन इसे लेने में अधिक समय लगता है।

Shorewall

वर्तमान में मैं क्या उपयोग कर रहा हूं। इसका प्रलेखन व्यापक है, और इसका विन्यास प्रारूप सारणीबद्ध है। कार्यशील फ़ायरवॉल / गेटवे कॉन्फ़िगरेशन को चलाने के लिए आवश्यक (6) सभी फ़ाइलों को समझने में मुझे लगभग डेढ़ घंटे का समय लगा। यह काफी शक्तिशाली है। सुझाव: विभिन्न कॉन्फिग फाइलों के लिए मैन पेज वास्तव में मददगार हैं!

ये सभी फ़ायरवॉल कॉन्फ़िगरेशन फ़ाइल से लोड लोड करते हैं। बहुत प्रभावी, सीधे iptables की तुलना में उपयोग करने में आसान, और (मेरी राय में) ufw की तुलना में उपयोग करना और प्रबंधित करना आसान है।

अन्य:

  • मैं SSH कुंजी के उपयोग के लिए सिफारिशें देता हूं।

  • एक आईडी सेट करें।

  • AppArmor के बारे में जानें। यह केवल निर्दिष्ट निर्देशिकाओं और इसके लिए आवश्यक फ़ाइलों के निष्पादन की फ़ाइल पहुंच को प्रतिबंधित करता है। RHEL दुनिया में SELinux के समान। यह कई अच्छी तरह से इस्तेमाल किए गए कार्यक्रमों के लिए पूर्व-कॉन्फ़िगर 'प्रोफाइल' के साथ स्थापित और सक्षम है।


2

यहाँ अन्य सुझावों के साथ मैं तीन का उल्लेख करूँगा जो स्पष्ट हैं लेकिन शायद पूर्णता के लिए ध्यान देने योग्य हैं:

  1. अगर आपको नहीं लगता कि आपको फ़ायरवॉल की ज़रूरत है, तो फिर से सोचें। ufw सरल है, लेकिन उबंटू के लिए और iptables पर आधारित है
  2. संकुल को अद्यतन करें: न्यूनतम के रूप में सभी सुरक्षा पैच लागू करें
  3. दस्तावेज़ जो आपने सर्वर को सुरक्षित करने के लिए किया है और क्यों। लॉग की निगरानी करने के लिए कॉन्फ़िगरेशन (स्वचालित) प्रक्रियाओं को शामिल करें, कॉन्फ़िगरेशन का परीक्षण करें और आवश्यक सुरक्षा अपडेट की रिपोर्ट करें।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.