Доступ к веб-сайту через VPN-клиент по публичному IP-адресу VPN-сервера.

Вопрос или проблема

Я пытаюсь получить доступ к веб-серверу на хосте за брандмауэром, который не управляется мной, с помощью VPN соединения (openvpn). Я хочу использовать публичный IP-адрес VPN-сервера в качестве фронтенда для прокси-доступа к веб-серверу на удаленном хосте за брандмауэром.

http://193.105.1.1:8085 будет представлять веб-сайт, проксируя хост по адресу 192.168.1.1:8080.

Сеть

Это достаточно просто!

Для удобства давайте рассмотрим Машину A – 193.105.1.1 и Машину B – 192.168.1.1

  1. Установите сервер OpenVPN на Машине A

    Я предпочитаю Ubuntu 18.04 и сценарий установки OpenVPN от Nyr

    Просто выполните это в терминале

    wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

  2. Предполагая, что у вас уже установлен apache или nginx на Машине B, убедитесь, что он слушает на всех интерфейсах.

  3. На Машине B установите клиент OpenVPN для подключения к вашему серверу!

    Запустите этот код в терминале, чтобы установить клиент OpenVPN

    sudo apt-get install openvpn

  4. Теперь нам нужно настроить Машину A для маршрутизации трафика с публичного IP на внутренний IP-адрес OpenVPN. Машине B будет назначен адрес 10.8.0.2, если вы использовали сценарий Nyr.

Давайте настроим маршрутизацию!

  1. Включите брандмауэр ufw
  2. sudo ufw enable ssh && sudo ufw enable
  3. sudo nano /etc/default/ufw
  4. Измените “DEFAULT_INPUT_POLICY” и “DEFAULT_FORWARD_POLICY” на ACCEPT. Сохраните и закройте файл.
  5. sudo nano /etc/ufw/sysctl.conf
  6. Уберите комментарий с “net/ipv4/ip_forward=1”. Сохраните и закройте файл.
  7. sudo nano /etc/ufw/before.rules
  8. В конце строки после “COMMIT” добавьте следующее

    *nat

    -F

    :PREROUTING ACCEPT [0:0]

    -A PREROUTING -i eth0 -d 193.105.1.1 -p tcp -m multiport –dports 23:65535 -j DNAT –to-destination 10.8.0.2

    -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j MASQUERADE

    COMMIT

Измените eth0 на имя вашего сетевого интерфейса.

Сохраните и перезагрузите оба сервера!
Подключите Машину B к Машине A через клиент OpenVPN.

Ответ или решение

Доступ к веб-сайту на VPN-клиенте через публичный IP-адрес VPN-сервера

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

Шаг 1: Установка OpenVPN сервера на Машине A

Проверенные инструменты для установки:

Для настройки VPN-сервера мы будем использовать Ubuntu 18.04 и скрипт установки OpenVPN от Nyr.

  1. Скачайте и запустите скрипт:
    wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

Шаг 2: Настройка веб-сервера на Машине B

На Машине B (например, с IP 192.168.1.1) нужно убедиться, что установлен сервер (Apache или Nginx) и он слушает на всех интерфейсах. Это позволит без проблем получать доступ к хосту через прокси.

Шаг 3: Установка OpenVPN клиента на Машине B

  1. Установите OpenVPN клиент:
    sudo apt-get install openvpn

Шаг 4: Конфигурация маршрутизации на Машине A

Теперь нам необходимо настроить маршрутизацию с публичного IP-адреса до внутреннего IP-адреса OpenVPN, который был выделен Машине B (обычно это 10.8.0.2, если использовался скрипт Nyr).

Настройка маршрутизации:

  1. Включите файрвол UFW:

    sudo ufw enable
  2. Разрешите SSH:

    sudo ufw allow ssh
  3. Измените параметры по умолчанию:

    sudo nano /etc/default/ufw

    Измените DEFAULT_INPUT_POLICY и DEFAULT_FORWARD_POLICY на ACCEPT.

  4. Включите пересылку пакетов:

    sudo nano /etc/ufw/sysctl.conf

    Раскомментируйте строку net/ipv4/ip_forward=1.

  5. Настройте правила NAT:

    sudo nano /etc/ufw/before.rules

    В конец файла, после строки COMMIT, добавьте следующее:

    *nat
    -F
    :PREROUTING ACCEPT [0:0]
    -A PREROUTING -i eth0 -d 193.105.1.1 -p tcp -m multiport --dports 23:65535 -j DNAT --to-destination 10.8.0.2
    -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j MASQUERADE
    COMMIT

    Примечание: Не забудьте поменять eth0 на имя вашего сетевого интерфейса.

  6. Сохраните изменения и перезагрузите сервер:

    sudo reboot

Шаг 5: Подключение Машины B к Машине A

После перезагрузки обеих машин, подключите Машину B к Машине A с использованием OpenVPN клиента. Проверьте соединение и убедитесь, что все работает корректно.

Вывод

Теперь вы можете использовать публичный IP-адрес вашего VPN-сервера (например, http://193.105.1.1:8085) для доступа к веб-серверам на Машине B (например, с IP 192.168.1.1:8080). Следуя вышеописанным шагам, вы сможете безопасно и эффективно использовать маршрутизацию через VPN и убедиться в конфиденциальности вашего соединения.

Успехов в настройке!

Оцените материал
Добавить комментарий

Капча загружается...