Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение

Перенаправление трафика, адресованного одному ip, на другой ip : Операционные системы и программное обеспечение

19.04.2024 15:29


19.06.2022 12:41
Stels
 
Есть задача подмены внешнего ip на другой
Т.е. клиент внутренней сети (сидящий за NAT'ом) долбится на какой-то внешний ip.
А роутер должен подменить этот ip на другой.
Для клиента это должно быть прозрачно. Он об этом не должен догадываться.

Есть роутер teltonika, в котором нужно использовать iptables

В микротике это можно сделать вот такой настройкой. Это у меня заработало.
/ip firewall nat add action=netmap chain=dstnat protocol=tcp dst-address=[внешний ip цель] to-addresses=[внешний ip на который подменяем]

А как с помощью iptables такое можно организовать?

Может кто сможет накидать примерно?
Сам не работал с настройкой iptables (
19.06.2022 21:44
vdm
 
В принципе задача похожа на проброс порта внутрь локалки https://olegon.ru/showpost.php?p=276461&postcount=8
Отличия:
- dst это исходный ip внешнего сервера
- т.к. nat уже есть, то строка с POSTROUTING не нужна
- на роутере нужно найти куда вписать команду, чтобы она при перезапуске отрабатывала.
19.06.2022 22:17
Stels
 
Цитата:
vdm В принципе задача похожа на проброс порта внутрь локалки https://olegon.ru/showpost.php?p=276461&postcount=8
Отличия:
- dst это исходный ip внешнего сервера
- т.к. nat уже есть, то строка с POSTROUTING не нужна
- на роутере нужно найти куда вписать команду, чтобы она при перезапуске отрабатывала.
Спасибо.
Как доберусь до железяки - буду пробовать
23.06.2022 11:55
Stels
 
Так'c ... добрался до аппарата ...

Код:
iptables -t nat -A PREROUTING -p tcp --dst x.x.x.x --dport 123 -j DNAT --to-destination y.y.y.y:555
вот это сработало ..

Теперь задача усложняется )) :

1) Надо подменять не один адрес, а примерно 20шт ...Все подменять на один конкретный внешний адрес:порт

в микротике это решается созданием списка address list и указанием
Код:
dst-address-list=Metka
как тут можно выкрутиться?

2) Надо заворачивать только от конкретных локальных клиентов ...
причём могут быть и подсети и единичные адреса ..- произвольный список...

в микротике это опять же на раз решается созданием списка address list и указанием
Код:
src-address-list=Metka2
?

Пока читаю ...но не нахожу аналога (
23.06.2022 12:08
OlegON
 
Наборы решаются через ipset, конкретно по твоему примеру не соберу, не на чем попробовать.
Код:
ipset -N Metka2 nethash
ipset -A Metka2 77.37.184.187/24
iptables -A INPUT -m set --match-set Metka2 src -j DROP
23.06.2022 12:31
Stels
 
читаю
интересненько..
Цитата:
Использование Ipset

Создание списка(ов)
ipset -N badips iphash
badips – имя списка
iphash – тип списка(только для единичных адресов)
nethash – тип списка (только для подсетей адресов)
(man ipset для подробностей)

Добавление адресов в этот список
ipset -A badips 99.88.77.66

Создание правила в iptables для использования списка:
iptables -A INPUT -m set —set badips src -j DROP
-m set указывает на использование модуля ipset, —set badips указывает список IP-адресов, src указывает на то, что сверять нужно только IP-источника. Таким образом, будут отбрасываться все пакеты с IP-адресов, указанных в списке badips.

Аналогично,если необходимо, и для подсетей адресов
ipset -N badnets nethash
ipset -A badnets 192.168.10.0/24
iptables -A INPUT -m set —set badnets src -j DROP
23.06.2022 12:35
OlegON
 
Ага, когда у меня еще форум торчал прямо машиной в Интернет, я сначала пытался банить просто правилами iptables.
Собственно, тебе ничего не мешает нашпингалетить 20 правил iptables для своих переадресаций, это еще вполне себе в пределах разумного.
То есть, если сработало, то просто умножаешь правила
Код:
iptables -t nat -A PREROUTING -p tcp --dst 1.1.1.1 --dport 123 -j DNAT --to-destination y.y.y.y:555
iptables -t nat -A PREROUTING -p tcp --dst 2.2.2.2 --dport 123 -j DNAT --to-destination y.y.y.y:555
iptables -t nat -A PREROUTING -p tcp --dst 3.3.3.3 --dport 123 -j DNAT --to-destination y.y.y.y:555
У меня же в бан попадали сотнями, а сотни правил уже чувствовались... ipset работает сильно быстрее на больших объемах адресов, если их скормить одному правилу. и манипулировать этими списками (их содержимым) гораздо проще, чем в толпе правил что-то искать.
23.06.2022 12:44
Stels
 
Понял ... спасибо за ликбез ..
Буду подтягивать уровень знаний
23.06.2022 13:27
Stels
 
Цитата:
Stels iphash – тип списка(только для единичных адресов)
nethash – тип списка (только для подсетей адресов)
а ещё вопрос:
в один список что ли не запихать и единичный адрес и подсеть?
23.06.2022 13:59
OlegON
 
Проще попробовать. Думаю, что в nethash можно запихнуть и x.x.x.x/32, вопрос только в целесообразности сего действия...
Я в свое время делал два правила, в одном одиночные адреса были, в другом - подсети.
Часовой пояс GMT +3, время: 15:29.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.