Есть машина с халявным инетом.
Теперь хочу этот самый интернет дома пользоватьНа компе, который будет шлюзом в инет стоит 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
>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
>
>>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
>>
>>>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
>>>
>>>>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'а пропиши; Default gateway
redirect-gateway def1он САМ после установления соединения поменяет default gateway на нужный IP
только что-то я не очень понимаю всей это операции?
в чем смысл подключаться к "халявному компьютеру", везь само подключение ты делаешь через ИНТЕРНЕТ! следовательно весь трафик INET => FREE_COMP => YOU равняется INET => YOU + ты еще тратишь какую-то емкость на vpn пакеты...
>просто в конфиге openvpn'а пропиши
>
>; Default gateway
>redirect-gateway def1
>
>он САМ после установления соединения поменяет default gateway на нужный IP
>
>только что-то я не очень понимаю всей это операции?
>в чем смысл подключаться к "халявному компьютеру", везь само подключение ты делаешь через ИНТЕРНЕТ! следовательно весь трафик INET => FREE_COMP => YOU равняется INET => YOU + ты еще тратишь какую-то емкость на vpn пакеты...у меня в стране траффик внутри местных провайдеров считается по одному курсу, а траффик наружу гораздо дороже. поэтому хочу наружу вылазить через комп на котором траффик вобще не считается, а траффик между этим шлюзом и моим компом считается как местный
>у меня в стране траффик внутри местных провайдеров считается по одному курсу,
>а траффик наружу гораздо дороже. поэтому хочу наружу вылазить через комп
>на котором траффик вобще не считается, а траффик между этим шлюзом
>и моим компом считается как местныйок, а разве на "халявном компе" УЖЕ не стоит 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 на пакету уходящие в поднятую сеть
>
>>у меня в стране траффик внутри местных провайдеров считается по одному курсу,
>>а траффик наружу гораздо дороже. поэтому хочу наружу вылазить через комп
>>на котором траффик вобще не считается, а траффик между этим шлюзом
>>и моим компом считается как местный
>
>ок, а разве на "халявном компе" УЖЕ не стоит 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 на пакету уходящие в поднятую
>сеть
>для самого VPN NAT не нужен, там просто маршрутизация, а вот если
>еще кого-то кроме сервера нужно выпустить в инет, то да.ну смотри, это дело вкуса.
просто на мой взгляд, чем возиться с роутингом, проще сделать еще один NAT и все дела...тогда тебе просто на основном (халявном) сервере надо правильно настроить NAT, чтобы он понимал все внутренние сети (кроме LAN еще и VPN подсеть).
>[оверквотинг удален]
>>для самого VPN NAT не нужен, там просто маршрутизация, а вот если
>>еще кого-то кроме сервера нужно выпустить в инет, то да.
>
>ну смотри, это дело вкуса.
>просто на мой взгляд, чем возиться с роутингом, проще сделать еще один
>NAT и все дела...
>
>тогда тебе просто на основном (халявном) сервере надо правильно настроить NAT, чтобы
>он понимал все внутренние сети (кроме LAN еще и VPN подсеть).
>гы, гы . вопросы не мои. всего лишь уточнил :).
маршрутизация не такая уж и сложная штука :)
Проблему решил, помогла статья про PF, которую дал reader. Очень легко настроил через него NAT