सवाल आप कैसे बता सकते हैं कि वास्तव में सर्वर क्या करता है? [बन्द है]


मुझे 3 लिनक्स बक्से दिए गए हैं, 1 फ्रंट पर इसका अपाचे है और दूसरा 2 है, जहां तक ​​मैं कह सकता हूं, बहुत भयानक मत करो। सभी रेडहाट पर चल रहे हैं।

सवाल सरल है: मैं कैसे बता सकता हूं कि सर्वर वास्तव में क्या कर रहा है? शून्य दस्तावेज निर्माता से उपलब्ध है।


42
2018-06-09 13:23


मूल


प्रक्रिया सूची, नेटवर्क श्रोताओं (शायद तुलनात्मक रूप से इनिट स्क्रिप्ट के आधार पर चलना चाहिए था) ... - HBruijn
अरे नहीं! निश्चित रूप से कोई जानता है कि वे क्या हैं? इसलिए वे चाहते हैं कि आप उनका समर्थन करें लेकिन पता नहीं कि वे क्या करते हैं ?! - Digital Lightcraft
उन्हें बंद करें। कोई आपको बताएगा, लगभग तुरंतक्या काम नहीं कर रहा है। - jscott
इसे बंद मत करो। यदि आप चीखना चाहते हैं तो ईथरनेट केबल अनप्लग करें। यदि आपके पास दो साल के अपटाइम के साथ कभी भी बॉक्स नहीं है, तो रीबूट करने में विफल रहता है, तो आप किसी बिंदु पर होंगे। मिश्रण में उस निराशा को जोड़ने का समय नहीं है। - Aaron Copley
हर किसी ने क्या कहा, लेकिन यह भी: उनके खिलाफ एनएमएपी चलाएं। - Katherine Villyard


जवाब:


ईथरनेट केबल को अनप्लग करें और देखें कि कौन परेशान हो जाता है।

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


42
2018-06-09 17:49



इसे बंद मत करो। यदि आप चीखना चाहते हैं तो ईथरनेट केबल अनप्लग करें। यदि आपके पास दो साल के अपटाइम के साथ कभी भी बॉक्स नहीं है, तो रीबूट करने में विफल रहता है, तो आप किसी बिंदु पर होंगे। मिश्रण में उस निराशा को जोड़ने का समय नहीं है। (इसे यहां कॉपी कर रहा है क्योंकि इसे पढ़ने की जरूरत है।) - Aaron Copley
आप 100% सही हैं, मैंने इसे प्रतिबिंबित करने के लिए पोस्ट संपादित किया है। मैं थोड़ा सा मुखिया था लेकिन मैं आपदा को बढ़ावा देने के बिना अभी भी मुखर हो सकता हूं। - Josh Rumbut
नेटवर्क अनप्लग होने से पहले चलने वाली प्रक्रियाओं की सूची को सहेजना और प्रत्येक सर्वर पर खुले सॉकेट को सहेजना एक अच्छा विचार है - बस अगर सर्वर के बीच एक टीसीपी कनेक्शन पर कुछ निर्भर है, तो बिना किसी के बारे में सोचने के कई महीनों तक स्थापित किया गया है पहले मामले में इसे खोलने के लिए जो भी कदम उठाने की जरूरत थी उसे स्वचालित करना। (उदाहरण के लिए अगर किसी को अस्थायी रूप से एक एसएसएच पोर्ट अग्रेषण की आवश्यकता होती है और फिर इसके बारे में भूल जाती है।) - kasperd
ऐसा मत करो। क्या हास्यास्पद सलाह है। बेवकूफ विचारहीन आईटी लोग मुझे इतना समय और काम खर्च करते हैं। पहले पूछो। यदि आप नहीं जानते कि कौन पूछना है, सभी को पूछो। - Lightness Races in Orbit
सुनिश्चित करें कि आप किसी के लिए चीखने के लिए पर्याप्त समय छोड़ दें - एक बार जब मैंने सर्वर रूम रैक पर बैठे धूलदार या डेस्कटॉप मशीन के साथ ऐसा किया - कोई भी नहीं जानता कि उसने क्या किया है, किसी ने इसे नोटिस करने के लिए एक पूर्ण महीना लिया जब हमने इसे अनप्लग किया । यह पता चला कि यह पेरोल सिस्टम का हिस्सा था, उस सर्वर के बिना, लेखांकन मासिक पेरोल उत्पन्न नहीं कर सका। यह कम से कम 3 वर्षों तक बिना किसी पर ध्यान दे रहा था, कोई भी इस पर कोई ध्यान नहीं दे रहा था - इसलिए "चिल्ला परीक्षण" एक सफलता थी, अगर हमने ऐसा नहीं किया था, तो सर्वर अंततः अपने ही मर जाएगा। हमने इसे अपने वीएमवेयर क्लस्टर में पी 2 वी कर दिया। - Johnny


यह सर्वरफॉल्ट प्रारूप के लिए एक बहुत व्यापक सवाल है, लेकिन यहां एक अच्छी शुरुआत है:

  • चल रही प्रक्रियाओं और सिस्टम स्टार्टअप पर चलाने के लिए निर्धारित निर्धारित करने के लिए जांचें।
    • प्रत्येक की चल रही विन्यास की समीक्षा करें।
    • किसी भी परिभाषित डेटा निर्देशिका में देखो। (शायद किसी ने MySQL स्थापित किया और इसे चालू कर दिया, लेकिन कोई डेटाबेस नहीं है।)
  • अनुसूचित कार्यों के लिए जाँच करें।
  • देखने के लिए लॉग जांचें;
    • जिन्होंने हाल ही में लॉग इन किया है (और उनसे पूछें)
    • और क्या चल रहा है इसका एक अनुमान प्राप्त करने के लिए।

आपने संस्करण का उल्लेख नहीं किया है, इसलिए मैंने विनिर्देशों को छोड़ दिया है।


30
2018-06-09 14:02



सिस्टम बूट होने पर शुरू करने के लिए कौन सी सेवाएं कॉन्फ़िगर की गई हैं, उससे कुछ और महत्वपूर्ण है। अभी कौन सी सेवाएं चल रही हैं? एक सेवा शुरू करना और बूट पर शुरू करने के लिए इसे कॉन्फ़िगर करना भूलना मुश्किल नहीं है। संबंधित नोट पर, अन्य सिस्टम स्थिति जैसे कि माउंट पॉइंट, रूटिंग टेबल, आईपीटीबल्स नियमों को देखना एक अच्छा विचार है। उन सभी चीजें हैं जो बूट के दौरान उपयोग की गई कॉन्फ़िगरेशन फ़ाइलों को अद्यतन करने के बिना याद किए बिना सिस्टम को आसानी से बदला जा सकता है। - kasperd
इसके अलावा मैं यह देखने के लिए पोर्ट बंदरगाह का उपयोग करूंगा कि कौन से बंदरगाह खुले हैं, फिर सामान्य उपकरण का उपयोग करके उससे कनेक्ट करने का प्रयास करें। (एक साधारण) उदाहरण के लिए यदि पोर्ट 443 खुला है तो आप उससे कनेक्ट करने के लिए एक वेब ब्राउज़र का उपयोग करने का प्रयास कर सकते हैं। मुझे अक्सर ऐसे प्रतीत होता है कि सर्वरों और / स्थानों और अन्य स्थानों में कॉन्फ़िगरेशन फ़ाइलों को त्वरित रूप से ब्राउज़ करने के लिए मेरे पसंदीदा टूल में से एक को अन्वेषण करना पड़ता है, यदि आप चाहें तो "लिंक्स" या "लिंक" का उपयोग करना है। ये चरित्र आधारित वेब ब्राउज़र हैं जो सुविधाजनक कर्सर कुंजी नेविगेशन के साथ फ़ाइल ब्राउज़र के रूप में अच्छी तरह से पर्याप्त काम करते हैं। - aseq
चल रहे बनाम लगातार सेवाओं पर @ kasperd मेला खेल। लेकिन, मैंने फ़ायरवॉल नियमों, माउंट पॉइंट इत्यादि के बारे में सोचा था। वे मुझे सहायक घटक के रूप में लगते थे जो पहले से ही मौजूदा बुलेट बिंदुओं में से एक से बंधे होंगे। YMMV। - Aaron Copley
कृपया जोड़ें - सक्रिय नेटवर्क कनेक्शन के लिए जांचें, और सेवाओं और पोर्ट नंबरों के नाम लिखें। ऐसा करने का सबसे अच्छा तरीका ऑपरेटिंग सिस्टम द्वारा भिन्न होता है। E.G. शुद्ध स्टेटस साथ ही, कंप्यूटर पर किसी प्रकार का ट्रेस डालें ताकि आप देख सकें कि यह पूरे दिन क्या करता है। जब आप सर्वर पर चल रहे चीजें दुर्भावनापूर्ण हो सकती हैं तो आप परिदृश्यों के लिए भी विचार जोड़ना चाह सकते हैं। - IceMage


ऐसी कुछ चीजें हैं जो आप अपने सिस्टम पर चल रहे प्रयासों को सुनिश्चित करने और पता लगाने के लिए कर सकते हैं।

आप जांच सकते हैं कि आपका सर्वर किस सर्वर पर सुन रहा है, इस बारे में एक विचार प्राप्त करने के लिए। उपयोग करने के लिए एक अच्छा आदेश होगा:

 [root@server ~]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             Stat    e       PID/Program name
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LIST    EN      1880/smbd
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LIST    EN      1911/nrpe
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LIST    EN      1759/sshd

जैसा कि आप ऊपर दिए गए उदाहरण आउटपुट से देख सकते हैं, यह आपको प्रोटोकॉल संस्करण (टीसीपी या यूडीपी), उस पते पर सुनता है, जो खुला है और जो प्रोग्राम सुन रहा है।

उपर्युक्त संक्षिप्त उदाहरण (एक सर्वर मशीन) में आप टीसीपी पोर्ट 13 9, 5666, और 22 देख सकते हैं। यह सांबा, nrpe (Nagios एजेंट) और एसएसएच क्रमशः हल, और जब आप उस बंदरगाह पर सुन रहे कार्यक्रम की जांच करते हैं तो पुष्टि की जाती है।

इसके अतिरिक्त, आप उन डिमन्स की सूची देख सकते हैं जो बूट करने के लिए कॉन्फ़िगर किए गए हैं, ऐसा करने के लिए, चलाएं: chkconfig --list | grep "3:on"

उदाहरण:

[root@server ~]# chkconfig --list | grep "3:on"
NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
vncserver       0:off   1:off   2:on    3:on    4:on    5:on    6:off
webmin          0:off   1:off   2:on    3:on    4:off   5:on    6:off
x2gocleansessions       0:off   1:off   2:on    3:on    4:on    5:on    6:off
.
.
.

या:

service --status-all


19
2018-06-09 14:48



मुझे लगता है netstat -plunt याद रखना आसान है। - abligh
इसके अलावा, tcpdump यह निर्धारित करने के लिए उपयोगी हो सकता है कि वास्तव में प्रत्येक सेवा का उपयोग कौन कर रहा है। - abligh


एक और विधि में जांच की आवश्यकता है /etc निर्देशिका और संशोधन तिथियों को देख रहे हैं। ताज़ा इंस्टॉल करने के बाद इस निर्देशिका में सभी फाइलों को लगभग उसी दिनांक / समय होना चाहिए। और चूंकि एक इंस्टॉलेशन आमतौर पर बहुत सी चीजें इंस्टॉल करता है जो लोग आमतौर पर उपयोग नहीं करते हैं, केवल बाद में संशोधन दिनांक वाली फ़ाइलें सर्वर के वास्तविक उद्देश्य को दर्शाती हैं। यदि यह ext4 है तो आप निर्देशिकाओं की जन्म तिथि निकालने में भी सक्षम होना चाहिए, इसलिए कार्य काफी आसान हो सकता है।

फिर भी एक और विधि में जांच शामिल होगी .bash_history फाइलें यह देखने के लिए कि व्यवस्थापक क्या कर रहे थे। यह फ़ाइल ज्ञान की एक संपत्ति प्रदान कर सकती है।


18
2018-06-09 15:22





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

यह तब बेहतर है netstat क्योंकि यह बंदरगाहों को भी दिखा सकता है जो रात के बैकअप के लिए उदाहरण के लिए खुले हैं।


7
2018-06-09 20:41





एक उत्तर मैंने अभी तक नहीं देखा है: हाल ही में संशोधित फ़ाइलों की जांच करें। लॉग, डेटाबेस फाइलें, अन्य आउटपुट फाइल इत्यादि अभी भी लिखे जा सकते हैं जो सुराग प्रदान कर सकते हैं:

find . -mtime -3 

यह मौजूदा निर्देशिका में संशोधित फ़ाइलों और गहरे, पिछले 3 दिनों में बदल जाएगा। संख्या 3 को एक शिक्षित अनुमान तक बढ़ाएं जब तक कि आप कुछ आउटपुट प्राप्त न करें जिसे आप जांच सकते हैं।

मूर्ख-प्रमाण नहीं, क्योंकि बॉक्स कुछ वेब सेवा कॉल को संसाधित कर सकते हैं, कुछ भी लिखने के बिना कुछ डेटा लौट सकते हैं। लेकिन ऊपर वर्णित महान मिश्रण में जोड़ा गया है, यह केवल कुछ सुराग पैदा कर सकता है।


6
2018-06-11 12:39