Как настроить OpenVPN таким образом, чтобы различным клиентам выдавались разные белые IP-адреса, а затем настроить перенаправление портов?

  • 6 сентября 2023 г. 7:17
Ответы на вопрос 2
Для настройки OpenVPN таким образом, чтобы различным клиентам выдавались разные белые IP-адреса, вам необходимо внести следующие изменения в файл конфигурации сервера OpenVPN:

1. В конфигурационном файле сервера (обычно располагается в `/etc/openvpn/server.conf`) добавьте следующую строку для каждого клиента, которому нужно выделить отдельный IP-адрес:

   ```
   ifconfig-push <IP-адрес> <маска_подсети>
   ```

   Замените `<IP-адрес>` и `<маска_подсети>` на соответствующие значения для каждого клиента. Например:

   ```
   ifconfig-push 10.8.0.2 255.255.255.0
   ifconfig-push 10.8.0.3 255.255.255.0
   ifconfig-push 10.8.0.4 255.255.255.0
   ```

2. Затем добавьте следующую строку в конфигурационном файле сервера, чтобы разрешить перенаправление пакетов на клиентов:

   ```
   client-config-dir /etc/openvpn/ccd
   ```

   Создайте директорию `/etc/openvpn/ccd`, если она не существует.

3. В директории `/etc/openvpn/ccd` создайте файл для каждого клиента с именем, точно соответствующим Common Name клиента (обычно имя файла с расширением `.conf`). В каждом из этих файлов установите следующую строку:

   ```
   ifconfig-push <IP-адрес> <маска_подсети>
   ```

   Замените `<IP-адрес>` и `<маска_подсети>` на те значения, которые вы указали ранее в файле конфигурации сервера для каждого клиента.

После внесения этих изменений каждому клиенту будет назначен свой отдельный белый IP-адрес при подключении через OpenVPN.

Чтобы настроить перенаправление портов для виртуальных машин на сервере дома, вы можете использовать iptables. Вам нужно добавить правила iptables для перенаправления трафика с основного IP-адреса на один из дополнительных IP-адресов виртуальных машин. Например, для перенаправления порта 80 на IP-адрес 192.168.1.2, вы можете использовать следующую команду:

```
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80
iptables -t nat -A POSTROUTING -j MASQUERADE
```

Где `192.168.1.2` - это IP-адрес вашей виртуальной машины, а `80` - это номер порта, который вы хотите перенаправить.

Не забудьте сохранить правила iptables, чтобы они загружались при запуске системы, или сохранить их в сценарий инициализации.
Хотите странного, вряд ли реализуемого. Зачем прокидывать порты, если будет выдан белый IP? Как вариант: настраиваем обычный сервер OpenVPN с серыми IP, но постоянными для клиентов. Средствами NAT решаем вопрос привязки клиента к белому IP (хоть по портам, хоть полностью IP в IP).

Сервер уже возвращал виртуалке один из дополнительных IP.

Так нельзя. У вас дополнительный белый IP на VPS'ке где-то за морем, а домашний компьютер, на котором клиент OpenVPN получает только один внутренний IP, не знает о каких-либо дополнительных IP. Просто весь трафик идет через VPS, поэтому снаружи все выглядит так, как будто ваш клиент получил белый внешний IP, но это не так.

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