Рейтинг:0

перенаправление портов с интерфейса wireguard на другой хост с помощью iptables

флаг ru

У меня есть два сервера, к одному из которых я могу получить доступ через wireguard. У меня есть служба, которая прослушивает порт 4559 на втором сервере. как я могу перенаправить на второй сервер через iptables.

[ноутбук] [сервер1] [сервер2]
10.10.0.1 (wireguard) -------> 10.10.0.2:4559 --------> 192.168.1.20:4559
Michael Hampton avatar
флаг cz
Зачем вам НАТ? Просто маршрут нормальный.
heydar dasoomi avatar
флаг ru
как это сделать?
Рейтинг:0
флаг cn

Чтобы перенаправить TCP-порт 4559 с вашего интерфейса WireGuard на сервере 1 на сервер 2, добавьте его в [Интерфейс] раздел конфигурации WireGuard server1:

PreUp = sysctl -w net.ipv4.ip_forward=1
PreUp = iptables -t nat -A PREROUTING -i %i -p tcp --dport 4559 -j DNAT --to-destination 192.168.1.20
PreUp = iptables -t nat -A РАЗМЕЩЕНИЕ ! -o %i -j МАСКАРАД
PostDown = iptables -t nat -D PREROUTING -i %i -p tcp --dport 4559 -j DNAT --to-destination 192.168.1.20
PostDown = iptables -t nat -D ОТПРАВКА ! -o %i -j МАСКАРАД

Заменять -p TCP с -p удп если это UDP-порт 4559, который вы пытаетесь перенаправить.

Это будет отлично работать для доступа к server2 с ноутбука, поскольку 10.10.0.2:4559; но ваш конкретный сценарий очень похож на общий шаблон доступа «точка-к-сайту» - ноутбук является удаленной «точкой», а server1 обеспечивает доступ к более крупному «сайту». С помощью этого шаблона вы обычно либо настраиваете маршрутизатор на сайте для маршрутизации вашей подсети WireGuard (например, 10.10.0.0/24) напрямую через server1 (без NAT), или вы должны настроить SNAT на server1 для маскировки пакетов от WireGuard к сайту.

При любом из этих двухточечных подходов вы получите доступ к порту 4559 на server2 с ноутбука как 192.168.1.20:4559 (точно так же, как если бы ноутбук физически находился в локальной сети сайта). Вот хороший обзор вашего Параметры маршрутизации «точка-сайт» WireGuard, со ссылками на пошаговые руководства, если вы хотите подробнее изучить эти варианты.

heydar dasoomi avatar
флаг ru
Я все еще не могу получить доступ к сервису через telnet.
флаг cn
Ах, вам, вероятно, также понадобится замаскировать пакеты, пересылаемые с сервера 1 на сервер 2 - я отредактировал свой ответ, включив в него дополнительное правило iptables «MASQUERADE».
heydar dasoomi avatar
флаг ru
все еще не работает
флаг cn
1) запустите `sudo iptables -S` на server1, чтобы получить список ваших активных правил iptables, чтобы узнать, есть ли у вас другие правила, блокирующие доступ; 2) запустите `sudo nft list ruleset` на server1, чтобы узнать, есть ли у вас правила nftables, блокирующие доступ; 3) запустите `ping 10.10.0.2` на ноутбуке, чтобы убедиться, что вы можете подключиться к server1 через WireGuard; 4) запустите `telnet 192.168.1.20 4559` на сервере 1, чтобы убедиться, что вы можете подключиться к серверу 2.

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

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