Трафикті бір IP және порттан екінші IP мен портқа бағыттаңыз

Серверлерді басқару кезінде жиі кездесетін нәрсе трафикті қайта бағыттау болып табылады.

Бізде белгілі бір қызметтері бар сервер бар делік, бірақ біз қандай да бір себептермен сол қызметтердің бірін өзгертеміз (Мен білмеймін, мысалы pop3, яғни 110 порт) басқа серверге. Кәдімгі және жиі кездесетін нәрсе - жай DNS жазбасындағы IP-ді өзгерту, бірақ егер біреу ішкі доменнің орнына IP-ні қолданса, оған әсер етуі мүмкін.

Не істеу? ... қарапайым, сол порт арқылы алынған трафикті сол портпен басқа серверге бағыттаңыз.

server-node-lan-ethernet

Трафикті қайта бағыттауды қалай бастаймыз?

Біріншіден, біз оны қосқан болуымыз керек экспедиторлық серверге бұл үшін келесілерді орналастырамыз:

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

Осы оқулықта көрсетілген барлық командалар әкімшілік артықшылықтармен орындалуы керек, оларды тікелей root пайдаланушысымен орындауға кеңес беремін.

Алдыңғысы сізге сәйкес келмеген жағдайда, сіз басқа команданы да пайдалана аласыз (бұл маған 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 сервері барлық пакеттердің немесе сұраныстардың клиенттің IP-інен келіп түсетіндігін, егер олар сұраныстармен жүзгісі келсе, яғни 2-сервер сұраныстардың 1-сервердің IP-мен келетіндігін көреді (және біз қайта бағыттауды қолданамыз), келесі жолды қою керек:

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, олар біз білетін барлық басқа параметрлерді қолдана алады, мысалы, егер біз тек белгілі бір IP-ден трафикті қайта бағыттағымыз келсе, бұл -s қосу болар еді … Мысалы, мен тек 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, сіз белгілі нәрсені қолдануға болады, сонда сервер сіздің қалағаныңызды орындай алады 😉

Рахмет!

DedicatedServer_SubImage


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

20 пікір, өз пікіріңізді қалдырыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.

  1.   Фер дижо

    Біз мұны портты бағыттауға мүмкіндік беретін брандмауэрден де жасай аламыз, солай ма? (тиісті ережелерді қолдану).

    1.    KZKG ^ Гаара дижо

      Ия, әрине, ақыр соңында Pfsense немесе басқа басқалар сияқты брандмауэр артқы жағынан iptables қолданады.

      1.    мылжың дижо

        Дәлірек айтқанда, pfsense iptables емес, pf қолданады, оның ішінде bsd екенін ұмытпаңыз.

        1.    KZKG ^ Гаара дижо

          Дұрыс, жаманым!

  2.   Николя дижо

    Кеңес үшін үлкен рахмет 🙂

    Менде бірнеше күмән бар:
    1 - өзгеріс тұрақты ма? немесе ол серверді қайта іске қосқан кезде жоғалып кетті ме?
    2 - Менде бір ішкі желіде бірнеше даналар бар (мысалы, A, B және C). А мысалында мен трафикті сыртқы IP-ге бағыттау үшін ережені қолданамын және B және C даналарынан алынған бұйралармен бәрі керемет жұмыс істейді. Мәселе мынада, ол А данасынан жұмыс істемейді. Мен сіздің ipіңізді де, кері байланыс интерфейсін де қолданып көрдім, әрі жұмыс істемейді:
    $ iptables -t nat -A PREROUTING -p tcp –dport 8080 -j DNAT –xxxxxx: 8080
    $ iptables -t nat -A PREROUTING -p tcp -i lo –dport 8080 -j DNAT –xxxxxxx: 8080

    $ curl ip-yyyy: 8080 / hello_world
    бұйра: (7) 8080 ip-yyyy портына қосылу мүмкін болмады: қосылым қабылданбады
    $ curl localhost: 8080 / hello_world
    бұйра: (7) 8080 localhost портына қосылу мүмкін болмады: қосылым қабылданбады

    Мәселе қандай болуы мүмкін деген кез-келген идея бар ма?

    1.    KZKG ^ Гаара дижо

      Иә, қайта жүктеу кезінде өзгеріс жоғалады, мұны болдырмау үшін iptables-save & iptables-restore немесе сол сияқтыларды пайдалану керек.
      Мен не істегіңіз келетінін түсінбедім, мысалы A?

      1.    Николя дижо

        Менде тек белгілі бір IP-дің қосылыстарын қолдайтын сервер бар (А серверлері), мен ақ тізімге тағы да көп ips қоса алмаймын немесе қосқым келеді (масштабтау мүмкіндігі үшін), сондықтан мен сыртқы сервердегі барлық трафиктің өтуін қалаймын. деді сервер (A).
        Практикалық тұрғыдан алғанда, менде әр қызмет үшін қай IP-ді қолдануды анықтайтын жаһандық конфигурациялар бар, сондықтан бұл жағдайда «сыртқы қызметті пайдаланғысы келетіндердің барлығы IP A-ны қолдануы керек» сияқты болады.
        Мен бұған осы мақаладағы әдісті қолдана отырып сәтті жеттім, бірақ мен оны қолданған кезде А сервері өзінің IP-ін пайдаланып қызметке кіре алмайтындығына тап болдым (бірақ барлық басқа серверлерде бар).
        Әзірге менің ойымша, A серверінің / etc / hosts файлында сыртқы IP-ге сілтеме жасай отырып, ғаламдық параметрді жоққа шығарып, салыстыруды қосу болды.

  3.   бребот дижо

    Өте жақсы, егер менде басқа пошта сервері болса, мен 143 порттан трафикті server1-ден server2-ге жібере аламын, және хаттар маған server2-де жетеді, солай ма?

    тілекпен

    1.    KZKG ^ Гаара дижо

      Теория жүзінде иә, ол осылай жұмыс істейді. Әрине, сізде серверде installed дұрыс орнатылған пошта сервері болуы керек

  4.   msx дижо

    Біз оқуды ұнататын жазбалардың түрі, рахмет!

  5.   Авраам Ибарра дижо

    Өте жақсы мақала, менде жұмыс істейтін жоба бар, мен сіздерге сұрақ қойғым келеді, NAT функциясы бар өнеркәсіптік ажыратқыштар бар (олар төменде IPTables пайдаланады деп ойлаймын), IP мекенжайын жабдыққа өзгертусіз аудару үшін, мысалы менде Сервер бар 10.10.2.1.X 10.10.2.X компьютерлерімен байланысатын және коммутатор арқылы бағдарламаланған, сондықтан 192.168.2.4 мекен-жайы бар компьютер серверден 10.10.2.5 ретінде көрініп, сол IP-адресті көруге аударды Осы мекен-жайы бар басқа компьютерлерден мен оны Ubuntu немесе басқа дистрибутиві бар серверден жасағым келеді, iptables ережелері қандай болар еді?

  6.   Кук дижо

    Өте жақсы ақпарат рахмет ^ _ ^

  7.   Иисус дижо

    Қайырлы кеш.
    Бағытты қайта бағыттауда қиындықтарым бар. Мен түсіндіремін:
    Менде Ubuntu-да 2 желілік картамен прокси-сервер бар:
    eth0 = 192.168.1.1 жергілікті желінің қалған бөлігіне қосылған.
    eth1 = 192.168.2.2 маршрутизаторға қосылған.
    Маған eth0 арқылы келетін барлық нәрселер қажет, сонымен қатар прокси арқылы өту керек (мен Squid пайдаланамын, оның порт 1), мен IPTABLES конфигурациясынан кілт таба алмаймын.
    Маған қандай-да бір шектеулер қажет емес, тек кірген веб-мекен-жайлар журналында жазба қалады.

    Сіз маған көмектесе аласыз деп үміттенемін, өйткені бұл мені екі күннен бері мазалайтын өте күрделі жұмыс.

    рахмет.

  8.   Габриэль дижо

    Досым, мен басқа серверлерге өте таныспын, менде ешқандай түсінік жоқ, бірақ мен тақырыпты түсінемін және тез үйренемін, менің сұрағым: менде сол сервис пен серв_2 серверлері бар, мен сол интранетке қосылдым, бұл серверлерде менде өзіндік бұлт орнатылған Мен келесілерді жасағым келеді:

    IP-дің жеке бұлтына (ipowncloud) кіру кезінде IP-дің белгілі бір диапазоны серв_1-ге бағытталады, ал егер ол басқа диапазонға жатса_1, сол ipowncloud серв-ға жіберіледі, бұл 2 сервердің орналасуы үшін екі түрлі қалада және IP диапазоны әр түрлі, бірақ олардың барлығы бірдей желіде, бұл бірінші бөлік болар еді, екіншісі түсінікті болар еді, бұл 2 серверлерді айналар немесе оларды маған кеңесті оңтайландыру үшін синхрондау. топ, өтінемін, егер маған мұны қалай жасау керектігін супер бағдарламашының режимі емес, біртіндеп түсіндіретін болсаңыз = (

  9.   Антонио Карризоза дижо

    Сәлем қосылып, брандмауэрге жетудің қажеті жоқ, егер сұралған қызмет интернет болмаса.

  10.   Джон дижо

    Осы әдісті қолдану арқылы сіз HTTPS-ті HTTP-ге қайта бағыттай аласыз ба?

  11.   мати дижо

    Сәлеметсіз бе, мүмкін кешігіп жатқан болар, бірақ мен сізден сұрағым келді, мен бір желідегі веб-серверге қосылғым келгенде кальмарды клиенттің IP-ін өзгертпеуі үшін қалай жасау керек?

  12.   32. Лафат дижо

    Сұрағаным үшін маған жаман қарамаңыз. Мұны Windows-та жасауға бола ма?

  13.   Мартин дижо

    Бұл ақпарат маған пайдалы болды. Әдеттегідей, сендерге сенуге болады, егер мен ағылшынша бірдеңе таба алмасам, мен испан тіліне жүгінемін, сол кезде мен әрқашан осы сайтқа кіремін.

  14.   Себа дижо

    Менің 4G маршрутизаторым бар, ол мен басқармайтын желінің клиенті (анық, мен клиентмін)… бұл маршрутизатор OpenVPN арқылы қашықтағы желіге шлюз болып табылады. Сонымен қатар, аталған маршрутизатор өрістегі сол ішкі желілердің бірінің серверінің 80 портына қол жеткізу үшін портты бағыттау функциясын орындайды.

    Бұл «-t nat -A POSTROUTING -j MASQUERADE» брандмауэрінің пайдаланушы ережесі ретінде маршрутизаторға енгізуім керек декларация болды.

    Көмек үшін рахмет!