PDA

View Full Version : OpenVPN клиент


petras
12-04-2008, 13:23
Задача: в сеть на работе заходим с помощью OpenVPN. До сих пор это успешно делалось клиентом для windows, но вот захотелось эту задачу взвалить на роутер. Поставил OpenVPN на него, всё красиво работает, роутер видит сеть, всё нормально. А вот машины в моей локалке ее не видят. Осознаю, что надо править iptables, но вот как именно - компетенции не хватает. Не хочет роутер роутить для tun0. Решение где-то рядом, но увы :)

Может кто-то умный подскажет, что надо сделать?

AndreyPopov
12-04-2008, 14:44
думаю надо для начала сказать про какой роутер речь идет :confused:

и как он настроен.

petras
12-04-2008, 14:50
ASUS WL500gP в заурядном режиме роутера

в плане "как настроен" - что именно интересует? дам любую информацию :)
/tmp/local/sbin/post-firewall на данный момент девственно чист. никаких изменений в iptables руками помимо типовых настроек не внесено.

AndreyPopov
12-04-2008, 15:03
а в Web интерфейсе настрйоки какие?

маршрутизацию прописали на свою сеть?

petras
12-04-2008, 15:15
в веб-интерфейсе никаких путей не добавлено, никакие сервисы наружу не открыты (разве что один порт для торрента проброшен), всё идет прямиком через adsl-модем в режиме моста.


$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.161.9 * 255.255.255.255 UH 0 0 0 tun0
(адрес гейтвея) * 255.255.255.255 UH 0 0 0 ppp0
192.168.161.1 192.168.161.9 255.255.255.255 UGH 0 0 0 tun0
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default (адрес гейтвея) 0.0.0.0 UG 0 0 0 ppp0


192.168.161.0 - сетка, к которой, собственно и нужен доступ не только с асуса, 192.168.161.9 - ее гейтвей.
192.168.1.0 - моя локалка.
(адрес гейтвея) - это гейтвей ISP.

AndreyPopov
12-04-2008, 15:19
у вас WL-500GP в каком режиме включен?

Gateway или Router?

petras
12-04-2008, 15:25
Home Gateway

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

AndreyPopov
12-04-2008, 15:40
вам надо NAT не только на роутере, но и на OpenVPN включить - мне так кажется.

NAT роутера преобразует внешний адрес <gateway> в адреса OpenVPN сетки, и вам надо чтобы OpenVPN делал NAT для вашей внутренней сетки.

petras
12-04-2008, 15:43
вот как раз вопрос в том, как это сделать...

AndreyPopov
12-04-2008, 15:48
а в OpenVPN нет таких функций?

может тогда такой вариант - добавить интрерфейс tun0 в мосту br0 и вашей сетке поменять адресацию на 192.168.161.0 или наоборот в OpenVPN сменить на 192.168.1.0

brctl addif br0 tun0

????????????????

petras
12-04-2008, 16:12
$ brctl addif br0 tun0
br_add_interface: Invalid argument

странно :(


вообще, похоже, что всё не так просто, как кажется (http://openvpn.net/index.php/documentation/howto.html#scope)

AndreyPopov
12-04-2008, 19:30
$ brctl addif br0 tun0
br_add_interface: Invalid argument

странно :(


попробуйте
ifconfig tun0 up
brctl addif br0 tun0

это не 100%, что поможет. просто по аналогии прикручивания bluetooth и поднятия интерфейса там - я вам и советую.

и кстати, вы на сервере VPN прописали маршрутизацию своей сети, как сказано здесь:
First, you must advertise the 10.66.0.0/24 subnet to VPN clients as being accessible through the VPN. This can easily be done with the following server-side config file directive:

в этом же HOWTO сказано, что надо проследить за IP forwarding и TUN/TAP на VPN сервере - так что изучайте!

но думаю вам лучше не routed VPN настроить, а bridging VPN - в HOWTO есть рекомендации и поэтому поводу.

petras
12-04-2008, 22:18
нет, этот вариант тоже не прошел.

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

спасибо за помощь!
если удастся сделать, обязательно напишу подробно.

Rucha
13-11-2008, 19:46
Получилось?

petras
13-11-2008, 20:55
Получилось?

выяснилось, что номер не пройдет из-за тонкостей с другой стороны, но технически реализуемо (см. howto). я это дело за неактуальностью забросил.