Порт вперед к клиенту VPN?

Используйте -h опция tar. Из страницы справочника:

-h, --dereference
    don't archive symlinks; archive the files they point to
21
15.11.2012, 09:04
4 ответа

Необходимо сделать три вещи на сервере VPN (Linode) для создания этой работы:

  1. Необходимо включить передачу IP:

    sysctl -w net.ipv4.ip_forward=1
    
  2. Настройте целевой NAT (DNAT) для передачи порта. Вы, вероятно, уже поняли это, потому что это - стандартный материал перенаправления портов, но для полноты:

    iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 6000 -j DNAT --to-dest y.y.y.100:6000
    
  3. Настройте источник NAT (SNAT) так, чтобы с точки зрения Вашего клиента VPN, соединение прибыло из сервера VPN:

    iptables -t nat -A POSTROUTING -d y.y.y.100 -p tcp --dport 6000 -j SNAT --to-source y.y.y.1
    

Причина Вам нужен SNAT, состоит в том, потому что иначе Ваш клиент VPN отправит свои возвращаемые пакеты прямо в хост, который инициировал соединение (z.z.z.z) через его шлюз по умолчанию (т.е. Verizon 3G), а не через VPN. Таким образом исходный IP-адрес на возвращаемых пакетах будет Вашим адресом 3G Verizon, и не x.x.x.x. Это вызывает все виды проблем, так как z.z.z.z действительно инициировал соединение с x.x.x.x.

В большинстве установок перенаправления портов SNAT не нужен, потому что хост, выполняющий перенаправление портов, является также шлюзом по умолчанию для узла назначения (например, домашний маршрутизатор).

Также обратите внимание, что, если Вы хотите к порту передачи 6000 к другому порту (говорят 7000), затем правило SNAT должно соответствовать на 7 000, не 6000.

25
27.01.2020, 19:43
  • 1
    Привет AGWA, спасибо за ответ. У меня уже был ip_forwarding на, и Ваши правила работали отлично, хотя не первоначально. Проблема была (в моем iptables noobness), что я не понял, что iptables-F не сбросил туземные записи, и iptables-L не перечислял их. После выяснения, как правильно перечислить их, я заметил несколько конфликтующих записей от попыток прежде. После сбрасывания и попытки Ваших правил, это работает отлично. Один быстрый вопрос, хотя, в Ваших правилах Вы указываете tcp. Был бы, изменяя это на "всю" работу для обоих TCP/трафиков UDP? –  Vile Brigandier 16.11.2012, 00:24
  • 2
    Пожалуйста! (Между прочим, мне нравится использовать iptables-save показать мои правила iptables - в то время как вывод не предназначается для потребления человеком, что это все еще читаемо и показывает все Ваши правила iptables.) Нет, к сожалению, Вы не можете использовать "все" там, потому что --dport только работы с протоколами, которые на самом деле имеют порты ("все" включали бы, например, ICMP, который не имеет никакого понятия портов). Вы должны будете разделить правила для TCP и UDP. –  AGWA 16.11.2012, 00:42
  • 3
    Спасибо за подсказку iptables-сохранения. Все работает как ожидалось и на TCP и на UDP.Удачи. –  Vile Brigandier 16.11.2012, 07:07
  • 4
    Просто обновление этого ответа состоит в том, что с iproute2, можно на самом деле установить клиента VPN, чтобы иметь 2 шлюза и направить трафик DNAT назад по VPN. Это выгодно, если Вы не хотите использовать SNAT и иметь весь трафик, кажется, прибывают из vpn сервера. thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System включает информацию о том, как настроить это. –  PressingOnAlways 25.12.2014, 04:37
  • 5
    Работы для меня, целый ufw отключен, даже при том, что я позволил 8080 в ufw, но как только я включаю ufw, этот передающий материал, не работают.. какая-либо идея? –  Sudhir N 25.09.2016, 14:33

Большинство серверов имеет передачу IP, отключенную в конфигурации по умолчанию. Необходимо включить его, если Вы хотите перенаправить входящие соединения через свою VPN.

Попробуйте это:

sysctl -w net.ipv4.ip_forward = 1

Я имею в виду в дополнение к iptables конфигурации.

2
27.01.2020, 19:43

То, что вы хотите достичь, (вероятно) очень возможно с pptpd или OpenVPN. и iptables, однако, вы можете найти tinc лучшим кандидатом для этого варианта использования. Я только что прочитал этот , в котором описывается, как настроить tinc именно для этого варианта использования. Это (потенциально более простая) альтернатива pptdp или OpenVPN. Тогда вам понадобятся точно такие же правила для iptables.

0
20.08.2021, 13:19

У меня тоже была эта проблема, и я пытался ее решить в течение нескольких часов .. Вот мое решение:

  • У меня было более одного VPNClient с тем же IP-адресом . Поэтому я дал каждому из них статический IP-адрес

. Определите каталог, в котором должны храниться клиентские скрипты, например / etc / openvpn / staticclients и создайте каталог

 mkdir / etc / openvpn / staticclients 
 

Добавьте этот каталог в качестве опции в ваш файл конфигурации openvpn на сервере:

 client-config-dir / etc / openvpn / staticclients 
 

Для каждого клиента вы должны создать файл. Имя файла должно соответствовать атрибуту общего имени , который был указан в сертификате клиента. Эта команда получает CN из сертификата компьютера:

В этом примере передается IP-адрес 10.1.134.110/10.1.134.109 Клиенту с общим именем TESTCLIENT , а также проталкивает дополнительный маршрут для подсети 10.1.135.0.

 cat / etc / openvpn / staticclients / TESTCLIENT 
 
ifconfig-push 10.1.134.110 10.1.134.109 
push "route 10.1.135.0 255.255.255.0 10.1.134.62" { {1}} 
  • http://www.yougetsignal.com/tools/open-ports/ и http://canyouseeme.org/ неправильно обнаруживали порты. Мне пришлось дополнительно запустить свое приложение на клиенте, чтобы веб-сайты могли видеть эти порты.

  • Нет необходимости в дополнительных правилах SNAT . Требовались только эти правила:

 sysctl -w net.ipv4.ip_forward = 1 
 
iptables -t nat -A PREROUTING -p tcp --dport 28006 -j DNAT --to 10.1 .134.110 
 
4
20.08.2021, 13:19

Теги

Похожие вопросы