Назад | Перейти на главную страницу

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

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

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

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

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

Ноты:

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

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

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

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

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

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