Pull to refresh
44
0
Send message

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

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

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

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

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


Читать дальше →
Total votes 40: ↑40 and ↓0 +40
Comments 37

10 приёмов работы в терминале Linux, о которых мало кто знает

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

Читать дальше →
Total votes 120: ↑95 and ↓25 +70
Comments 108

SecureLogin  —  забудьте о паролях

Reading time 3 min
Views 9.3K

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

Читать дальше →
Total votes 23: ↑11 and ↓12 -1
Comments 17

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

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

Что такое inotify


Inotify — это подсистема ядра Linux, которая позволяет получать уведомления об изменениях в файловой системе. Т.е. простыми словами — эта штука дает нам информацию о создании или изменении любого файла или директории в используемой файловой системе.
Inotify появилась в ядре аж в версии 2.6.13 и прошла проверку временем. Для ее использования написано несколько утилит, работу с одной из которых мы и рассмотрим.
Читать дальше →
Total votes 68: ↑66 and ↓2 +64
Comments 51

Gixy — open source от Яндекса, который сделает конфигурирование Nginx безопасным

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



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

— быть простым;
— но расширяемым;
— с возможностью удобного встраивания в процессы тестирования;
— неплохо бы уметь резолвить инклюды;
— и работать с переменными;
— и про регулярные выражения не забыть.
Читать дальше →
Total votes 112: ↑112 and ↓0 +112
Comments 18

Любовь и криптография

Reading time 8 min
Views 13K

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


image

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

В 2016 году, через несколько лет после того, как начался наш простой и приятный любовный роман, мы столкнулись с проблемой. Мы решили жить вместе, и решили, что я эмигрирую в Европу. Но для этого нам нужно было доказать государственным службам прочность наших отношений. Инструкция по тому, как это делается, тяготела к современным формам взаимоотношений: связи в соцсетях, электронные письма, чаты, фотографии счастливой парочки. Он прочёл эти инструкции и показал их мне. Мы засмеялись. Наши взаимоотношения практически не оставили следов в цифровом мире. У нас ничего такого не было.
Читать дальше →
Total votes 27: ↑22 and ↓5 +17
Comments 24

NGINX: Перехват ошибок 5хх с помощью отладочного сервера

Reading time 6 min
Views 23K

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


image

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

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

Для облегчения процесса поиска и отладки могут быть использованы некоторые полезные приёмы в случае, когда NGINX используется для проксирования или балансировки приложения. В этой статье будет рассмотрено особое использование директивы error_page в применении к типичной инфраструктуре приложения с проксированием через NGINX.
Читать дальше →
Total votes 45: ↑45 and ↓0 +45
Comments 4

Мониторим S.M.A.R.T. в Zabbix

Reading time 11 min
Views 37K
Для тех кто использует Zabbix, и хочет научится делать свои шаблоны и мониторить не стандартные системы (которых еще нет в Zabbix), а также,
кому нужен расширенный мониторинг S.M.A.R.T., и кого не устроили уже существующие шаблоны, прошу под кат.
Читать дальше →
Total votes 14: ↑12 and ↓2 +10
Comments 0

Еще одна «критическая» «уязвимость» «VPN» и почему Port Fail — ерунда

Reading time 7 min
Views 44K
Утро 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
Читать дальше →
Total votes 71: ↑66 and ↓5 +61
Comments 9

Исследование переменных Mikrotik. Скрипт обновления Dynamic DNS записей FreeDNS.afraid.org

Reading time 10 min
Views 31K
Я использую Mikrotik в качестве домашнего и офисного маршрутизатора, и в целом система очень нравится. RouterOS имеет широкие возможности, которые покрывают 90% моих задач, если чего-то недостает, то можно «дописать» функционал с помощью внутренних скриптов. Но когда начинаешь писать более-менее вменяемый скрипт или пытаешься понять и применить чужой рецепт, становятся заметны очертания подводной части айсберга, всплывают странные особенности языка.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 3

Linux-контейнеры дома: зачем и как

Reading time 8 min
Views 120K



Рассуждения


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

Дома, на личных компьютерах многие используют виртуальные машины: в основном, пожалуй, Virtualbox. Как правило, для того, чтобы работая под Linux, иметь под рукой Windows или наоборот. Однако, при наличии множества родственных Linux-операционок, я стал замечать, что использование виртуальных машин — это, мягко говоря, нерационально.
Читать дальше →
Total votes 64: ↑64 and ↓0 +64
Comments 84

Клавиатура для профессионалов: всё об UHK по-русски

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

Читать дальше →
Total votes 45: ↑39 and ↓6 +33
Comments 167

Работа с Ansible — задачи с несколькими неизвестными

Reading time 5 min
Views 18K
Гуглил информацию по Ansible, наткнулся на статью на Хабре. Прочитал и сильно удивился: ведь можно сделать красивее! Если вы заинтересованы — добро пожаловать под кат!
Углубиться
Total votes 14: ↑13 and ↓1 +12
Comments 6

Лечим синдром двойного клика

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


Поможем мышке!
Total votes 44: ↑35 and ↓9 +26
Comments 107

Asterisk. Начало

Reading time 10 min
Views 152K
На написание этой статьи меня побудило практически полное отсутствие how-to по настройке Астериска, с понятными новичку примерами. В сети можно найти кучу информации по настройке IVR, по настройке авторизации SIP-пользователей через LDAP, мануалов по созданию HA-кластеров с Астерисками внутри, etc., но нет ни одной статьи о том, как завести его с нуля, да и еще с примерами. Практически везде предлагается сразу же использовать все возможности, которые предлагает Астериск, а если убрать часть функционала, предлагаемого в мануале, то в большинстве случаев это приведет к получению неработоспособной конструкции. Эта статья — результат хождения по граблям… чтения мануалов. Если вы находитесь в такой же ситуации, что и я пару лет назад — добро пожаловать под кат.
Читать дальше →
Total votes 25: ↑22 and ↓3 +19
Comments 40

Чистим интернет от назойливой рекламы (AD Blocker для MikroTik)

Reading time 6 min
Views 141K


Данная статья является логическим завершением небольшой дискуссии с тов. 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), функционал которого накладывает некоторые ограничения? Под катом вы узнаете каким образом удалось успешно "сконвертировать" файл хостов в пригодный для него формат, как автоматизировать это дело и что для хабралюдей в качестве бонуса был создан небольшой сервис как раз для автоматизации этого процесса (маленький, абсолютно бесплатный и с открытыми исходниками).
Читать дальше →
Total votes 27: ↑26 and ↓1 +25
Comments 63

Богатый, разнообразный, свободный веб, который я так любил, за годы, проведенные мной в Иранской тюрьме просто умер. Почему никто не остановит это?

Reading time 13 min
Views 86K
image

Семь месяцев назад, сидя за столом на кухне в своей старенькой квартире, расположенной в оживленном районе Тегерана, я повторил то, что уже делал тысячи раз. Открыв ноутбук, я разместил очередную запись в своем блоге. Это была первая запись за последние шесть лет — мое сердце разрывалось.
Читать дальше →
Total votes 116: ↑96 and ↓20 +76
Comments 141

Vim по полной: Введение

Reading time 5 min
Views 70K
Привет, хабраюзер!

Вот уже второй год я активный пользователь и поклонник редактора 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», так как статья больше расчитана на опытных пользователей, нежели на новичков.

Готов? Вперед под кат!
Total votes 52: ↑49 and ↓3 +46
Comments 86

Как определить поддельную Micro SD флеш карту

Reading time 8 min
Views 175K
Micro SD подделки

Предисловие


В последнее время Micro SD карты становятся всё более популярны. По этому поводу появляется всё больше продавцов, готовые на этой почве поживиться обманом и разными уловками на эту тему.
Понадобилась мне как-то Micro SD карта ёмкостью 64ГБ для небольшого проекта на Raspberry Pi. Но когда я стал искать что-то подходящее на eBay, то с удивление обнаружил, что подавляющее число продавцов выставляют откровенные подделки. Даже на Амазоне ситуация была не очень привлекательна в этом плане. На картинке выше все карты являются подделками.

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

Обещаю слайды.
Много слайдов. Трафик. Без SMS.
Total votes 50: ↑49 and ↓1 +48
Comments 130

NGINX изнутри: рожден для производительности и масштабирования

Reading time 8 min
Views 145K
NGINX вполне заслуженно является одним из лучших по производительности серверов, и всё это благодаря его внутреннему устройству. В то время, как многие веб-серверы и серверы приложений используют простую многопоточную модель, NGINX выделяется из общей массы своей нетривиальной событийной архитектурой, которая позволяет ему с легкостью масштабироваться до сотен тысяч параллельных соединений.

Инфографика Inside NGINX сверху вниз проведет вас по азам устройства процессов к иллюстрации того, как NGINX обрабатывает множество соединений в одном процессе. Данная статья рассмотрит всё это чуть более детально.
Поехали!
Total votes 93: ↑93 and ↓0 +93
Comments 32

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity