Openvpn игнорирует конфигурацию клиента

Openvpn игнорирует конфигурацию клиента

У меня есть настройка, в которой я выдаю клиентам сертификаты openvpn, чтобы перенаправлять их трафик на определенные сайты. Важно ограничить сайты, на которые перенаправляется каждый клиент.

У каждого клиента есть IP-адреса, которые должны быть маршрутизированы на сервере в client-configs/config-dir/, например так: push route 123.123.123.123 255.255.255.255.

Клиентам предоставляется файл ovpn с их ключами и конфигурациями для настройки на их терминалах. Проблема в том, что клиент потенциально может редактировать свой файл ovpn и направлять больше трафика через VPN, даже если новые маршруты не указаны в конфигурациях на стороне сервера. Это позволит им получать доступ к сайтам, к которым они не должны.

Есть ли решение, позволяющее ограничить такое поведение, или, может быть, какой-то другой инструмент я мог бы использовать?

Примечания:

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

решение1

Вы правы. Клиент может отредактировать свой локальный файл ovpn и указать ему игнорировать push-маршруты, а затем настроить его на маршрутизацию всего трафика на шлюз. Мне самому приходилось делать это пару раз для тестирования. OpenVPN не имеет способа ограничить это.

У вас есть 2 варианта:

  1. Заблокируйте права доступа к файлу OVPN клиента, чтобы он не мог его редактировать.
  2. Реализуйте правило(а) брандмауэра на сервере OpenVPN, которое запрещает исходящий трафик, за исключением определенных подсетей.

Если вы работаете в корпоративной среде, у вас, вероятно, уже есть механизмы для управления разрешениями на компьютерах пользователей. Первый вариант может быть довольно простым.

Если у вас нет контроля над разрешениями пользователей на файл, то правило брандмауэра — лучший способ. Вам уже пришлось настроить правила для пересылки и маскарадинга (пример:https://askubuntu.com/a/578550/283173). Вы можете вставить дополнительные правила iptables, чтобы разрешить только ваши определенные подсети.

Обновлять:На основе ваших исправленных заметок становится еще яснее, что ваш единственный вариант — это брандмауэр на стороне сервера. Вам придется действительно все продумать о ваших исходящих фильтрах. Что вам, вероятно, придется сделать, так это создать собственную программу, которая разумно создает правила брандмауэра. Если вы знаете, что каждый клиент направляется на определенные IP-адреса, вы можете динамически открывать маршруты в брандмауэре, когда клиент подключается. Вы можете подключиться к системе OpenVPN, когда клиенты подключаются, используя директиву learn-addressв конфигурации сервера, чтобы отправлять сведения о подключении клиента в вашу пользовательскую программу.

Связанный контент