Это может быть достигнуто за счет использования iptables
, заблокировав трафик, идущий от сетевого интерфейса OpenVPN к сетевому интерфейсу с доступом в Интернет.
openvpn-установить создает несколько iptables
файлы конфигурации, которые управляют правилами для вас.
Следующие инструкции предполагают, что:
тун0
это сетевой интерфейс OpenVPN
eth0
это сетевой интерфейс с доступом в интернет
Начальные правила очистки
Во-первых, нам нужно отключить текущие правила, загруженные openvpn-install, выполнив следующую команду:
systemctl остановить iptables-openvpn
Файлы конфигурации
Примечание: использование УРОНИТЬ
вместо ОТКЛОНЯТЬ
также действителен, он просто не возвращает ошибку VPN-клиенту. См. справочная страница iptables для получения дополнительной информации.
добавить-openvpn-rules.sh
В /etc/iptables/добавить-openvpn-rules.sh
, измените строку с:
iptables -I ВПЕРЕД 1 -i tun0 -o eth0 -j ПРИНЯТЬ
к:
iptables -I ПЕРЕДАТЬ 1 -i tun0 -o eth0 -j ОТКЛОНИТЬ
РМ-openvpn-rules.sh
В /etc/iptables/rm-openvpn-rules.sh
, измените строку с:
iptables -D ВПЕРЕД -i tun0 -o eth0 -j ПРИНЯТЬ
к:
iptables -D ВПЕРЕД -i tun0 -o eth0 -j ОТКЛОНИТЬ
Применение изменений
Выполните следующую команду, и ваши изменения должны быть сохранены и вступить в силу:
systemctl запустить iptables-openvpn
Раздельное туннелирование
Затем можно использовать отправку маршрутов к VPN-клиентам, чтобы запросить отправку интернет-трафика через их собственную сеть. Вот строки, которые я добавил в свой OpenVPN server.conf
файл для достижения этой цели (моя сеть VPN находится на 10.8.0.0/24
):
нажмите "маршрут 10.8.0.0 255.255.255.0 vpn_gateway"
нажмите "маршрут 0.0.0.0 0.0.0.0 net_gateway"