Как заблокировать доступ в Интернет для клиентов OpenVPN и ограничить трафик в сети VPN? (устанавливается с помощью openvpn-install)

Я настраиваю сервер OpenVPN, используя openvpn-установить. Я хотел бы, чтобы клиенты могли подключаться к VPN-серверу, но любой трафик, направленный в Интернет, а не в локальную сеть VPN, должен быть заблокирован.

Я видел много решений, предлагающих добавить push команды server.conf запрашивать, чтобы клиенты использовали свою собственную сеть для интернет-трафика по умолчанию, однако эти запросы могут игнорироваться клиентами — это не то, чего я хочу.

Я только хочу, чтобы VPN-клиенты могли получить доступ к локальной сети VPN (в 10.8.0.0/24), весь другой трафик должен отклоняться VPN-сервером, и клиенты должны использовать для этого свои собственные сети.

Как я могу принудительно заблокировать интернет-трафик от VPN-клиентов?

linux ubuntu брандмауэр iptables openvpn

1 ответ
1

Это может быть достигнуто за счет использования iptablesзаблокировав трафик, идущий от сетевого интерфейса OpenVPN к сетевому интерфейсу с доступом в Интернет.

openvpn-установить создает несколько iptables файлы конфигурации, которые управляют правилами для вас.

Следующие инструкции предполагают, что:

  • tun0 это сетевой интерфейс OpenVPN
  • eth0 это сетевой интерфейс с доступом в интернет

Начальные правила очистки

Во-первых, нам нужно отключить текущие правила, загруженные openvpn-install, выполнив следующую команду:

systemctl stop iptables-openvpn

Файлы конфигурации

Примечание: использование DROP вместо REJECT также действителен, он просто не возвращает ошибку VPN-клиенту. См. справочная страница iptables для получения дополнительной информации.

добавить-openvpn-rules.sh

В /etc/iptables/add-openvpn-rules.shизмените строку с:

iptables -I FORWARD 1 -i tun0 -o eth0 -j ACCEPT

к:

iptables -I FORWARD 1 -i tun0 -o eth0 -j REJECT

РМ-openvpn-rules.sh

В /etc/iptables/rm-openvpn-rules.shизмените строку с:

iptables -D FORWARD -i tun0 -o eth0 -j ACCEPT

к:

iptables -D FORWARD -i tun0 -o eth0 -j REJECT

Применение изменений

Выполните следующую команду, и ваши изменения должны быть сохранены и вступить в силу:

systemctl start iptables-openvpn

Раздельное туннелирование

Затем можно использовать отправку маршрутов для VPN-клиентов, чтобы запросить отправку интернет-трафика через их собственную сеть. Вот строки, которые я добавил в свой OpenVPN server.conf файл для достижения этой цели (моя сеть VPN находится на 10.8.0.0/24):

push "route 10.8.0.0 255.255.255.0 vpn_gateway"
push "route 0.0.0.0 0.0.0.0 net_gateway"

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *