Linux-маршрутизация и HMA

Моя настройка такова: у меня есть ssh доступ к удаленному компьютеру, запуск последней версии Ubuntu Server edition, и я должен запустить на нем программное обеспечение через «HideMyAss VPN» (поскольку IP-адрес этого устройства должен быть подделан, когда Программное обеспечение запущено). Но, конечно же, я хочу иметь доступ к машине через свой «оригинальный» IP-адрес.

Моя проблема в том, что как только я запускаю скрипт hma-start на удаленном компьютере (который в основном получает файл конфигурации со своих серверов и запускает с ним openvpn), я теряю соединение, и я больше не могу подключиться к нему.

Разве это разрешимо вообще, и если да, то как? Благодаря!

Если вы хотите, чтобы ваше конкретное программное обеспечение использовало VPN-соединение, вы можете использовать сетевые пространства имен.

В принципе, команда ip netns add vpn создаст другое пространство имен для сетевых устройств, таблиц маршрутизации, правил брандмауэра и т. Д., Так что это похоже на выполнение двух сетевых стеков.

Сетевое устройство может находиться только в одном пространстве имен, поэтому вам понадобится виртуальное устройство, действующее как мост между двумя пространствами имен.

Именно для виртуальных сетевых интерфейсов:

 ip link add veth0 type veth peer name veth1 

Все, что происходит в veth0, выйдет из veth1 и так далее. Теперь вам нужно только переместить один из виртуальных интерфейсов в другое пространство имен в сети:

 ip link set veth0 netns vpn 

Теперь у вас есть ситуация, подобная этой сетевой топологии:

  .----------. .------. [intertubes] ------| Host |--------------| vpn | eth0`----------`veth1 veth0`------` 

Вы можете применить любой способ, которым хотите поделиться интернет-соединением. Либо выполняйте маскировку (если vpn поддерживает перемещение NAT), маршрутизацию / мост (вам понадобится другой IP-адрес или серьезные конфигурации) или любой другой метод, который вам нравится.

Когда вы хотите «получить доступ» vpn , запустите ip netns exec vpn bash и вы попадете в пространство имен vpn . Вы увидите, что это пространство имен имеет veth0 сетевой интерфейс veth0 , а также unconfigured lo интерфейс, который вы можете настроить с помощью ip addr add 127.0.0.1/8 dev lo && ip link set lo up . Теперь просто настройте свой интерфейс veth0 чтобы вы могли подключиться к Интернету, а затем запустили VPN, чтобы он мог перенастроить сеть для прохождения VPN. Вы увидите, что основное пространство имен не будет использовать VPN, а пространство имен vpn будет.

Соединение ломается, потому что VPN изменит маршрут по умолчанию, поэтому все переходит в VPN. Вы можете изменить эту таблицу маршрутизации, но может быть сложно получить право, особенно если вы потеряете доступ к ssh, если все пойдет не так.

Одно простое решение – сообщить серверу, чтобы он достиг своего собственного IP-адреса через eth0, установив маршрут:

  ip route add your_ip_address via the_server's_gateway 

И надеемся, что сценарий VPN не коснется его.

Если вы также хотите разрешить другим хостам получать доступ к исходному адресу сервера, то есть, если вы также хотите, чтобы ваш сервер отвечал на его оригинальный IP-адрес и IP-адрес VPN, вам нужно будет изменить способ изменения VPN-маршрута , Или, по крайней мере, знать, как он меняет их, чтобы обойти это.

В принципе, вы хотите, это политическая маршрутизация. У вас будет две таблицы маршрутизации: один будет использовать VPN, а другой не будет использовать его.

Если скрипт VPN изменит только main таблицу, вы можете добавить другую таблицу маршрутизации, которая будет использоваться для исходного IP-адреса.

Таким образом, прежде чем запускать VPN, вы дублируете main контент в другую таблицу, например, table 2 (2 здесь произвольное число, см. / Etc / iproute2 / rt_tables для определения псевдонима имени):

 ip route add (network)/(prefixlen) dev eth0 src (address) table 2 ip route add default via (gateway) dev eth0 src (address) table 2 

Теперь добавьте правило для использования этой таблицы, если к вашему серверу обращается его исходный IP-адрес из интерфейса eth0 :

 ip rule add to (address) iif eth0 table 2 

Затем вы запускаете свой VPN-скрипт.

Теоретически вы должны запустить ip rule add перед добавлением маршрута по умолчанию во вторую таблицу, потому что в противном случае ядро ​​отклонит это правило, заявив, что он не может перейти на шлюз. Но в вашем случае это будет нормально работать, поскольку main уже может перейти на шлюз.

  • Туннелирование 4in6 (через OpenVPN?)
  • Маршрутизация определенной подсети в туннель VPN
  • Как использовать одновременные подключения vpn через Windows 7 и привязывать их к конкретной программе?
  • Windows 7 VPN останавливает веб-браузер
  • Как маршрутизировать только рабочий трафик при подключении к VPN компании
  • Клиент OpenVPN без прав администратора на Win7
  • RDP для компьютера дома, то есть VPNed для работы в сети, отключает VPN после входа в RDP
  • Может ли работодатель отслеживать использование IP-адресов на домашних компьютерах через VPN?
  • Почему подключение к моей работе VPN приводит к тому, что мой интернет не работает?
  • Многопользовательский VPN
  • Начать настройку VPN из командной строки (OSX)
  • Interesting Posts

    Фиксация буфера буфера в домашней сети

    Scatterplot с маргинальными гистограммами в ggplot2

    При выходе из системы очистите стек истории событий, не позволяя кнопке «Назад» открывать только зарегистрированные.

    У std :: vector * есть * для перемещения объектов при увеличении емкости? Или, могут ли распределители «перераспределять»?

    Как определяется размер кучи Java по умолчанию?

    Заказать в группе?

    Windows 7 – просмотр других типов файлов в виде текста в области предварительного просмотра

    Как сделать ObservableCollection streamобезопасным?

    Журнал Interent Explorer всегда пуст

    Точка вместо запятой на цифровой клавиатуре

    joda time – добавить будние дни на сегодняшний день

    Печать новых строк с помощью print () в R

    Попытка использовать DLL из Java (JNA). Невозможно загрузить исключение библиотеки

    Масштабирование GUI.TextArea с размером экрана

    Почему Windows 7 запрашивает дополнительные драйверы при установке с USB 3.0?

    Давайте будем гением компьютера.