iptables url क्वेरी स्ट्रिंग लॉग


1

मैं लॉग और ड्रॉप पैकेट विशिष्ट आईपी / डोमेन नाम के लिए भेजता हूं। मैं इन गिरा पैकेट के लिए यूआरएल मापदंडों को लॉग इन करने में सक्षम होना चाहता हूं।

यह एक उदाहरण है url:

http://somedomain.com/test.php?param1=test1&param2=test2

यह मैं क्या कर रहा हूँ जैसे:

iptables -A OUTPUT -p tcp -d somedomain.com --dport 80 -m string --string 'param1=' --algo bm -j LOGGING

लॉगिंग श्रृंखला में:

iptables -A LOGGING -j LOG --log-prefix "somedomain.com Packet Dropped: " --log-level 7

मैंने बिना किसी सफलता के इन विकल्पों की कोशिश की:

--log-ip-options
--log-tcp-options

असल में, मैं के रूप में एक ही प्रासंगिक जानकारी प्राप्त करने में सक्षम होना चाहते हैं, tcpdumpलेकिन क्योंकि मैं पैकेट छोड़ते हैं, आप कहानी जानते हैं, मैं यहां tcpdump का उपयोग नहीं कर सकता (जैसा कि मैं इसे समझता हूं) ...

क्या ड्रॉप पैकेट का URL क्वेरी स्ट्रिंग प्राप्त करने के लिए iptables लॉग (एक टेक्स्ट फ़ाइल के लिए?) का उपयोग करना संभव है? इस उदाहरण में, यह होगा:

param1=test1&param2=test2

इस सब के बारे में मेरी जानकारी शून्य के पास है तो मुझे माफ करना अगर यह एक मूर्खतापूर्ण सवाल है।

धन्यवाद


URL IP / TCP स्तर पर नहीं हैं। आपको एक प्लगइन की आवश्यकता होगी जो आवेदन स्तर की सामग्री को इकट्ठा और लॉग कर सके। (कुछ NIDS कर सकते हैं कि NF से डायवर्ट पैकेज के साथ)। जब आप नए कनेक्शन के लिए सूर्य पैकेट छोड़ते हैं तो आप कभी भी URL युक्त पैकेट नहीं देखेंगे। लेकिन आम तौर पर आप लॉगिंग के लिए उपयोगकर्ता मोड कतार में गिरा पैकेज भी लिख सकते हैं। ULOGD उन्हें pcap format में लिख सकता है: stearns.org/doc/iptables-ulog.v0.1.html
eckes

@eckes मैंने पहले ulog के बारे में सुना, मैं इसे देखूंगा। लेकिन क्या टेक्स्ट फॉर्मेट में आउटपुट (मेरे मामले में केवल GET क्वेरी) प्राप्त करना संभव होगा?
rostM


@eckes ठीक है मुझे लगता है कि मुझे बेहतर समझ में आया कि आपका क्या मतलब है। धन्यवाद
rostM

ये क्या पेशाब परोस रहा है? नग्नेक्स, अपाचे, हैप्रोक्स, अन्य? क्या टीएलएस का उपयोग किया जा रहा है?
हारून

जवाबों:


2

आप इसे केवल iptables के साथ ठीक से हासिल नहीं कर पाएंगे, यदि केवल इस तथ्य के लिए कि अनुरोध URL कई पैकेटों में खंडित हो सकता है।

चूँकि आप OUTPUT पर फ़िल्टर कर रहे हैं, शायद एक और अधिक मजबूत और आसान तरीका एक स्थानीय HTTP प्रॉक्सी, जैसे स्क्विड स्थापित करना होगा , और अपने फ़िल्टरिंग नियमों को स्क्वीड में जोड़ना होगा।

पूर्णता की खातिर, आप तब iptables का उपयोग सब कुछ ब्लॉक करने के लिए कर सकते हैं लेकिन इस निषिद्ध होस्ट से कनेक्ट करने के लिए स्क्वीड प्रॉक्सी।


निम्नलिखित विन्यास उदाहरण के अनुसार , आपके पास होना चाहिएsquid.conf

http_port 3129 intercept

और फिर के साथ अनुरोध को रोकना

iptables -t nat -A OUTPUT -p tcp -d somedomain.com --dport 80 -m owner  --uid-owner squid -j ACCEPT
iptables -t nat -A OUTPUT -p tcp -d somedomain.com --dport 80 -j DNAT --to-destination 127.0.0.1:3129

पहले नियम की आवश्यकता है ताकि स्क्वीड स्वयं ही मूल होस्ट के अनुरोध को प्रॉक्सी कर सके, यदि आप कुछ करना चाहते हैं।

आप access.logस्क्वीड द्वारा निर्मित डिफ़ॉल्ट फ़ाइल से परामर्श करके अनुरोधों के URL देख सकते हैं । वास्तव में URL को ब्लॉक करने के लिए आपको कुछ ACL में सेटअप करना चाहिए squid.conf:

acl blocktestphp url_regex test.php
http_access deny blocktestphp

Thx लेकिन क्या स्क्वीड का उपयोग करने और मेरे उद्देश्य के लिए कोई ऑनलाइन उदाहरण है? मुझे यकीन नहीं है कि कहां से शुरू करना है
rostM

@rostM मैंने और अधिक विवरण जोड़े
b0fh

जैसा दिखता है वैसा ही दिखता हूं। आपका बहुत बहुत धन्यवाद!
rostM

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