2012-07-20 6 views
8

:)एक प्रणाली कमांड चलाएं जब एक iptables नियम

मैं एक IPTable नियम मारा जाता है जब एक सिस्टम कमांड को चलाने के लिए सक्षम होने के लिए इच्छुक हूँ मिलान किया जाता है, यह करने के लिए रिमोट डिवाइस के आईपी पते गुजर।

मैंने चारों ओर एक नज़र डाली है लेकिन कुछ भी नहीं मिला है। मैंने लॉग को grepping के बारे में सोचा, लेकिन मुझे बहुत अधिक यातायात की उम्मीद है ..

कोई मदद शानदार होगा!

धन्यवाद

तुम कैसे करते

उत्तर

4

यहाँ है (यदि यह मदद करता है, उबंटू लिनक्स पसंद के मेरे मंच है):

iptables -I FORWARD -p tcp --dport 80 -d a.b.c.d -j LOG --log-prefix="TRIGGER ME NOW !!!"

tail -f some-logfile | awk '/some-pattern/ {system("run-some-command")}'

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

+0

ओह, ठीक समाधान की तरह दिखता है ..! मैं इसे जाने जा रहा हूं .. – AndyD

1

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

अपने उबंटू सिस्टम पर 'apt-get install knockd' और मैन पेज में ऐसे उदाहरण हैं जिन्हें आप आसानी से अनुकूलित कर सकते हैं।

+0

दिलचस्प, धन्यवाद! मैं इसे एक लुक दूंगा! :) – AndyD

संबंधित मुद्दे