Нешто врло често код управљања серверима је преусмеравање саобраћаја.
Претпоставимо да имамо сервер са одређеним услугама, али из било ког разлога мењамо једну од тих услуга (Не знам, на пример поп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
Крај!
Као што сам већ рекао, то су иптаблес, можете применити оно што је већ познато тако да сервер ради тачно оно што ви желите 😉
Поздрав!
То можемо учинити и путем заштитног зида који омогућава прослеђивање портова, зар не? (применом одговарајућих правила).
Да, наравно, на крају заштитни зид попут Пфсенсе-а или других, користите иптабле позади.
Тачније, пфсенсе не користи иптаблес већ пф, имајте на уму да је унутра бсд.
О, тачно, лоше!
Пуно вам хвала на савету 🙂
Имам пар недоумица:
1 - Да ли је промена трајна? или се губи приликом поновног покретања сервера?
2 - Имам више инстанци (рецимо А, Б и Ц) у истој подмрежи. На пример, А примењујем правило за усмеравање саобраћаја на спољну ИП адресу, а тестирање са увојцима из инстанци Б и Ц, све чини чуда. Проблем је што од инстанце А то не ради. Покушао сам да користим ваш ип и интерфејс за повратну везу и ниједан не функционише:
$ иптаблес -т нат -А ПРЕРОУТИНГ -п тцп –порт 8080 -ј ДНАТ –то одредиште кккк: 8080
$ иптаблес -т нат -А ПРЕРОУТИНГ -п тцп -и ло –дпорт 8080 -ј ДНАТ –то одредиште кккк: 8080
$ цурл ип-ииии: 8080 / хелло_ворлд
цурл: (7) Повезивање са ип-ииии портом 8080 није успело: Веза је одбијена
$ цурл лоцалхост: 8080 / хелло_ворлд
цурл: (7) Није успело повезивање са локалним хост хостом 8080: Веза је одбијена
Имате ли представу у чему је проблем?
Да, промена се губи приликом поновног покретања, мораћете да користите иптаблес-саве & иптаблес-ресторе или нешто слично да бисте то избегли.
Нисам баш разумео шта желите да урадите, пример А?
Имам сервер који подржава само везе са одређеног ип-а (сервера А), не могу или желим да додам више ипс-ова на белу листу (због проблема са скалабилношћу), па желим да сав саобраћај на спољном серверу пролази рекао је сервер (А).
Из практичних разлога, имам глобалне конфигурације које дефинишу који ИП треба користити за сваку услугу, тако да је у овом случају то нешто попут „свако ко жели да користи спољну услугу мора да користи ИП А“
Успешно сам то постигао користећи методу из овог чланка, али наилазим на проблем да приликом његове примене сервер А не може да приступи услузи помоћу сопственог ип-а (али сви остали сервери то чине).
До сада је најбоље што сам пронашао било да додам мапирање у датотеку сервера А / етц / хостс, показујући на спољни ип, преписујући глобалну поставку.
Врло добро, ако имам други сервер за пошту, могао бих да проследим промет са порта 143 са сервера1 на сервер2 и е-поруке ће стићи до сервера2, зар не?
поздрави
У теорији да, делује овако. Свакако, на серверу2 🙂 морате имати правилно инсталиран сервер за пошту
Објаве које волимо да читамо, хвала!
Одличан чланак, имам пројекат у којем радим и желео сам да вам поставим питање, постоје индустријски прекидачи са функцијом НАТ (претпостављам да користе доле ИПТаблес), да преведем ИП адресу без промена на опреми, пример, имам сервер 10.10.2.1 који комуницира са рачунарима 10.10.2.Кс и преко прекидача је програмиран тако да се рачунар који има адресу 192.168.2.4 са сервера заправо види као 10.10.2.5, превео је ту ИП адресу да се види Са осталих рачунара са том адресом желим да то урадим са сервера са Убунтуом или неком другом дистрибуцијом, која би била иптаблес правила?
Врло добре информације хвала ^ _ ^
Добар дан.
Имам проблем при покушају преусмеравања. Објаснићу:
Имам прокси сервер у Убунтуу, са 2 мрежне картице:
етх0 = 192.168.1.1 је повезан са остатком локалне мреже.
етх1 = 192.168.2.2 је повезан са рутером.
Треба ми све што долази кроз етх0 да бих прошао кроз етх1, а такође и преко прокија (користим Скуид, чији је подразумевани порт 3128), а не могу да пронађем кључ у конфигурацији ИПТАБЛЕС.
Не требају ми било каква ограничења, само да запис остане у евиденцији посећених веб адреса.
Надам се да ми можете помоћи јер је то прилично гломазан задатак који ме брине већ пар дана.
Хвала.
Пријатељу, врло сам нов на другим серверима, немам појма, али разумем тему и брзо учим, моје питање је следеће. Имам 2 сервера серв_1 и серв_2 које сам повезао на исти интранет, на тим серверима имам постављен сопствени облак, Желео бих да урадим следеће:
да је одређени опсег ипс, на пример рангеип_1 приликом постављања приступног ип-а сопственом облаку (иповнцлоуд) усмерен ка серв_1, а ако је то други рангеип_2, исти иповнцлоуд је усмерен на серв_2, то како би се 2 сервера налазила у два различита града и опсези ИП су различити, али сви су на истој мрежи, то би био први део, други би био јасан да се ова два сервера синхронизују тако да буду огледала или да ми то саветују како бих оптимизовао ширину бенд, молим те, ако ћеш ми објаснити како то да радим корак по корак, а не у режиму супер програмера = (
Здраво, извините, имам прекидач задужен за комуникацију свих уређаја који чине моју мрежу, а након овога заштитни зид и коначно излаз из Интернета, оно што се дешава је да бих желео да преусмерење буде дато у прекидач и не мора да приступи заштитном зиду уколико тражена услуга није Интернет.
Да ли бисте помоћу ове методе могли да преусмерите ХТТПС на ХТТП?
Здраво, можда је мало касно, али желео сам да вас питам, како да натерам лигње да не мењају клијентову ИП адресу када желим да се повежем са веб сервером на истој мрежи?
Не понашај се лоше према мени што питаш. Може ли се то урадити у оперативном систему Виндовс?
Ове информације су ми биле корисне. Као и увек, вама може да се верује, кад не могу да нађем нешто на енглеском, обично на крају гледам на шпанском, у тим приликама скоро увек дођем на ову страницу.
Имам 4Г рутер који је клијент мреже којом не управљам (очигледно, ја сам клијент)… овај рутер је капија до те удаљене мреже преко ОпенВПН-а. Поред тога, поменути рутер испуњава функцију прослеђивања портова ка приступном порту 80 сервера једне од тих подмрежа на терену.
Ово је била декларација коју сам морао да ставим у рутер као прилагођено правило заштитног зида «-т нат -А ПОСТРОУТИНГ -ј МАСКУЕРАДЕ»
Хвала на помоћи!