Pull to refresh
4
0
Евгений @skey

Разработчик

Send message

Опыт маскировки OpenVPN-туннеля с помощью obfsproxy

Reading time9 min
Views104K
Примечание: приведённая в статье информация во многом устарела, и предназначена скорее для общего ознакомления. Сейчас можно попробовать использовать утилиты вроде ptproxy для создания туннеля с помощью любого актуального pluggable transport для Tor.

Преамбула


В связи с наметившимися тенденциями решил я обфусцировать свой скромный OpenVPN-туннель, просто чтобы набить руку — мало ли пригодится…

Дано: дешевая VPS с белым IP, работающая под Ubuntu Trusty Server Edition и служащая OpenVPN сервером.
Требуется: по-возможности скрыть OpenVPN туннель, желательно без изобретения велосипедов.
Ну и что дальше?
Total votes 32: ↑32 and ↓0+32
Comments37

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

Reading time10 min
Views322K
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

Не тратьте своё время на дерьмовую работу в стартапе

Reading time21 min
Views73K
Под катом перевод огромной статьи, написанной Майклом Чёрчем и посвящённой стартапам. Статья вызвала необыкновенное бурление… мнений, скажем так, на разных сайтах и агрегаторах, поэтому я решил её перевести на русский и посмотреть на реакцию. Текст ОЧЕНЬ длинный, но также и очень интересный. И несколько пояснений перед чтением: в статье речь идёт об инженере в стартапе, именно с этой позиции всё рассматривать; некоторые финансово-экономические термины, возможно, не очень адекватно удались и я буду рад любым конструктивным поправкам.

То, о чём я хочу рассказать, справедливо для июля 2012 г. 15 лет назад необязательно было так же, и не факт, что будет справедливо через год. Но в данный момент это абсолютно верно для большинства людей в достаточной степени, так что я считаю обязанным высказаться. Нынешний мир ИК-стартапов (ИК=инвестиционный капитал / venture capital) — я его нежно называю ИК-стан — является, мягко говоря, тотально напрасной тратой времени для большинства вовлечённых людей.
Читать дальше →
Total votes 238: ↑221 and ↓17+204
Comments77

О глупости умных людей

Reading time3 min
Views344K


Для затравки — простая математическая загадка. Бейсбольный мяч и бита вместе стоят 1 доллар и 10 центов. При этом бита стоит на 1 доллар дороже мяча. Сколько стоит мяч?
Читать дальше →
Total votes 179: ↑155 and ↓24+131
Comments347

Управляем шаговым электродвигателем с помощью драйвера

Reading time4 min
Views12K
Что такое шаговый электродвигатель?

Я его буду называть ниже просто “мотор”, для краткости.


Расскажу кратко, более подробно про него можно прочитать в википедии или тут.
Самый простой вариант:
Есть четыре электромагнитные катушки A, B, A’, B’. Если по ним пропускать ток — они становятся магнитами (катушки А и В активны при “прямом” направлении тока, A’ и B’ — при “обратном”).
Есть колесо с зубчиками (например, зубчик один — стрелка).
Зубчик притягивается к той катушке, по которой пропускают ток. Таким образом, если последовательно включать ток в катушках, то стрелка будет совершать вращательное движение.
Чтобы сделать это движение более плавным, можно добавлять зубчики, можно катушки, а можно и то и другое — принцип остаётся тот же, меняется только тяга и угол поворота за один вкл/выкл.
Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments30

Открытые прошивки для DSLR Canon

Reading time3 min
Views89K
Уже давно фотоаппараты являются, по сути, специализированными компьютерами. Например, в устройствах фирмы Canon используется процессор ARM и операционная система DRYOS. Естественно, у энтузиастов возникла идея модификации программной части этих фотоаппаратов. Хочу обрадовать обладателей устройств фирмы Canon серий 1100D, 500D, 550D, 600D, 50D, 60D, 5D Mark II. Теперь вы можете прошить свой аппарат, улучшив его функциональность. Получить устройство, которое обладает возможностями, включаемыми только в дорогую профессиональную фото и видеотехнику. А может быть, вооружившись ARM-Toolchain, разработать новые функции.
Читать дальше →
Total votes 74: ↑73 and ↓1+72
Comments88

Бельгийцы победили в конкурсе на лучшее видео с «умными» роботами

Reading time1 min
Views958


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

Читать дальше →
Total votes 61: ↑59 and ↓2+57
Comments38

Ричард Фейнман: удовольствие делать открытия

Reading time1 min
Views11K


Первая часть программы Horizon (BBC, 1981) с Ричардом Фейнманом. О красоте, об отце, о названиях и именах, об алгебре, о наблюдениях и униформе. Это интервью во многом пересекается с книгой "Вы, конечно, шутите, мистер Фейнман", поэтому по большей части монолог касается жизни ученого, его взгляде на жизнь и тому, как такой взгляд развился и кто на него повлиял.
Читать дальше →
Total votes 177: ↑170 and ↓7+163
Comments30

Adobe Profiler Fail

Reading time3 min
Views19K
Доброго вечера всем хабравчанам. Я долго думал как назвать данный пост и решил назвать первым, что придет на ум. В принципе данное название почти полностью описывает то, о чем хочу рассказать. А расскажу я о том, как можно легко и просто вносить изменения в абсолютно любой просматриваемый вами swf файл без декомпиляции.


И так начнем. Нашим подопытным будет плеер YouTube.

Читать дальше →
Total votes 117: ↑106 and ↓11+95
Comments106

Обход встроенной защиты PIC-микроконтроллеров

Reading time5 min
Views101K
В комментариях к недавнему топику о вскрытии процессора была упомянута статья о том, как удалось обойти встроенную защиту от чтения прошивки микроконтроллера (т.н. Fuse-биты). Мне она понравилась, ниже — перевод с некоторыми дополнениями и пояснениями.

Взлом МК PIC18F1320


Я подумал, что было бы неплохо попробовать что-нибудь из тех техник взлома микроконтроллеров семейства PIC, о которых я слышал. Обычно PIC-микроконтроллеры имеют некоторое количество так называемых fuse-бит, которые служат для защиты от чтения или модификации каких-то частей памяти. Однако бывают случаи, когда возникает необходимость прочитать содержимое уже запрограммированного и защищенного контроллера (на законных основаниях). Типичный пример — потеря компанией технической документации на устройство, либо увольнение тех людей, которые изначально разрабатывали защищенную прошивку микроконтроллера. Такое так же часто случается, когда компания хочет обновить линейку своих продуктов.
Ну, сами понимаете, есть еще некоторые ситуации, когда такие навыки могут пригодиться.


Читать дальше →
Total votes 60: ↑58 and ↓2+56
Comments44

Оптимизируем LIMIT offset

Reading time2 min
Views82K
Везде, где используется LIMIT offset для больших таблиц, рано или поздно начинаются тормоза. Запросы вида

SELECT * FROM test_table ORDER BY id LIMIT 100000, 30

могут выполнятся очень долго. Например, в моем случае, на одном из сайтов кол-во комментариев перевалило за 200к и постраничная навигация по комментариям начала ощутимо тормозить, а в mysql-slow.log все чаще стали попадать запросы с временем выполнения 3-5сек.
Читать дальше →
Total votes 77: ↑61 and ↓16+45
Comments30

Сетевое программирование для разработчиков игр. Часть 3: виртуальные соединения поверх UDP

Reading time9 min
Views40K
От переводчика: Это перевод третьей статьи из цикла «Networking for game programmers». Мне очень нравится весь цикл статей, плюс всегда хотелось попробовать себя в качестве переводчика. Возможно, опытным разработчикам статья покажется слишком очевидной, но, как мне кажется, польза от нее в любом случае будет.
Первая статья — http://habrahabr.ru/post/209144/
Вторая статья — http://habrahabr.ru/post/209524/



Виртуальные соединения поверх UDP


Введение

Привет. Меня зовут Гленн Фидлер и я приветствую вас в третьей статье из цикла “Сетевое программирование для разработчиков игр”.

В предыдущей статье мы разобрались, как отправлять и принимать пакеты, используя протокол UDP.

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


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

Но сначала, нам нужно более плотно разобраться, как работает интернет.
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments5

Как запустить программу без операционной системы: часть 5. Обращение к BIOS из ОС

Reading time15 min
Views51K

В самой первой части нашей серии «Как запустить программу без операционной системы» мы остановились на том, что загрузили ядро с помощью GRUB’а и распечатали на экран классический “Hello World!”. Теперь мы покажем, как можно использовать прерывания BIOS’а в ядре ОС. А для начала — рассмотрим, что же такое прерывания BIOS’а, для чего они используются, и почему возникают проблемы с их вызовом.
Читать дальше →
Total votes 71: ↑68 and ↓3+65
Comments4

Изобретаем JPEG

Reading time28 min
Views173K

Вы правильно поняли из названия, что это не совсем обычное описание алгоритма JPEG (формат файла я подробно описывал в статье «Декодирование JPEG для чайников»). В первую очередь, выбранный способ подачи материала предполагает, что мы ничего не знаем не только о JPEG, но и о преобразовании Фурье, и кодировании Хаффмана. И вообще, мало что помним из лекций. Просто взяли картинку и стали думать как же ее можно сжать. Поэтому я попытался доступно выразить только суть, но при которой у читателя будет выработано достаточно глубокое и, главное, интуитивное понимание алгоритма. Формулы и математические выкладки — по самому минимуму, только те, которые важны для понимания происходящего.

Знание алгоритма JPEG очень полезно не только для сжатия изображений. В нем используется теория из цифровой обработки сигналов, математического анализа, линейной алгебры, теории информации, в частности, преобразование Фурье, кодирование без потерь и др. Поэтому полученные знания могут пригодиться где угодно.

Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.

Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
Читать дальше →
Total votes 356: ↑354 and ↓2+352
Comments70

MPEG-DASH в nginx-rtmp-module: живое видео в браузере без флеша

Reading time6 min
Views58K

Что такое MPEG-DASH


MPEG-DASH — технология нового поколения, позволяющая вещать адаптивный видео-поток. Данные разбиваются на фрагменты и передаются клиенту по протоколу HTTP. Это позволяет надежно передавать видео через существующую HTTP-инфрастуктуру, преодолевать прокси-сервера, а также безболезненно переносить проблемы с сетью, изменения сетевых адресов итд.
DASH — Dynamic Adaptive Streaming over HTTP. Стандарт DASH ISO/IEC 23009-1:2012 был разработан группой MPEG в 2011 году
Технология MPEG-DASH в целом аналогична другой известной технологии HLS (HTTP Live Streaming), разработанной компанией Apple и широко используемой на мобильных устройствах с iOS и Android. Поток представлен в виде небольших по длительности фрагментов и плейлиста (манифеста), содержащего метаданные потока и ссылки на фрагменты.

Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments25

SSH-туннели — пробрасываем порт

Reading time2 min
Views429K
Не всегда есть возможность, да и не всегда надо, строить полноценный туннель с интерфейсной парой адресов. Иногда нам нужно лишь «прокинуть» вполне определённые порты.

Тут важно понимать, что туннель можно организовать как изнутри сети, к ресурсам которой вы хотите получить доступ, на внешний ssh-сервер. Также можно организовать туннель с хоста в Интернете на пограничный ssh-сервер сети, чтобы получить доступ к внутренним ресурсам.
Читать дальше →
Total votes 93: ↑68 and ↓25+43
Comments80

Декодируем GSM с RTL-SDR за 30$

Reading time4 min
Views125K
Доброе время суток, Хабр!

Мы живем в удивительное предсингулярное время. Технологии развиваются стремительно. То, что несколько лет назад казалось фантастикой, сегодня становится реальностью. Удивительно, но сейчас при наличии компьютера с простым ТВ-тюнером можно принимать координаты самолетов и кораблей, спутниковые снимки, данные метеозондов.
Я не являюсь специалистом в области информационной безопасности, все операции были проделаны исключительно в целях обучения. В данном тексте речь пойдет о том, как произвести декодирование (не дешифрование) GSM-трафика.
Читать дальше →
Total votes 49: ↑43 and ↓6+37
Comments20

Linux Kernel EFI Boot Stub или «Сам себе загрузчик»

Reading time10 min
Views77K
UEFI Tux Logo

Введение


Прочитав недавнюю статью Загрузка ОС Linux без загрузчика, понял две вещи: многим интересна «новинка», датируемая аж 2011 годом; автор не описал самого основного, без чего, собственно, и работать ничего не будет в некоторых случаях. Также была ещё одна статья, но либо она уже устарела, либо там опять таки много лишнего и недосказанного одновременно.

А конкретно, был упущен основной момент — сборочная опция ядра CONFIG_EFI_STUB. Так как в последних версиях U(lu/ku/edu/*etc*)buntu эта опция по умолчанию уже включена, никаких подозрений у автора не появилось.
Насколько мне известно, на текущий момент она включена в дистрибутивах указанных версий и выше: Arch Linux, Fedora 17, OpenSUSE 12.2 и Ubuntu 12.10. В комментах ещё упомянули, что Debian с ядром 2.6 умеет, но это не более, чем бэкпорт с последних версий. На этих дистрибутивах пересобирать вообще ничего не нужно! А ведь на других CONFIG_EFI_STUB, скорее всего, либо вообще отсутствует, т. к. опция доступна только с ядра версии 3.3.0 и выше, либо выключена по умолчанию. Соответственно, всё, описанное ниже, справедливо для ядра, собранного с опцией CONFIG_EFI_STUB.

Итак, что же такое Linux Kernel EFI Boot Stub?


Общая информация

А ни что иное, как… «exe-файл»!
Читать дальше →
Total votes 71: ↑69 and ↓2+67
Comments23

Raspberry Pi: измеряем влажность и температуру с помощью DHT11/DHT22

Reading time5 min
Views221K
На Хабре уже публиковалась статья о подключении датчика температуры DS18B20 к Raspberry Pi. В нашем новом проекте, который строится на Raspberry Pi, понадобилось измерять не только температуру, но и влажность. Я расскажу, как подключить недорогие китайские датчики влажности к Raspberry Pi. Просмотрев несколько вариантов различных датчиков, остановился на двух наиболее массовых на рынке датчиков. Это DHT11, который привлек своей ценой $3 (с доставкой) и датчик DHT22 (около $10 с доставкой).
Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments33

Information

Rating
Does not participate
Location
Ростовская обл., Россия
Registered
Activity