Обновить
396.75

Linux *

Пишем под *nix

Сначала показывать
Порог рейтинга
Уровень сложности

XDP + Jenkins: высокоскоростной фильтр по TLS-отпечаткам

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели621

В период массового импортозамещения средств защиты от DDoS один из провайдеров перевёл свои центры очистки трафика на отечественное решение. Помимо стандартной защиты на уровне L4, провайдер позиционировал его нам как эффективную защиту от L7-атак за счёт механизма фильтрации по TLS-отпечаткам (тогда это был ещё JA3). Однако на практике мы показали, что рандомизация параметров отпечатка (cipher suites, extensions, порядок) позволяет обойти этот механизм и существенно снижает его эффективность против L7-атак. Стоит ли использовать механизмы защиты по отпечаткам JA3/JA4, зная о возможности обхода? Да, стоит. Процесс обхода требует от атакующего значительных ресурсов — кастомного TLS-клиента для генерации уникальных отпечатков. При дополнительной настройке, например, добавлении счётчика с разными лимитами для новых и известных отпечатков (более высокие лимиты для «белых» отпечатков), можно добиться высокой эффективности против ботовых L7-атак (флуд от ботов с повторяющимися отпечатками).

 В этой статье мы реализуем защиту на основе фильтрации TLS-отпечатков, вдохновлённую подходом JA4, но в упрощённой версии FST1 (по отсортированным cipher suites с использованием Jenkins-хэша). Почему не полноценный JA4? Из-за жёстких ограничений eBPF (ограниченный стек, запрет на сложные циклы, отсутствие динамической памяти и строгие правила верификатора ядра) реализация полного JA4 (с учётом всех расширений, ALPN и других параметров) становится крайне сложной.

Читать далее

Новости

Изучаем, как работает клавиатура в Linux, и пишем шуточный модуль ядра

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели4.6K

Часто в учебной литературе по Linux приведены скучные и неинтересные примеры написания модулей ядра. Я решил исправить этот пробел и показать, что разработка небольшого модуля — это задача под силу многим, если понимаешь базовые принципы разработки программ.

Читать далее

Настройка автоматической архивации отчетов Matomo на сервере

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели3.3K

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

Читать далее

Индикация смены раскладки клавиатуры в виде лампы с RGB-светодиодом для Gnome

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.2K

Этот cказ о том, как мне надоело приглядываться к раскладке клавиатуры, и я решил проблему попутно освоив нестолько фичей в программировании и не только

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

Читать далее

Самодельный NAS на ARM. Часть 1

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели20K

В качестве хобби-проекта я захотел собрать простейший домашний NAS на 7 дисков на базе одноплатного компьютера.

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

Читать далее

Опыт использования Линукс смартфона. Ubuntu Touch на Xiaomi Poco X3 NFC

Время на прочтение3 мин
Охват и читатели44K

В общем то решил я как-то попробовать перейти на Linux phone. Но решил сделать это тестово и дешевым способом, купил себе Xiaomi Poco X3 NFC за 5 тыс. руб на Авито, хорошенько потанцевал с бубнами и накатил себе Ubuntu Touch.

Читать далее

far2l и буфер обмена: ускоряем bracketed paste

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели10K

Спасибо всем, кто пришел высказаться в комментарии к моей вечерашней статье про перенос по словам в far2l. Получилась интересная дискуссия о том, что такое современный менеджер файлов, и куда ему стоит двигаться. Решил заодно написать про ещё одну недавно добавленную «фишку» far2l: ускоренную вставку из буфера терминала. Технически это может показаться очень локальной оптимизацией, но в некоторых кейсах меняет качество жизни кардинально.

Поговорим о скорости. А точнее — о том, как мы заставили far2l мгновенно «проглатывать» большие объемы текста из буфера обмена терминала, даже если вы сидите через медленный SSH на сервере, где нет иксов.

Читать далее

Установка GrapheneOS через терминал Debian-based Linux

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели10K

О том, как установить GrapheneOS без браузера через командную строку, используя ПК на Debian или его деривативах.

Читать далее

40 млн строк кода: как меняется ядро Linux в 2026 году

Время на прочтение5 мин
Охват и читатели7K

Начало 2026 года для сообщества ядра Linux получилось насыщенным. В конце января в документацию добавили раздел Linux kernel project continuity. В нем описывается, что произойдет, если ключевые участники проекта внезапно не смогут выполнять свою работу. Обсуждения шли еще на Maintainers Summit в декабре 2025-го, и теперь этот вопрос зафиксирован в документации в явном виде.

Все вполне логично. Ядро Linux давно превратилось в часть огромной мировой инфраструктуры — с десятками миллионов строк кода, тысячами разработчиков из компаний по всему миру и постоянным давлением со стороны требований к производительности, безопасности и энергоэффективности. Поэтому сообщество вынуждено не только поддерживать текущий уровень стабильности, но и экспериментировать, стараться сделать систему гибче и надежнее. В 2026 году проявились несколько направлений такой работы — от Rust и планировщиков до поддержки новых архитектур. Давайте посмотрим, что тут и как.

Читать далее

Как я делал перенос по словам в редакторе far2l

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.8K

Привет, Хабр! Обычно в своих дайджестах разработки far2l я рассказываю сразу о пачке новостей, накопившихся за год. Но сегодня случай особый. Мы реализовали фичу, тикет на которую висел в багтрекере с 10 ноября 2016 года. Фичу, которой мне самому остро не хватало ещё со времён использования Far Manager в Windows. Фичу, к которой многие боялись подступиться из-за сложности реализации в архитектуре, заточенной под «одна строка кода = одна строка на экране». Встречайте: перенос по словам (Word Wrap) во встроенном редакторе far2l! Под катом — рассказ о том, почему это заняло 9 лет, как Junior/Middle навыков C/C++ хватило для задачи уровня Senior благодаря Gemini 2.5 и 3 Pro, и как помог процесс формат патчей .ap.

Читать далее

slowfetch: Замедляем fastfetch ради эстетики. История одного овер-инжиниринга на Bash

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели13K

В мире Linux существует негласное соревнование: чей neofetch (земля ему пухом) или fastfetch запустится быстрее и покажет заветное лого дистрибутива. Разработчики бьются за миллисекунды, оптимизируют конфиги, переписывают всё на C... Я же решил построить своего рода Машину Голдберга.

Мой путь — это путь slowfetch. Я взял инструмент, который гордится своей скоростью (0.013с), и «оптимизировал» его до 0.77с. Зачем? Чтобы превратить терминал в панель управления космическим кораблём (или алтарь, об этом позже).

Это история о том, как простое желание «пофлексить» конфигом превратилось в полгода разработки на Bash и создание собственного инсталлера.

Читать далее

Работа с внешними устройствами в Linux

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели15K

Всегда ли вы понимали как работать с устройствами в Linux?
Задавали себе вопрос "А что в пути забыли ссылки?"
Или хотели знать, как в Linux представлены USB-устроства на уровне системы?

В этой статье я разбиаю как работать с внешними устройствами, для чего нужна директории /sys и /dev, как представлены в системе USB-устройства и cd-диски.

Читать далее

А знали ли вы, что в 2010 году, в России был журнал с Linux?

Время на прочтение4 мин
Охват и читатели27K

Внимание: Это полностью переписанный «ремастер» одной из моих старых статей. Данный материал подготовлен специально для юной аудитории Хабра, которая могла и не застать эту частичку Linux-истории :-)

Нет, глаза вас не обманывают: не про Linux, а на Linux! 16 лет назад, в 2009 году, чипсетов для медиаплееров на рынке стало настолько много, что китайские чипмейкеры начали продавать их за копейки. Буквально за пару долларов можно было купить процессор, который включал в себя производительное ARM-ядро, аппаратные декодеры аудио и видео, ЦАП/АЦП и другие периферийные модули...

Читать далее

Ближайшие события

Управление ресурсами процессов с помощью контрольных групп Linux

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели9.2K

Когда на сервере появляется «прожорливый» процесс, который забирает все ядра и постепенно выдавливает память, хочется ограничить его быстро — но так, чтобы это было воспроизводимо и не держалось на магии.

В статье — практический разбор cgroups v2: как руками через cgroupfs создать группу, задать лимиты CPU/RAM и правильно запускать процессы без «окна без ограничений», а затем сделать то же самое через cg*-утилиты и systemd-run/slice. По дороге станет ясно, почему эти приёмы напрямую перекладываются на мир Docker и Kubernetes.

Перейти к статье

Все получилось! Debian Linux на Nintendo Wii

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели15K

После написания первого материала я получил достаточно много комментариев и отзывов. Это было очень приятно, спасибо! Обязательно попробую запустить там иксы и прогнать предложенными тестами. Вместе с этим в голове крутилась простая до безобразия мысль: а можно ли поставить туда Linux?

Как только начал изучать этот вопрос, показалось, что установить его будет очень просто. Но реальность преподнесла сюрпризы. Сегодня покажу, как получить работающий Linux на этой игровой консоли с PowerPC-процессором IBM Broadway.

Читать далее

NexPhone — смартфон с тремя операционками. Что это за чудо?

Время на прочтение4 мин
Охват и читатели13K

Идея одного устройства на все случаи жизни витала в воздухе еще с тех пор, как смартфоны стали достаточно мощными, чтобы соперничать с ноутбуками. Вспомнить хотя бы Motorola Atrix с ее док-станцией, которая пыталась превратить телефон в подобие компьютера. Или Ubuntu Edge от Canonical — амбициозный проект, обещавший Android и полноценный Linux в одном корпусе. Microsoft шла своим путем с Continuum в Windows 10 Mobile, позволяя подключать Lumia к монитору и запускать десктопные приложения. Samsung до сих пор развивает DeX, где флагманские Galaxy дают десктопный режим. Все эти эксперименты объединяло одно: они оставались компромиссом, не дотягивая до настоящего универсального устройства.

Проблема всегда упиралась в архитектуру. ARM-процессоры смартфонов плохо дружили с классическим Windows, Linux на мобильных устройствах чаще существовал в контейнерах или эмуляторах, а полноценный десктоп требовал отдельного железа. Энтузиасты ставили кастомные прошивки, но для массового пользователя это оставалось слишком сложным. В итоге большинство просто смирилось: телефон для связи и развлечений, ноутбук — для работы. И вот в январе 2026 года компания Nex Computer, известная своими док-станциями NexDock, решила всех удивить и выпустила собственный смартфон — NexPhone. Это устройство, которое из коробки поддерживает Android, запускает Debian и даже позволяет перезагружаться в Windows 11. Давайте посмотрим, что там и как.

Читать далее

Как превратить Linux в Windows

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели17K

Тезис: следует создать такой дистрибутив Linux, который по умолчанию выполняет двоичные файлы Windows через Wine.

Если я найду файл в формате .exe, которому 20 лет, я по-прежнему смогу запустить его на современной Windows. Попробуйте проделать подобное с двоичным файлом Linux, которому всего год. Совершенно не гарантированно, что он запустится, в зависимости от того, какие обновления успели произойти. Также не гарантируется, что заработает даже сегодняшний двоичный файл Linux, если собрать его в одном дистрибутиве, а попытаться запустить на разных других дистрибутивах. Возникает ровно такая же проблема, связанная с версиями установленных библиотек.

Читать далее

eBPF в Linux: когда писать код в ядре — неплохая идея

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели7.4K

eBPF давно перестал быть узкоспециализированной игрушкой для kernel-энтузиастов и исследователей внутренностей Linux. Сегодня с ним, так или иначе, сталкиваются не только SRE, но вообще все, кто разрабатывает системы, близкие к сети, производительности или безопасности: от авторов сетевых плагинов (CNI) и прокси, до разработчиков кастомных агентских решений, observability-инструментов и low-level инфраструктурных компонентов. Даже если вы никогда не писали eBPF-код руками, есть хороший шанс, что он уже работает в вашей системе — тихо, незаметно и с довольно широкими полномочиями.

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

Читать далее

Командная строка: путь к развитию логического мышления у детей

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.3K

Боков Фёдор, Security Vision

Совсем недавно я стал отцом, конечно, такое событие перевернуло мой мир с ног на голову. Теперь я по-другому смотрю на вещи: на развивающие игрушки, книжки с картинками и, как ни странно, на экран своего компьютера. Работая в Security Vision, и обращая внимание на ее инициативу по обучению детей основам технологий с самого юного возраста, я начал задумываться о том, какие инструменты помогут моему ребёнку не просто пользоваться технологиями в будущем, но и понимать их, мыслить структурно и логически. И мой взгляд упал на, казалось бы, самый скучный и старомодный инструмент — черное окно командной строки.

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

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

Читать далее

Обход стека в ядре Linux для RISC-V: разбираем и чиним

Уровень сложностиСложный
Время на прочтение14 мин
Охват и читатели10K

Привет, Хабр! Меня зовут Матвей Быстрин, я старший инженер в команде BSP (Board Support Package) YADRO. Мы занимаемся системным софтом, который необходим для загрузки и работы SoC: от загрузчиков до драйверов блоков.

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

Начну я с самой идеи механизма обхода стека и ее применения. Затем сфокусируюсь на том, как обход производится в архитектуре RISC-V. И наконец, перейду к той самой поломке, что легла в основу статьи, и к ее ремонту.

Читать далее
1
23 ...