Pull to refresh
0
0

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

Send message

Захват пакетов в Linux на скорости десятки миллионов пакетов в секунду без использования сторонних библиотек

Reading time8 min
Views86K
Моя статья расскажет Вам как принять 10 миллионов пакетов в секунду без использования таких библиотек как Netmap, PF_RING, DPDK и прочие. Делать мы это будем силами обычного Линукс ядра версии 3.16 и некоторого количества кода на С и С++.



Сначала я хотел бы поделиться парой слов о том, как работает pcap — общеизвестный способ захвата пакетов. Он используется в таких популярных утилитах как iftop, tcpdump, arpwatch. Кроме этого, он отличается очень высокой нагрузкой на процессор.

Итак, Вы открыли им интерфейс и ждете пакетов от него используя обычный подход — bind/recv. Ядро в свою очередь получает данные из сетевой карты и сохраняет в пространстве ядра, после этого оно обнаруживает, что пользователь хочет получить его в юзер спейсе и передает через аргумент команды recv, адрес буфера куда эти данные положить. Ядро покорно копирует данные (уже второй раз!). Выходит довольно сложно, но это не все проблемы pcap.

Кроме этого, вспомним, что recv — это системный вызов и вызываем мы его на каждый пакет приходящий на интерфейс, системные вызовы обычно очень быстры, но скорости современных 10GE интерфейсов (до 14.6 миллионов вызовов секунду) приводят к тому, что даже легкий вызов становится очень затратным для системы исключительно по причине частоты вызовов.

Также стоит отметить, что у нас на сервере обычно более 2х логических ядер. И данные могут прилететь на любое их них! А приложение, которое принимает данные силами pcap использует одно ядро. Вот тут у нас включаются блокировки на стороне ядра и кардинально замедляют процесс захвата — теперь мы занимаемся не только копированием памяти/обработкой пакетов, а ждем освобождения блокировок, занятых другими ядрами. Поверьте, на блокировки может зачастую уйти до 90% процессорных ресурсов всего сервера.

Хороший списочек проблем? Итак, мы их все геройски попробуем решить!
Читать дальше →
Total votes 113: ↑112 and ↓1+111
Comments77

Как быстро раздать wifi с ноутбука — 3 простых команды

Reading time2 min
Views719K
Периодически я сталкиваюсь с ситуациями, когда необходимо быстро настроить раздачу интернета через WiFi со своего ноутбука и под рукой нет специальной программы. Вот и сейчас мой роутер приказал долго жить и оставил дом без интернета. А не так давно телефон друга отказался подключаться к моему роутеру и мы быстро организовали дополнительный wifi-сигнал с моего ноута, что спасло ситуацию.

И помогают мне в этом 3 команды:
netsh wlan set hostednetwork mode=allow
netsh wlan set hostednetwork mode=allow ssid=FastWifi key=12345678 keyUsage=persistent
netsh wlan start hostednetwork

Под катом я детально расскажу как и что нужно делать и покажу на примере настройки Windows 7.

Читать дальше →
Total votes 66: ↑39 and ↓27+12
Comments21

Тест бесплатных программ для восстановления данных

Reading time5 min
Views544K
Приветствую всех Хабровчан!

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

image

Внимание! Много скриншотов.
Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments51

Тест бесплатных программ для восстановления данных. Версия читателей Хабра

Reading time7 min
Views91K
Приветствую всех Хабровчан!

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

  1. R.Saver 2.8
  2. Handy Recovery 5.5
  3. GetDataBack 1.0
  4. PhotoRec/TestDisk 7.0
  5. RecoveRx 3.0
  6. DMDE 2.10.2
  7. Zero Assumption Recovery 9.2
  8. Active@ File Recovery 14

Мы протестировали их. Результаты тестов ниже.

Внимание! Много скриншотов.

UPD Добавлены тесты еще двух утилит.
Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments43

Systemd за пять минут

Reading time4 min
Views627K
Наша компания занимается администрированием веб-серверов на базе CentOS. Довольно часто наши клиенты используют веб-приложения на базе python, ruby или java. Для автозапуска подобных приложений есть готовые шаблоны для написания стартап-скриптов. Но прогресс не стоит на месте, вышел уже второй релиз CentOS 7 и, следуя старой традиции «не ставить dot-zero релизы на продакшен», мы начинаем предлагать клиентам сервера на базе CentOS 7.1 (1503).

В CentOS7, так же как и в его родителе RHEL7, используется systemd — менеджер системы и служб для Linux, совместимый со скриптами инициализации SysV и LSB. systemd обеспечивает возможности агрессивной параллелизации и много всего прочего.

image

Огромный монстр с множеством возможностей, гибкими настройками и мегабайтами документации…

Но что делать, если стоит задача быстро-быстро, вот прямо вчера, сделать автозапуск некоего сервиса?
Давайте выжмем из документации минимально необходимый набор информации для создания простых старт-стоп скриптов.
Знакомство с systemd
Total votes 70: ↑66 and ↓4+62
Comments58

Я тебя по сетям вычислю: используем API крупнейших соцсетей в своих корыстных целях

Reading time11 min
Views175K


Ни для кого не секрет, что современные социальные сети представляют собой огромные БД, содержащие много интересной информации о частной жизни своих пользователей. Через веб-морду особо много данных не вытянешь, но ведь у каждой сети есть свой API… Так давай же посмотрим, как этим можно воспользоваться для поиска пользователей и сбора информации о них.

Есть в американской разведке такая дисциплина, как OSINT (Open source intelligence), которая отвечает за поиск, сбор и выбор информации из общедоступных источников. К одному из крупнейших поставщиков общедоступной информации можно отнести социальные сети. Ведь практически у каждого из нас есть учетка (а у кого-то и не одна) в одной или нескольких соцсетях. Тут мы делимся своими новостями, личными фотографиями, вкусами (например, лайкая что-то или вступая в какую-либо группу), кругом своих знакомств. Причем делаем это по своей доброй воле и практически совершенно не задумываемся о возможных последствиях. На страницах журнала уже не раз рассматривали, как можно с помощью различных уловок вытаскивать из соцсетей интересные данные. Обычно для этого нужно было вручную совершить какие-то манипуляции. Но для успешной разведки логичнее воспользоваться специальными утилитами. Существует несколько open source утилит, позволяющих вытаскивать информацию о пользователях из соцсетей.
Читать дальше →
Total votes 89: ↑83 and ↓6+77
Comments22

Вы неправильно пишете животных

Reading time5 min
Views358K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Total votes 442: ↑438 and ↓4+434
Comments351

Ручное обновление базы данных часовых поясов в старых дистрибутивах Линукс

Reading time2 min
Views27K
Все может быть, что данная заметка пригодится тем суркам-администраторам, которые до сих пор (о, ужас!) не перевели системные часы своих серверов, позволив умным машинам установить зимнее время. Да, конечно, мы-то с Вами к таким не относимся и вовремя пропатчили свою любимую ОС, под которой крутится успешно не один сайт.

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

Обновим на них базу данных временных поясов вручную.
Это несложно и именно об этом пойдет речь в этой заметке.

Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments34

Уязвимости и бэкдоры в телефонах Grandstream

Reading time3 min
Views18K
Хочу поделиться парой серьёзных уязвимостей, найденных мною в телефонных аппаратах Grandstream.

1. Загрузка произвольного конфига в телефон

Изучая веб интерфейс цветных телефонов gxp21xx для изучения их api, наткнулся на скрипт загрузки конфига в телефон, это скрипт /cgi-bin/upload_cfg

В отличии от других скриптов, этому скрипту не передаётся sessionid, а передаётся только файл. Быстрая проверка через curl показала, что и вправду, воспользоваться этим скриптом можно без авторизации:

curl -i -F name="config.txt" -F file="@config.txt;type=text/plain" -H "Content-Disposition: form-data; name=file; filename=config.txt" http://xx.xx.xx.xx/cgi-bin/upload_cfg

Файл config.txt представляет из себя тектовый файл с набором параметров вида: Рхххх=уууу
Заливая файл с одной строчкой «P2=admin», мы меняем админский пароль на телефоне, после чего можем залогиниться в веб интерфейс.

В телефоне присутствуют аналогичные скрипты для загрузки воллпейпера, телефонной книги и т.д.

Данная узязвимость присутствует в телефонах gxp2130, gxp2140 и gxp2160
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments28

Делаем кастомную прошивку для телефонов Grandstream

Reading time7 min
Views32K
Наша компания наконец решила перейти на ip телефонию, и мы закупили ip телефоны Grandstream разных моделей, среди них были модели GXP2130 и GXP2160. Всё бы ничего, но BLF клавиши на этих телефонах, в случае свободной линии, светятся жутко ярким зелёным цветом, сильно раздражая. Ниже расскажу, как я решал эту проблему.

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

Xargs: многообразие вариантов использования

Reading time7 min
Views138K
xargs

Об утилите xargs написано очень много — что можно написать еще? Но если, что называется, копнуть поглубже, то выясняется, что во многих публикациях излагаются лишь самые основы, но нет главного: не объясняется, как можно применять xargs в реальной практике. Статей с разбором сложных и нетривиальных вариантов применения этого весьма полезного для системного администратора инструмента, к сожалению, очень мало. Именно поэтому мы написали свою статью и постарались включить в нее как можно больше примеров использования xargs для решения различных проблем.

Сначала мы рассмотрим принцип работы xargs и разберем примеры попроще, а затем перейдем к разбору сложных и интересных кейсов.
Читать дальше →
Total votes 68: ↑65 and ↓3+62
Comments44

Звоним на мобильные телефоны из браузера с записью разговоров

Reading time6 min
Views79K


В сегодняшнем мире тонких клиентов, Интернета, продвинутых веб-интерфейсов появляется все больше задач, связанных с необходимостью совершения звонков из браузера/принятия звонков в браузер. Это, черт возьми, удобно! Сидит сотрудник перед монитором, выбирает клиента, нажимает позвонить — и, пока идет дозвон, на этой же странице просматривает его карточку, освежает в памяти последние договоренности и намеченные шаги.

Или другой сценарий — входящий в компанию звонок. Как здорово, когда ты в качестве клиента звонишь на безликий 8800 и девушка на том конце телефона отвечает тебе приятным голосом — здравствуйте, Алексей (подставить_свое_имя)! Это производит потрясающий эффект. Когда вместо «назовите себя, номер паспорта и имя кота, информация грузится — послушайте шестую симфонию Моцарта» оператор уже поднимая трубку знает, как вас зовут и видит по вам всю информацию. Сервис, что и говорить.

Но есть ли возможность реализовать такую систему без погружения в дебри настройки АТС — максимально быстро и минимальной кровью? Желательно еще, чтобы все разговоры записывались для целей контроля и обучения сотрудников. Ответ — конечно, погнали под кат.
Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments20

Asterisk. Отправка и прием факсов

Reading time4 min
Views45K
Всем привет. Сегодня я хочу написать заметку о том, как наладить отправку/прием факсов с помощью программной АТС Asterisk (физических факсов в наличии нет). Итак.

Дано:
1. Есть организация, занимающаяся скажем продажами (на самом деле чем угодно, потому что факсы используются много где). В этой организации есть пользователи, которые иногда/часто отпрвляют/принимают факсимильные сообщения.
2. Также имеется Asterisk, с подключенными городскими линиями (по SIP или через какой либо VOIP шлюз — не важно. Главное что эти пиры прописаны в sip.conf).

Задача:
Настроить Asterisk таким образом, что бы каждый пользователь мог принять/отправить факсимильное сообщение нажав определенную комбинацию клавиш на телефоне.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments26

Основы IP-телефонии, базовые принципы, термины и протоколы

Reading time16 min
Views522K

Добрый день, уважаемые хабражители. В данной статье я постараюсь рассмотреть основные принципы IP-телефонии, описать наиболее часто используемые протоколы, указать способы кодирования и декодирования голоса, разобрать некоторые характерные проблемы.
Читать дальше →
Total votes 70: ↑64 and ↓6+58
Comments58

Система автоконфигурации для VoIP устройств на коленке

Reading time16 min
Views7.5K
Когда у тебя в хозяйстве больше двух компьютеров очень часто приходит желание иметь возможность конфигурировать их из одного места. В среде Windows эта задача решается с помощью Active Directory, в Linux – с помощью cfengine, puppet и других систем конфигурации. У меня же было много VoIP устройств в которых постоянно приходилось что-то менять: то номер, то план дозвона, то надпись на экране и т.д.
Для этой цели также существуют системы автоконфигурации, но, по разным причинам, они мне не подходили. Да и хотелось изобрести свой велосипед что-то написать своими руками.

Дальше можно почитать что же из этого получилось…
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments3

Распознавание речи во FreePBX с помощью Яндекс Speechkit

Reading time5 min
Views19K
Привет, хабр!

Решил поделиться опытом интеграции Asterisk и сервиса Яндекса по распознаванию речи.

Загорелось моему заказчику внедрить в свою АТС фичу Voice2Text.

В качестве АТС использовался FreePBX.

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

Подробности под катом.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments13

Asterisk + UniMRCP + VoiceNavigator. Синтез и распознавание речи в Asterisk. Часть 1

Reading time9 min
Views30K
Часть 2
Часть 3
Часть 4

Учитывая, возросший интерес сообщества к Asterisk решил внести и свою лепту и рассказать о построении голосовых меню с использованием синтеза и распознавания речи.

Статья рассчитана на специалистов, имеющих опыт работы с построением IVR в Asterisk и имеющих представление о системах голосового самообслуживания.

СГС (системы голосового самообслуживания) значительно расширяют возможности по созданию голосовых приложений и позволяют пользователю получать информацию и заказывать услуги самостоятельно, без участия оператора. Это может быть маршрутизация вызовов, запрос и выдача информации по расписанию авиарейсов, состояние банковского счета, заказ такси, запись на прием к врачу и пр.
Распознавание позволяет отказаться от линейных меню, создаваемых с помощью DTMF, разговаривать с системой человеческим языком и легко создавать меню с множественным выбором.
Синтез значительно упрощает работу с динамически меняющейся информацией и большими объемами текстовых данных.


Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments22

Офисная телефония на Asterisk+FreePBX

Reading time6 min
Views78K
Предыстроия

По неким политическим причинам передо мной встала задача по переводу телефонии нашего офиса с гибридной аналоговой АТС Panasonic KX-TDA200 на SIP. Упрощало задачу наличие в офисе СКС, а усложняло использование операторами панелей с кнопочками для быстрого переключения звонков.
Читать дальше →
Total votes 21: ↑15 and ↓6+9
Comments26

Как мы создали облачную АТС Sipuni.com

Reading time6 min
Views21K
Для меня настоящим чудом было появление Skype. Когда я начал им пользоваться в 2004 году, он еще показывал сколько абонентов в сети — их было около 600 тысяч. Думаю, из них в России было не больше 1%. По крайней мере из моих друзей-знакомых скайпа не было ни у кого — серьезное препятствие для свободного общения.

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

Организация многоканального номера с помощью «Komunikator»

Reading time5 min
Views26K
Когда-то, в совсем дремучие времена, в нашем офисе для приема звонков было достаточно двух обыкновенных, проводных телефонов. Время шло, компания росла, нам потребовался второй офис, соответственно, возникла потребность в организации мобильной многоканальной офисной АТС. Классическая (аналоговая) АТС отпадала из-за неудобства организации единой телефонной связи с новым офисом, и опять же дорогостоящая и долговременная прокладка проводов в новом офисе, установка и программирование системного телефона, а еще у нас появились сотрудники на удаленной работе, им требовалось переводить звонок на сотовый номер. И что уж говорить, так важно сохранить номер телефона, который давно известен клиентам и не потерять его при переезде. Решение было очевидно — переходим на IP АТС. Оставалось только подобрать софт.

Читать дальше →
Total votes 10: ↑5 and ↓50
Comments17

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity