By
unlifer
Здравствуйте.
Вдруг кому-то пригодится.
Возникла такая ситуация: периодически подвисала IP-камера Beward BD137-P, имеющая белый IP-адрес. Установлена в 20 км. Периодически приходилось договариваться с местной управляющей компанией заранее, искать машину, ехать, ждать подолгу освободившегося сотрудника, чтобы открыл все двери, перезапускать её по питанию (переменный ток 24В).
Было подозрение на атаки по Интернету, ну, и на грозы.
Задал себе задачу: как-то обезопасить это дело и организовать перезагрузку по расписанию.
В качестве аппаратной защиты, понятное дело, грозозащита.
В качестве программной защиты: настройка имеющегося "Фильтра по IP", ну, и, естественно, должны быть отключены всякие UPnP, SNMP и т.д., должен быть сложный пароль, а также, по возможности, сменены стандартные порты на другие.
Внимание: если делаете IP-фильтрацию на камере, то сначала определитесь, с каких IP-адресов нужен доступ на камеру, и, в первую очередь, добавьте адрес своего офисного шлюза в список, а только потом включайте фильтр.
Далее задача - перезагрузка по расписанию. На самой камере настроек соответственно не оказалось, программное обеспечение даже функций перезагрузки либо не имеет, либо имеет такую функцию, но только без расписания и только в рамках локальной сети.
Написал в тех. поддержку. Ответили. Решение такое:
Работает только из-под Windows, расписание добавить в стандартном планировщике и, собственно, bat'ник написать следующего содержания (и выслали пример):
@echo off
cd \
cd "Program Files"
cd "Internet Explorer"
iexplore.exe http://1.1.1.1/cgi-bin/admin/restart.cgi
exit
Естественно, передача URL посредством HTTP-протокола совсем не решение в рамках работы через Интернет. Ибо отправляет пару "логин-пароль" в чистом виде - хорошая находка для шпиона.
Как решаем!? Заходим на камеру, идём в "Безопасность" и находим там HTTPS и создаём там сертификат, заполнив все строчки английскими буквами (естественно, в этих буквах должен содержаться хоть какой-то смысл ). Всё: теперь можно заходить на камеру по HTTPS протоколу.
Заходим на камеру через web-интерфейс по HTTPS. Браузер IE естественно ругается на самоподписанный сертификат: во-первых, потому что IE не знает такого сертификата, во-вторых, сертификат создаётся на доменное имя, а не на IP-адрес.
Решение: добавляем сертификат в доверенные и отключаем галочку "Предупреждать о несоответствии адреса сертификата" в "Свойства браузера - Дополнительно - Параметры".
По сути bat'ник должен получиться такой:
@echo off
cd \
cd "Program Files"
cd "Internet Explorer"
iexplore.exe https://user:password@1.1.1.1/cgi-bin/admin/restart.cgi
exit
, где 1.1.1.1 - адрес нашей камеры.
Но не тут то было: есть ещё один подводный камень: IE версии 10 ни в какую не принимал подобного плана URL. В Интернете искал решение, но так и не нашёл. Правки реестра Windows и прочие бубны не работали, совсем стороннее и непроверенное ПО использовать не хотелось.
Таки нашёл решение: Firefox.
Опять же, Firefox тоже сругнулся на сертификат. Добавляем адрес нашей камеры в Исключения.
Итоговое решение:
@echo off
cd \
cd "Program files (x86)"
cd "Mozilla Firefox"
start firefox.exe https://user:password@1.1.1.1/cgi-bin/admin/restart.cgi
exit
Но даже при наличии сохранённого пароля в самом браузуре, при наличии пароля в URL и при добавленном сертификате в исключениях, Firefox постоянно спрашивал подтверждения для "авторизации на сайте".
Судя по форумам в Интернете, правда, совсем мало написано и довольно сумбурно, это защита от фишинговых атак, но могу и ошибаться.
Отключается сие дело следующим образом (если есть сомнения в необходимости такого решения - не заставляю делать это):
В адресной строке браузера набираем about:config, жмём Enter, соглашаемся с тем, что "будем осторожны", и видим кучу настроек.
Ищем свободное место на странице с настройками (в самом низу страницы), кликаем правой кнопкой мыши, выбираем "Создать - Целое", в первом всплывающем окошке вводим параметр network.http.phishy-userpass-length , во втором - значение 100
Для написания данного материала использовал информацию от Beward и из этой статьи:
http://adugin.ru/834.html#more-834
Есть ещё один подводный камень, я бы даже сказал - камушек : при работе bat'ника Firefox не закрывался после "отработки". Но есть вероятность, что из-за того, что он у меня уже был открыт с кучей вкладок.
Если bat'ник будет отрабатывать также и при закрытых окнах браузера (данное условие пока не проверял), то можно дополнить bat'ник (закрытием браузера по истечении, например, 15 секунд):
@echo off
cd \
cd "Program files (x86)"
cd "Mozilla Firefox"
start firefox.exe https://user:password@1.1.1.1/cgi-bin/admin/restart.cgi
timeout 15
taskkill /im firefox.exe
exit
Внимание: если у Вас открыты вкладки в браузере Firefox, то по команде taskkill всё закроется.
ПС. Есть и минус в данном решении (но, опять же, пока не проверен) - скорее всего, если отвалится web-интерфейс на камере, то работать данное решение не будет.