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


42

मुझे 3 लिनक्स बॉक्स सौंपे गए हैं, 1 सामने वाला उस पर अपाचे के साथ और दूसरा 2 जो कि, जहाँ तक मैं बता सकता हूँ, एक अजीब बहुत कुछ मत करो। सभी रेडहैट पर दौड़ रहे हैं।

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


7
प्रक्रिया सूची, नेटवर्क श्रोता (हो सकता है कि
इनिट

5
अरे नहीं! निश्चित रूप से किसी को पता है कि वे किस लिए हैं? इसलिए वे चाहते हैं कि आप उनका समर्थन करें लेकिन न जाने वे क्या करते हैं ?!
डिजिटल लाइटक्राफ्ट

11
उन्हें बंद करें। कोई आपको बताएगा, लगभग तुरंत , क्या काम नहीं कर रहा है।
जसकोट

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

7
बाकी सभी ने क्या कहा, लेकिन यह भी: उनके खिलाफ नप चलाएं।
कैथरीन विलियार्ड

जवाबों:


42

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

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


43
यह बंद नहीं है। ईथरनेट केबल अनप्लग करें, यदि आप चीख-परीक्षण करना चाहते हैं। यदि आपके पास दो साल के अपटाइम के साथ एक बॉक्स नहीं है, तो आप रिबूट करने में विफल हैं, तो आप किसी बिंदु पर होंगे। यह मिश्रण में उस निराशा को जोड़ने का समय नहीं है। (इसे यहाँ कॉपी करना है क्योंकि इसे पढ़ने की आवश्यकता है।)
आरोन कोपले

3
आप 100% सही हैं, मैंने यह दर्शाने के लिए पोस्ट को संपादित किया है। मैं थोड़ा मुखर हो रहा था लेकिन मैं अभी भी आपदा को बढ़ावा दिए बिना मुखर हो सकता हूं।
जोश रंबुत

8
नेटवर्क के अनप्लग होने से पहले प्रत्येक सर्वर पर चल रही प्रक्रियाओं और खुली सॉकेट की सूची को सहेजना एक अच्छा विचार है - बस मामले में कुछ सर्वरों के बीच एक टीसीपी कनेक्शन पर भरोसा कर रहा है जो ऐसा होता है जो कई महीनों तक बिना किसी के बारे में बने रहे। पहले मामले में इसे खोलने के लिए जो भी कदम उठाने की आवश्यकता थी, उसे स्वचालित करना। (उदाहरण के लिए अगर किसी को एक ssh पोर्ट को अस्थायी रूप से अग्रेषित करने की आवश्यकता है और फिर उसके बारे में भूल गए।)
kasperd

4
यह मत करो। कैसी हास्यास्पद सलाह। मूर्ख विचारशील आईटी लोगों ने ऐसा करने में मुझे इतना समय और काम दिया। पहले पूछो। अगर आपको नहीं पता कि किससे पूछना है, ASK हर कोई
मोनिका

4
सुनिश्चित करें कि आप किसी को चिल्लाने के लिए पर्याप्त समय छोड़ दें - एक बार जब मैंने एक सर्वर रूम रैक पर बैठे धूल या डेस्कटॉप मशीन के साथ ऐसा किया था - किसी को नहीं पता था कि यह क्या हुआ, किसी को नोटिस करने में पूरे एक महीने का समय लगा जब हमने इसे अनप्लग किया । पता चलता है कि यह पेरोल प्रणाली का हिस्सा था, उस सर्वर के बिना, लेखांकन मासिक पेरोल उत्पन्न नहीं कर सकता था। यह कम से कम 3 वर्षों से बिना किसी के ध्यान के चल रहा था - इसलिए "चीख परीक्षण" एक सफलता थी, अगर हमने ऐसा नहीं किया होता, तो सर्वर अंततः अपने आप ही मर जाता। हमने अपने vmware क्लस्टर में P2v'ing को समाप्त किया।
जॉनी

30

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

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

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


8
सिस्टम बूट होने पर शुरू करने के लिए किन सेवाओं को कॉन्फ़िगर किया गया है, उससे कहीं अधिक महत्वपूर्ण है। अभी कौन सी सेवाएं चल रही हैं? एक सेवा शुरू करना और इसे बूट पर शुरू करने के लिए कॉन्फ़िगर करना भूल जाना कोई कठिन गलती नहीं है। संबंधित नोट पर, अन्य सिस्टम स्थिति को देखना एक अच्छा विचार है जैसे: माउंट पॉइंट, राउटिंग टेबल, आईपीटेबल्स नियम। वे सभी चीजें हैं जो आसानी से बदली जा सकती हैं, जबकि सिस्टम बूट के दौरान उपयोग की जाने वाली कॉन्फिग फाइलों को याद किए बिना चल रहा है।
कास्परड

इसके अलावा, मैं पोर्ट स्कैनर का उपयोग करके देखूंगा कि कौन से पोर्ट खुले हैं, फिर सामान्य टूल का उपयोग करके इसे कनेक्ट करने का प्रयास करें। पोर्ट 443 खुला होने पर (सरल) उदाहरण के लिए आप इसे कनेक्ट करने के लिए वेब ब्राउज़र का उपयोग करने का प्रयास कर सकते हैं। मुझे अक्सर ऐसे प्रतीत होने वाले परित्यक्त सर्वरों का पता लगाना पड़ता है और मेरे पसंदीदा टूल में से एक को जल्दी से / आदि में कॉन्फ़िगरेशन फ़ाइलों के माध्यम से ब्राउज़ करना है और यदि आप चाहें तो "लिंक्स" या "लिंक" का उपयोग करना है। ये चरित्र आधारित वेब ब्राउज़र हैं जो फ़ाइल ब्राउज़र के साथ-साथ सुविधाजनक कर्सर कुंजी नेविगेशन के साथ काफी अच्छा काम करते हैं।
aseq

1
@kasperd मेला चल रहा है बनाम लगातार सेवाओं पर खेलते हैं। लेकिन, मैंने फ़ायरवॉल नियमों, माउंट पॉइंट्स आदि के बारे में सोचा, जो मुझे सहायक घटकों के रूप में प्रतीत होते थे, जो पहले से मौजूद बुलेट बिंदुओं में से एक से बंधे होंगे। YMMV।
आरोन कोपले

कृपया जोड़ें - सक्रिय नेटवर्क कनेक्शन की जांच करें, और सेवाओं और पोर्ट नंबर के नाम लिखें। ऐसा करने का सबसे अच्छा तरीका ऑपरेटिंग सिस्टम द्वारा भिन्न होता है। ईजी नेट स्टेट। इसके अलावा, कंप्यूटर पर कुछ प्रकार के निशान लगाएं ताकि आप देख सकें कि यह पूरे दिन में क्या करता है। जब आप सर्वर पर चलने वाली चीजें दुर्भावनापूर्ण हो सकती हैं, तो आप परिदृश्यों पर विचार करना चाहते हैं।
आइसमैज

19

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

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

 [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

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

ऊपर छंटनी किए गए उदाहरण (एक सर्वर मशीन) में आप देख सकते हैं tcp पोर्ट 139, 5666, और 22 सुन रहे हैं। ये क्रमशः samba, nrpe (Nagios एजेंट) और ssh का समाधान करते हैं, और जब आप उस पोर्ट पर सुन रहे प्रोग्राम की जाँच करते हैं, तो इसकी पुष्टि की जाती है।

इसके अतिरिक्त, आप उन डेमों की सूची की जांच कर सकते हैं जो बूट पर शुरू करने के लिए कॉन्फ़िगर किए गए हैं, ऐसा करने के लिए, रन करें: 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


5
मुझे netstat -pluntयाद करना आसान लगता है।
अबूझ

2
इसके अलावा, tcpdumpयह निर्धारित करने के लिए उपयोगी हो सकता है कि वास्तव में प्रत्येक सेवा का उपयोग कौन कर रहा है।
अबू

18

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

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


7

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

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


6

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

find . -mtime -3 

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.