Pull to refresh
16
0

Пользователь

Send message

Телеграм-бот для домашнего видео-наблюдения из подручных материалов

Reading time7 min
Views57K

Disclaimer


Эта статья содержит некоторое количество программного кода, написанного на языке Python. Ввиду того, что автор статьи по профессии является сисадмином, но не программистом — стиль и качество этого кода, могут вызвать проявление неконтролируемых эмоций у профессионалов. Пожалуйста, немедленно прекратите чтение если вид неаккуратного или неоптимального кода может негативно сказаться на вашем психическом состоянии.


Постановка задачи


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



Из всего перечисленного, было решено построить систему домашнего видео-наблюдения с функционалом оповещения о вторжении. В качестве платформы был выбран телеграм-бот. Бот имеет следующие преимущества перед другими возможными реализациями (веб, мобильное приложение):


  • Не требуется установки дополнительного клиентского ПО
  • Серверная часть может работать с приватным IP адресом через NAT, при этом предъявляются минимальные требования к подключению (вплоть до 3G модема)
  • Большая часть инфраструктуры находится на стороне сервис-провайдера, который за меня решил вопросы авторизации, безопасности итп...

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

Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments52

Для ИТ-ишников. Если у вас устают глаза, покраснения, раздражение. Возможно эта статья для вас

Reading time3 min
Views107K


Я с 2004 года работаю в ИТ-сфере. Как и вы я провожу много времени за экраном монитора (даже двух). А если это релиз, дедлайн или срочный вопрос, то время работы за компьютером плавно перерастает в большую часть суток.

Недавно меня спросил один знакомый, как это все выдерживают мои глаза и зрение остается хорошим?! Я всегда отвечаю, что годы тренировок помогают. Думаете это сарказм? Только отчасти:) На самом деле это тренировки.
Читать дальше →
Total votes 42: ↑37 and ↓5+32
Comments98

+500 бесплатных инструментов для запуска вашего стартапа в 2017 году

Reading time40 min
Views155K


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

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

Итак, мы нашли в интернете бесплатные и условно-бесплатные инструменты для роста вашего бизнеса. Когда они дадут вам желаемый результат, вы можете оформить платную подписку.
Читать дальше →
Total votes 74: ↑60 and ↓14+46
Comments26

Программируем Arduino с помощью Sublime + Stino на MacOS

Reading time3 min
Views15K


Хотелось бы поделиться опытом настройки и использования любимых мной программных продуктов по программированию Arduino контроллеров на Mac OS. Многие используют Sublime как хорошую среду программирования, например, добавив пакет Stino можно получить возможность писать код и заливать его в Arduino контроллеры. О том как всё это за 10 минут настроить под Windows написано много мануалов, но вот как заставить работать на Mac OS сказано мало. Если у вас есть Mac и Arduino, добро пожаловать под кат (внимание, много картинок!).
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments8

Nginx: защищаем урл одноразовым паролем

Reading time2 min
Views19K
Появилась задача обезопасить админскую часть на сайте. Причём это надо было сделать без внесения изменений в код самого сайта. Лучшее, что смог я найти — oauth2_proxy и nginx-google-oauth, но они требовали обработку коллбэков. Эти решения мне не понравились и я их отверг.

Пришлось обратиться к одному из модулей nginx и комплектующим для велосипеда.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments14

Тюним память и сетевой стек в Linux: история перевода высоконагруженных серверов на свежий дистрибутив

Reading time10 min
Views94K
image

До недавнего времени в Одноклассниках в качестве основного Linux-дистрибутива использовался частично обновлённый OpenSuSE 10.2. Однако, поддерживать его становилось всё труднее, поэтому с прошлого года мы перешли к активной миграции на CentOS 7. На подготовительном этапе перехода для CentOS были отработаны все внутренние процедуры, подготовлены конфиги и политики настройки (мы используем CFEngine). Поэтому сейчас во многих случаях миграция с одного дистрибутива на другой заключается в установке ОС через kickstart и развёртывании приложения с помощью системы деплоя нашей разработки — всё остальное осуществляется без участия человека. Так происходит во многих случаях, хотя и не во всех.

Но с самыми большими проблемами мы столкнулись при миграции серверов раздачи видео. На их решение у нас ушло полгода.
Читать дальше →
Total votes 110: ↑104 and ↓6+98
Comments73

Безопасное динамическое обновление записей на MS DNS из Linux

Reading time4 min
Views20K

Введение


В процессе настройки клиентов службы AD под управлением ОС Ubuntu Linux, я столкнулся с несвоевременным обновлением записей на DNS сервере средствами Samba, а также с некорректной работой команды «net ads dns register». Что вызывает сопуствующие проблемы при работе с доменными компьютерами.

Например, наличие двух DNS серверов в dhclient.conf приводит к появлению ошибки «ERROR_DNS_GSS_ERROR» после выполнения «net ads dns register -P».

В поисках решения этой проблемы я перечитал много статей и баг-репортов, и наткнулся на статью Warlock_ua «Безопасное динамическое обновление DNS записей в Windows домене из Linux (GSS-TSIG)». Идея показалась мне интересной. Но мне не понравилось решение с созданием отдельной учетной записи пользователя домена, которая имеет права на изменение всех записей DNS-зоны. Во-первых, это потенциально небезопасно. Во-вторых, в Windows уже существуют готовое решение: каждая учетная запись компьютера имеет право изменять свою запись на DNS. Почему бы этим не воспользоваться?

За основу я взял скрипт learn-address.sh от Warlock_ua, и доработал его с учетом своих нужд.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments2

Небольшие полезности для связки GLPI+FusionInventory

Reading time4 min
Views20K
Сколько копий было сломано об эту связку — не счесть. Форум обоих продуктов ломится от вопросов. Но вот ответов, как и вопросов, подобным моим, я там не нашел. Ну или по крайней мере внятных ответов на них.

Вопросов-то, у меня было всего два:
  1. Как заставить изменяться счетчик отпечатанных страниц для сетевых принтеров? FusionInventory внутри себя хранит значение, полученное по SNMP при инвентаризации, а вот основное поле не обновляет.
  2. Как запустить инвентаризацию на бездисковых станциях под управлением Thinstation? Как и в любой не слишком большой компании, денег на лицензирование дают скрипя зубами на всю округу, да и то раз в пятилетку. Как следствие — имеется разномастный парк бездисковых станций, собранных из того, что было под рукой.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments3

HA-Cluster на основе Pacemaker под контейнерную виртуализацию LXC и Docker

Reading time24 min
Views56K
В этой статье я опишу установку и настройку Active/Active кластера на основе Pacemaker, Corosync 2.x и CLVM с использованием разделяемого хранилища. Покажу, как приспособить этот кластер для работы с контейнерами LXC и Docker. Опишу команды для работы с кластером. И припомню те грабли, в которые вляпался, что, надеюсь, облегчит судьбу следующим проходимцам.

В качестве серверных дистрибутивов буду использовать CentOS 7 + epel и актуальные версии пакетов в них. Основной инструмент для работы с Pacemaker-ом будет PCS (pacemaker/corosync configuration system).



Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments16

Диагностика почтовых протоколов

Reading time16 min
Views116K
Эта статья о методах диагностики почтовых протоколов. Она предназначена для начинающих администраторов, желающих больше узнать об инструментах для быстрого тестирования авторизации/отправки/приема почтовых сообщений как сервером, так и клиентом. Но также может служить хорошей памяткой соответствующих команд и для более опытных администраторов.

Материал разбит следующим образом:

1. Введение
2. Примеры сессий
3. Проверка авторизации на сервере (LOGIN, PLAIN, CRAM-MD5), Base64
4. Проверка шифрования SSL/TLS
5. Анализ почтового трафика при помощи tshark. Расшифровка SSL/TLS
6. Ссылки на материалы



Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments6

Настройка репликации в Mysql 5.6

Reading time2 min
Views46K
После выхода mysql 5.6 с его GTID (global transaction identifier) репликация в mysql перестала быть кошмарным сном сисадмина и стала вполне рабочим инструментом. В инете есть некоторое количество информации по этому поводу, но вся она довольно разрозненная и не всегда доступна для понимания. По этому я решил сделать небольшую инструкцию-выжимку, больше для себя, но может и еще кому пригодится.

Читать дальше →
Total votes 18: ↑14 and ↓4+10
Comments27

Как заменить однородный фон прозрачным с помощью Imagemagick

Reading time2 min
Views30K
Бывает, что на сайт загружаются картинки с однородным фоном и возникает потребность в автоматической замене его (фона) на прозрачный.

Часто такая фича нужна для фотографий товаров в интернет-магазине, картинок, которые накладываются на корпоративный фон и других фоток, не портящих дизайн сайта. Вырезать каждую фотку вручную фотошопом довольно грустно, но есть php-методы, с помощью которых это можно «поставить на поток».
image
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments9

Бюджетный многозонный усилитель низкой частоты

Reading time5 min
Views94K
image

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

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

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

Подробности
Total votes 25: ↑23 and ↓2+21
Comments29

Black Swift: использование EJTAG

Reading time13 min
Views14K

Моя предыдущая публикация EJTAG: аттракцион для хакеров хотя и была тепло встречена общественностью, имела некоторые недочёты: к примеру, была продемонстрирована уж слишком низкая производительность передачи по EJTAG (аж целых 2 КБ/с!).
К сожалению, я умудрился привести интерфейс JTAG платы MR3020 в полную негодность (был оторван провод TDI вместе с кусочком SMD-резистора R16). Так как устранить поломку не удалось, то недочёты остались неисправленными.
Несколько дней назад я получил от руководителя проекта Black Swift Дмитрия Жеребкова плату Black Swift Pro с адаптером. Плата Black Swift Pro во многом аналогична MR3020, а значит у меня появилась возможность написать публикацию про EJTAG на Black Swift и устранить прошлые недочёты!
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments14

Делаем скриншоты правильно: практические советы

Reading time8 min
Views188K
Устройство для снимка экрана на первых компьютерах (Command-Shift-3)
Устройство для снимка экрана на первых компьютерах (Command-Shift-3)

Если вы когда-либо делали хелп или мануал для своего приложения, наверняка вы отметили, как неожиданно много времени и сил занимает создание скриншотов.

Ведь кажется, что скриншот — это “секунда работы, Alt+PrintScreen и Ctrl+V!”. Некоторые клиенты удивляются, когда слышат, что скриншот в мануале может стоить и $2 и даже $5.

В этой статье я расскажу, как правильно делать скриншоты, почему это не просто “два клика” и какие подводные камни встречаются на пути неопытного скриншотера. Рассматривайте ее как чеклист или список практических советов для тех, кто документирует ПО. Надеюсь, это поможет вам избежать разочарований и порадовать юзеров красочными понятными картинками.
Читать дальше →
Total votes 81: ↑69 and ↓12+57
Comments76

FreePBX — переадресация с уведомлениями в реальном времени через XMPP

Reading time4 min
Views33K
Есть маленький ИТ-отдел в средних размерах организации с филиальной структурой. Сотрудники ИТ-отдела практически постоянно в разъездах по разным филиалам и не всегда бывают доступны по мобильному телефону. Для удобства сотрудников организации было принято решение сделать единый (легкозапоминающийся) номер для технической поддержки. В случае, если техподдержка занята или просто никого нет на месте — звонок должен переадресовываться на мобильные телефоны инженеров и информация о звонке должна прийти в виде сообщения в Jabber.
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments0

Прототип. От идеи до опытной партии. Литье в силикон

Reading time2 min
Views182K
В прошлой статье я описал мой путь по созданию опытной партии изделия, в ней я литье в силикон отдал на аутсорс. Пока я ждал выполнения моего заказа, потихоньку сам начал осваивать это ремесло. Статья будет полезна тем, у кого допустим есть плата какого-нибудь девайса, но нету красивого корпуса, 3д-печать не подходит по характеристикам, а делать сразу промышленную пресс-форму очень дорого.


Читать дальше →
Total votes 168: ↑166 and ↓2+164
Comments75

VPN везде и всюду: IPsec без L2TP со strongSwan

Reading time10 min
Views321K
image
достаточно сильный лебедь

Если вы когда-либо искали VPN, который будет работать на десктопах, мобильных устройствах и роутерах без установки дополнительного ПО и перепрошивки роутера, вы, вероятно, выбирали между PPTP и L2TP+IPsec. У протокола PPTP имеются проблемы с безопасностью и прохождением через брандмауеры и NAT, так что в 2015 году его уже использовать не стоит, а использование L2TP излишне, т.к. L2 VPN, по моему мнению, для обычного удаленного доступа не нужен практически никогда.

Удивительно, что в интернете не так-то просто можно найти информацию о настройке чего-то помимо L2TP+IPsec в транспортном режиме, учитывая, что это обширный стек протоколов, который можно конфигурировать буквально как душе угодно, поэтому я попытаюсь устранить такое несовершенство мира.

Небольшое введение в мир IPsec

Вообще говоря, не совсем правильно называть IPsec VPN. IPsec не предназначен для построения «виртуальных частных сетей», а создан для шифрования или защиты от подмены передаваемых по IP данных. Это специальный слой поверх IP, который, в зависимости от режима и настроек, работает по-разному. В отличие от привычного VPN, который создает новый интерфейс в системе, на который вы, как это чаще всего бывает, назначаете IP-подсеть из диапазона частных адресов (т.е. создаете новый сетевой сегмент), и через который маршрутизируется трафик в зашифрованном виде, IPsec просто шифрует трафик магическим образом между «внешними» интерфейсами сервера и клиента.
Читать дальше →
Total votes 50: ↑49 and ↓1+48
Comments166

Возможности уличных 3G/4G антенн для повышения скорости передачи данных в мобильных сетях

Reading time3 min
Views51K
На днях представилась возможность протестировать антенны 3G и 4G недалеко от Питера, чем мы и решили воспользоваться.

В нашем распоряжении неплохой сигнал мобильного интернета, но только на втором этаже частного дома, а так как кабинет находится внизу с другой стороны дома, пользоваться мобильными благами было не очень неудобно. Поэтому было решено исследовать возможности современного оборудования, а именно — проверить возможности выносных уличных антенн 3G/4G диапазонов в деле получения более качественного канала связи между ближайшей базовой станцией и USB модемом, затем передать его на Wi-Fi роутер для раздачи, а по кабелю завести в кабинет к основному компьютеру.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments16

Получаем IP-адреса HTTPS-клиентов с HAProxy (frontend) на Nginx (backend) в режимах HTTP и TCP-балансировки

Reading time3 min
Views54K
Довольно часто требуется балансировать нагрузку между несколькими веб-серверами. При этом, как правило, необходимо, чтобы веб-приложения получали реальные IP-адреса клиентов, а не IP балансировщика.

В случае балансировки и терминации HTTP(S)-трафика на HAProxy (Layer 7 [1]) данная задача легко решается добавлением заголовка “X-Real-IP” и его обработкой на Nginx при помощи модуля ngx_http_realip_module [2]. При балансировке TCP-трафика от HTTPS-клиентов и передаче его на веб-сервера напрямую без модификации или терминации (Layer 4 [3]) добавить данный заголовок невозможно, поэтому требуется воспользоваться возможностями, предоставляемыми Proxy Protocol [4, 5, 6].

Рассмотрим оба варианта (балансировка L7 и L4) на примере выдержек из конфигурационных файлов haproxy 1.5.9 и nginx 1.6.2

Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments14

Information

Rating
Does not participate
Location
Албания
Date of birth
Registered
Activity