प्रोग्राम में लॉग इन करें


9

आने वाले कनेक्शन को लॉग करने के लिए iptables का उपयोग करने के अलावा ..

क्या किसी सेवा के लिए इनबाउंड कनेक्शन को लॉग इन करने का एक तरीका है जो आपके पास स्रोत नहीं है (मान लीजिए कि सेवा अपने आप इस तरह से सामान नहीं लॉग करती है)? मैं जो करना चाहता हूं, उसके आधार पर कुछ जानकारी इकट्ठा करना है, जो कनेक्ट करने में सक्षम है कि वे चीजों को बता सकें कि दिन में किस समय सेवा का सबसे अधिक उपयोग किया जा रहा है, जहां दुनिया में मुख्य उपयोगकर्ता आधार है, आदि।

मुझे पता है कि मैं इसका उपयोग कर सकता हूं netstatऔर इसे एक क्रोन स्क्रिप्ट तक हुक कर सकता हूं , लेकिन यह सटीक नहीं हो सकता है, क्योंकि स्क्रिप्ट केवल एक मिनट के रूप में अक्सर चल सकती है।

यहाँ मैं अभी क्या सोच रहा हूँ:

  • एक प्रोग्राम लिखें जो लगातार पोल करता है netstat, स्थापित कनेक्शन की तलाश में जो पिछले पोल में दिखाई नहीं देता था। यह विचार सीपीयू समय की बर्बादी की तरह लगता है, क्योंकि एक नया कनेक्शन नहीं हो सकता है।
  • एक रैपर प्रोग्राम लिखें, जो सेवा को चलाने वाले पोर्ट पर इनबाउंड कनेक्शन स्वीकार करता है, लेकिन फिर मुझे नहीं पता होगा कि उस कनेक्शन को वास्तविक सेवा के साथ कैसे पारित किया जाए।

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


आप iptables का उपयोग क्यों छोड़ रहे हैं? हमारा आवेदन किस पोर्ट पर चल रहा है?
user9517

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

आप नए आने वाले कनेक्शन को किसी भी पोर्ट पर लॉग इन करने के लिए केवल iptables का उपयोग कर सकते हैं। मैं ऐसा करता हूं, एक-दो बॉक्स पर। इसलिए मैं इयान के उत्कृष्ट प्रश्न को दोहराता हूं: आप iptables के उपयोग को क्यों छोड़ रहे हैं?
MadHatter

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

जवाबों:


4

आप इस प्रकार iptables के साथ नए कनेक्शन लॉग कर सकते हैं

iptables -I INPUT -m state --state NEW -j LOG --log-level 1 --log-prefix "New Connection "

यह एक नया ssh conenction के लिए इस तरह एक संदेश जोड़ देगा

Oct 6 10:58:23 सेंटो कर्नेल: नया कनेक्शन IN = eth0 OUT = MAC = 00: 0c: 29: 5b: a5: ea: 00: 0c: 29: 2d: 94: a0: 08: 00 SR2 = 192.168। 1.72 DST = 192.168.254.187 LEN = 52 TOS = 0x00 PREC = 0x00 TTL = 126 ID = 15498 DF PROTO = TCP SPT = 59221 DPT = 22 खिड़की = 8192 RES = 0x00 SYN URGP = 0

या नए http कनेक्शन के लिए इसे पसंद करें

अक्टूबर 6 11:03:56 सेंट कर्नेल: नया कनेक्शन IN = eth0 OUT = MAC = 00: 0c: 29: 5b: a5: ea: 00: 0c: 29: d2: 2c: 38: 08: 00 SRC - 192.168। 254.188 DST = 192.168.254.187 LEN = 60 टीओएस = 0x10 PREC = 0x00 TTL = 64 ID = 10345 DF PROTO = TCP SPT = 52488 DPT = 80 विन्डोज़ - 14600 RES = 0x00 SYN URGP = 0

और इसी तरह आपके सिस्टम के प्रत्येक नए कनेक्शन के लिए। जहाँ भी आपके syslog को kern.warning संदेश भेजने के लिए कॉन्फ़िगर किया गया है, उसे लॉग किया जाएगा।


चारों ओर अधिक देखने के बाद, यह तरीका मेरा सबसे अच्छा दांव लगता है। मैं इसे rsyslog के साथ एक अलग फ़ाइल में लॉग इन करने के लिए जोड़ दूँगा। आपके जानकारीपूर्ण उत्तर Iain के लिए बहुत बहुत धन्यवाद!
Zac

0

आप ऑडिट का उपयोग कर सकते हैं और दिन के अंत में उन लॉगलाइन के आधार पर कुछ आंकड़ों की गणना कर सकते हैं। या आप एक स्नैम्प समाधान पर भी जा सकते हैं लेकिन शायद आपने अपना स्वयं का नाम लिखा है


0

कैसे tcpdump या तारों के बारे में?


कृपया अपने उत्तर को थोड़ा और विस्तृत करें। शायद उपयोगकर्ता को यह सुझाव देना कि tcpdump और wirehark को समस्या निवारण प्रयासों से कैसे लाभ होगा।
मैगेलन

tcpdump मैन्युअल के साथ आप पूर्ण पैकेट लॉग कर सकते हैं। आप tcpdump के साथ पैकेट पर भी कब्जा कर सकते हैं और फिर उन्हें वायरशार्क tcpdump -i <interface> -s 65535 -w <some-file>में विश्लेषण कर सकते हैं। इसके अलावा, आपको ^ C के साथ कैप्चर को समाप्त करना होगा जब आप मानते हैं कि आपने पर्याप्त पैकेट पर कब्जा कर लिया है।
गुंटिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.