Все описанное (ну кроме squid-а там и деталей каких-то) я делал в течение практ. 2-х лет, пока был клиентом Укртелекома и его интернета по ADSL "ОГО" (к слову сказать ушел только из-за соотношения скорость/цена, работал он у меня на "отлично")
Но заметив "халяву" в виде интернета от билайна я тут же присел ее попробовать (благо подключение бесплатное, отключится тоже ничто не мешает, оборудования никакого не надо), а распробовав перешел полностью (держать "резервного" провайдера для меня и слишком дорого, и смысла нет)
Правда с настройкой на убунту (когда монтажники шнурок завели и все там включили, они попробовали на Win7, показали, что все работает; но меня то интересовало, как все приладить к уже настроенному шлюзу) пришлось повозится достаточно долго.. Хотя больше потому, что а) мало понимал (и понимаю) все эти впн-ы и вообще суть настройки сети, б) потому что мануалы, тоннами находимые в инете, или тупо предлагают "дважды щелкнуть по иконке сети около часов", или милиард раз перекопи-пасченные и неработающие в принципе.. Как бы там ни было - на всякий случай рассказ, как настроить наш шлюз, если к провайдеру надо соединятся по впн; проверить с нуля на связке двух виртуальных машин не получится, так что все настройки будут с моего домашнего шлюза. Не знаю, как там у всех, но "Домашний интернет" от билайна предполагает, что в квартиру затягивается витая пара, которая где-то там на чердаке идет в домовой маршрутизатор (или как эти фигни называются), дома между собой соединяются оптоволокном; есть понятие "внутрисеть" и собственно "интернет", внутри сети 100 мбит/сек скорость, в интернет - сколько купил. Внутри сети есть несколько неплохих ресурсов, в т.ч. неск. торент-трекеров, так что кино можно вытянуть за пару минут Внутри сети автоматически выдается адрес из сетки 10.*.*.* (не помню там уж точно), чтобы выйти в интернет, надо установить VPN соединение, при этом будет динамически выдан реальный ip-адрес (который к примеру можно использовать на dyndns). Поднятое соединение с точки зрения операционки выглядит как и 2 других (eth0, eth1) и обзывается ppp0 - так что чтобы все заработало, надо сообщить правилам shorewall-а о нем. После такого длинного вступления собственно надо сделать это и все остальное (все в консольке - гуя у меня нету; это я к тому, что пока гуглил много читал о каких-то проблемах Network Manager-а с впн-ом - ничего про это не знаю)
Для начала надо установить пакет для поддержки vpn:
1: sudo apt-get install pptp-linux
Потом открываем файл с настройками pptp:
1: sudo pico /etc/ppp/options.pptp
который у меня выглядит так:
1: lock
2: noauth
3: refuse-eap
4: nobsdcomp
5: nodeflate
6: persist
7: maxfail 0
8: defaultroute
9: replacedefaultroute
Точно могу сказать только о смысле двух последних опций: после установки соединения таблица маршрутов будет изменена так, чтобы все ходило через поднятый ppp0 интерфейс (и возвращалось "как было", если vpn-соединение будет разорвано): у меня вывод route показывает следующее:
1: name@ubuntu-pc:~$ route
2: Kernel IP routing table
3: Destination Gateway Genmask Flags Metric Ref Use Iface
4: 94.27.126.9 10.43.70.1 255.255.255.255 UGH 0 0 0 eth0
5: 10.43.70.0 * 255.255.255.0 U 0 0 0 eth0
6: 192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
7: link-local * 255.255.0.0 U 1000 0 0 eth1
8: 10.0.0.0 10.43.70.1 255.0.0.0 UG 0 0 0 eth0
9: default * 0.0.0.0 U 0 0 0 ppp0
Дальше надо открыть по очереди файлы /etc/ppp/chap-secrets и /etc/ppp/pap-secrets и вставить туда строкуbash format:
1: "account@internet.beeline.ua" PPTP "password_here" *
(заменив естественно account@beeline.. на свой логин и password_here на свой пароль Дальше надо создать файл (скажем с именем beeline) с настройками конкретного подключения:
1: sudo pico /etc/ppp/peers/beeline
со следующим содержимым:
1:
2: pty "pptp vpn2.beeline.ua --nolaunchpppd --nobuffer --loglevel 0"
3: connect /bin/true
4: name account_here
5: remotename PPTP
6: file /etc/ppp/options.beeline
7: ipparam beeline
8: persist
9: maxfail 0
10: lcp-echo-interval 30
11: lcp-echo-failure 4
12: mtu 1460
13: vpn2.beeline.ua - это
сервер для проверки юзера, его должен сказать провайдер; account_here понятно что меняется, из файла /etc/ppp/options.beeline беруться настройки, которые отличаются от глобальных настроек в /etc/ppp/options.pptp; хотя у меня они не отличаются, так что и строчку file /etc/... можно выкинуть наверное, но если работает - пусть работает.. в общем в файле /etc/ppp/options.beeline у меня написано:
1: nodeflate
2: nobsdcomp
3: noauth
Теперь по идее уже можно попробовать соединится:
1: sudo pon beeline
чтобы разорвать соединение, достаточно набрать
1: sudo poff beeline
, в /var/log/messages можно посмотреть вывод об ошибках, если все пойдет как-то не так Чтобы автоматизировать поднятие vpn при старте системы, достаточно отредактировать файлик /etc/network/interfaces, отредактировав его там, где описывается сетевая карта, подключенная к провайдеру, вот так:
1: # my Beeline interface
2: iface eth0 inet dhcp
3:
4: post-up pon beeline
5: pre-down poff beeline
Все, при загрузке системы после поднятия сетевой карты автоматически будет "дозвон" до провайдера; мои настройки (не знаю, какие именно правда ;) ) обеспечивают перезвон при ошибке или обрыве (однажды пол-дня не было инета - в логе увидел, что комп все эти пол-дня пытался соединится, у провайдера в тот день были какие-то траблы) Итак, vpn поднялся, но чтобы все в локальной сети работало "как раньше", надо поправить несколько правил: в файл /etc/shorewall/interfaces добавим запись о том, что у нас есть еще один сетевой интерфейс и что он относится к внешней сети:
1: net ppp+ detect dhcp,routeback
Я написал ppp+, а не ppp0, потому что заметил, что после нескольких реконектов (в основном когда был глупый и делал ерунду, но все же) имя интерфейса могло становится ppp1 и т.д. - т.е. маска "+" означает любую цифру. В /etc/shorewall/masq также надо добавить правило - осуществлять перенаправление между ppp и внутренней сетью; интуитивно понятно, что надо добавить всего лишь
1: ppp+ eth1
(конечно если внутренняя сеть - это eth1) В policy ничего не поменялось, не поменялись зоны в zones, rules описывает отношения между зонами, так что там тоже все по старому.. единственный новый файл (и я сейчас не уверен, что он нужен ;) но трогать не хочу) - /etc/shorewall/tunnels:
1: pptpclient net
И это все, все должно работать.. по крайней мере у меня - работает :)
А что за каша с кодом?
ОтветитьУдалитьВ половине случаев вставлен совсем не тот код, который по идее должен быть.
Начиная с:
Дальше надо создать файл (скажем с именем beeline)
и до конца
это был "упс.."
ОтветитьУдалитьгде-то что-то почему-то сглюкнуло.. проверил/поправил
Наверно я подниму старую тему но...
ОтветитьУдалитьНасколько я понял, нат в данном конкретном случае подымаеться ТОЛЬКО на ppp+, а ведь тогда доступ к билайновской сетке из локалки уже не будет...
как решили эту проблему???
как-бы про такую проблему я слышал (и сталкивался) только когда vpn соединение понималось на "железном" роутере (моему даже дописывание маршрута не помогло)
ОтветитьУдалитьа так по вот этим своим же мануалам настраивал сеть дома, и внешняя и внутренняя сеть работают: например много файлов с torrents.ru качаю/раздаю на скорости 7-8 мегабайт/сек - когда есть сиды в локальной сети, потому что в сети есть ретрекер
вот к примеру вывод route прямо сейчас - с поднятым vpn:
ОтветитьУдалитьhamster@chest:~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.20 10.43.70.1 255.255.255.255 UGH 0 0 0 eth0
94.27.126.13 * 255.255.255.255 UH 0 0 0 ppp0
10.0.0.26 10.43.70.1 255.255.255.255 UGH 0 0 0 eth0
10.43.70.0 * 255.255.255.0 U 0 0 0 eth0
localnet * 255.255.255.0 U 0 0 0 eth1
10.0.0.0 10.43.70.1 255.0.0.0 UG 0 0 0 eth0
default * 0.0.0.0 U 0 0 0 ppp0
hamster@chest:~$
видно (если видно, "табличка" могла порваться), что после установки соединения маршрутом по умолчанию стал ppp0; т.е. на него пойдет все, что не перенаправится правилами ранее - а пакеты, следующие в 10.*.*.* (т.е. во внутрисеть) пойдут в 10.43.70.1 - т.е. по "быстрому" 100-мбитному маршруту
специально в route я ничего не добавлял, "само" настроилось..
Понятное дело, что локально билайновская сетка будет работать... А вот для локальной сети она будет доступна?
ОтветитьУдалитьведь по идеи в /etc/shorewall/masq должно быть так:
ppp+,eth0 eth1
да и в зонах стоит совместить ppp+ и eth0:
ОтветитьУдалить/etc/shorewall/zones
net ppp+,eth0 detect dhcp,routeback
по идеи :)
собственно интересует, работает ли все это на практике?
я слегка уже запутался, в чем проблема была..
ОтветитьУдалитьна практике: у меня дома в локальной сети комп для игр, комп для кино, iPod и psp, все ходят в инет через маршрутизатор с убунту, при этом локальная сеть билайна работает одновременно с инетом, скорость скачки/раздачи в билайновскую сеть - до 10 мб/сек (в т.ч. и торенты с торрентс.ру или тапочек, если указан адрес ретрекера и есть локальный сиды), из инета - до 800 кб/сек
в masq ppp+ я ж писал что добавлял.. zones я не трогал (может то опечатка? в zones не указываются, какие интерфейсы входят, просто определения зон), а в interfaces я добавил ppp+
Спасибо, ключевое слово прозвучало :)
ОтветитьУдалитьзначит буду пробывать...
Ubuntu-server 9.10 i386
ОтветитьУдалитьМои 5 копеек :)
повторил все по инструкции, но пришлось поправить /etc/ppp/options.beeline - добавить:
defaultroute
replacedefaultroute
перед noauth
иначе маршруты не подымались :(
из проблем: маскарад пока не пашет... но нэт на серве уже есть...
маскарад не поднимался по банальнейшей причине: в 9.10 shorewall перенесен в rc4 (т.е. до ppp), соответсвенно ppp0 еще нет и шоволл отваливаеться с критом...
ОтветитьУдалитьлечиться внесением скрипта запуска шовола в /etc/ppp/ip-up.d