Перейти к содержимому

kharlashkin

Дата регистрации: 13 ноя 2013
Вне сайта Был на сайте 22 июл 2017 08:05

Темы пользователя

Альтернативные прошивки маршрутизаторов.

10 Апрель 2017 - 19:00

Добрый день всем!

 

Так сложилось, что уже довольно давно использую свой домашний Asus RT-N16 не только по "прямому" назначению. Хочу здесь публиковать свои изыскания относительно использования таких коробочек.

 

Я как-то уже спрашивал нашу скромную компанию - "Стоит ли делиться опытом?". Конечно стоит!

 

Так сложилось что мне пришлось обновлять прошивку. Соответственно нужно опять запускать OpenVPN и раз так заодно поделюсь этим опытом с форумчанами.

 

1. Почему именно DD-WRT?

 

Как показывает практика, все производители домашних маршрутизаторов спустя рукава относятся к программному обеспечению, установленному на свои железки. А если говорить о таких вещах, как тонкая настройка множества параметров  - заводские прошивки не представляют никаких инструментов от слова вообще. Хотя есть некоторые исключения в виде командной строки, но для этого нужно обложиться учебниками и справочниками, "курить манюалы", много гуглить и т.п.

 

По закону подлости, всего не предусмотришь и часто что-то делая через shh и telnet ошибка приводит к отсутствию интернета так как роутер не может корректно загрузиться и раздать интернет, а практически никто не имеет дома резервный (или открытый соседский) канал интернета для допиливания конфигураций маршрутизатора из консоли. 

 

Я пробовал практически все альтернативные прошивки для своего Asus и только вышеназванная мною имеет возможность редактировать множество параметров "из коробки" в web-интерфейсе. Особенно это касается следующего пункта.

 

2. Почему OpenVPN?

Тут все довольно просто - приведу пример. Вы с находитесь в гостевой сети (учеба/работа/интернет-кафе и т.п.) где суровым системным администратором запрещено почти всё - он-лайн игры, скачивание торрентов, просмотр потокового видео и т.д. Стандартные VPN обычно используют тоже известные порты и протоколы, таким образом очень сомневаюсь что тот, который настраивал доступ в интернет так же оставил Вам возможность использовать для обхода что-то типа PPTP/L2TP/PPPoE. Но у нас же есть предварительно настроенный OpenVPN, который работает на любом порте и TCP/UDP транспорте. Как пример если наше соединение работает по 443 порту (https) и используется TCP-транспорт, то для маршрутизатора, который нам дает доступ в интернет это будет выглядеть как будто мы просто просматриваем сайт (как google.com или koreanrandom.com). Трафик весь шифруется, и даже с помощью специальных утилит никто не увидит что же мы на этом сайте делаем.

 

3. Прошивка маршрутизатора.

Идем в соответствующий раздел, вводим название производителя маршрутизатора и нам вываливаются список моделей которые можно прошить.

Прикрепленный файл  ddwrt_asus.png   241,93 Кб   0 раз скачано

Небольшое отступление. Так сложилось что мой первый домашний роутер был Asus WL-520gU и первый провайдер предоставлял доступ к интернет с PPPoE Dual Access (Russian PPPoE) - т.е. доступ к локальным ресурсам и отдельно доступ к сети интернет. При чем мой работодатель так же был подключен к этому провайдеру, соответственно я мог получать доступ к своему терминальному рабочему месту (1С, почта, файловое хранилище) и сайту (периодически наполнял его интересными статьями) из дома с наивысшей скоростью, как по локальной сети. Просидев пару вечеров допоздна с dd-wrt я так и не смог корректно настроить одновременную работу интернета и локальной сети провайдера. Вернулся на заводскую прошивку, но всё решил случай. В один летний день грянул гром, т.е. ожидалась гроза и провайдер выключил интернет - на тот момент кое-где между домами использовалась витая пара, и в целях сохранности своего оборудования этот поставщик услуг просто выключал физически электричество на всей своей сети. Поискав доступные беспроводные сети я нашел какую-то соседскую без пароля, подключившись увидел что там доступ к интернету имеется. Зайдя на маршрутизатор соседа глянул что там прописано в настройках - оказалось что другой провайдер, доступный в моем доме, не имеет вышеозначенных проблем с медными кабелями, а раздает интернет статическим адресом. И я просто сменил провайдера ;) А для доступа к ресурсам работодателя подключил себе услугу "Статический IP-адрес" за $2 и попросил системных администраторов разрешить мне доступ извне с этого IP.

Имея статический адрес захотелось получать доступ к домашним ресурсам и более-менее простую установку и настройку как раз можно сделать с помощью OpenVPN и обсуждаемой альтернативной прошивки. В будущем когда стал выбор покупки маршрутизатора, сразу смотрел поддержку устройства на сайте.

На страничке с прошивками для роутеров, мы видим прошивку для первого раза с заводской и несколько других с расширенным функционалом - инструкций для перепрошивки достаточно, я не буду тут описывать что к чему.

 

4. Подготовка OpenVPN.

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

Прикрепленный файл  openvpm_rsa.png   20,6 Кб   0 раз скачано

Запускаем консоль Windows - ПКМ (правая кнопка мыши) на Пуск - выполнить - "cmd".

Переходим в папку с установленной программой:

cd C:\Program Files\OpenVPN\easy-rsa

и последовательно выполняем команды:

init-config.bat
vars.bat
clean-all.bat
vars.bat
build-ca.bat
vars.bat
build-dh.bat
vars.bat
build-key-server.bat "имя сервера"
vars.bat
build-key.bat "имя клиента"

Под полями "имя сервера" и "имя клиента" вводите свои имена для маршрутизатора и подключаемых к нему потом устройств. При создании сертификатов/ключей у нас будут постоянно спрашивать всякое-разное, я вводил ответы "как оно есть".

В итоге у нас в папке C:\Program Files\OpenVPN\easy-rsa\keys множество нам нужных ключей и сертификатов. И мы можем переходить к настройке маршрутизатора.

 

5. Настройка маршрутизатора.

Идем на web-интерфейс нашего маршрутизатора и переходим на вкладку Services - VPN и включаем наш OpenVPN Daemon:

Прикрепленный файл  openvpn_start.png   36,57 Кб   0 раз скачано

Затем поочередно заполняем соответствующие поля нашими сертификатами и ключами из папки, просто открывая в текстовом редакторе:

  • CA Cert - C:\Program Files\OpenVPN\easy-rsa\keys\ca.crt;
  • Public Client Cert - C:\Program Files\OpenVPN\easy-rsa\keys\"имя сервера".crt;
  • Private Client Key - C:\Program Files\OpenVPN\easy-rsa\keys\"имя сервера".key;
  • DH PEM - C:\Program Files\OpenVPN\easy-rsa\keys\dh1024.pem;

В поле OpenVPN Config, записываем конфигурацию, это пример моей:

mode server
tls-server
daemon
server 192.168.66.0 255.255.255.0
port 443
proto tcp-server
dev tun0
ca /tmp/openvpn/ca.crt
cert /tmp/openvpn/cert.pem
key /tmp/openvpn/key.pem
dh /tmp/openvpn/dh.pem
push "redirect-gateway def1"
push "dhcp-option DNS 192.168.66.1"
push "dhcp-option WINS 192.168.66.1"
keepalive 10 120
client-to-client
persist-key
persist-tun
verb 3

6. Настройка клиента Windows.

Так как у нас уже есть установленная версия, на ОС под которой мы создавали ключики и сертификаты, то просто редактируем с помощью блокнота "C:\Program Files\OpenVPN\sample-config\client.ovpn" и сохраняем конфигурационный файл в папку "C:\Program Files\OpenVPN\config".

client
dev tun
proto tcp-client
remote "myIP" 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\"имя клиента".crt" 
key "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\"имя клиента".key"
verb 3

Где "myIP" - это статический адрес нашего маршрутизатора или имя маршрутизатора через службу Динамического DNS. А "имя клиента" то же что и выше.

 

7. Собственно и всё.

Запускаем OpebVPN GUI нажимаем ПКМ на иконке и подключаемся.

Прикрепленный файл  connect.png   8,14 Кб   0 раз скачано

После успешной авторизации значек заполниться зеленым, значит весь ваш интернет-трафик зашифрован и идет через домашний маршрутизатор, то есть никто не сможет увидеть куда вы ходите и что делаете в интернете. Ну кроме просмотра трафика после маршрутизатора.


Рассылка поздравлений с новым годом.

30 Декабрь 2016 - 07:47

Вчера заходило два человека с просьбой организовать рассылку с поздравлениями для партнеров/заказчиков. При чем основным требованием было, чтобы в поле "кому" электронного письма был один адресат. Погуглив часик и почитав доки, был набросан скриптик на python, его и прилагаю, может пригодиться кому-то ;)


Скрипт берет открытку "c:/temp/2017.jpg", считывает из текстового файла "c:/temp/test.txt", где в каждой новой строке один электронный адрес, нужный e-mail и поздравляет адресата письмом со стишочком и картинкой ;)
Прикрепленный файл  2017.jpg   268,58 Кб   0 раз скачано

Всех с наступающим 2017 годом!


Arduino и аналоги

10 Апрель 2016 - 04:49

Собственно всё в заголовке темы, обсуждаем все что касается темы. Для себя, как чайника в подобном, буду поддерживать тему - так как направление интересное.

 

Сейчас собираюсь заказывать китайского клона с набором датчиков/проводов/"рассыпухи" для поиграться да и есть пара задумок куда применить.


Наушники Ubuntu 15.10

24 Март 2016 - 14:28

В общем отваливается звук при подключении наушников к ноутбуку Asus K56-CB, проявилась проблема пару дней назад (думаю с очередным обновлением).

 

Пляски с бубном пока ни к чему не привели. Никто не сталкивался с подобным?


360° видео с 360° звуком

20 Март 2016 - 18:16

Постараюсь сделать свою web-камеру для on-line трансляций со звуком и максимально-возможным качеством по умеренной цене. Связано мое желание с все большим и большим распространением VR-очков - Google Cardboard и пластиковые аналоги, Valve SteamVR, Oculus Rift, Sony PlayStation VR и многие другие. Тема интересная и "за спрос в нос не бьют", а чего бы и не попробовать.

 

 

Итак, почти все на сегодня имеющиеся проекты по созданию 360 камер работает с видео. Т.е. берется видеоряд с камер (зеркальные фотоаппараты, GoPro Hero и т.п.) обычно в видео-формате h.264/h.265, закрепленных специальным образом в адаптерах и в ПО (PTGui, Kolor и др.) сшивается и перегоняется в равнопромежуточную проекцию. Все это происходит за большие деньги и на мощном железе. Как пример, вот требования для проработки видео от VideoStitch:
Прикрепленный файл  frequency_scaling.png   22,35 Кб   0 раз скачано

 

Если посмотреть на стандарты видео, в котором снимают та же GoPro, то мы увидим некоторый интересный момент, а именно в данном стандарте нет отдельных кадров для сшивания. Т.е. каждый кадр для того чтобы сшить в панораму - нужно сначала "просчитать" через так называемые опорные кадры, затем сшить с помощью специальных алгоритмов, а потом закодировать обратно в QuadHD (2560×1440) или 4K UltraHD (3840×2160) в первоначальном или подобном первоначальному формате. А если учитывать, что каждая камера снимает 1080p 30fps или 720p 60 fps, а их 6 (или более) штук - нагрузка на процессор/видеокарту видна "невооруженным глазом".

 

На этом этапе мои мысли повернулись в сторону "Да ну нафиг!" и подумалось - а что если видео в формате Motion JPEG? То есть тупо последовательность картинок с нужной скоростью - 30fps 1080p или 60fps 720p, да хоть 360p (720х360) 15 fps. Таким образом вроде получается убрать первый просчет.

 

Далее нужно выполнить сшивание каждого кадра. Для этого сначала нормализуют картинки (убирают дисторсию), строят общую картину по контрольным точкам и прямым, объединяют кадры, мне почему то кажется что сначала в кубическую проекцию, и преобразуют в равнопромежуточную проекцию в хорошем разрешении.

 

Опять возникла мысль как и в первый раз и подумалось - а что если просто пиксели из камер переносить в новую матрицу которая уже будет соответствовать нужному мне кадру? Подобным образом и потупила некая Katherine A.Scott - просто создав новую карту для пикселей. При чем, если я правильно понял, для захвата с камеры разрешением 1920х1080, переработки в нормальную картинку и записи в реальном времени видео с разрешением 800х600 хватило мощности Raspberry Pi.

 

Для более детальной проработки мною была приобретена usb-камера - позволяющая завхватывать1080р 30fps, пр-ва поднебесной 1 шт.. Сразу не решился покупать нужное количество (хотя бы 5 шт.) - вдруг окажется что камера говно или китайцы не договаривают чего-то. Камера оказалась вроде ничего, я не фотограф и никогда не работал на свадьбах, днях рождения в качестве оператора - камера как камера, технические характеристики соответствуют заявленным - чего мне ещё нужно за 40$. Объектив вроде соответствует заявленным 170 градусам по диагонали (и наверное имеет заявленные 135 градусов по горизонтали и 90 по вертикали как и вышеупомянутая GoPro).

 

Прикрепленный файл  2016-02-23-182139_1.jpg   222,83 Кб   0 раз скачано

 

Погонял тестовые python скрипты с камерой, пока никаких нареканий нет. Буду заказывать ещё 4 камер камеры для построения 360х135 видео из 5 шт.

 

Буду рад любой помощи, советам да и просто доброму слову от участников форума.


© Mr 13