URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 4490
[ Назад ]

Исходное сообщение
"Как 'питать' интернет с другого компьютера через openvpn"

Отправлено ekzi , 30-Янв-10 17:56 
Есть машина с халявным инетом.
Теперь хочу этот самый интернет дома пользовать

На компе, который будет шлюзом в инет стоит freebsd.
Поставил из пакетов openvpn.
Настроил запустил на шлюзе как server, у себя как client.
Запускается, подключается, с этим проблем нет.

Нужно чтобы я мог ходить в зловещий интернет через машину с халявным инетом.
Сделал чтобы при подключении к серверу openvpn, default gateway на клиенте выставлялся в ип сервера openvpn:

push "redirect-gateway def1 bypass-dhcp"

но вычитал, что теперь нужно натить все пакеты с айпи адреса сервера openvpn на реальный адрес и обратно
на оффсайте openvpn.net дано описание как это сделать на Линухе:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

на хабре советуют так:
iptables -v -t nat -A POSTROUTING -o EXTERNAL_IF -s VPN_NET/24 -j SNAT --to-source SERVER_IP
EXTERNAL_IF, VPN_NET и SERVER_IP заменить на внешний интерфейс, сеть VPN и внешний (!) IP сервера соответственно.

Как сделать переадресацию во freebsd?

vpn/network - 10.8.0.0/24
интерфейс смотрящий в инет - r10
openvpn интерфейс - tap0
айпи r10 - 123.456.789.123


Содержание

Сообщения в этом обсуждении
"Как 'питать' интернет с другого компьютера через openvpn"
Отправлено Aquarius , 30-Янв-10 19:11 

>iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
>iptables -v -t nat -A POSTROUTING -o EXTERNAL_IF -s VPN_NET/24 -j SNAT

приведены команды для Linux iptables, а никак не для FreeBSD


"Как 'питать' интернет с другого компьютера через openvpn"
Отправлено ekzi , 30-Янв-10 20:12 
>
>>iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
>>iptables -v -t nat -A POSTROUTING -o EXTERNAL_IF -s VPN_NET/24 -j SNAT
>
>приведены команды для Linux iptables, а никак не для FreeBSD

поэтому и спрашиваю как сделать переадресацию именно для FreeBSD


"Как 'питать' интернет с другого компьютера через openvpn"
Отправлено reader , 31-Янв-10 00:33 
>>
>>>iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
>>>iptables -v -t nat -A POSTROUTING -o EXTERNAL_IF -s VPN_NET/24 -j SNAT
>>
>>приведены команды для Linux iptables, а никак не для FreeBSD
>
>поэтому и спрашиваю как сделать переадресацию именно для FreeBSD

http://www.opennet.me/base/net/pf_faq.txt.html


"Как 'питать' интернет с другого компьютера через openvpn"
Отправлено ekzi , 31-Янв-10 18:30 
>>>
>>>>iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
>>>>iptables -v -t nat -A POSTROUTING -o EXTERNAL_IF -s VPN_NET/24 -j SNAT
>>>
>>>приведены команды для Linux iptables, а никак не для FreeBSD
>>
>>поэтому и спрашиваю как сделать переадресацию именно для FreeBSD
>
>http://www.opennet.me/base/net/pf_faq.txt.html

Спасибо, очень хорошая статья
Разобрался с NAT, все работает как надо :)


"Как 'питать' интернет с другого компьютера через openvpn"
Отправлено vagif , 31-Янв-10 09:58 
просто в конфиге openvpn'а пропиши

; Default gateway
redirect-gateway def1

он САМ после установления соединения поменяет default gateway на нужный IP

только что-то я не очень понимаю всей это операции?
в чем смысл подключаться к "халявному компьютеру", везь само подключение ты делаешь через ИНТЕРНЕТ! следовательно весь трафик INET => FREE_COMP => YOU  равняется  INET => YOU + ты еще тратишь какую-то емкость на vpn пакеты...


"Как 'питать' интернет с другого компьютера через openvpn"
Отправлено ekzi , 31-Янв-10 13:18 
>просто в конфиге openvpn'а пропиши
>
>; Default gateway
>redirect-gateway def1
>
>он САМ после установления соединения поменяет default gateway на нужный IP
>
>только что-то я не очень понимаю всей это операции?
>в чем смысл подключаться к "халявному компьютеру", везь само подключение ты делаешь через ИНТЕРНЕТ! следовательно весь трафик INET => FREE_COMP => YOU  равняется  INET => YOU + ты еще тратишь какую-то емкость на vpn пакеты...

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


"Как 'питать' интернет с другого компьютера через openvpn"
Отправлено vagif , 31-Янв-10 13:30 

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

ок, а разве на "халявном компе" УЖЕ не стоит NAT? ведь ты когда подключаешься через openvpn, ты просто попадаешь во внутреннюю сеть того компа. и если там все сделано по уму, то по идее автоматически NAT должен будет и твои пакеты отлавливать тоже.

кстати, тебе надо будет настроить NAT только на своем сервере, чтобы пакеты выходя в openvpn канал конвертились.

посмотри тут http://wiki.zeynalov.com/vagif:docs:freebsd:pf это мой живой конфиг.
pf.conf - определяет глобальные настройки сети
pf-anchor.sh - вызывается из openvpn -> client.up
    /etc/pf/pf-anchor.sh up anchor_name $1 $4 $5

получается, что поднимая линк openvpn
1. устанавливает default gateway на нужную сеть
2. запускает pf скрипт, который поднимает NAT на пакету уходящие в поднятую сеть


"Как 'питать' интернет с другого компьютера через openvpn"
Отправлено reader , 31-Янв-10 14:25 
>
>>у меня в стране траффик внутри местных провайдеров считается по одному курсу,
>>а траффик наружу гораздо дороже. поэтому хочу наружу вылазить через комп
>>на котором траффик вобще не считается, а траффик между этим шлюзом
>>и моим компом считается как местный
>
>ок, а разве на "халявном компе" УЖЕ не стоит NAT? ведь ты
>когда подключаешься через openvpn, ты просто попадаешь во внутреннюю сеть того
>компа. и если там все сделано по уму, то по идее
>автоматически NAT должен будет и твои пакеты отлавливать тоже.

для самого VPN NAT не нужен, там просто маршрутизация, а вот если еще кого-то кроме сервера нужно выпустить в инет, то да.
>[оверквотинг удален]
>
>посмотри тут http://wiki.zeynalov.com/vagif:docs:freebsd:pf это мой живой конфиг.
>pf.conf - определяет глобальные настройки сети
>pf-anchor.sh - вызывается из openvpn -> client.up
>    /etc/pf/pf-anchor.sh up anchor_name $1 $4 $5
>
>получается, что поднимая линк openvpn
>1. устанавливает default gateway на нужную сеть
>2. запускает pf скрипт, который поднимает NAT на пакету уходящие в поднятую
>сеть


"Как 'питать' интернет с другого компьютера через openvpn"
Отправлено vagif , 31-Янв-10 16:29 

>для самого VPN NAT не нужен, там просто маршрутизация, а вот если
>еще кого-то кроме сервера нужно выпустить в инет, то да.

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

тогда тебе просто на основном (халявном) сервере надо правильно настроить NAT, чтобы он понимал все внутренние сети (кроме LAN еще и VPN подсеть).


"Как 'питать' интернет с другого компьютера через openvpn"
Отправлено reader , 31-Янв-10 17:56 
>[оверквотинг удален]
>>для самого VPN NAT не нужен, там просто маршрутизация, а вот если
>>еще кого-то кроме сервера нужно выпустить в инет, то да.
>
>ну смотри, это дело вкуса.
>просто на мой взгляд, чем возиться с роутингом, проще сделать еще один
>NAT и все дела...
>
>тогда тебе просто на основном (халявном) сервере надо правильно настроить NAT, чтобы
>он понимал все внутренние сети (кроме LAN еще и VPN подсеть).
>

гы, гы . вопросы не мои. всего лишь уточнил :).

маршрутизация не такая уж и сложная штука :)


"Как 'питать' интернет с другого компьютера через openvpn"
Отправлено ekzi , 31-Янв-10 18:32 
Проблему решил, помогла статья про PF, которую дал reader. Очень легко настроил через него NAT