Openvpn, Nat, роутинг

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Homer
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-05-21 8:25:11

Openvpn, Nat, роутинг

Непрочитанное сообщение Homer » 2011-05-21 8:36:19

Привет.
Хотелось бы реализовать такую схему.
Есть домашний серверок (8.2-release) 192.168.1.3 и клиент xbox 192.168.1.9
Задача такая: на сервере ставим Openvpn, и только для xbox-а роутим (наверное и натим?) этот vpn канал.
То есть серверок продолжает ходить напрямую, а vpn только для xbox-а.
Интерфейс в сервере один. Интернет через adsl (роутером) 192.168.1.1

Сразу мини-вопрос. Брал тест vpn. Конфиг дали такой:

Код: Выделить всё

client
dev tap
proto tcp
remote us-wa.anonymitynetwork.com 80
resolv-retry infinite
nobind
persist-key
persist-tun
ca anonymitynetwork.crt
auth-user-pass anonymitynetwork.auth
verb 3
reneg-sec 86400
Что бы написать, чтобы default route не устанавливался туда при соединении?
Последний раз редактировалось f_andrey 2011-05-21 8:51:28, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
skeletor
майор
Сообщения: 2507
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: Openvpn, Nat, роутинг

Непрочитанное сообщение skeletor » 2011-05-23 15:10:17

А он и не установится. В конфиге нету соответствующих строк.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Homer
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-05-21 8:25:11

Re: Openvpn, Nat, роутинг

Непрочитанное сообщение Homer » 2011-05-23 15:59:11

Я смотрел трейс. Трейс шел из Америки... Следовательно дефолт переписывался.
Проиллюстрировать не могу, так как тест закончился...

Аватара пользователя
skeletor
майор
Сообщения: 2507
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: Openvpn, Nat, роутинг

Непрочитанное сообщение skeletor » 2011-05-23 17:15:14

Ну не может он переписываться! За это отвечает параметр push "redirect-gateway", а у вас его нету. Если роут меняется, значит его переписывается кто-то другой.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Homer
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-05-21 8:25:11

Re: Openvpn, Nat, роутинг

Непрочитанное сообщение Homer » 2011-05-23 18:32:04

Попробовал соединиться. Странно, но получилось, хотя тест закончился. Трафик впрочем не идёт.

Код: Выделить всё

Mon May 23 21:24:21 2011 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Mon May 23 21:24:21 2011 [server] Peer Connection Initiated with 72.9.104.162:80
Mon May 23 21:24:23 2011 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Mon May 23 21:24:24 2011 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 72.9.104.163,route-gateway 0.0.0.197,ping 5,ping-restart 30,ifconfig 10.17.177.248 255.0.0.0'
Mon May 23 21:24:24 2011 OPTIONS IMPORT: timers and/or timeouts modified
Mon May 23 21:24:24 2011 OPTIONS IMPORT: --ifconfig/up options modified
Mon May 23 21:24:24 2011 OPTIONS IMPORT: route options modified
Mon May 23 21:24:24 2011 OPTIONS IMPORT: route-related options modified
Mon May 23 21:24:24 2011 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Mon May 23 21:24:24 2011 ROUTE default_gateway=192.168.1.1
Mon May 23 21:24:24 2011 TUN/TAP device /dev/tap0 opened
Mon May 23 21:24:24 2011 /sbin/ifconfig tap0 10.17.177.248 netmask 255.0.0.0 mtu 1500 up
Mon May 23 21:24:24 2011 /sbin/route add -net 72.9.104.162 192.168.1.1 255.255.255.255 add net 72.9.104.162: gateway 192.168.1.1
Mon May 23 21:24:24 2011 /sbin/route add -net 0.0.0.0 10.0.0.197 128.0.0.0 add net 0.0.0.0: gateway 10.0.0.197
Mon May 23 21:24:24 2011 /sbin/route add -net 128.0.0.0 10.0.0.197 128.0.0.0 add net 128.0.0.0: gateway 10.0.0.197
Mon May 23 21:24:24 2011 Initialization Sequence Completed
Ну и маршруты в это время:

Код: Выделить всё

#netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
0.0.0.0/1          10.0.0.197         UGS       233     4037   tap0 =>
default            192.168.1.1        UGS     14068 57330851   bge0
Впрочем всё это второстепенные вещи. Первую часть вопроса решить бы :)

Аватара пользователя
skeletor
майор
Сообщения: 2507
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: Openvpn, Nat, роутинг

Непрочитанное сообщение skeletor » 2011-05-24 12:24:33

Тогда смотреть в сторону конфига сервера, ибо маршруты он выдаёт. Или по вашему, откуда берутся эти маршруты?

Код: Выделить всё

Mon May 23 21:24:24 2011 /sbin/route add -net 72.9.104.162 192.168.1.1 255.255.255.255 add net 72.9.104.162: gateway 192.168.1.1
Mon May 23 21:24:24 2011 /sbin/route add -net 0.0.0.0 10.0.0.197 128.0.0.0 add net 0.0.0.0: gateway 10.0.0.197
Mon May 23 21:24:24 2011 /sbin/route add -net 128.0.0.0 10.0.0.197 128.0.0.0 add net 128.0.0.0: gateway 10.0.0.197
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Homer
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-05-21 8:25:11

Re: Openvpn, Nat, роутинг

Непрочитанное сообщение Homer » 2011-05-24 12:58:28

Сервер - не мой. Я понимаю что он выдаёт маршруты. Второй вопрос в том и был - как не принимать от него дефолт.

Аватара пользователя
skeletor
майор
Сообщения: 2507
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: Openvpn, Nat, роутинг

Непрочитанное сообщение skeletor » 2011-05-24 15:34:29

После коннекта менять дефолт на свой через up/down скрипты
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Homer
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-05-21 8:25:11

Re: Openvpn, Nat, роутинг

Непрочитанное сообщение Homer » 2011-05-28 9:42:47

Взял другой тест и поковырялся ещё.
Если дефолт смотрит на удаленный VPN хост, то со следующими конструкциями клиент xbox ходит через VPN

Код: Выделить всё

ipfw nat 1 config if tun0
ipfw add 2000 nat 1 all from 192.168.1.9 to any out via tun0
ipfw add 2010 nat 1 all from any to any in via tun0
Если дефолт на сервере не переписываем (можно без up/down скриптов, просто добавив route-nopull в конфиг openvpn)
то xbox ходит напрямую без vpn.
Как теперь можно его "направить" через tun?
пробовал
ipfw add 1999 fwd 10.100.1.1 ip from 192.168.1.9 to any
пакеты начинают уходить через tun0, но не натированные:

Код: Выделить всё

#tcpdump -i tun0 -n
12:22:41.985211 IP 192.168.1.9 > 8.8.8.8: ICMP echo request, id 512, seq 29953, length 72
ipfw add 2002 fwd 10.100.1.1 ip from 192.168.1.9 to any тоже пробовал. результат как выше.

ps. 10.100.1.1 - это шлюз, который выдаёт провайдер VPN

Homer
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-05-21 8:25:11

Re: Openvpn, Nat, роутинг

Непрочитанное сообщение Homer » 2011-05-28 14:47:56

Ну, победил.
Собрал ядро с опциями

Код: Выделить всё

options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_NAT
options LIBALIAS
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_DEFAULT_TO_ACCEPT
В конфиг openvpn-овский добавить

Код: Выделить всё

script-security 2
up openvpn-up.sh
down openvpn-down.sh
Скрипты: openvpn-up.sh

Код: Выделить всё

#!/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
sysctl net.inet.ip.fw.one_pass=0
GW=`echo $foreign_option_1 | awk '{print $3}'`
ipfw nat 1 config if tun0
ipfw add 2000 nat 1 ip from 192.168.1.9 to any
ipfw add 2010 fwd $GW ip from $4 to any
ipfw add 2020 nat 1 ip from any to any in via tun0
Тут не очень красиво. Не нашел в переменных окружения скрипта адрес шлюза. Зато есть выдается DNS, совпадающий с адресом шлюза. Его и использую.
openvpn-down.sh

Код: Выделить всё

#!/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
ipfw nat 1 delete
ipfw delete 2000 2010 2020