एक IP और पोर्ट से दूसरे IP और पोर्ट पर ट्रैफ़िक पुनर्निर्देशित करें

सर्वर को प्रबंधित करते समय ट्रैफ़िक को पुनर्निर्देशित करने पर कुछ बहुत ही सामान्य है।

मान लीजिए हमारे पास कुछ सेवाओं के साथ एक सर्वर है, लेकिन जो भी कारण से हम उन सेवाओं में से एक को बदलते हैं (मुझे नहीं पता, उदाहरण के लिए pop3 जो कि पोर्ट 110 है) दूसरे सर्वर पर। सामान्य और सबसे लगातार बात यह है कि बस DNS रिकॉर्ड में आईपी को बदलना होगा, हालांकि अगर कोई उपडोमेन के बजाय आईपी का उपयोग कर रहा था तो यह प्रभावित होगा।

क्या करें? ... सरल, उस पोर्ट के माध्यम से प्राप्त होने वाले ट्रैफ़िक को उसी पोर्ट के साथ किसी अन्य सर्वर पर पुनर्निर्देशित करता है।

सर्वर-नोड-लैन-ईथरनेट

हम ट्रैफ़िक को पुनर्निर्देशित करना कैसे शुरू करते हैं?

पहली बात यह है कि हमें सक्षम होना चाहिए अग्रेषण सर्वर पर, इसके लिए हम निम्नलिखित काम करेंगे:

echo "1" > /proc/sys/net/ipv4/ip_forward

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

यदि आप पिछला काम नहीं करते हैं, तो आप इस अन्य कमांड का भी उपयोग कर सकते हैं (यह एक CentOS पर मेरे साथ ऐसा हुआ):
sysctl net.ipv4.ip_forward=1
तब हम नेटवर्क को पुनः आरंभ करेंगे:

service networking restart

CentOS और अन्य जैसे RPM डिस्ट्रोस में, यह होगा:

service nertwork restart

अब हम महत्वपूर्ण बात पर आगे बढ़ेंगे, सर्वर के माध्यम से बताएंगे iptables पुनर्निर्देशित करने के लिए क्या:

iptables -t nat -A PREROUTING -p tcp --dport <puerto receptor> -j DNAT --to-destination <ip final>:<puerto de ip final>

दूसरे शब्दों में, और मेरे द्वारा बताए गए उदाहरण का अनुसरण करते हुए, मान लीजिए कि हम अपने सर्वर को पोर्ट 110 के माध्यम से प्राप्त होने वाले सभी ट्रैफ़िक को पुनर्निर्देशित करना चाहते हैं (पूर्व: 10.10.0.2), जो अभी भी 110 के माध्यम से उस यातायात को प्राप्त करेगा (यह एक ही सेवा है):

iptables -t nat -A PREROUTING -p tcp --dport 110 -j DNAT --to-destination 10.10.0.2:110

10.10.0.2 सर्वर यह देखेगा कि सभी पैकेट या अनुरोध क्लाइंट के आईपी से आते हैं, अगर वे अनुरोधों को तैरना चाहते हैं, अर्थात, दूसरा सर्वर यह देखता है कि अनुरोध 2 सर्वर के आईपी (जिसमें हम आते हैं) के साथ आते हैं पुनर्निर्देशन लागू करें), यह दूसरी पंक्ति भी होगी:

iptables -t nat -A POSTROUTING -j MASQUERADE

कुछ सवाल और जवाब

उदाहरण में मैंने दोनों बार (110) एक ही पोर्ट का उपयोग किया, हालांकि वे बिना किसी समस्या के एक पोर्ट से दूसरे पोर्ट पर ट्रैफ़िक पुनर्निर्देशित कर सकते हैं। उदाहरण के लिए, मान लें कि मैं किसी अन्य सर्वर पर पोर्ट 80 से 443 तक ट्रैफ़िक पुनर्निर्देशित करना चाहता हूं, इसके लिए यह होगा:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.10.0.2:443

यह है iptables, वे सभी अन्य मापदंडों का उपयोग कर सकते हैं जिन्हें हम जानते हैं, उदाहरण के लिए, यदि हम केवल एक विशिष्ट आईपी से यातायात को पुनर्निर्देशित करना चाहते हैं, तो यह जोड़ना होगा। ... उदाहरण के लिए मैं केवल 10.10.0.51 से आने वाले ट्रैफ़िक को पुनर्निर्देशित करूंगा:

iptables -t nat -A PREROUTING -p tcp -s 10.10.0.51 --dport 80 -j DNAT --to-destination 10.10.0.2:443

या संपूर्ण नेटवर्क (/ 24):

iptables -t nat -A PREROUTING -p tcp -s 10.10.0.0/24 --dport 80 -j DNAT --to-destination 10.10.0.2:443

हम -i के साथ नेटवर्क इंटरफ़ेस भी निर्दिष्ट कर सकते हैं :

iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 80 -j DNAT --to-destination 10.10.0.2:443

समाप्त!

जैसा कि मैंने पहले ही कहा, iptables है, आप वही लागू कर सकते हैं जो पहले से ही ज्ञात है ताकि सर्वर ठीक वही करे जो आप इसे करना चाहते हैं,

नमस्ते!

समर्पित करें


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   Fer कहा

    हम इसे फ़ायरवॉल से भी कर सकते हैं जो पोर्ट फ़ॉरवर्डिंग की अनुमति देता है, है ना? (संबंधित नियमों को लागू करना)।

    1.    KZKG ^ गारा कहा

      हां, अंत में Pfsense या दूसरों की तरह एक फ़ायरवॉल, पीछे से iptables का उपयोग करें।

      1.    घनाकार कहा

        सटीक होने के लिए, pfsense iptables का उपयोग नहीं करता है लेकिन pf, याद रखें कि यह एक bsd है।

        1.    KZKG ^ गारा कहा

          अरे ठीक है, मेरा बुरा!

  2.   निकोलस कहा

    टिप the के लिए आपका बहुत-बहुत धन्यवाद

    मुझे कुछ संदेह है:
    1 - क्या परिवर्तन स्थायी है? या सर्वर को रिस्टार्ट करने पर खो जाता है?
    2 - मेरे पास एक ही सबनेट पर कई उदाहरण (ए, बी और सी) हैं। उदाहरण ए में मैं एक बाहरी आईपी पर यातायात के लिए नियम लागू करता हूं, और उदाहरण बी और सी से कर्ल के साथ परीक्षण, सब कुछ अद्भुत काम करता है। समस्या यह है कि उदाहरण ए से यह काम नहीं करता है। मैंने आपके आईपी और लूपबैक इंटरफ़ेस का उपयोग करने की कोशिश की, और न ही काम करता है:
    $ iptables -t nat -A PREROUTING -p tcp –dport 8080 -j DNAT –to-गंतव्य xxxx: 8080
    $ iptables -t nat -A PREROUTING -p tcp -i lo –dport 8080 -j DNAT –to-गंतव्य xxxx: 8080

    $ कर्ल ip-yyyy: 8080 / hello_world
    कर्ल: (7) आईपी-वायय पोर्ट 8080 से कनेक्ट करने में विफल: कनेक्शन ने इनकार कर दिया
    $ कर्ल लोकलहोस्ट: 8080 / हैलो_वर्ल्ड
    कर्ल: (7) लोकलहोस्ट पोर्ट 8080 से कनेक्ट करने में विफल: कनेक्शन ने इनकार कर दिया

    किसी भी विचार समस्या क्या हो सकती है?

    1.    KZKG ^ गारा कहा

      हां, रिबूट पर परिवर्तन खो गया है, आपको इससे बचने के लिए iptables-save & iptables-Restore या ऐसा कुछ उपयोग करना होगा।
      मुझे समझ में नहीं आया कि आप क्या करना चाहते हैं, उदाहरण ए?

      1.    निकोलस कहा

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

  3.   Braybaut कहा

    बहुत अच्छा, अगर मेरे पास एक और मेल सर्वर है, तो मैं सर्वर 143 से सर्वर 1 तक पोर्ट 2 से ट्रैफ़िक को आगे बढ़ा सकता हूं और ईमेल मुझे सर्वर 2 पर पहुंचेंगे, है ना?

    सादर

    1.    KZKG ^ गारा कहा

      सिद्धांत रूप में, यह इस तरह से काम करता है। निश्चित रूप से, आपके पास सर्वर 2 पर मेल सर्वर ठीक से स्थापित होना चाहिए 🙂

  4.   MSX कहा

    जिस तरह की पोस्ट हमे पढ़ना पसंद है, धन्यवाद!

  5.   अब्राहम इबरा कहा

    उत्कृष्ट लेख, मेरे पास एक परियोजना है जिसमें मैं काम कर रहा हूं और मैं आपसे एक प्रश्न पूछना चाहता हूं, एनएटी फ़ंक्शन के साथ औद्योगिक स्विच हैं (मुझे लगता है कि वे नीचे IPTables का उपयोग करते हैं), उपकरण में बदलाव किए बिना एक आईपी पते का अनुवाद करने के लिए, एक उदाहरण के लिए, मेरे पास एक सर्वर 10.10.2.1 है जो 10.10.2.X कंप्यूटर के साथ संचार करता है और स्विच के माध्यम से प्रोग्राम किया जाता है ताकि एक कंप्यूटर जिसका पता 192.168.2.4 है, वास्तव में 10.10.2.5 के रूप में सर्वर से देखा जाता है, इसका आईपी अनुवाद किया गया है। यह पता होना चाहिए कि उस पते के साथ अन्य कंप्यूटरों से, मैं इसे उबंटू या किसी अन्य वितरण वाले सर्वर से करना चाहता हूं, क्या iptables नियम होंगे?

  6.   Kuk कहा

    बहुत अच्छी जानकारी धन्यवाद ^ _ ^

  7.   यिसस कहा

    गुड आफ़्टरनून।
    मुझे एक रीडायरेक्ट करने की कोशिश करने में समस्या है। मै समझाता हूँ:
    मेरे पास उबंटू में एक प्रॉक्सी सर्वर है, जिसमें 2 नेटवर्क कार्ड हैं:
    eth0 = 192.168.1.1 बाकी स्थानीय नेटवर्क से जुड़ा है।
    eth1 = 192.168.2.2 राउटर से जुड़ा है।
    मुझे eth0 के माध्यम से जाने के लिए eth1 के माध्यम से आने वाली सभी चीजों की आवश्यकता है, और प्रॉक्सी के माध्यम से भी (मैं स्क्विड का उपयोग करता हूं, जिसका डिफ़ॉल्ट पोर्ट 3128 है), और मुझे IPTABLES कॉन्फ़िगरेशन में कुंजी नहीं मिल सकती है।
    मुझे किसी भी प्रकार के प्रतिबंध की आवश्यकता नहीं है, केवल यह कि रिकॉर्ड किए गए वेब पते के लॉग में एक रिकॉर्ड रहता है।

    मुझे उम्मीद है कि आप मेरी मदद कर सकते हैं क्योंकि यह काफी बोझिल काम है जो मुझे कुछ दिनों से परेशान कर रहा है।

    शुक्रिया.

  8.   गेब्रियल कहा

    मित्र, मैं अन्य सर्वरों के लिए बहुत नया हूं, मेरे पास कोई विचार नहीं है, लेकिन मैं विषय को समझता हूं और मैं जल्दी से सीखता हूं, मेरा प्रश्न निम्नलिखित है मेरे पास 2 सर्वर serv_1 और serv_2 हैं जो मैंने उसी इंट्रानेट से कनेक्ट किए हैं, इन सर्वरों में मेरे पास है एक खुद का सेट मैं निम्नलिखित करना चाहूंगा:

    उदाहरण के लिए ips की एक निश्चित सीमा रेंजपिल 1: जब एक एक्सेस आईपी को स्वयं के लिए एक आईपी डालते हुए ipclcloud (ipowncloud) को serv_1 की ओर निर्देशित किया जाता है और यदि यह एक और रेंजप 2 है, तो समान ipowncloud को serv_2 के लिए निर्देशित किया जाता है, यह क्रम में है कि 2 सर्वर स्थित हैं दो अलग-अलग शहरों में और आईपी रेंज अलग-अलग हैं, लेकिन वे सभी एक ही नेटवर्क पर हैं, जो कि पहला भाग होगा, दूसरा स्पष्ट होगा कि इन 2 सर्वरों को सिंक्रनाइज़ करना है ताकि वे दर्पण हों या वे मुझे इस क्रम में सलाह दें चौड़ाई बैंड का अनुकूलन करने के लिए, कृपया, अगर आप मुझे समझाने जा रहे हैं कि यह कैसे कदम से कदम सुपर प्रोग्रामर मोड = (

  9.   एंटोनियो कैरिज़ोसा कहा

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

  10.   जॉन कहा

    इस विधि का उपयोग करके आप HTTPS को HTTP पर पुनर्निर्देशित कर सकते हैं?

  11.   मति कहा

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

  12.   लाफत 32 कहा

    पूछने के लिए मेरे साथ बुरा व्यवहार मत करो। क्या यह विंडोज में किया जा सकता है?

  13.   मार्टिन कहा

    यह जानकारी मेरे लिए उपयोगी रही है। हमेशा की तरह, आप लोगों पर भरोसा किया जा सकता है, जब मुझे अंग्रेजी में कुछ नहीं मिल रहा है तो मैं आमतौर पर स्पेनिश में देख रहा हूं, उन अवसरों पर मैं लगभग हमेशा इस साइट पर आता हूं। धन्यवाद।

  14.   सबा कहा

    मेरे पास एक 4G राउटर है जो एक नेटवर्क का क्लाइंट है जिसे मैं प्रबंधित नहीं करता (जाहिर है, मैं एक क्लाइंट हूं)… यह राउटर OpenVPN के माध्यम से उस दूरस्थ नेटवर्क का प्रवेश द्वार है। इसके अलावा, राउटर क्षेत्र में उन सबनेट्स में से एक के सर्वर के पोर्ट 80 तक पहुंचने के लिए पोर्टफॉरवर्डिंग के कार्य को पूरा करता है।

    यह घोषणा थी कि मुझे राउटर में फ़ायरवॉल कस्टम नियम "-t nat -A POSTROUTING -j MASQUERADE" के रूप में रखना था।

    मदद के लिए धन्यवाद!