06 июля 2014

VPN клиент на роутере с USB-модем

Приветствую, дорогой читатель! Сегодня мы затронем одну очень интересную тему. Думаю ни для кого не секрет, что при выходе в Интернет через 3G-модем, вам назначается "серый" ip-адрес и вы находитесь за NAT. Поэтому, если вам вдруг понадобилось развернуть какой то мобильный сервер, то доступ к нему будет закрыт. Получение "белых" адресов у всех операторов-провайдеров услуга платная.

Выходом из этой ситуации будет туннелирование трафика до "белого" сервера. И уже через него получать доступ к вашему мобильному серверу. Первое, что сразу приходит в голову - это VPN-сеть. Есть несколько вариантов реализации, но все зависит от ваших потребностей, возможностей и убеждений. Мы будем реализовывать самый простой PPTP.  Если этот вариант по каким то причинам вам не подходит, смотрите в сторону OpenVPN и обратного ssh-туннеля.

Так же по теме как организовать VPN-сервер на базе FreeBSD у меня есть отдельная статья.

Я решал задачу, как получить доступ к ip-камере за роутером с USB-модемом. Хочу сразу уточнить, что я возился с D-link dir-620 версии C1, поскольку все дальнейшие настройки крайне специфичны и целиком зависят от модели вашего роутера и используемого на нем программного обеспечения.
Существует несколько модификаций этого роутера A,C,D,G,F. Их основные отличия в процессорах и объеме памяти. С1 оказался наиболее удачной моделью, здесь мощный процессор Broadcom BCM5357 с частотой 530MHz и в два раза больше ОЗУ - 64 МБ. Описания есть на wikidevi.
Что бы узнать какая у вас, посмотрите на наклейку с обратной стороны.

Сначала все эксперименты я проводил на родной прошивке. Только обновил ее до последней стабильной версии 1.0.8. Брал ее с ftp-сервера производителя и устанавливал через web-интерфес роутера.

Настройки VPN-подключения на родной прошивке D-link
Чтобы организовать VPN соединение по протоколу pptp через 3G нужно создать два подключения: первое 3G, как основа для выхода в Internet и второе "PPTP+Статический IP".  Здесь подразумевается, что вы подключаетесь к VPN через провод и имеете статический адрес. Но в нашем случае это не имеет никакого значения, поэтому мы зададим его произвольным.

Для этого заходим в web-интерфейс роутера по адресу 192.168.0.1 через браузер (логин и пароль по умолчанию admin) и  переходим в режим Расширенные настройки>Сеть>WAN. Удаляем там все лишнее и добавляем новые подключения.  Первым добавим 3G-соединение, лучше конкретно задать режим 3G, а не авто, настройки PPP в зависимости от вашего оператора.

Далее подключение "PPTP+Статический IP", обратите внимание, что Интерфейс задан как Internet, а не static.  Далее придумайте имя. 

В секции IP назначте произольный адрес 1.1.1.1, маску 255.255.255.255, шлюз 1.1.1.1, DNS 8.8.8.8. Включите NAT, сетевой экран и пинг. 

В секции VPN  поставить галочку соединяться автоматически, ввести логин, пароль, адрес vpn-сервера, шифрование выбрать MPPE 40/128 бит, поставить галочку ping, а все остальное оставить по умолчанию. Не забудьте сохранить.

Теперь после перезагрузки и получения адреса в 3G сети роутер автоматически подключится к VPN-серверу. А в случае обрыва связи так же будет делать это сам. Откройте Статус>Сетевая статистика и проверьте, что вы получили ip-адрес vpn-сети.

Подключились, это хорошо! Но поскольку в качестве шлюза у нас по умолчанию используется 3G-модем, то наше vpn-соединение ни как не участвует в сетевом процессе. Что бы его задействовать нужно настроить маршрутизацию.

Добавим такое правило: пусть все запросы из vpn-сети направляются через подключение PPTP. Для этого идем на вкладку Дополнительно>Маршрутизация, нажимаем Добаваить. Сеть назначения указываем такую, какую определяет vpn-сервер, в нашем случае это 192.168.10.0 (ее вы уже видели раньше в Сетевой статистике). Маска подсети подбирается автоматически, метрику ставим 1, а интерфейс - это имя вашего VPN-подключения. 

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

Последнее правило означает, что если для пакетов не сработало ни одно из предыдущих правил, они отправляются через соединение 3G-модема. Оно добавляется автоматически, когда ставите галочку использовать 3G-модем в качестве шлюза по умолчанию на квладке Расширенные настройки>Сеть>WAN. Наше правило с метрикой 1 располагается выше, таким образом оно сработает раньше и все общение с vpn-сетью будет происходить через PPTP интерфейс.

Теперь можно пропинговать любой компьютер из vpn-сети и получить доступ к ресурсам локальной сети, как в прямом, так и в обратном направлении.

Вышеописанная последовательность действий - это единственная возможность настроить VPN-соединение через 3g модем на родных прошивках D-link.
Но к сожалению такая настройка не позволяет полностью спрятать вас в VPN-сети и не даст выхода в интернет через нее. А этого бы очень хотелось.

Еще один неприятный момент, со стандартной D-link-ой прошивкой не заработал LTE на 4G-модеме от МТС. Хотя он определился без проблем, но работал только в 3G.

Поэтому дальше я решил перейти на какую-нибудь неофициальную прошивку, например,  Tomato или Vampik. OpenWRT тоже хорошая, но текущей ревизией данного роутера не поддерживается.

Если потребуется откатиться с бета-версии d-link 2.0.9 на более старую прошивку нужно зажать кнопку reset в момент включения питания и не отпускать ее в течении 10 секунд. Роутер переходит в режим восстановления. Обязательно через IE (через firefox почему то файлы не заливались) заходите на 192.168.0.1, там будет доступна форма для загрузки файла прошивки. Заливайте, ждете когда роутер моргнет всеми лампочками и перезагрузится. Предварительно в настройках сетевой карты вашего компьютера нужно убрать автоматическое получение ip-адреса и поставить вручную 192.168.0.2 и маску 255.255.255.0.

Таким же способом через режим восстановления прошиваются и все другие неофициальные прошивки. Откатится с tomato обратно на d-link можно просто через веб-интерфейс Tomato в разделе upgrade. Только имейте в виду, что после прошивки Tomato web-интерфейс консоли восстановления будет доступн по адресу 192.168.1.1, а не 192.168.0.1 как до этого.  В этом нет ничего страшного, дело в том, что в Tomato LAN настроена на подсеть 192.168.1.1/24.

Прошивки Tomato by Shibby доступны на официальном сайте в разделе download. D-link dir-620 c1 очень похож по начинке на Asus RT-N15U, хотя и не является его полным близнецом. Поэтому нам подойдут все прошивки сборок RT-N. Берете здесь самую последнюю версию Big-VPN для ASUS RT-Nxx. Я закачивал tomato-K26USB-1.28.RT-N5x-MIPSR2-120-Big-VPN.trx. И обновляете через режим восстановления.

После этого вы получаете полностью рабочий роутер, который сразу определяется как dir-620 c1 и все работает из коробки, в том числе порты LAN и Wi-Fi.

Поддержка 3g-модемов так же имеется. Только проследите, чтобы она была включена на вкладке USB and NAS >USB Support USB 3G Modem support.
К сожалению точного списка модемов, поддерживаемых Tomato нет, но если вы найдете свою модель в этом списке, то скорее всего она будет работать. Поиск там весьма не удобен, но если присмотреться, то увидите, что модели роутеров располагаются группами. Например, Huawei начинается с 12d1, ZTE - c 19d2 и т.д. Оба мои модема Huawei E3272 (это новый 4G модем от МТС) и 3G модем ZTE MF652 заработали сразу без каких-либо танцев с бубнами!

Настройки VPN-подключения на прошивке Tomato by Shibby  
Вставляете модем, включаете роутер. Заходите в web-интерфейс по адресу http://192.168.1.1 и идете в Basic>Network. В секции WAN/Internet настраиваете тип соединения 3g Modem. В поле Modem device выбираете /dev/ttyACM0, если помимо самого модема у вас определяется еще и флешка или /dev/ttyUSB0, если режим "только модем". Далее настройки оператора: номер дозвона, точка APN, имя и пароль. Все остальное по умолчанию. Не забудьте сохранить!

Теперь настроим VPN-соединение. Здесь есть специальный раздел VPN Tunneling, заходим в него, дальше PPTP Client. Прописываем адрес вашего VPN-сервера, имя, пароль, отмечаем все галочки, получать DNS - да, и задаем вручную MTU 1456. Сохраняем и перезагружаемся.

После ребута, модем автоматически подключится к сети. Это вы поймете, когда на нем загорится синий светодиод. А так же увидите в настройках Status>Overview в секции WAN, что получен ip-адрес.

Затем произойдет автоматическое подключение к VPN-серверу. Проверить это вы сможете на вкладке QoS>View Details. Там будет запись с адресом вашего vpn и 1723 портом.

Благодаря тому, что при настройке VPN-подключения мы поставили галочки Redirect Internet Trafic и Create NAT on tunnel  весь наш трафик теперь отправляется в туннель и поэтому мы выходим в Интернет через VPN-сеть. Проверьте свой ip на сайте 2ip.ru.

У нас осталась еще одна не решенная задача - это доступ к ip-камере за роутером Для этого настроим перенаправление портов. Очередная проблема в том, что при задании портов через веб-интерфейс в разделе Port Forwarding>Basic правила применяются только для WAN и LAN и не работают для VPN. А нам то надо между TUN и LAN.

Но в Tomato есть возможность гибкой настройки firewall'a через команды терминала. Они вводятся  либо через telnet или ssh, либо в разделе Administration>Scripts на вкладке Firewall.  Для конфигурирования используется iptables, поэтому вам не составит особого труда разобраться с его синтаксисом.

К примеру для проброса 80 порта ip-камеры с адресом 192.168.1.5 к произвольному порту 12345 роутера добавьте следующую  строчку
iptables -t nat -A PREROUTING -i ppp1 -p tcp --dport 12345 -j DNAT --to 192.168.1.5:80
где  -i ppp1 - это интерфейс вашего vpn-туннеля. Его можно узнать с помощью ifconfig. И еще обратите внимание на ip-адрес, который вам присвоен в vpn-сети.

По аналогии пробросим веб-интерфейс роутера на порт 23456.
iptables -t nat -A PREROUTING -i ppp1 -p tcp --dport 23456 -j DNAT --to 192.168.1.1:80
Командой iptables -t nat -vL убедитесь, что правила применились.

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

Или просто просканпруйте nmap'ом на предмет открытости порта.

Поздравляю! Доступ получен! Слава VPN!

В заключение хочу добавить сопутствующей информации, как управлять модемами Huawei с помощью гипертерминала. Скачиваете My Huawei Terminal. В диспетчере устройств windows смотрите какой USB-порт используется модемом и подключаетесь к нему с помощью терминала. После этого введите команду AT, модем должен ответить Recieve: OK. После этого введите команду AT^SETPORT="FF;61,62". Она включит режим "только модем" и принудительно заставит его работать в режиме 4g. По умолчанию на модеме установлена команда AT^SETPORT="A1,A2;62,61,76,A1,A2".

Еще после прошивки tomato роутер стал греться. Поэтому я решил снизить частоту процессора. Для этого заходим через ssh на роутер, или в Tools>System Commands и вводим команду  
nvram show | grep clkfreq
Увидите текущие настройки. У меня были  clkfreq=530,176,88. Частоты cpu, ddr и axi.
Меняем
nvram set clkfreq=440,220,110
nvram commit
reboot
Или можете в большую сторону nvram set clkfreq=532,266,133

 

01 июля 2014

Jailbreak Pangu iOS 7.1-7.1.2


Здравствуйте, друзья! Есть радостная новость. Хочу представить вашему вниманию новый jailbreak впервые из Китая, называется Pangu, читается как Паньгу.

Он стал для всех приятной неожиданностью. Поскольку официального релиза все ждали не раньше выхода iOS 8. Как и подобает настоящему джейлбрейку, Pangu абсолютно бесплатен. Поддерживает следующие устройства: iPhone 5S, iPhone 5c, iPhone 5, iPhone 4S, iPhone 4, iPad Air, iPad 4, iPad 3, iPad 2, iPod Touch 5Gen.

Теперь можно смело обновляться на iOS 7.1.2. Если в процессе обновления или восстановления вы получаете сообщение об ошибке "не удалось восстановить iphone произошла неизвестная ошибка 3014", то не пугайтесь. Это значит iTunes по какой то причине не может  соединиться с сервером apple. В первую очередь попробуйте просто отключить файрвол. Мне помогло.

Перейдем непосредственно к инструкция как сделать джейлбрейк iOS 7.1 - 7.1.2. Процесс установки крайне простой. Займет не более 5 минут. Рассмотрим на примере iPhone 5.

1) Скачиваем утилиту Pangu 1.0. Код этой версии проверен командой Evad3rs, которая официально выпускает джейлбрейк. В архиве версия для Windows и Mac.

2) Подключаем устройство с iOS 7.1-7.1.2 к компьютеру. Открываем iTunes и делаем резервную копию (она пригодится, если вдруг вы решите убрать джейлбрейк).

3) Запускаем Pangu 

4) Она определит ваше устройство. Затем снимите галочку под цифрой 2, что бы дополнительно не устанавливать китайский аналог апстора. И нажмите кнопку Jeilbreak под цифрой 3.

5) Дальше будет проигрываться инструкция как поменять дату.  Для этого идем в Настройки>Основные>Дата и время, снимаем переключатель Автоматически и выставляем дату 2 июня 2014.
После этого на рабочем столе вашего устройства появится новая иконка Pangu.

6) Нажмите по этой иконке. Появится сообщение, 
Нажимаем Продолжить. Запустится процесс джейлбрейка, будет несколько перезагрузок, после окончания вы увидите сообщение “enjoy the jailbreak” и появится иконка Cydia.

7) Pangu самостоятельно вернет настройку даты и времени на автоматическую.

Удаляем джейлбрейк
Еще вам может пригодится знание, как убрать джейлбрейк и вернуться назад к нетронутой прошивке.

Для начала устройство нужно перевести в режим восстановления Recovery Mode. Делается это следующим образом, подключаете его к компьютеру, зажимаете одновременно кнопки Power и Home, держите примерно 6 секунд до тех пор пока устройство не погаснет, продолжаете держать и после того как появится яблоко отпускаете кнопку Power, а Home продолжаете держать пока не появится изображение кабеля и значок iTunes. Теперь устройство готово для прошивки.
 
iTunes сразу предложит восстановить подключенное устройство. Для этого нажимаем Восстановить iPhone.
Здесь важный момент, iTunes автоматически проверяет не вышла ли новая версия iOS и если так, то заливает самую последнюю! Поэтому, если вам важно сохранить именно ту версию, которая у вас была установлена, то нужно ее скачать отдельно (к примеру на сайте 4pda.ru).

После того как скачали, держим Shift и нажимаем Восстановить iPhone, в появившемся окне выбираем скачанную прошивку *.ipsw. Поедет процесс обновления. После окончания вы получите девственно чистую прошивку. Теперь осталось восстановить вашу резервную копию, которую вы делали перед выполнением джейлбрейка. Таким образом имеем состояние устройства до джейлбрейка.

На этом все! Еще раз поздравляю всех с очередным выходом jeilbrek'a!