Отправляет email-рассылки с помощью сервиса Sendsay

[TC] Полноценный vpn на кинетике при любом типе подключения

Доброго времени суток всем!

Простите, букав будет много. Вкратце напишу, для чего понадобилось мне
огород городить, чтобы вы поняли, нужно ли это вам, потом дам ссылку
на пакет, а после ссылки детальное описание почти для чайников.
Старею, должно быть, раз начал описания для чайников писать, как-никак
днюха недавно была и ещё годик добавился.
Итак: пользуюсь я услугами замечательного провайдера дом.ru, причём не
только интернетом, но и телевидением, и домашним телефоном.
Близится лето с его разъездами в пригород и дачными страданиями, а,
так как у дома ру телефон работает через sip и у меня есть безлимитный
мобильный интернет, хотелось бы иметь городской телефон, даже,
находясь на природе, или в другом городе, а джля этого мне
понадобилось следующее:
* sip клиент (подходящий нашёл только для айфона, нокиевский не пойдёт,
для компа пойдёт Phonerlite)
* Логин и пароль для sip сервера, а так же его адрес. Спасибо милой
девушке с милым именем Александра за помощь на форуме интернет нн.
Если вам понадобятся такие данные, пишите мне в личку, скажу, как и
где проще найти, домру их упорно не даёт, хотя в некоторых регионах
дают по письму, или визиту в ЦОК. Хочется заметить, что юридически
домру поступает неправильно, отказываясь предоставлять данные, это
неполное оказание услуги со всеми вытекающими, ну да ладно, поехали
дальше.
После того, как клиент и настройки были успешно найдены, обнаружилась
неприятная вещь: звонить через сип сервер домру разрешает только из
своей сети, хотя входящие звонки можно принимать в любой сети, просто
настроив сип клиента, а отсюда вытекает следующее:
* обеспечить удалённый доступ к своей домашней сети, или, иначе
говоря, поднять vpn, чтобы коннектиться к нему с любого устройства,
причём поднять так, чтобы он мог работать месяцами автономно и не
особо пожирая электричество. Для этой цели идеально подошёл роутер
zyxel keenetic, на котором можно запускать полноценные linux
приложения.
Далее встал вопрос в реализации vpn сервера. Колебался я между OpenVPN
и pptp сервером. OpenVPN поднять было легче, но при этом я мог
работать только с компа, а мне хотелось подключаться ещё и с айфона,
который умеет pptp и l2tp из коробки. В результате был поднят pptpd
(vpn сервер, работающий по протоколу точка точка pptp) без шифрования,
чтобы не нагружать слишком кинетик.
Однако, и тут обнаружилась неприятность: если тип подключения к
интернету pptp, l2tp, или PPPoE, ничего не работало, работало всё
только при способе подключения IPoE, ниже будет объяснена причина
подобного глюка.
Однако, все проблемы имеют свойства решаться, мануалы куриться, а
результат появляться. Вот теперь всем заинтересовавшимся патч для
pptpd, применив который мы заставим работать сервер при любом типе
подключения. Ссылка на скачивание ниже, а ещё ниже инструкция по
установке и не говорите потом, что вы её не читали:

http://yadi.sk/d/jDftOo3C4t2LQ

Описание и инструкция

pptpd - пакет для zyxel keenetic и keenetic giga, с помощью которого
вы сможете запустить на вашем кинетике полноценный vpn сервер и
подключаться к вашей домашней сети из любого уголка мира. Оригинальный
пакет обсуждается на forum.zyxmon.org, но он подходит только для тех,
у кого метод подключения IPoE, т.е. кто не использует для подключения
к Интернету логин и пароль.
Модифицированный пакет универсален и будет работать при типах
подключения IPoE, PPPoE, PPTP, L2TP, однако, для IPoE рекомендую
использовать оригинальный пакет, а этот ставить только, если лень
копаться с правилами фаервола и прочими линуксовыми мульками.

Установка

Предполагается, что на кинетик уже установлен ssh сервер и система
пакетов opkg, в связи с чем, на прошивках 2x пакет работать не будет.
Установку рекомендуется производить в среде linux от пользователя
root, тогда все нужные
права доступа будут прописаны автоматически. Если установка
выполняется из среды windows, рекомендуется зайти на кинетик по сети,
а не использовать ftp, в противном случае вы получите целый букет
глюков, связанных с правами доступа, а, если более конкретно, с
атрибутом исполнения, что повергнет в шок любого виндузятника со
стажем.
Зайдите на кинетик через ssh и выполните последовательно нижеуказанные
команды:
opkg update
opkg upgrade
opkg install pptpd
Далее, если вы предполагаете продолжить установку в среде linux,
размонтируйте носитель и подключите его к linux машине.
Рекомендованная файловая система носителя ext2, или, если хочется
более устойчивой системы, ext3 ext4 кинетик не понимает и не
старайтесь его этому научить ;). По возможности не используйте на
кинетике ntfs, драйвер ntfs, установленный в прошивке кинетика очень
ресурсоёмок, нативные драйвера extFS гораздо стабильнее и с ними
кинетик работает быстрее, кроме того, драйвер ntfs кинетика не
понимает ntfs томов размером более 2 тб. На fat16 и fat32 томах вообще
ничего работать не будет, т.к. эти файловые системы не поддерживают
символические ссылки, так же позаботьтесь, чтобы на диске был только 1
раздел, причём он должен быть обязательно первичным, в прочем, если вы
уже установили opkg, то все условия у вас уже выполнены.
Если установка планируется из среды windows, проверьте, что в кинетике
включён сетевой диск usb-приложения/сетевой диск.
Распакуйте файл system.tar на ваш носитель, соглашаясь на замену.
Теперь найдите файл с аккаунтами пользователей, его путь указан ниже и
пропишите там нужные вам логины и пароли. Формат строки пользователя
так же приводится ниже.
Виндузятники, будьте внимательны при редактировании файла с
аккаунтами. Формат строки должен быть unix, а не windows, не
используйте блокнот для редактирования, пользуйте, например, akelpad.

Некоторые замечания по использованию пакета:
* при использовании пакета в веб-интерфейсе кинетика будет всегда
написано, что нет подключения к Интернету, хотя Интернет при этом
будет работать. Причина эт ого глюка мне не совсем ясна и, либо я
никудышный линуксоид, что вполне допускаю, т.к. рабочая среда для
меня-таки windows, либо я просто что-то прозевал.
* Если вы удачно подключились к vpn, но пакеты не идут не до
интернета, не до вашей локальной сети, значит у вас происходит двойной
старт приложений и сбрасываются правила iptables, которые создаются в
/media/DISK_A1/system/etc/firewall.d и init.d. Чтобы решить эту
проблему, раскомментируйте все строки, начинающиеся с iptables, в
файле /media/DISK_A1/system/etc/S60pptpd и перемонтируйте носитель.
Если кому интересно, происходит следующее:
при монтировании скрипту S60pptpd посылается аргумент start и скрипт
отрабатывает, а вместе со скриптом и одно правило iptables, которое
разрешает подключение к vpn серверу из интернета. Остальные правила
отрабатывают из firewall.d, они срабатывают всегда, когда монтируется
диск, отключается, или включается интернет. Но тут система выполняет
S60pptpd с параметром restart и перезапускает всех демонов, а вот на
restart правила из firewall.d не реагируют, посему, если сталкиваемся
с двойным стартом, то дублируем правила и в скрипте запуска, и в
скрипте в firewall_d. Если у вас интернет IPoE, проблема двойного
запуска вам не грозит.
* При размонтировании usb носителя по кнопке wps, или из
веб-интерфейса на пару секунд пропадёт интернет. Причина этого глюка
мне ясна: останавливаемый демон pptpd тащит за собой и демона pppd,
который система потом перезапустит. глюк не воспроизведётся при методе
подключения IPoE, т.к. в этом режиме демон pppd система не использует.
* После заведения нового пользовательского аккаунта в
/media/DISK_A1/system/etc/ppp/chap-secrets роутер необходимо
перезагрузить. Простого перемонтирования носителя, или рестарта демона
pptpd не достаточно. Связано это с корректным разнесением двух демонов
pptpd и pppd, использующих общий файл конфигурации, 1 из которых
использует кинетик для поднятия туннелей до
провайдера, а другой наш демон.
формат файла с аккаунтами такой
логин демон пароль присваемый ip
логин - любая последовательность латинских букв и цифр. Во избежание
ошибок парсинга не используйте спецсимволы
демон - всегда pptpd
пароль - любая последовательность латинских букв и цифр, во избежании
ошибок парсинга не используйте спецсимволы. Пароль вписывается, как
есть и не криптуется. Дыра в безопасности, согласен, но большая дыра в
том, что в кинетике только 1 пользователь root, да и вообще,
криптование потребовало бы заводить нового юзера через консоль, чего
я, как виндузятник, не очень люблю, а тут можно быстренько зайти по
ftp, прописать строчку,а потом ребутнуть роутер по telnet командой
sys reboot
Присваеваемый ip - ip из диапазона, указанного в настройках демона
/media/DISK_A1/system/etc/pptpd.conf
но разумнее просто указать вместо адреса звёздочку, тогда ip
назначится автоматически
Пример записи для пользователя pupkin с паролем 1234:
pupkin ppdpd 1234 *

О настройке соединения

Перед настройкой соединения убедитесь, что у кинетика белый
статический ip. Если ip белый и динамический, воспользуйтесь сервисами
динамического dns, например dyndns.org, или www.no-ip.com, оба этих
сервиса кинетик поддерживает из коробки. Если ip кинетика принадлежит
к диапазону т.н. приватных адресов, например 10.xxx.xxx.xxx, то
расслабьтесь, ничего у вас не получится.
Для подключения к кинетику создайте новое pptp подключение, со
следующими параметрами:
vpn сервер - ip адрес, или ddns имя вашего кинетика
Тип подключения - туннельный протокол точка>точка pptp
логин и пароль - те же, что вы прописали в файле аккаунтов (см.выше)
Шифрование - не использовать.
Подключение тестировалось на windows7, ubuntu 11.04, iPhone.
Теоретически должно работать и на windows xp, но я не проверял.
И последнее: проще всего настроить подключение в windows7, там
достаточно только создать новое подключение к виртуальной сети, ввести
имя сервера, логин и пароль, остальное винды сделают сами.
И последнее: по непонятным причинам иногда клиент не получает адреса
серверов dns, поэтому в свойствах vpn подключения укажите, например,
dns серверы google:
предпочитаемый:
8.8.8.8
Альтернативный:
8.8.4.4
Как прописать dns на айфоне, пока не знаю, да мне это и не надо, т.к.
айфон использую через vpn только для звонков через домашний телефон
дом.ru, будучи не дома, а там у них всё на ip адресах и dns не нужен.
Все дальнейшие подробности по почте yuni***@s*****.net, или по скайпу
dmitryyuniks
На глупые вопросы отвечать не буду, вопрос у меня не получается -
глупый вопрос.
Удачи вам!

Ответить   yuniks Thu, 16 May 2013 13:21:56 +0400 (#2745775)