Рейтинг:0

Перенаправить определенный внешний трафик на сервер локальной сети

флаг cn

Я хочу перенаправить входящий трафик со своего сервера, на котором работает iptables, на другой сервер в локальной сети. Однако я хочу, чтобы это работало только в том случае, если входящий трафик поступает с определенного внешнего IP-адреса. В противном случае трафик должен быть сброшен.

Позвольте мне привести пример, чтобы пояснить это:

  • IP внешнего клиента: 88.88.88.88
  • IP-адрес сервера (в той же локальной сети): 172.26.0.99
  • IP-адрес назначения (в той же локальной сети): 172.26.0.11

Пример перенаправления

  1. Клиент (88.88.88.88) подключается к IP-адрес СЕРВЕРА (172.26.0.99)
  2. Трафик туннелируется в IP-адрес назначения (172.26.0.11).

Отбросить пример

  1. Незнакомый клиент (66.66.66.66) пытается подключиться к IP-адрес СЕРВЕРА (172.26.0.99)
  2. Трафик УПАВШИЙ
A.B avatar
флаг cl
A.B
Является ли *сервер* шлюзом *назначения*? Если нет, должен ли *destination* видеть 88.88.88.88 в качестве источника?
blacksoul avatar
флаг cn
Это не шлюз, так как шлюз будет маршрутизатором интернет-провайдера. Пункту назначения не обязательно постоянно видеть источник 88.88.88.88, ему просто нужно добраться до него через туннель, который я описал.
djdomi avatar
флаг za
есть ли причина, по которой мы говорим о локальной сети и скрываем ips? 10/8 172.16/16 и 192.168/16 не направляются в Интернет
blacksoul avatar
флаг cn
Извините, я думал, что так легче читать. Я обновлю вопрос, используя мои настоящие IP-адреса в локальной сети.
Рейтинг:1
флаг cm

Если я правильно понял, вы хотите переслать все трафик с 88.88.88.88 на защищаемый сервер 172.26.0.11. Вот пример использования NAT:

sysctl net.ipv4.ip_forward=1

iptables -t nat -A PREROUTING -i <wan-if> -s 88.88.88.88 -j DNAT --to-destination 172.26.0.11
iptables -t nat -A POSTROUTING -s 88.88.88.88 -d 172.26.0.11 -j SNAT --to-source 172.26.0.99
iptables -A FORWARD -s 88.88.88.88 -d 172.26.0.11 -j ПРИНЯТЬ

В качестве альтернативы, переадресация для каждого порта, используйте IPVS или сокеты SystemD или iptables -j ПЕРЕНАПРАВЛЕНИЕ настроить переадресацию и брандмауэр порта. Пример с ipvs и iptables:

sysctl net.ipv4.vs.conntrack=1

ipvsadm -A -t "172.26.0.99:<порт>" -s rr
ipvsadm -a -t "172.26.0.99:<порт>" -r "172.26.0.11:<порт>" -m

iptables -A INPUT -s 88.88.88.88 -j ПРИНЯТЬ -m комментарий --comment «Разрешить 88.88.88.88»
iptables -A INPUT -j DROP -m comment --comment "Полное удаление"
Martin avatar
флаг kz
Думал написать свой ответ, но передумал. Добавьте SNAT в цепочку POSTROUTING, и ваш пример будет работать: ответ от «защищенного» сервера пойдет по другому маршруту, чем первоначальный пакет! И не забудьте включить ```ip_forwarding```...
флаг cm
Спасибо - обновил ответ.
blacksoul avatar
флаг cn
Это сработало, спасибо! Я попробовал с вашим первым примером.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.