केवल विशिष्ट होस्ट अनुरोधों को पुनर्निर्देशित करें, दूसरों के लिए डिफ़ॉल्ट छोड़ दें


0

मेरे पास केवल 80 पोर्ट के साथ एक मशीन है, पहले से ही एक http सर्वर है। मैं पोर्ट 80 पर आने वाले किसी भी यातायात को रोकना चाहता हूं और:

  • अगर ip1 से आ रहा है, तो ip2, ip3 दूसरे पोर्ट पर सुनने वाले एप्लिकेशन पर रीडायरेक्ट करता है
  • वेबसर्वर के पास जाओ

क्या यह संभव होगा? वर्तमान में मैं सोसैट का उपयोग कर रहा हूं, लेकिन फिर भी, फिर भी, मैं तब भी त्रुटि प्राप्त करता हूं, जब उपयोग में पहले से ही पोर्ट के कारण वेबसर्वर शुरू कर रहा हूं ...


आपका क्या मतलब है "केवल पोर्ट 80 ओपन के साथ"? क्या अन्य पोर्ट्स को कुछ बाहरी फ़ायरवॉल द्वारा अवरुद्ध किया जाता है (जैसे NAT के साथ एक राउटर, केवल पोर्ट 80 को अग्रेषित किया जाता है)? या आंतरिक सॉफ्टवेयर फ़ायरवॉल ( iptablesनियम) द्वारा?
कामिल मैकियोरोस्की

दुर्भाग्य से ब्लॉक मेरी मशीन के बाहर है तो मैं इस बारे में कुछ नहीं कर सकते ...
phate

जवाबों:


1

आपने कहा "केवल पोर्ट 80 ओपन के साथ"। यदि अन्य पोर्ट्स को कुछ बाहरी फ़ायरवॉल द्वारा ब्लॉक किया जाता है (जैसे NAT के साथ एक राउटर, केवल पोर्ट 80 को आपके पास भेजा जाता है), तो एक मूल नियम इस तरह हो सकता है:

iptables -t nat -A PREROUTING -p TCP --dport 80 -s 192.168.1.7 -j REDIRECT --to-port 1234

पोर्ट में आने वाले हर ट्रैफिक को लेते हुए 80, यह 192.168.1.7पोर्ट से जो कुछ भी होता है उसे रीडायरेक्ट करता है 1234, बाकी को बरकरार रखता है।

नोट iptablesपहले मैच के आधार पर संचालित होता है , इसलिए आप करना चाहते हैं

iptables -t nat -I PREROUTING …

बजाय।

कई संभावित स्रोत पते निर्दिष्ट करने के विभिन्न तरीकों के लिए, इस प्रश्न के उत्तर देखें: iptablesकई स्रोत आईपी

लेकिन अगर "केवल पोर्ट 80 ओपन के साथ" का मतलब है कि आपके पास ऐसे iptables -A INPUT …नियम हैं जो केवल पोर्ट 80 की अनुमति देते हैं, तो मुझे उम्मीद है कि उपरोक्त अकेले काम नहीं करेगा। ऐसा इसलिए है क्योंकि nat/PREROUTINGपहले काम करता है। इस मामले में आपको दूसरे पोर्ट को भी अनब्लॉक करना चाहिए।


इसलिए, अगर मैंने इसे सही ढंग से समझा तो यह केवल 192.168.1.7 से 1234 को पोर्ट करने के लिए ट्रैफ़िक को पुनर्निर्देशित करता है, बाकी को 80 पर छोड़ देता है?
शाम

@Phate हाँ। मेरा जवाब अब विस्तारित हो गया है।
कामिल मैकियोरोस्की

यह काम करने लगता है, लेकिन कुछ अजीब होता है: अगर मैं अपने नियमों को सूचीबद्ध करने के लिए iptables -L करता हूं तो मैं दर्ज किए गए को नहीं देख सकता ... लेकिन यह सुनिश्चित करने के लिए काम करता है इसलिए इसे वहां होना चाहिए! मुझे इसे क्रम में चाहिए, बाद में इसे हटाने के लिए
Phate

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