Преусмерите саобраћај са једне ИП адресе на другу ИП адресу и порт

Нешто врло често код управљања серверима је преусмеравање саобраћаја.

Претпоставимо да имамо сервер са одређеним услугама, али из било ког разлога мењамо једну од тих услуга (Не знам, на пример поп3 који је порт 110) на други сервер. Нормална и најчешћа ствар била би једноставна промена ИП адресе у ДНС запису, међутим ако неко користи ИП уместо поддомена то ће бити погођено.

Шта да радим? ... једноставно, преусмерите саобраћај који сервер прима преко тог порта на други сервер са истим портом.

сервер-чвор-лан-етернет

Како да почнемо са преусмеравањем саобраћаја?

Прва ствар је да смо сигурно омогућили прослеђивање на серверу, за ово ћемо ставити следеће:

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

Све наредбе приказане у овом упутству морају се извршавати са административним привилегијама, препоручујем да се извршавају директно са роот корисником.

Такође можете да користите ову другу команду, у случају да вам претходна не успе (десило ми се овако на ЦентОС-у):
sysctl net.ipv4.ip_forward=1
Тада ћемо поново покренути мрежу:

service networking restart

У РПМ дистрибуцијама попут ЦентОС-а и других, то би било:

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 ће видети да сви пакети или захтеви потичу са клијентове ИП адресе, у случају да желе да препливају захтеве, односно да други сервер види да захтеви стижу са ИП првом серверу (и у које примењујемо преусмеравање), било би такође ставити овај други ред:

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

Мрежни интерфејс такође можемо одредити са -и :

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

Крај!

Као што сам већ рекао, то су иптаблес, можете применити оно што је већ познато тако да сервер ради тачно оно што ви желите 😉

Поздрав!

ДедицатедСервер_СубИмаге


Садржај чланка се придржава наших принципа уређивачка етика. Да бисте пријавили грешку, кликните овде.

20 коментара, остави свој

Оставите свој коментар

Ваша емаил адреса неће бити објављена.

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   Фер дијо

    То можемо учинити и путем заштитног зида који омогућава прослеђивање портова, зар не? (применом одговарајућих правила).

    1.    КЗКГ ^ Гаара дијо

      Да, наравно, на крају заштитни зид попут Пфсенсе-а или других, користите иптабле позади.

      1.    дхунтер дијо

        Тачније, пфсенсе не користи иптаблес већ пф, имајте на уму да је унутра бсд.

        1.    КЗКГ ^ Гаара дијо

          О, тачно, лоше!

  2.   Николас дијо

    Пуно вам хвала на савету 🙂

    Имам пар недоумица:
    1 - Да ли је промена трајна? или се губи приликом поновног покретања сервера?
    2 - Имам више инстанци (рецимо А, Б и Ц) у истој подмрежи. На пример, А примењујем правило за усмеравање саобраћаја на спољну ИП адресу, а тестирање са увојцима из инстанци Б и Ц, све чини чуда. Проблем је што од инстанце А то не ради. Покушао сам да користим ваш ип и интерфејс за повратну везу и ниједан не функционише:
    $ иптаблес -т нат -А ПРЕРОУТИНГ -п тцп –порт 8080 -ј ДНАТ –то одредиште кккк: 8080
    $ иптаблес -т нат -А ПРЕРОУТИНГ -п тцп -и ло –дпорт 8080 -ј ДНАТ –то одредиште кккк: 8080

    $ цурл ип-ииии: 8080 / хелло_ворлд
    цурл: (7) Повезивање са ип-ииии портом 8080 није успело: Веза је одбијена
    $ цурл лоцалхост: 8080 / хелло_ворлд
    цурл: (7) Није успело повезивање са локалним хост хостом 8080: Веза је одбијена

    Имате ли представу у чему је проблем?

    1.    КЗКГ ^ Гаара дијо

      Да, промена се губи приликом поновног покретања, мораћете да користите иптаблес-саве & иптаблес-ресторе или нешто слично да бисте то избегли.
      Нисам баш разумео шта желите да урадите, пример А?

      1.    Николас дијо

        Имам сервер који подржава само везе са одређеног ип-а (сервера А), не могу или желим да додам више ипс-ова на белу листу (због проблема са скалабилношћу), па желим да сав саобраћај на спољном серверу пролази рекао је сервер (А).
        Из практичних разлога, имам глобалне конфигурације које дефинишу који ИП треба користити за сваку услугу, тако да је у овом случају то нешто попут „свако ко жели да користи спољну услугу мора да користи ИП А“
        Успешно сам то постигао користећи методу из овог чланка, али наилазим на проблем да приликом његове примене сервер А не може да приступи услузи помоћу сопственог ип-а (али сви остали сервери то чине).
        До сада је најбоље што сам пронашао било да додам мапирање у датотеку сервера А / етц / хостс, показујући на спољни ип, преписујући глобалну поставку.

  3.   браибаут дијо

    Врло добро, ако имам други сервер за пошту, могао бих да проследим промет са порта 143 са сервера1 на сервер2 и е-поруке ће стићи до сервера2, зар не?

    поздрави

    1.    КЗКГ ^ Гаара дијо

      У теорији да, делује овако. Свакако, на серверу2 🙂 морате имати правилно инсталиран сервер за пошту

  4.   МСКС дијо

    Објаве које волимо да читамо, хвала!

  5.   абрахам ибарра дијо

    Одличан чланак, имам пројекат у којем радим и желео сам да вам поставим питање, постоје индустријски прекидачи са функцијом НАТ (претпостављам да користе доле ИПТаблес), да преведем ИП адресу без промена на опреми, пример, имам сервер 10.10.2.1 који комуницира са рачунарима 10.10.2.Кс и преко прекидача је програмиран тако да се рачунар који има адресу 192.168.2.4 са сервера заправо види као 10.10.2.5, превео је ту ИП адресу да се види Са осталих рачунара са том адресом желим да то урадим са сервера са Убунтуом или неком другом дистрибуцијом, која би била иптаблес правила?

  6.   Кук дијо

    Врло добре информације хвала ^ _ ^

  7.   Иисус дијо

    Добар дан.
    Имам проблем при покушају преусмеравања. Објаснићу:
    Имам прокси сервер у Убунтуу, са 2 мрежне картице:
    етх0 = 192.168.1.1 је повезан са остатком локалне мреже.
    етх1 = 192.168.2.2 је повезан са рутером.
    Треба ми све што долази кроз етх0 да бих прошао кроз етх1, а такође и преко прокија (користим Скуид, чији је подразумевани порт 3128), а не могу да пронађем кључ у конфигурацији ИПТАБЛЕС.
    Не требају ми било каква ограничења, само да запис остане у евиденцији посећених веб адреса.

    Надам се да ми можете помоћи јер је то прилично гломазан задатак који ме брине већ пар дана.

    Хвала.

  8.   Габријел дијо

    Пријатељу, врло сам нов на другим серверима, немам појма, али разумем тему и брзо учим, моје питање је следеће. Имам 2 сервера серв_1 и серв_2 које сам повезао на исти интранет, на тим серверима имам постављен сопствени облак, Желео бих да урадим следеће:

    да је одређени опсег ипс, на пример рангеип_1 приликом постављања приступног ип-а сопственом облаку (иповнцлоуд) усмерен ка серв_1, а ако је то други рангеип_2, исти иповнцлоуд је усмерен на серв_2, то како би се 2 сервера налазила у два различита града и опсези ИП су различити, али сви су на истој мрежи, то би био први део, други би био јасан да се ова два сервера синхронизују тако да буду огледала или да ми то саветују како бих оптимизовао ширину бенд, молим те, ако ћеш ми објаснити како то да радим корак по корак, а не у режиму супер програмера = (

  9.   Антонио Царризоса дијо

    Здраво, извините, имам прекидач задужен за комуникацију свих уређаја који чине моју мрежу, а након овога заштитни зид и коначно излаз из Интернета, оно што се дешава је да бих желео да преусмерење буде дато у прекидач и не мора да приступи заштитном зиду уколико тражена услуга није Интернет.

  10.   Џон дијо

    Да ли бисте помоћу ове методе могли да преусмерите ХТТПС на ХТТП?

  11.   Мати дијо

    Здраво, можда је мало касно, али желео сам да вас питам, како да натерам лигње да не мењају клијентову ИП адресу када желим да се повежем са веб сервером на истој мрежи?

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

    Не понашај се лоше према мени што питаш. Може ли се то урадити у оперативном систему Виндовс?

  13.   мартин дијо

    Ове информације су ми биле корисне. Као и увек, вама може да се верује, кад не могу да нађем нешто на енглеском, обично на крају гледам на шпанском, у тим приликама скоро увек дођем на ову страницу.

  14.   Себа дијо

    Имам 4Г рутер који је клијент мреже којом не управљам (очигледно, ја сам клијент)… овај рутер је капија до те удаљене мреже преко ОпенВПН-а. Поред тога, поменути рутер испуњава функцију прослеђивања портова ка приступном порту 80 сервера једне од тих подмрежа на терену.

    Ово је била декларација коју сам морао да ставим у рутер као прилагођено правило заштитног зида «-т нат -А ПОСТРОУТИНГ -ј МАСКУЕРАДЕ»

    Хвала на помоћи!