Как получить доступ к хосту за сервером через VPN (IP Forwarding)
У меня есть сервер Ubuntu (172.10.200.11) и много удаленных терминальных устройств с сим-картами и каждый отдельный оператор сим-карты, использующий разные пулы IP, такие как 10.57.0.0/16 для OP-A, 10.112.0.0/16 для OP-B и т. Д.
На самом деле на сервере я использую таблицу маршрутизации, чтобы иметь возможность доступа к удаленным терминалам в разных пулах IP. Без этой таблицы маршрутизации у меня нет доступа к пулам IP. Например: 10.57.0.0/16 с использованием gw 172.10.238.1 10.112.0.0/16 с использованием gw 172.10.238.2 10.155.0.0/16 с использованием gw 172.10.238.3
А также...
На самом деле я использую "Cisco VPN Client" для доступа к IP-адресу моего сервера за пределами центра обработки данных. Для этого я подключаюсь к VPN-шлюзу с помощью приложения "Cisco VPN CLient", а затем пытаюсь пропинговать IP-адрес моего сервера. 172.10.200.11
После того как VPN-соединение установлено с VPN-шлюзом, я могу успешно выполнять следующие действия на своем ноутбуке:
- Установить подключение к удаленному рабочему столу IP-адрес сервера:172.10.238.3
- Установите SSH-соединение с моего ноутбука на IP-адрес сервера:172.10.238.3
- ICMP пинг до IP сервера:172.10.238.3
- Трассировка на IP-адрес сервера:172.10.238.3
Для проверки состояния подключения (вверх или вниз) удаленных терминальных устройств я подключаюсь к серверу через SSH или удаленный рабочий стол, а затем пытаюсь пропинговать IP-адрес удаленного терминального устройства.
Пока все в порядке, но этот способ потребляет слишком большую пропускную способность, особенно в случае подключения через подключение к удаленному рабочему столу.
- Подключитесь к VPN-шлюзу с помощью "Cisco VPN Client" с ноутбука
- Установите подключение удаленного рабочего стола к IP-адресу сервера
- Откройте браузер на сервере при подключении к удаленному рабочему столу.
- Введите IP-адрес удаленного терминала (RTU) (10.155.1.22) в браузере и делайте что хотите!
- Успешно установите пинг ICMP на IP-адрес RTU (10.155.1.22) на экране терминала на удаленном рабочем столе или в сеансе подключения SSH.
Но я хочу сделать следующее:
- Подключитесь к VPN-шлюзу с помощью Cisco VPN Client с ноутбука
- Откройте браузер в ноутбуке
- Введите IP-адрес удаленного терминала (10.155.1.22) в браузере и делайте что хотите!
- Успешно установить пинг ICMP на IP-адрес RTU (10.155.1.22) на экране оболочки / терминала на моем ноутбуке (НЕ в удаленном рабочем столе)
Ограничения:
- На самом деле я не имею права изменять настройки VPN-шлюза. Но я могу только изменить настройки сервера, чтобы добиться этого.
Есть какой-либо способ сделать это? Я знаю, что это существует, но мой разум сбит с толку. Сначала я установил Hamachi, но таким образом я получил доступ к серверу без необходимости подключения к VPN. Но все же я не могу напрямую пинговать IP-адреса RTU с моего ноутбука. Это не решило мою проблему.
Технически я хочу использовать свой сервер в качестве "маршрутизатора" для маршрутизации / пересылки входящих запросов от моего ноутбука (пакеты ICMP и IP) к IP-адресу RTU.
Я исследовал, как включить IP MASQUERADE или IP FORWARDING в Ubuntu 16.04. Если я прав - технически - ему нужны 2 NIC или 2 разных IP на машине. Но у меня есть только один IP (Bonded) на моем сервере.
Мне нужно напрямую подключаться к IP-адресам RTU с моего ноутбука, и мой сервер должен выступать в качестве маршрутизатора / шлюза и т. Д. Для достижения этой цели.
Кто-нибудь может объяснить мне шаг за шагом, как это сделать на Ubuntu?
2 ответа
Вам нужно добавить маршруты для 10.57.0.0/16
и т.д. сети к вашему VPN-клиенту, так что они маршрутизируются через IP-адрес сервера. Вы должны иметь возможность добавлять маршруты в настройках вашего VPN-сервера. Я не знаю подробностей о том, как они будут добавлены в сервер Cisco VPN.
Во-первых, отвечая на ваши вопросы: вам нужно добавить маршрут на свой ноутбук, указав, что трафик к вашим сетям OP должен отправляться на VPN-сервер, который будет направлять его на соответствующий шлюз.
Когда ваш ноутбук устанавливает VPN-соединение, необходимо добавить следующий маршрут:
- route add 10.57.0.0 mask 255.255.0.0 gw <YOUR_VPN>
- route add 10.112.0.0 mask 255.255.0.0 gw <YOUR_VPN>
И то же самое для любых других шлюзов посередине.
Таким же образом, каждый промежуточный шлюз должен иметь маршрут, указывающий диапазон IP-адресов VPN на VPN-сервер. Короче говоря, каждый шлюз и узел вашей сети должен иметь таблицу маршрутизации, способную направлять внутренние пакеты на соответствующий узел или шлюз.
Кроме того, если вы хотите только отслеживать время безотказной работы узлов, я предлагаю вам использовать Icinga2, чтобы вы могли иметь сервер, отправляющий проверки работоспособности каждому узлу и получающий уведомление в случае, если кто-то проявит безответственность.