Видео наблюдения за городом посредством 3G интернета

в 12:53, , рубрики: openvpn, OpenWrt, Видео-техника, видеонаблюдение, Сетевые технологии, метки: , ,

Появилась такая задача: Установить видеонаблюдение, в 15 км от города, где доступен только gprs интернет.
Условия:

  • Камерами можно будет управлять через интернет
  • Ограниченный бюджет
  • В городе есть 3G интернет но в области нет.

Что бы решить данную задачу я решил построить такую сеть.
Взять самый дешевый сервер VDS. Недорогой роутер TP-LINK MR 3420, 3G модем от beeline, ip камеру. И построить такую сеть как на схеме.
Суть идеи такова: На сервере поднимается openvpn сервер, на роутере поднимается openvpn клиент, далее объединяем локальную сеть с сетью openvpn. Затем пробрасываем необходимые порты на сервере.

Видео наблюдения за городом посредством 3G интернета

Описание сети:
Первая сеть это роутер + ip камера + ваш компьютер (шлюз). Адрес сети будет 192.168.0.0
У роутера 192.168.0.1
У камеры 192.168.0.100
У вашего компьютера, который будет шлюзом 192.168.0.2

Вторая сеть, это сеть openVPN – 192.168.3.0
IP адрес openVPN вашего роутера будет 192.168.3.2
IP адрес вашего сервера будет 192.168.3.1

И внешний ip адрес сервера для примера будет 205.234.139.100

Что нам нужно.

  1. Компьютер.
  2. Временный доступ в интернет через компьютер.
  3. Роутер который поддерживает OpenWRT и 3G usb модема. (для примера TP-LINK MR 3420)
  4. Сервер с внешним ip адресом на базе Linux.
  5. 3G usb модем (Я использовал Huawey).
  6. IP Видеокамера.
  7. Хороший USB хаб, с внешним питанием.

Ход работы.

  1. Настраиваем на сервере openVPN, генерируем ключи для клиента openVPN.
  2. Настраиваем на роутере openWRT + openVPN и 3G модем для выхода в интернет.
  3. Если 3G связь ловит плохо, собираем антенну Харченко для усиления сигнала.
Настройка openVPN на сервере.

Как настроить сервер openvpn, до пункта “Объединение сетей”, описано тут: Настраиваем OpenVPN сервер на подключения клиентов

Конфигурация сервера выглядит примерно так:

daemon
local 205.234.139.100 # Внешний ip сервера
port 1194
mode server
proto tcp
crl-verify crl.pem
dev tap
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
client-config-dir ccd
server 192.168.3.0 255.255.255.0 # ip самого openvpn
push "route 192.168.3.0 255.255.255.0"
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
client-to-client
status openvpn-status.log
log /var/log/openvpn.log
verb 3

Чтобы каждому клиенту выдавался определенный ip адрес, в конфиге есть строчка

ifconfig-pool-persist ipp.txt

Создаем на сервере документ в папке /etc/openvpn/
Под названием ipp.txt

nano /etc/openvpn/ipp.txt

И в нем пишем “имя клиента, ip адрес”
Например вот так

openwrt,192.168.3.2
Прошивка и настройка роутера TP-LINK MR3420.

Как прошить роутер описано по ссылке: TP-Link TL-MR3420 & TL-MR3220

Для начало нужно дать выход роутеру в интернет для установки дополнительного ПО.
Для этого нужно сделать шлюзом к ваш компьютер.
Заходим через web, заходим в network. Далее жмем edit в lan
Переходим на вкладку ввода ip и изменяем ip локальное сети на
IP адрес: 192.168.0.1
Маска: 255.255.255.0
Шлюз: 192.168.0.2
DNS: 8.8.8.8

Видео наблюдения за городом посредством 3G интернета

На компьютере поставим себе ip 192.168.0.2, и используем его как шлюз.

Теперь нужно расширить память роутера для установки дополнительного ПО.
Для этого берем флэшку (Например 4 Гб) и форматируем ее с файловой системой ext4.
Затем вставляем ее в USB хаб и подключаем к роутеру USB хаб.
Потом нужно перенести все настройки на флэшку и сделать что бы она сама монтировалась при старте.

Устанавливаем пакеты для флэшки:

opkg update
opkg install kmod-usb-uhci kmod-usb-storage block-mount kmod-fs-ext4
insmod usb-ohci

Создаем точку подключения:

mkdir /mnt/sda

Затем монтируем флэшку:

mount -t ext4 /dev/sda /mnt/sda -o rw,sync

Копируем туда установленные пакеты:

tar -C /overlay -cvf - . | tar -C /mnt/sda -xvf –

Немного правим конфиг:

vi /etc/config/fstab

Чтобы выглядело вот так:

config 'mount'
option target /overlay
option device /dev/sda
option fstype ext4
option options rw,sync
option enabled 1
option enabled_fsck 1

Затем перезагружаем роутер:

reboot

Теперь мы не ограничены исходным размером flash роутера. И можем себе позволить поставить практически все
Смотрим свободное место:

df –h

Filesystem                Size      Used Available Use% Mounted on
rootfs                    3.7G    128.2M      3.4G   4% /
/dev/root                 2.0M      2.0M         0 100% /rom
tmpfs                    14.3M    688.0K     13.6M   5% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda                  3.7G    128.2M      3.4G   4% /overlay
overlayfs:/overlay        3.7G    128.2M      3.4G   4% /

Теперь нам нужно установить openvpn клиент на роутер, заодно и текстовый редактор nano, файловый мэнеджер mc, и русификатор luci.

Устанавливаем необходимые нам пакеты:

opkg install openvpn nano mc luci-i18n-russian

Для нормальной работы mc нужно выполнить две строчки:

export TERMINFO=/usr/share/terminfo
export TERM=xterm

И чтобы каждый раз их не выполнять руками нужно их добавить в /etc/profile:

nano /etc/profile

Затем копируем на роутер в /etc/openvpn/ ключи и сертификаты созданные на сервере openvpn:

ca.crt
dh1024.pem
openwrt.crt
openwrt.key
ta.key

Правим конфиг:

nano /etc/config/openvpn
client
tls-client
dev tap
proto tcp
remote 205.234.139.100 1194 # Вашь Ip и порт сервера
resolv-retry infinite
nobind
persist-tun
persist-key
ca /etc/openvpn/ca.crt
cert /etc/openvpn/openwrt.crt
key /etc/openvpn/ openwrt.key
dh /etc/openvpn/dh1024.pem
comp-lzo
verb 3

Запускаем openvpn:

openvpn --config /etc/config/openvpn

Если ваше Интернет-соединение в порядке и конфигурационный файл openvpn составлен правильно, вы должны увидеть такую надпись:

  • Initialization Sequence Completed

Если вы хотите, чтобы vpn-соединение восстанавливалось после каждой перезагрузки маршрутизатора, добавьте эту строку в /etc/rc.local перед строкой exit 0:

openvpn --config /etc/config/openvpn  &
exit 0 

Объединим сети 192.168.0.0 и 192.168.3.0:
Ваш ip сервера openvpn 192.168.3.1, а ваш Ip на роутере openvpn адаптера tap0 192.168.3.2

Тогда что бы ваш сервер смог увидеть вашу локальную сеть (192.168.0.0) нужно на сервере прописать маршрут.

ip route add 192.168.0.0/24 via 192.168.3.2

Теперь вашу локальную сеть на роутере вид ит сервер с openvpn.

Настроим проброс порта:

Допустим ваша ip камера работает по порту 99, тогда чтобы пробросить порт камеры или другого сетевого устройства добавим такие строки:

EXT_IP="205.234.139.100" # Вашь сервер ip
INT_IP="192.168.3.1"           # Локальный шлюз (ip вашей сетевой карты tap0)
EXT_IF=venet0:0                   # Сетевая карта внешнего ip
INT_IF=tap0                           # Сетевая карта openvrt
LAN_IP="192.168.0.100"    # ip на который нужно пробросить порт
SRV_PORT=99		     # Порт который нужно пробросить

iptables -t nat -A PREROUTING --dst $EXT_IP -p tcp --dport $SRV_PORT -j DNAT --to-destination $LAN_IP
iptables -t nat -A POSTROUTING --dst $LAN_IP -p tcp --dport $SRV_PORT -j SNAT --to-source $INT_IP
iptables -t nat -A OUTPUT --dst $EXT_IP -p tcp --dport $SRV_PORT -j DNAT --to-destination $LAN_IP
iptables -I FORWARD 1 -i $EXT_IF -o $INT_IF -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j ACCEPT

Теперь вы можете конектится к ip камере по адресу 205.234.139.100:99.
А чтобы не делать это вручную после перезагрузки сервера, создадим скрипт, в папке /root/ файл с названием start
и дадим ему права на выполнения:

chmod  777 /root/start

Затем добавим строку в /etc/crontab

@reboot root /root/start

Теперь после перезагрузки сервера скрипт автоматически запустится.

Установка usb 3g Ethernet модема от huawey

opkg update
opkg install usb-modeswitch usb-modeswitch-data kmod-usb-net-cdc-ether

Вставляем модем в USB хаб,
И пишем команду dmesg, вы должны увидеть примерно такие строки:

 [   99.220000] usb 1-1.1.1: new high-speed USB device number 6 using ehci-platform
[   99.330000] cdc_ether 1-1.1.1:1.0: eth2: register 'cdc_ether' at usb-ehci-platform-1.1.1, CDC Ethernet Device, 58:2c:80:13:92:63

Это говорит о том что модем установлен и определился как eth2.
Потом заходим в веб, сеть -> wan. В основных настройках ставим DHCP клиент.
В настройках канала ставим eth2.

Видео наблюдения за городом посредством 3G интернета

Нажимаем “сохранить и применить”.
Все, вы можете выходить в интернет через модем.

Далее нужно добавить зону в фаирволе для, перенаправления пакетов по локальной сети.
Для этого изменим файл /etc/config/firewall

nano /etc/config/firewall

Сделать примерно так:

config defaults
        option syn_flood '1'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'

config include
        option path '/etc/firewall.user'

config zone
        option name 'newzone'
        option input 'ACCEPT'
        option forward 'ACCEPT'
        option output 'ACCEPT'
        option masq '1'
        option network '3G lan'
Усиления 3G сигнала на модеме.

Для того чтобы увеличить сигнал 3G модема нужно собрать антенну Харченко.
Обычно, популярные 3G модемы работают на частотах от 800 до 2100 МГц.

Делается это просто.
Нам потребуется:

  • Провод RG6U (толстый белый для антенн – на нем меньше всего затухания) метров 6
  • Коннектор на него
  • Кусок медной проволоки от 1 до 4 мм толщиной ( у меня 1.5)
  • Колпачок от пены для бритья.
  • Паяльник, припой, канифоль и немного навыков работы с ними.
  • Кусок фанерки (120мм на 134мм) и фольга. Либо не травленая плата, покрытая медью с одной стороны.

Начнем.

  • Берем кусок нашей проволоки и сгибаем его в два квадрата, как показано на рисунке. Сторона квадрата должна быть 53мм
  • Концы двух квадратов спаиваем вместе, чтобы получилась сплошная конструкция, наносим припой также на противоположный угол

image

  • Антенный провод зачищаем и надеваем на него коннектор, делаем сердцевину провода так чтобы она выглядывала из коннектора на сантиметр
  • Припаиваем сбоку к телу коннектора кусочек сердцевины провода ( так как не всегда удается припаять оплетку провода с помощью канифоли)
  • После этого припаиваем оба штырька, идущие от коннектора к нашим квадратам

image

  • Теперь делаем рефлектор для лучшего приема — берем нашу фанерку 120 на 135 мм и оборачиваем ее в фольгу, делаем в середине дырку под провод.
  • Сам каркас антенны из проволоки должен находиться над рефлектором на расстоянии 35мм, для этого берем колпачок от пены для бриться или что-то похожее. Он по высоте 4.5 см, поэтому вырезаем в нем пазы в 1 см, чтобы антенна была от рефлектора на нужном расстоянии.

image

  • Сзади всей этой конструкции подставляем рефлектор, сделанный нами ранее и получается готовая антенна:

image

Следующим шагом нужно припаять другой конец провода к модему:
Вскрываем корпус модема.

image

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

image

Интересно, что этот разъём недоступен без разборки корпуса, то есть почти все обладатели этого модема об этом разъёме даже не подозревают. Пусть он остаётся на месте, он нам не нужен и нисколько не мешает. А мешает нам внутренняя антенна:

image

Антенна вытравлена прямо на плате, и нам необходимо её отключить. Для этого сначала выкусываем SMD-конденсатор, предназначенный для резонансной согласовки антенны. Потом небольшой фрезой, зажатой в дрель, делаем пропил по антенне, оставляя только небольшую площадку для припайки кабеля. Разрез делаем неглубоко, так как печатная плата многослойная. Прозваниваем тестером, успешно ли прошла «ампутация» и нет ли КЗ между площадкой под припайку кабеля и отрезанной антенной. Кстати, иногда эта площадка может иметь КЗ на землю – таковы особенности архитектуры некоторых модемов. Если бы мы не отрезали внутреннюю антенну, то после подключения внешней антенны сигнал бы делился между ними, возникло бы рассогласование и ничего бы не получилось.

image

Припаиваем кабель к модему. Паяем быстро, точно и аккуратно, не перегреваем плату. Центральную жилу припаиваем на площадку, оставшуюся от внутренней антенны; оплётку припаиваем к любому месту, являющемуся землёй и расположенному как можно ближе к площадке с припаянной центральной жилой.

image

image

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

На этом все.

Источники:

  1. Антенна 3G своими руками для Huawei E1550 и других – 2100 mHz
  2. Ускорим 3G модем при помощи внешней антенны
  3. OpenVPN клиент на роутере TP-Link TL-MR3020 с OpenWRT
  4. Настраиваем OpenVPN сервер на подключения клиентов
  5. Openvpn-клиент на OpenWRT (tap)

Автор: teimur

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js