Я пытаюсь настроить маршрутизатор OpenVPN, чтобы я мог подключить свой планшет (беспроводной) и Blu-Ray (проводной) к платной службе VPN в другой стране на Ubuntu 12.10. Я успешно сделал это, используя DD-WRT (слишком медленно) и виртуальный экземпляр PFSense (слишком ограничен).
Я новичок в Linux, но я на 90% завершен с этим проектом. Аппаратное обеспечение - это два проводных порта Ethernet, один из которых подключен к традиционному домашнему маршрутизатору, и беспроводная карта.
Пока у меня есть ..
Текущее поведение маршрутизирует весь трафик с моего компьютера с Ubuntu на сервер VPN. Другие устройства НЕ имеют никакой связи, и это проблема.
Мой вопрос / цель:
Как настроить маршрутизацию так, чтобы OpenVPN направлял трафик только от моего моста (устройства под 192.168.10.x) через VPN-туннель и НЕ трафик с фактического компьютера Ubuntu?
OpenVPN устанавливает некоторые маршруты автоматически, но, похоже, игнорирует установленный мостик.
Я прочитал много документации по iptables
и route
, но это мало что значит для меня. Несмотря на многочисленные уроки, я все еще не понимаю, как прочитать результаты команды route
. Я также подозреваю, что это может быть достигнуто с помощью route-noexec
и route-up
в файле конфигурации OpenVPN, но ничего не получилось.
Мои знания о том, где находятся файлы конфигурации и настройки, ограничены. Вышеперечисленные задачи заняли у меня не менее 30 часов работы, поэтому, пожалуйста, будьте спокойны:)
Спасибо!
Редактировать
Я ниже опубликовано решение, которое направляет трафик моста, но не мешает трафику на компьютере Ubuntu проходить через VPN.
Проще настроить сам маршрутизатор для подключения к VPN-серверу, чтобы все устройства в вашей сети проходили через него. Это можно сделать с помощью веб-интерфейса программного обеспечения маршрутизатора.
Для того чтобы устройства, подключенные к вашему ПК, имели доступ к Интернету, вы должны сделать общий доступ к Интернету с этого компьютера другим.
Я не уверен, что это идеально, но по крайней мере это работает. В идеальном мире трафик на компьютере Ubuntu не будет проходить через VPN - только те устройства, которые подключены к компьютеру Ubuntu. В любом случае, вот решение.
В файле openvpn.conf
script-security 2
up "/path/to/external/script.sh"
В файле /path/to/external/script.sh
iptables -A FORWARD -o tun0 -i br0 -s 192.168.10.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
В приведенном выше примере tun0
- это туннель, созданный OpenVPN, br0
это мост между моей локальной беспроводной и локальной сетью, а 192.168.10.0/24
это пул подсети / DHCP для моей локальной сети.
Я понятия не имею, что делает этот сценарий, но я собрал его вместе с нескольких сайтов в Internet Connection Sharing.
Я оставлю этот ответ без проверки, если кто-то захочет предоставить лучший ответ или объяснить, как предотвратить прохождение трафика на компьютере Ubuntu через VPN.