Как направить определенные адреса через туннель?

Одним важным "различием" является группа опции XSI (XOPEN), которая указывает много традиционных интерфейсов Unix, которые вряд ли будут применимы к новой операционной системе, это не "Unix". Часто люди будут использовать "SUS", чтобы послать к полному стандарту включая опцию XSI и "POSIX" обратиться к основному стандарту и возможно non-Unix-centric группам опции.

Последовательные версии SUS, кажется, постепенно удерживают от использования части опции XSI, которые не были действительно полезны для записи портативных приложений, и это вместо этого просто отразило реализации прежней версии и перемещение нескольких из более - полезные части к основному стандарту.

14
25.08.2016, 03:47
6 ответов

Можно указать интерфейс, через который можно направить торговлю таблицей маршрутизации:

sudo route add <host.com> -interface <ppp0>

Где host.com является именем хоста или IP, к которому Вы хотите получить доступ через интерфейс, и ppp0 является идентификатором канала для Вашего vpn, показанного с ifconfig команда.

6
27.01.2020, 19:51
  • 1
    Отметьте: по крайней мере, на человечности -interface не опция route таким образом, вышеупомянутое предложение дает ошибку использования. Также, как это приведет к направлению через туннель ssh, как просит OP? –  arielf 26.07.2015, 00:27

Последние версии OpenSSH поддерживают сетевые устройства бочки/касания для истинной поддержки VPN. См. https://help.ubuntu.com/community/SSH_VPN для некоторой основной документации (очевидно, предназначенный для Ubuntu, но основной принцип применяется в другом месте.)

3
27.01.2020, 19:51
  • 1
    , что это требует полномочий пользователя root и на ноутбуке и на хосте шлюза. –  Riccardo Murri 12.08.2010, 14:50

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

Принятие Вас хочет соединить от Вашего ноутбука до определенного порта P1 на сервере X1 к порту P2 на сервере X2, и т.д. - я собираюсь описать, как направить трафик TCP к этим определенным server+port парам через туннель SSH.Примечание: IP-адреса X1, X2, и т.д. IP-адреса сервера, как замечено от хоста шлюза (тот Вы SSH в).

  1. Выберите некоторые неиспользованные локальные порты L1 (например, 10000), L2 (например, 10001), и т.д. Порты L1, L2..., должен быть все отличным, и их количество должно быть равно количеству отличных (Xn, Pn) server+port пары.

  2. Использовать iptables перенаправить пакеты, направленные к Xn:Pn на localhost:Ln

    iptables-t туземный-A ПРОИЗВОДЯТ-p tcp-d X1 - dport P1-j DNAT - localhost:L1 iptables-t к месту назначения туземный ВЫХОДНОЙ-p tcp-d X2-A - dport P2-j DNAT - localhost:L2 к месту назначения

  3. Теперь SSH к шлюзу, с помощью -L опция к туннельному трафику от localhost:Ln до (Xn, Pn):

    ssh gateway.server-L localhost:L1:X1:P1-L localhost:L2:X2:P2...

Пример:

# access webserver.intranet (port 80) through localhost:10080
iptables -t nat -A OUTPUT -p tcp -d webserver.intranet --dport 80 -j DNAT --to-destination localhost:10080
ssh gateway.server -L locahost:10080:webserver.intranet:80

Протесты:

  • это только работает на TCP, если это работает вообще...

  • если Вы хотите получить доступ больше чем к одному серверу, это - вероятно, меньше работы для установки VPN

  • могло бы все еще быть легче использовать SSH -D опция моделировать прокси SOCKS и туннель весь Ваш трафик через это.

1
27.01.2020, 19:51

подсети X и Y для прохождения через этого туннеля, не имея необходимость выполнять все решение VPN, которое отправило бы весь мой трафик через сервер?

То, что Вы хотите, является определением VPN.

VPN не должна

отправить весь [свой] трафик через сервер?

Если это, это не установка правильно.

Предполагается что любая машина Ваша попытка получить доступ к через Туннель или VPN, по определению, не доступный через Интернет. Так, только необходимое, не-Интернет routable адрес должен быть направлен вниз VPN.

Если у Вас есть более сложная ситуация, только как X и Y машины и ничто иное. Ваш штат IT может поместить сотрудников на подсети для Вас. Затем на Вашем клиентском компьютере, только направьте ту подсеть вниз VPN.

1
27.01.2020, 19:51

Я могу так или иначе автоматически инкапсулировать весь трафик к подсетям X и Y для прохождения через этого туннеля, не имея необходимость выполнять все решение VPN, которое отправило бы весь мой трафик через сервер?

Это немного странно на первый взгляд, потому что это - то, что VPN сделает для Вас. SSH имеет тенденцию быть делом точка-точка, при этом идея - это, Вы соединяете один порт на своей локальной машине к порту удаленной машины в другом месте; это действительно не было разработано для типа трафика, который Вы предполагаете.

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

Снова, VPN заботилась бы об этом.

Если Вы обеспокоены "тяжелым" решением получения безопасного трафика VPN (т.е. Вы не хотите обезьяне с ним, потому что это было бы слишком сложно), необходимо действительно посмотреть на OpenVPN, который сделает точно, что Вы описываете. Нет только был бы он инкапсулировать весь трафик, но это может быть сделано способом, что только трафик, предназначенный для тех подсетей, сделает поездку канала VPN. Я буду предупреждать Вас, что необходимо будет все еще отредактировать текстовый файл на локальной и удаленной машине (машинах), но довольно легко получить выполнение.

В Ваших целях, потому что Вы не хотите, чтобы сторона в середине (сервер) видела Ваш трафик, Вы настроили бы VPN для соединения непосредственно с машины на удаленную машину. Любые направленные пакеты были бы зашифрованы прежде, чем оставить Ваш ноутбук, таким образом, у Вас будет 100%-е сквозное покрытие.

0
27.01.2020, 19:51

Как говорили другие, если вы должны «инкапсулировать весь трафик в подсети», то вы, вероятно, захотите использовать VPN.

Однако, чтобы получить доступ только к нескольким службам, вы можете использовать функцию переадресации локальных портов SSH, которая действительно проста. Например, если вы введете (со своего портативного компьютера):

ssh -N -L 3333:localhost:2222 jump_box

, то подключение к localhost: 2222 будет таким же, как подключение к localhost: 2222 из jump_box ]. Вы можете использовать несколько опций -L одновременно, и вы можете подключаться к службам на других хостах, если ssd_config на jump_box позволяет это.

Вы можете использовать autossh с systemd или тому подобное, чтобы туннели работали.

0
27.01.2020, 19:51

Теги

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