Как настроить клиентский маршрутизатор OpenVPN

13

Я пытаюсь настроить маршрутизатор OpenVPN, чтобы я мог подключить свой планшет (беспроводной) и Blu-Ray (проводной) к платной услуге VPN в другой стране на Ubuntu 12.10. Я успешно сделал это, используя DD-WRT (слишком медленно) и виртуальный экземпляр PFSense (слишком ограничен).

Я новичок в Linux, но я на 90% доволен этим проектом. Аппаратное обеспечение - это 2 проводных порта Ethernet, один из которых подключен к традиционному домашнему маршрутизатору, и беспроводная карта.

Пока у меня есть ..

  1. Настройте мою беспроводную сеть, чтобы она действовала как настоящая главная точка доступа с помощью hostapd.
  2. Создан мост (я думаю) между беспроводной и локальной сетью
  3. Настройте DHCP-сервер, который успешно назначает адреса мосту - их получают как беспроводные, так и проводные.
  4. Настройте OpenVPN, чтобы он успешно создавал туннельное соединение при загрузке.

Текущее поведение направляет весь трафик с моего компьютера с Ubuntu на сервер VPN. Другие устройства НЕ имеют никакой связи, и это проблема.

Мой вопрос / цель:

Как настроить маршрутизацию так, чтобы OpenVPN направлял трафик только от моего моста (устройства под 192.168.10.x) через VPN-туннель, а НЕ от фактического компьютера с Ubuntu?

OpenVPN устанавливает некоторые маршруты автоматически, но, похоже, игнорирует установленный мостик.

Я прочитал много документов на iptablesи , routeно это делает очень мало смысла для меня. Несмотря на многочисленные уроки, я все еще не понимаю, как читать результаты routeкоманды. Я также подозреваю, что это может быть достигнуто с помощью route-noexecи route-upв файле конфигурации OpenVPN, но ничего не получилось.

Мои знания о том, где находятся файлы конфигурации и настройки, ограничены. Вышеперечисленные задачи заняли у меня не менее 30 часов работы, поэтому, пожалуйста, будьте осторожны со мной :)

Благодарность!

редактировать

Ниже я опубликовал решение, которое направляет трафик моста, но оно не мешает трафику на компьютере Ubuntu проходить через VPN.

jbrookover
источник

Ответы:

1

Я не уверен, что это идеально, но по крайней мере это работает. В идеальном мире трафик на компьютере 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.

jbrookover
источник
0

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

Чтобы устройства, подключенные к вашему компьютеру, могли выходить в Интернет, вам нужно сделать общий доступ к Интернету с этого компьютера другим.

ислам
источник
Проще, да. Но я уже сделал это, и это было слишком медленно.
jbrookover