Pull to refresh
2
0

System Administrator

Send message

Как мы оптимизировали сетевой шейпер Linux в облаке с помощью eBPF

Reading time18 min
Views14K

Меня зовут Леонид Талалаев, я занимаюсь разработкой внутреннего облака Одноклассников one-cloud, про которое уже рассказывали на Хабре. 

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

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

Для управления сетевым трафиком до недавнего времени мы использовали решение на основе дисциплины Hierarchical Fair Service Queue из Linux Traffic Control. Сегодня пойдет речь про проблему масштабирования в Linux Traffic Control, известную как root qdisc locking. И про то, как нам удалось ее решить, переделав управление сетевым трафиком с использованием eBPF.

Читать далее
Total votes 50: ↑50 and ↓0+50
Comments18

Глубокое погружение в Linux namespaces, часть 3

Reading time9 min
Views13K

Часть 1
Часть 2
Часть 3
Часть 4


Mount namespaces изолируют ресурсы файловых систем. Это по большей части включает всё, что имеет отношение к файлам в системе. Среди охватываемых ресурсов есть файл, содержащий список точек монтирования, которые видны процессу, и, как мы намекали во вступительном посте, изолирование может обеспечить такое поведение, что изменение списка (или любого другого файла) в пределах некоторого mount namespace инстанса M не будет влиять на этот список в другом инстансе (так что только процессы в M увидят изменения)

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

Глубокое погружение в Linux namespaces, часть 2

Reading time9 min
Views27K

Часть 1
Часть 2
Часть 3
Часть 4


В предыдущей части мы только окунули пальцы ног в воды namespace и при этом увидели, как это было просто — запустить процесс в изолированном UTS namespace. В этом посте мы осветим User namespace.


Среди прочих ресурсов, связанных с безопасностью, User namespaces изолирует идентификаторы пользователей и групп в системе. В этом посте мы сосредоточимся исключительно на ресурсах user и group ID (UID и GID соответственно), поскольку они играют фундаментальную роль в проведении проверок разрешений и других действий во всей системе, связанных с безопасностью.


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

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

Глубокое погружение в Linux namespaces, часть 4

Reading time10 min
Views24K

Часть 1
Часть 2
Часть 3
Часть 4


В завершающем посте этой серии мы рассмотрим Network namespaces. Как мы упоминали в вводном посте, network namespace изолирует ресурсы, связанные с сетью: процесс, работающий в отдельном network namespace, имеет собственные сетевые устройства, таблицы маршрутизации, правила фаервола и т.д. Мы можем непосредственно увидеть это на практике, рассмотрев наше текущее сетевое окружение.

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

Как я читал показания датчиков через SNMP (Python+AgentX+systemd+Raspberry Pi) и соорудил ещё одну мониторилку

Reading time11 min
Views20K
Всем привет.

image

Лирическое отступление
Статья лежит в черновиках уже пару недель, потому как не было времени таки допилить описываемый объект. Но под натиском товарищей, которые своими статьями уже покрыли половину того, что я сказать хотел, решил последовать принципу «release fast, release early, release crap» и опубликовать то, что есть. Тем более, что разработка на 80% закончена.

С момента публикации статьи про «В меру Универсальное Устройство Управления» прошло немало времени (а если быть точным, больше года). Немало, но недостаточно много, чтобы я таки написал нормальную программную начинку для этого устройства. Ведь не для красоты ж оно есть — оно должно собирать данные с датчиков и делать так, чтобы эти данные оказывались в системе мониторинга (в моём случае Zabbix)
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments10

DNSSec: Что такое и зачем

Reading time6 min
Views100K

Предисловие


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

Читать дальше →
Total votes 50: ↑48 and ↓2+46
Comments13

Настраиваем automount в Linux

Reading time4 min
Views12K

Сегодня мы поговорим про такую практику в Linux, как automount

Мы настроим сервер NFS для предоставления некоторых общих ресурсов и настроим автоматическое монтирование для автоматического доступа к этим общим ресурсам при необходимости.

Читать далее
Total votes 10: ↑7 and ↓3+4
Comments5

Изучаем PostgreSQL. Часть 1. Знакомимся с архитектурой

Reading time8 min
Views93K

 На сегодняшний день существует большое количество различных систем управления базами данных - СУБД, от коммерческих до открытых, от реляционных до новомодных NoSQL и аналогичных.

Одним из лидеров направления СУБД является PostgreSQL и ее различные ответвления, о некоторых из которых мы рассмотрим подробнее.

В этой статье мы начнем говорить о СУБД PostgreSQL, рассмотрим отличия редакций и некоторые особенности архитектуры, а также процесс установки. Но начнем мы с небольшого ликбеза для того, чтобы читатели плохо знакомые с терминологией баз данных могли быстро войти в курс дела.

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

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

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

Читать далее
Total votes 22: ↑15 and ↓7+8
Comments8

IP MTU: как перестать жить и начать ботать заголовки

Level of difficultyEasy
Reading time3 min
Views6K

Старина IPv4… В сетевом мире он распространён так же, как и воздух на Земле. Однако несмотря на то, что миллионы людей используют этот протокол в повседневной жизни, у IPv4 всё ещё есть пара сюрпризов в рукаве. Сегодня мы рассмотрим один из них.

Читать далее
Total votes 12: ↑11 and ↓1+10
Comments1

Национальная система доменных имён: первый взгляд

Reading time12 min
Views30K

С начала этого года в России стала эксплуатироваться Национальная Система Доменных Имён - НСДИ, о чём уже можно почитать на Хабр, а провайдерам и владельцем автономных систем РКН рассылает письма с требованиями к ней подключиться. По своей сути это набор из публичных DNS серверов, доступный всем желающим и предлагаемый к использованию как провайдерам так и конечным пользователям Интернет. К своему сожалению, я слабо представляю как конкретно организована и функционирует глобальная система доменных имён, или как организована работа серверов обслуживающих, например, зону RU., и надеюсь это статьёй, в том числе, привлечь внимание к этому вопросу людей которые в этом разбираются или участвуют в этом процессе - это должно быть очень интересно и познавательно, для того чтобы об этом рассказать всем. Поэтому мой первый взгляд будет про адресацию, маршрутизацию, задержки, для чего будет использованы, в том числе, средства RIPE Atlas, и, конечно, про DNS, но ровно настолько насколько я в этом понимаю. Отличительно особенностью именно этой национальной системы является её доступность для исследований, поэтому надеюсь мой первый взгляд, будет продолжен и подхвачен, чтобы рассмотреть этот вопрос со всех сторон.

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

Диагностика и перепрошивка оптических трансиверов

Reading time8 min
Views18K

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

Сегодня мы расскажем о диагностике оптических трансиверов в случае фиксирования каких-либо проблем или перед сдачей в эксплуатацию mission-critical сервисов.
Читать дальше →
Total votes 48: ↑48 and ↓0+48
Comments8

Juniper SRX100, знакомство

Reading time5 min
Views70K
На днях мне привезли долгожданный Juniper SRX100.
До этого времени в основном общался с Cisco и серией роутеров, типа 2800, 800.
На сколько я понял, могу ошибаться, данное оборудование ближе к классу аппаратных файрволлов.
Под катом первичная настройка данной железяки и выход в интернет.
Читать дальше →
Total votes 10: ↑7 and ↓3+4
Comments41

IEC60027-2: Давайте использовать стандарты, или 1024 B == 1 KiB && 1024 B != 1 KB && 1000 B == 1 kB

Reading time5 min
Views130K
Доброго времени суток, уважаемые!

В последнее время, читая различные статьи в хабре, всё больше стал замечать, что многие авторы до сих пор ничего не знают о ISO/IEC стандартах бинарных префиксов (KiB=кибибайт, MiB=мебибайт и т.д.) и постоянно путают их с SI префиксами (kB=килобайт, MB=мегабайт). Поэтому я решил ещё раз заговорить об этом в надежде, что, прочитав статью, ещё пара человек начнёт пользоваться стандартами!

Читать дальше →
Total votes 293: ↑232 and ↓61+171
Comments380

Провайдеры и MTU/MSS/PMTU

Reading time2 min
Views19K

Значит нужен мне второй канал связи, да этак мегабит 300 в секунду. В моём городе немного провайдеров, по этому выбрать не дали и пришлось подключаться к WiFire (он же NetByNet, MegaFon и так далее). Подключился, потестил, 300 мегабит, балдеж. Решил я значит почитать что нового на своем любимом Хабре и опа: он не открывается, но охотно пингуется.

Читать далее
Total votes 18: ↑14 and ↓4+10
Comments5

Настройка WireGuard на Mikrotik

Reading time5 min
Views114K

Если не касаться wiki и официального сайта, и объяснять как можно проще, то это VPN туннелирование через UDP.

Это возможность быстро, максимально просто и надёжно, с хорошим уровнем безопасности соединить две точки между собой.

Хотите узнать как?
Total votes 21: ↑21 and ↓0+21
Comments26

Управление Mikrotik с помощью Telegram бота

Reading time3 min
Views17K

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

Бот для блокировки интернета

Вариант подойдет для  блокировки и разблокировки интернета на домашних устройствах (ПК, ТВ приставки и прочие гаджеты) например чтобы дети сделали перерыв или пошли делать уроки. Можно конечно скачать приложение Mikrotik на смартфон, но каждый раз возится в настройках Kid Control и правилах Firewall не очень удобно, а с ботом почувствовать себя властелином интернета сможет даже жена

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments4

Приручение черного дракона. Этичный хакинг с Kali Linux. Часть 1. Подготовка рабочего стенда

Reading time5 min
Views72K

Приветствую тебя, дорогой читатель в самой первой вводной части серии статей «Приручение черного дракона. Этичный хакинг с Kali Linux».

Идеей, побудившей меня к написанию данной серии статей является мое желание поделиться собственным опытом в области тестирования на проникновение в рамках проводимых мной аудитов информационной безопасности финансовых организаций, и попытаться осветить важные, на мой взгляд, ключевые моменты касаемо подхода, инструментов, приемов и методов. Конечно же в сети очень много статей и книг посвященных данной теме (например, замечательная книга Дениела Г. Грэма «Этичный хакинг. Практическое руководство по взлому» или «Kali Linux. Тестирование на проникновение и безопасность» - труд целого коллектива высококлассных специалистов), программы курсов от Offensive Security, EC-Council, но далеко не у всех есть материальные возможности оплачивать дорогостоящие курсы, а в дополнение к учебникам хотелось бы больше практических примеров основанных на чьем-то опыте.

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

Мы будем использовать подход максимально приближенный к сценариям атак проводимых злоумышленниками, а также вдоволь попрактикуемся на отдельных примерах и разберем такие темы как разведка и сбор информации (footprinting), сканирование ресурсов с целью обнаружения известных уязвимостей, применение эксплоитов из базы Metasploit framework для получения доступа к системе, повышение привилегий до уровня root-пользователя за счет уязвимого ПО (privilege escalation), рассмотрим методы социальной инженерии, сетевые атаки канального уровня (MAC-spoofing, ARP-spoofing, DHCP starvation), способы атак на веб-сервера, перехват и анализ трафика с помощью сетевых снифферов и многое другое.

Читать далее
Total votes 24: ↑20 and ↓4+16
Comments31

Мониторинг Apache с помощью Zabbix

Reading time10 min
Views6.8K

На сегодня Apache представляет собой одно из самых популярных ПО для создания Web-сервера. Очень часто Apache работает в паре с NGINX, об установке и мониторинге которого мы рассказывали в предыдущей статье. В этой статье мы расскажем о том, как установить Apache и настроить его мониторинг помощи Zabbix. Также приведем рекомендации по оптимизации памяти и повышения производительности.

Читать далее
Total votes 11: ↑7 and ↓4+3
Comments0

Приручение черного дракона. Этичный хакинг с Kali Linux. Часть 2. Фазы атаки

Reading time4 min
Views20K

Приветствую тебя, дорогой читатель во второй части серии статей «Приручение черного дракона. Этичный хакинг с Kali Linux.» Данная статья не будет содержать никаких практических примеров, и ее прочтение не займет у тебя много времени. Однако, без нее двигаться дальше будет так же бессмысленно, как и смотреть фильм в котором пропущен очень важный эпизод, несущий в себе смысл понимания происходящего во всей картине.

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

Типы кибератак.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments6

Приручение черного дракона. Этичный хакинг с Kali Linux. Часть 3. Footprinting. Разведка и сбор информации

Reading time5 min
Views24K

Приветствую тебя, мой дорогой читатель, в третьей части серии статей «Приручение черного дракона. Этичный хакинг с Kali Linux”.

Сегодня мы поговорим о первой фазе абсолютно любой атаки называемой футпринтинг (разведка и сбор информации о цели).

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

Если в целом разделять тестирование на проникновение по типам, то можно выделить условно три типа тестов: тип белый ящик (whitebox), тип серый ящик (greybox), и тип черный ящик (blackbox). Поговорим немного о каждом из вышеупомянутых методов.

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

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

Тестирование по типу «серого ящика» используется в том случае, когда проверяющий систему специалист имеет лишь ограниченную информацию о тестируемом объекте.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments11
1
23 ...

Information

Rating
Does not participate
Registered
Activity