• Частотный анализ наводок электрической сети в криминалистике

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

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

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

      Любая цифровая запись, сделанная вблизи передающих линий (ЛЭП, провода и даже розетки) оставит в себе след этого шума в аудиозаписи. Однако, его частота не всегда равна точно 50 герцам, на протяжении времени частота незначительно отклоняется на величины порядка нескольких тысячных герца.
      Читать дальше →
    • Корпус для домашнего сервера/NAS



        Многие используют дома NAS. Делают ему jailbreak или устанавливают модифицированную прошивку. Но наступает момент, когда возможностей стандартных NAS начинает не хватать. В этот момент хочется собрать свой NAS, чтобы в нем было установлено производительное железо, экономичное по питанию и все это не шумело. Хочется чтобы это был уже не просто NAS, а полноценный сервер, на который можно возложить дополнительные задачи. Так однажды и я озадачился этой проблемой. Как оказалось, существует не так много вариантов серверных корпусов формата Mini-ITX с возможностью установки четырех hot-swap SATA-дисков. Обзор одного из таких корпусов предлагаю вашему вниманию.

        Читать дальше →
      • Каша из топора или NAS на основе Asus RT-N56U

        image
        Вкратце, что получилось:
        • ADSL 2+ подключение к Интернету
        • Две домашних WiFi 802.11g/n сети — 2.4Ghz и 5Ghz со скоростью более 100 мегабит/с
        • Гигабитное подключение по кабелю
        • Сетевое хранилище на 6Тб, в виде четырех дисков 2 x 2Тб и 2 x 1Тб с автономным торрент клиентом
        • SMB/CIFS сервер со стабильной скоростью записи/чтения 12-14 мегабайт/с
        • NFS сервер со скоростью записи/чтения 9-10 или 15-18 мегабайт/с (TCP/Windows или UDP/Linux)
        • UPNP/DLNA сервер со скоростью чтения 8-10 мегабайт/с
        • 46-ти дюймовый LED телевизор с встроенным WiFi 802.11n, способный работать с сетевым хранилищем и сам способный раздавать контент по SMB/CIFS со своего USB диска
        • Старый 42-дюймовый телевизор с подключеным BD плеером с поддержкой Ethernet и DLNA клиентом, работающий с сетевым хранилищем
        • 4 домашних компьютера, включая Mac и 4 мобильных телефона которые со всем вышеперечисленным работают, в том числе и мобильные сервера и клиенты DLNA

        Кому интересно на какие грабли я наступал, зачем там подушка и как все это работает прошу под кат.
        Читать дальше →
      • Фотожурнализм как тяжелый труд


          Крис Уилкинс передает фотографию с помощью цифрового передатчика Hasselblad Dixel во время атаки ракет на Дхаран (Саудовская Аравия) в первую ночь войны в Персидском заливе, 17 января 1991 года.

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

          Сегодня мы уже привыкли к огромным размерам файлов фотографий и, благодаря Интернету, чудовищно быстрым скоростям их передачи. Профессиональному фотографу для запечатления и доставки изображений на другой конец света нужен набор оборудования, способный уместиться в рюкзак. Однако, ситуация с багажом выездных фотографов более ранней эпохи — каких-то двадцать лет назад — была куда менее приятной.
          Читать дальше →
        • Rtorrent + PHP + MySQL

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

          В этой статье я расскажу и покажу на примере как работать с торрентами средствами php+mysql+rtorrent.
          Читать дальше →
        • Ищем музыку на z-music.org с помощью bash

            Понятно, что «жертвой» сегодняшнего эксперимента будет z-music.org. На этом сайте есть возможность найти песню, послушать и скачать её.
            Цель — написать bash скрипт для поиска музыки, используя «джентльменский набор» sed, awk и grep. Ну и плюс немного curl или wget по вкусу.
            Пишем bash script
          • Выполнение USSD запросов под Linux

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

              Работать данный скрипт будет на любых модемах/телефонах которые поддерживают USSD без PDU кодирования. Для модемов требующих PDU-кодировку команд нужно написать функции-обертки аналогично php-скрипту из указаного выше топика. У меня к сожалению нету такого модема и проверить я бы не смог — потому писать не стал.

              Проверена работа на 3G модеме ZTE MF100(должно работать с mf620, mf622, mf626, mf628) и тарифе Интернет 3G от Киевстара.
              Читать дальше →
            • Программирование для начинающих: как стартовать и куда двигаться?

              Бывает, что человек, совсем не связанный с IT, проникается интригующей красотой этой сферы и ставит себе задачу постепенно освоить программирование с нуля. И тут он зачастую просто теряется, не понимая, с чего начать, и нуждаясь в хорошем фундаменте и системном подходе.

              Я, будучи недавно в такой же ситуации, гуглила, искала мануалов на Хабре (кое-что нашла: Десять советов начинающим программистам, Начинающему программисту про стартапы и не только…), но в итоге всё же была вынуждена обратиться за советом к одному хорошему человеку, который составил для меня вот такой план. С разрешения этого человека размещаю данный план на Хабре – вдруг он пригодится и кому-то ещё. (Тем более, что перечисленные книги относятся к «золотому фонду» литературы в данной сфере и проверены временем.)

              UPD: Новичкам советую обратить внимание на комментарии — там активно и аргументированно корректируется этот план.

              Читать дальше →
            • Просмотр архивных логов apache c помощью Logstash+Elastisearch+Kibanа

              Приветствую.

              Нет так давно передо мной встала задача пробежаться по старым логам apache. Надо было сделать выборку по нескольким IP адресам, отыскать некоторые аномалии и попытки SQL-injection'ов. Логов было не так много, порядка миллиона строк и можно было спокойно всё сделать стандартным набором grap-awk-uniq-wc итд.

              Поскольку я уже какое-то (больше года) время пользуюсь связкой Logstash-Elasticsearch-Kibana для анализа-просмотра всевозможных логов, то решил ей воспользоваться и в данной ситуации.

              Краткое описание основных компонентов системы.

              Logstash — бесплатная open-source программа на java для сбора и нормализации логов. Может принимать логи либо с локальных файлов, либо через tcp/udp порты. На момент написания статьи, разных входных (input) фильтров насчитывается 26. Есть даже входной модуль, для сбора сообщений из twitter'а или irc.

              Elasticsearch — бесплатный open-source поисковый сервер основанный на Apache Lucene. Быстрый, легко настраиваемый и очень масштабируемый.

              Kibana — веб-интерфейс написанный на ruby, для отображения данных из Elasticsearch. Простая настройка, но множество функций — поиск, графики, stream.

              Читать дальше →
            • Свой простой DynDNS сервер

                Недавно ко мне обратились с вопросом «А какой внутренний IP адрес нужно указать в модеме для проброса порта на сервер?». Ответить на вопрос я не смог, так как давно не был на этом сервере, а квалификация человека на том конце не позволяла залогиниться на сервер и выполнить ip address show. Тогда я задумался над созданием своего простого аналога DynDNS сервера с возможностью хранения IP адресов всех интерфейсов клиента.
                Читать дальше →
              • iPXE загрузка установщика Debian по HTTP

                  В этой статье хочу рассказать быстрый и удобный способ установить debian на виртуальную машину через iPXE.
                  Такой вариант мне нравится больше всего, т.к. не требует скачивания каких-либо ISO образов или дополнительной настройки DHCP и TFTPсерверов. Вся загрузка пойдет по HTTP через Интернет.

                  image

                  Будем считать, что у нас есть виртуальная машина, с ipxe (в случае с qemu, ipxe загружается по умлочанию)
                  Мы хотим загрузить debian wheezy или squeeze

                  Читать дальше →
                • Стартап WigWag создаёт среду для программирования умного дома на JavaScript

                    Сегодня разные производители предлагают десятки разных (и часто несовместимых между собой) систем, устройств, приложений и интерфейсов для превращения обычного дома или квартиры в «умный» — интеллектуальные дверные замки и лампочки с управлением по WiFi, розетки, датчики и выключатели с аккаунтом в Твиттере, интернет-холодильники кондиционеры. Стартап WigWag, который уже собрал на Кикстартере почти в четыре раза больше денег, чем планировал, подошел к вопросу создания умного дома более системно. Они предлагают не просто набор сенсоров и актуаторов, но и целую инфраструктуру, совместимую со множеством уже существующих интеллектуальных электроприборов, и, что ещё важнее — открытую для модификаций и дружелюбную как к простым пользователям, так и к программистам и хакерам.

                    WigWag позволяет создавать «правила», подобные рецептам IFTTT, которые могут на основе информации с датчиков или из интернета управлять любыми устройствами. Это могут быть датчики и актуаторы WigWag, интернет-сервисы, Raspberry Pi, Arduino, Belkin WeMo, Philips Hue, и любые другие, поддерживающие протоколы IP, RS-232, 6loWPAN, Bluetooth и Zigbee. Причем создавать правила можно не только через графический интерфейс, но и на JavaScript, с помощью среды выполнения DeviceJS, которую разработчики WigWag позиционируют как способ писать приложения для умного дома точно так же, как пишутся приложения для Web.


                    Читать дальше →
                  • Smartmontools for Windows

                      Современный жесткий диск не то место где стоит хранить информацию ©

                      SmatrmonTools + HDDGuardian почти щастье для мониторинга смарт-состояния винтов на клиентской венде.

                      code.google.com/p/hddguardian
                      sourceforge.net/apps/trac/smartmontools/wiki

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

                      Сборка smartmontools for windows сервисом для сервера с алертами на почту «икаропки»: www.netpower.fr/smartmontools

                      Успехов.
                    • Как запустить программу без операционной системы


                        Так вышло, что в нашей статье, описывающей механизм опроса PCI шины, не было достаточно подробно описано самого главного: как же запустить этот код на реальном железе? Как создать собственный загрузочный диск? В этой статье мы подробно ответим на все эти вопросы (частично данные вопросы разбирались в предыдущей статье, но для удобства чтения позволим себе небольшое дублирование материала).

                        В интернете существует огромное количество описаний и туториалов о для того как написать собственную мини-ОС, даже существуют сотни готовых маленьких хобби-ОС. Один из наиболее достойных ресурсов по этой тематике, который хотелось бы особо выделить, это портал osdev.org. Для дополнения предыдущей статьи про PCI (и возможности писать последующие статьи о различных функциях, которые присутствуют в любой современной ОС), мы опишем пошаговые инструкции по созданию загрузочного диска с привычной программой на языке С. Мы старались писать максимально подробно, чтобы во всем можно было разобраться самостоятельно.

                        Итак, цель: затратив как можно меньше усилий, создать собственную загрузочную флешку, которая всего-навсего печатает на экране компьютера классический “Hello World”.

                        Читать дальше →
                      • Пишем свой bootloader

                        Это статья была написана для людей, которым всегда интересно знать как работают разные вещи. Для тех разработчиков которые обычно пишут свои программы на высоком уровне, C, C++ или Java — не важно, но при этом столкнулись с необходимостью сделать что-то на низком уровне. Мы будем рассматривать низкоуровневое программирование на примере работы bootloader-а.

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


                        Читать дальше →
                      • Управление доступом к файловым серверам Samba в домене Windows на базе AD

                          Мы продолжаем серию статей про взаимодействие Linux и Windows. Эта статья посвящена управлению доступом к серверам Samba из домена AD.

                          В отличие от предыдущих статей, где в качестве примера использовалась тестовая сеть, эта статья базируется на реальной, «боевой» сети Московского энергетического института. В сети МЭИ зарегистрировано около 25000 пользователей. Сеть объединяет все учебные корпуса МЭИ с более чем 4500 рабочими станциями. Мы рассмотрим настройку доступа к серверу Samba, предоставляющему пользователям следующие услуги:
                          •доступ к персональному каталогу пользователя;
                          •доступ к общим каталогам;
                          •управление доступом как с использованием средств Samba, так и с использованием средств Windows.
                          Читать дальше →
                        • Pocketsphinx. Распознавание речи и голосовое управление в Linux

                          • Tutorial
                          — Всё в порядке, Лёня?
                          Динамики отрегулированы на максимум, я морщусь, отвечаю:
                          — Да. Тише звук.
                          — Звук — тише, — соглашается «Виндоус-Хоум», — тише, тише…
                          — Хватит, Вика
                          С.Лукьяненко, «Лабиринт отражений»

                          Введение


                          В 1997-ом году Лукьяненко пророчил для десктопа сочетание CLI и голосового управления. Однако сейчас голосовое управление — достаточно узкая ниша.
                          Голосовое управление — взаимодействие с устройством при помощи звуковых команд. Не путайте это понятие с распознаванием речи. Для голосового управления достаточно, чтобы устройство реагировало на единственную нужную команду (ведь ваша собака не может работать машинисткой?). Распознавание речи — гораздо более глобальная проблема: в этом случае устройство должно преобразовывать в текстовый формат все слова, произнесенные вами. Как легко догадаться, распознавание речи на данный момент реализовано поверхностно относительно человеческих возможностей.
                          Функционал, рассмотренный в статье, может быть применен, к примеру, для организации модного сейчас «умного дома» или просто управления компьютером. Честно говоря, для описания управления компьютером хватило бы пары абзацев, но я попытаюсь показать вам основы работы с CMU Sphinx.
                          Кстати, процентов 70 описанного здесь подойдет и пользователям Windows.
                          Научим Linux слушаться?
                        • Бездисковая загрузка с использованием PXE и iSCSI на примере Ubuntu

                          • Tutorial
                          Здравствуйте.

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

                          Что необходимо?


                          Для загрузки системы нужны три компонента: ядро, initramfs и корневая файловая система.
                          Ядро и initramfs мы передадим по TFTP, а корневую файловую систему — по iSCSI.

                          iSCSI-таргеты


                          Небольшой ликбез по iSCSI
                          iSCSI — реализация протокола SCSI поверх TCP. Сам протокол SCSI весьма универсален, теоретически с его помощью можно подключить устройство любого типа. Тем не менее, в большинстве случаев SCSI используется для доступа к тем или иным устройствам хранения данных (жёсткие диски, приводы CD и DVD и т. п.). Для примера Mass Storage Device, использующийся в USB-устройствах, является реализацией SCSI поверх USB. Поэтому, кстати, флешки в Linux опознаются как /dev/sdX-устройства. Использующаяся на серверах шина SAS также является реализацией SCSI (собственно, это видно из названия — Serial Attached SCSI).
                          В iSCSI различаются понятия таргета (target, целевое устройство, осуществляет приём и выполнение запросов) и инициатора (initiator, порождает запросы). В более привычных терминах таргет — это сервер, а инициатор — клиент.
                          Таргеты и инициаторы бывают разных видов. iSCSI-таргетом может выступать обычный компьютер, сервер или система хранения данных. Инициаторами обычно выступают сетевые карты (в их ROM бывает прошит необходимый код) или software-реализации.

                          Для Ubuntu возможно использовать различные iSCSI-таргеты. Вот неполный их список:
                          • ISCSI Enterprise Target — одна из самых старых реализаций iSCSI-таргета на Linux. Насколько мне известно, жива и здравствует, однако требует установки (в Ubuntu) через DKMS и совсем лёгкого дребезга бубнов. На opennet.ru есть рабочий HOWTO, применимый и к более поздним версиям ОС (Precise)
                          • SCSI Target Framework (STGT/TGT) — реализация iSCSI-таргета, портированная из BSD-систем. В отличии от IET, позволяет использовать не только iSCSI, но и другие родственные технологии (такие, как, например, SRP). К сожалению, код STGT в части iSCSI в линуксе работает в userspace. Как следствие, производительность получается где-то в районе плинтуса.
                          • SCST — новая реализация универсального таргета для Linux. По заявлениям разработчиков обладает массой преимуществ и фишек. В ядро не включена, для установки требует патчей исходников ядра и продолжительного зубодробительного секса. По слухам, мила, прекрасна и похожа на сакуру. Когда-то давно ее использовали, например, в Оверсан-Скалакси (их опыт вкратце описан на хабре). Пакеты для Ubuntu перестали поддерживаться около полутора лет назад, в SVN есть некоторая активность, то есть проект жив и здравствует. Кстати, разработчики — русские парни :)
                          • LIO — Linux Unified Target, универсальная система, реализующая iSCSI, SRP, FCoE и несколько других вариантов экспорта устройств в сеть. Официально включена в ядро и является стандартным таргетом, начиная с версии 2.6.38. К ней есть определенные претензии в плане того, что на официальном сайте активно продвигается проприетарная сборка, обладающая большим функционалом, но оставим вопли RMS.

                          Читать дальше →
                        • Загрузка GNU/Linux без стороннего загрузчика

                          • Tutorial
                          В данной статье я приведу пример, как можно отказаться от использования стороннего загрузчика, будь то Grub или Lilo, если ваш компьютер поддерживает современный стандарт UEFI, пришедший на замену BIOS. Интересной особенностью будет то, что все работы проводим на уже установленной и рабочей системе.
                          По уровню сложности данная статья ориентирована на опытных пользователей Linux, т.к. некоторых моментов я касаюсь поверхностно, полагаясь на очевидность, чтобы не уходить от основной освещаемой темы.

                          Читать дальше →
                        • Миникомпьютер из роутера с OpenWRT: пишем драйвер фреймбуфера

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

                            На случай, если вы пропустили предыдущие части — вот ссылки:
                            1 — Миникомпьютер из роутера с OpenWRT: разрабатываем USB-видеокарту
                            2 — Миникомпьютер из роутера с OpenWRT: пишем USB class-driver под Linux
                            Итак, приступаем к работе.
                            Читать дальше →