• Трансляция h264 видео без перекодирования и задержки

      Не секрет, что при управлении летательными аппаратами часто используется передача видео с самого аппарата на землю. Обычно такую возможность предоставляют производители самих БПЛА. Однако что же делать, если дрон собран своими руками?

      Перед нами и нашими швейцарскими партнёрами из компании Helvetis встала задача транслировать видео в режиме реального времени с web-камеры с маломощного embedded-устройства на дроне по WiFi на Windows-планшет. В идеале бы нам хотелось:

      • задержку < 0.3с;
      • низкую загрузку CPU на embedded-системе (меньше 10% на одно ядро);
      • разрешение хотя бы 480p (лучше 720p).

      Казалось бы, что может пойти не так?


      Читать дальше →
    • 10 приёмов работы в терминале Linux, о которых мало кто знает

      • Translation
      Близкое знакомство с возможностями терминала — один из признаков человека, который хорошо разбирается в Linux. Хотя некоторые вещи запомнить сложно, есть довольно-таки простые, но эффективные приёмы, которые способны повысить качество и скорость работы в терминале. Пожалуй, каждый пользователь Linux рано или поздно обзаводится собственным списком ценных мелочей. Надеемся, некоторых из тех десяти приёмов работы в командной строке Linux, которыми мы хотим с вами поделиться, попадут в ваш личный список полезных команд.

      Читать дальше →
    • Let's Encrypt начнёт выдавать wildcard-сертификаты в январе 2018 года

        Одним из ограничений бесплатного центра сертификации Let's Encrypt является то, что он не выдаёт сертификаты типа wildcard на поддомены (см. «Полное руководство по переходу с HTTP на HTTPS»). Такие сертификаты покрывают основной домен, а также неограниченное количество поддоменов (*.example.com ) — например, example.com, www.example.com, mail.example.com, ftp.example.com и т. д. Некоторые центры сертификации продают такие сертификаты от $475 в год. Let's Encrypt будет выдавать их бесплатно.

        Сервис Let's Encrypt предоставляется организацией Internet Security Research Group (ISRG). Вчера она сообщила приятную новость: wildcard-сертификаты начнут выдавать с января 2018 года! Такие сертификаты были одной из самых запрашиваемых фич, о которой упоминали пользователи. И в самом деле, пользоваться подстановочными знаками (*.example.com) в некоторых случаях гораздо удобнее, чем перечислять каждый домен в отдельности, что разрешают стандартные DV-сертификаты Let's Encrypt. В некоторых случаях это упрощает переход на HTTPS, а ведь всеобщий переход на шифрование — и есть главная цель проекта Let's Encrypt, который действует для общественного блага и живёт на пожертвования. В конечном итоге, 100% веба должно быть зашифровано нашими совместными усилиями.
        Читать дальше →
      • SecureLogin  —  забудьте о паролях

        • Translation

        В начале июня сотрудник компании Sakurity Егор Хомяков (Egor Homakov) написал пост о созданной им технологии SecureLogin, являющейся заменой парольной аутентификации. Несмотря на то что Егор наверняка прекрасно говорит и пишет по-русски, мы не смогли найти русскоязычного варианта и решили сделать перевод оригинальной статьи. Результат вы можете найти под катом.

        Читать дальше →
      • Inotify или автоматизация рутинных операций с помощью incron

          До сих пор на хабре еще никто не упоминал о такой удобной подсистеме ядра linux, как inotify и использовании ее в автоматизации работы системного администратора. Хотелось бы восполнить этот пробел.

          Что такое inotify


          Inotify — это подсистема ядра Linux, которая позволяет получать уведомления об изменениях в файловой системе. Т.е. простыми словами — эта штука дает нам информацию о создании или изменении любого файла или директории в используемой файловой системе.
          Inotify появилась в ядре аж в версии 2.6.13 и прошла проверку временем. Для ее использования написано несколько утилит, работу с одной из которых мы и рассмотрим.
          Читать дальше →
        • Gixy — open source от Яндекса, который сделает конфигурирование Nginx безопасным

            Nginx, однозначно, один из крутейших веб-серверов. Однако, будучи в меру простым, довольно расширяемым и производительным, он требует уважительного отношения к себе. Впрочем, это относится к почти любому ПО, от которого зависит безопасность и работоспособность сервиса. Признаюсь, нам нравится Nginx. В Яндексе он представлен огромным количеством инсталляций с разнообразной конфигурацией: от простых reverse proxy до полноценных приложений. Благодаря такому разнообразию у нас накопился некий опыт его [не]безопасного конфигурирования, которым мы хотим поделиться.



            Но обо всем по порядку. Нас давно терзал вопрос безопасного конфигурирования Nginx, ведь он — полноправный кубик веб-приложения, а значит, и его конфигурация требует не меньшего контроля с нашей стороны, чем код самого приложения. В прошлом году нам стало очевидно, что этот процесс требует серьезной автоматизации. Так начался in-house проект Gixy, требования к которому мы обозначили следующим образом:

            — быть простым;
            — но расширяемым;
            — с возможностью удобного встраивания в процессы тестирования;
            — неплохо бы уметь резолвить инклюды;
            — и работать с переменными;
            — и про регулярные выражения не забыть.
            Читать дальше →
          • Любовь и криптография

            • Translation

            Как безопасное программное обеспечение и шифрование помогли возникнуть старомодному роману


            image

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

            В 2016 году, через несколько лет после того, как начался наш простой и приятный любовный роман, мы столкнулись с проблемой. Мы решили жить вместе, и решили, что я эмигрирую в Европу. Но для этого нам нужно было доказать государственным службам прочность наших отношений. Инструкция по тому, как это делается, тяготела к современным формам взаимоотношений: связи в соцсетях, электронные письма, чаты, фотографии счастливой парочки. Он прочёл эти инструкции и показал их мне. Мы засмеялись. Наши взаимоотношения практически не оставили следов в цифровом мире. У нас ничего такого не было.
            Читать дальше →
          • NGINX: Перехват ошибок 5хх с помощью отладочного сервера

            • Translation

            Является ли ошибкой ответ 5хх, если его никто не видит? [1]


            image

            Вне зависимости от того, как долго и тщательно программное обеспечение проверяется перед запуском, часть проблем проявляется только в рабочем окружении. Например, race condition от параллельного обслуживания большого количества клиентов или исключения при валидации непредвиденных данных от пользователя. В результате эти проблемы могут привести к 5хх ошибкам.

            HTTP 5хх ответы зачастую возвращаются пользователям и могут нанести ущерб репутации компании даже за короткий промежуток времени. В то же время, отладить проблему на рабочем сервере зачастую очень непросто. Даже простое извлечение проблемной сессии из логов может превратиться в поиск иголки в стоге сена. И даже если будут собраны все необходимые логи со всех рабочих серверов — этого может быть недостаточно для понимания причин проблемы.

            Для облегчения процесса поиска и отладки могут быть использованы некоторые полезные приёмы в случае, когда NGINX используется для проксирования или балансировки приложения. В этой статье будет рассмотрено особое использование директивы error_page в применении к типичной инфраструктуре приложения с проксированием через NGINX.
            Читать дальше →
            • +45
            • 15.1k
            • 4
          • Мониторим S.M.A.R.T. в Zabbix

            • Tutorial
            Для тех кто использует Zabbix, и хочет научится делать свои шаблоны и мониторить не стандартные системы (которых еще нет в Zabbix), а также,
            кому нужен расширенный мониторинг S.M.A.R.T., и кого не устроили уже существующие шаблоны, прошу под кат.
            Читать дальше →
          • Еще одна «критическая» «уязвимость» «VPN» и почему Port Fail — ерунда

              Утро 26 ноября началось для меня с интересной новости — ребята из Perfect Privacy опубликовали информацию об уязвимости Port Fail, которая позволяет раскрывать IP-адрес клиентов VPN-сервисов с функцией проброса портов. Я немного понегодовал из-за того, что ее назвали уязвимостью, т.к. это никакая не уязвимость, а особенность маршрутизации: трафик до IP-адреса VPN-сервера всегда идет напрямую, в обход VPN. Вполне очевидная вещь, подумал я, о которой должен знать любой сетевой администратор. Заметка вменяемая и технически грамотная, придраться можно только к слову vulnerability (уязвимость). Но потом за дело взялись СМИ, и пошло-поехало…

              image

              Критическая уязвимость во всех протоколах VPN на всех операционных системах. У-у-у, как страшно!

              В новости, опубликованной на Geektimes, изначально имевшей желтый заголовок, было сказано о награде в $5000 за найденную «уязвимость» от Private Internet Access — одного из крупнейших VPN-сервисов. «$5000 за типичную, совершенно очевидную любому сетевику вещь?» — подумал я — «Невероятно!», и высказал свое негодование по этому поводу в комментариях, попутно расписав еще одну, не менее очевидную, особенность маршрутизации, с которой сталкивался любой настраивавший работу двух и более интернет-провайдеров на одном компьютере: ответ на входящий запрос не обязательно уйдет через этого же провайдера и с этим же IP, чего запросившая сторона совсем не ожидает. Если мы представим, что вместо второго провайдера у нас VPN-соединение, то отправив запрос на IP-адрес нашего провайдера, при определенных условиях может получиться так, что ответ на наш запрос мы получим с IP VPN-сервера.

              image
              Читать дальше →
              • +61
              • 39.4k
              • 9
            • Исследование переменных Mikrotik. Скрипт обновления Dynamic DNS записей FreeDNS.afraid.org

                Я использую Mikrotik в качестве домашнего и офисного маршрутизатора, и в целом система очень нравится. RouterOS имеет широкие возможности, которые покрывают 90% моих задач, если чего-то недостает, то можно «дописать» функционал с помощью внутренних скриптов. Но когда начинаешь писать более-менее вменяемый скрипт или пытаешься понять и применить чужой рецепт, становятся заметны очертания подводной части айсберга, всплывают странные особенности языка.
                Читать дальше →
                • +11
                • 20.4k
                • 3
              • Linux-контейнеры дома: зачем и как




                  Рассуждения


                  При упоминании словосочетания «контейнерная виртуализация», многим на ум сразу же приходят Virtuozzo и OpenVZ, а также Docker. Ассоциируется же это все, в первую очередь, с хостингом, VPS и другими подобными вещами.

                  Дома, на личных компьютерах многие используют виртуальные машины: в основном, пожалуй, Virtualbox. Как правило, для того, чтобы работая под Linux, иметь под рукой Windows или наоборот. Однако, при наличии множества родственных Linux-операционок, я стал замечать, что использование виртуальных машин — это, мягко говоря, нерационально.
                  Читать дальше →
                • Клавиатура для профессионалов: всё об UHK по-русски

                    Привет, GT! В спорах об эргоромичности тех или иных клавиатур преломлено множество копий, но, кажется, есть одна клавиатура, которую можно по праву назвать ультимативным решением практически любых проблем с «заводскими» эргономичными решениями. Судите сами: угол поворота одной части относительно другой настраивается (причём выставить можно реально любой, хоть 180 градусов). Расстояние между «половинками» — тоже. Кинематика работы свичей — на выбор покупателя. Продуманная до мелочей раскладка. Занимает минимум места на столе. Оптимизирована под слепой десятипальцевый метод ввода. Пригодность к моддину и установке дополнительных акесессуаров. Заинтригованы? Встречайте: Ultimate Hacking Keyboard!

                    Читать дальше →
                  • Лечим синдром двойного клика

                    Жила-была мышь, и звали её Defender MM-525. Стойко тянула она свою мышиную лямку — на ссылки кликала, страницы прокручивала, курсор перемещала. Но однажды случилась беда — вместо одного клика она стала делать два, а то и больше. Бывало, захочешь приостановить видео на ютубе — а оно вместо этого на весь экран открывается. Или выделяешь текст — а в последний момент выделение сбрасывается. Понятно, что дальше так продолжаться не могло.


                    Поможем мышке!
                  • Asterisk. Начало

                    На написание этой статьи меня побудило практически полное отсутствие how-to по настройке Астериска, с понятными новичку примерами. В сети можно найти кучу информации по настройке IVR, по настройке авторизации SIP-пользователей через LDAP, мануалов по созданию HA-кластеров с Астерисками внутри, etc., но нет ни одной статьи о том, как завести его с нуля, да и еще с примерами. Практически везде предлагается сразу же использовать все возможности, которые предлагает Астериск, а если убрать часть функционала, предлагаемого в мануале, то в большинстве случаев это приведет к получению неработоспособной конструкции. Эта статья — результат хождения по граблям… чтения мануалов. Если вы находитесь в такой же ситуации, что и я пару лет назад — добро пожаловать под кат.
                    Читать дальше →
                  • Чистим интернет от назойливой рекламы (AD Blocker для MikroTik)



                      Данная статья является логическим завершением небольшой дискуссии с тов. vvzvlad, которая развернулась под топиком "Чистим домашний интернет от очень назойливой рекламы (Ad's blocker для OpenWRT)", где автор с помощью wget, sed и cron на OpenWRT успешно сливает файлы рекламных хостов, парсит и подсовывает dns-серверу dnsmasq.

                      Переадресовывая клиента при запросе «рекламного» домена, например, на loopback (127.0.0.1 — 127.255.255.255), вместо котента рекламы клиент получит благодатное «ничего» (разумеется, при условии, что у нас не работает локальный веб-сервер который слушает локалхост). Механизм фильтрации довольно старый и не лишен недостатков. Например, нельзя указать маски хостов (*.ad-domain.tld) или «вырезать» рекламу, баннеры которой хостятся на запрашиваемых ресурсах. Но зато не привязан к какому-то либо протоколу и довольно прост в эксплуатации. Более того, если его использовать, например, на домашнем или офисном маршрутизаторе, который используется в качестве DNS сервера, реклама успешно порежется на всех гаджетах, где IP нашей железки прописан первым в качестве DNS сервера.

                      Но что если у нас вместо роутера с кастомной прошивкой используется… MikroTik (RouterOS), функционал которого накладывает некоторые ограничения? Под катом вы узнаете каким образом удалось успешно "сконвертировать" файл хостов в пригодный для него формат, как автоматизировать это дело и что для хабралюдей в качестве бонуса был создан небольшой сервис как раз для автоматизации этого процесса (маленький, абсолютно бесплатный и с открытыми исходниками).
                      Читать дальше →
                    • Чек-лист проверки анонимности сёрфинга

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

                        Главная идея — определить, скрывается пользователь во время сёрфинга в сети или нет, и по возможности узнать его реальный IP адрес. Есть несколько интересных фишек, которые в принципе я нигде не встречал (двусторонний пинг, сопоставление пар DNS leak/ISP).

                        Хотелось иметь под рукой этакий чек-лист, который бы отвечал, «палишься» ты или нет? На данный момент список состоит из 12 методов проверки, о которых ниже и пойдет речь, в том числе о том, как на них не попасться, но сначала о самом простом по порядку.
                        Читать дальше →
                      • Богатый, разнообразный, свободный веб, который я так любил, за годы, проведенные мной в Иранской тюрьме просто умер. Почему никто не остановит это?

                        • Translation
                        image

                        Семь месяцев назад, сидя за столом на кухне в своей старенькой квартире, расположенной в оживленном районе Тегерана, я повторил то, что уже делал тысячи раз. Открыв ноутбук, я разместил очередную запись в своем блоге. Это была первая запись за последние шесть лет — мое сердце разрывалось.
                        Читать дальше →
                      • Vim по полной: Введение

                          Привет, хабраюзер!

                          Вот уже второй год я активный пользователь и поклонник редактора Vim. За это время я прошел путь от двух команд в .vimrc, до файла в несколько килобайт и обратно. Я испробовал очень много плагинов, а так же активно писал собственные, и теперь это мой основной текстовый редактор для работы и отдыха.

                          В этой серии статей я решил поделиться собственными наработками и, возможно, показать, на что может быть способен этот редактор в руках программиста. Серия будет состоять из следующих частей:
                          1. Введение (vim_lib)
                          2. Менеджер плагинов без фатальных недостатков (vim_lib, vim_plugmanager)
                          3. Уровень проекта и файловая система (vim_prj, nerdtree)
                          4. Snippets и шаблоны файлов (UltiSnips, vim_template)
                          5. Компиляция и выполнение чего угодно (vim-quickrun)
                          6. Работа с Git (vim_git)
                          7. Деплой (vim_deploy)
                          8. Тестирование с помощью xUnit (vim_unittest)
                          9. Библиотека, на которой все держится (vim_lib)
                          10. Другие полезные плагины

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

                          Готов? Вперед под кат!