Приветствую, дорогой читатель! Сегодня мы затронем одну очень интересную тему. Думаю ни для кого не секрет, что при выходе в Интернет через 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.
Настройки 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 set clkfreq=532,266,133
nvram commit
reboot