LINUX.ORG.RU

Сообщения unclestephen

 

OpenShield v0.2.4

 , openshield, ,

Привет, $username!

Хотел рассказать о своём проекте OpenShield. OpenShield – это фарвол для Linux с контролем сетевой активности отдельных приложений, написанный на Rust. Для управления используется терминальный интерфейс, а фильтрацией пакетов занимается nftables с возможностью переключения на iptables. В режиме обучения программа пропускает исходящий трафик и автоматически создаёт разрешающие правила. Затем можно перейти в режим Enforcing: соединения, для которых нет разрешающего правила, будут блокироваться. Правила можно привязывать к cgroup, пути исполняемого файла и параметрам запуска, дополняя ограничениями по адресам, портам и протоколам. Поддерживаются действия accept, drop и reject, а также временное отключение правил без их удаления.

Идея создать свой аналог OpenSnitch появилась довольно давно, но не было окончательного видения проекта. Когда я понял что должно получиться, закипела работа.

Я написал на GitHub, что OpenShield является форком opensnitch, наверное это не совсем так, поскольку заимствована лишь идея, а код написан заново, отличаются механизмы работы и задачи приложения. Поэтому точнее было бы назвать OpenShield самостоятельной реализацией, вдохновлённой OpenSnitch. В OpenSnitch заметный акцент сделан на интерактивном контроле исходящих соединений через графический интерфейс; также есть управление системным фаерволом и несколькими узлами. В OpenShield я делаю упор на локальную политику защиты хоста и работу через терминал, в том числе на серверах без графического окружения. Основной сценарий — собрать правила в режиме обучения, проверить их и перейти к фильтрации по явно разрешённым соединениям.

Отдельное внимание уделяется поведению при ошибках. В режиме Enforcing невозможность достоверно определить приложение не должна превращаться в разрешение трафика: неоднозначная атрибуция приводит к блокировке соответствующего пакета. При критических сбоях предусмотрен аварийный режим BlockAll. Изменять правила и режим работы может только root, а наблюдение доступно участникам группы openshield. Управление и мониторинг разделены между локальными Unix-сокетами с проверкой учётных данных клиента; сетевого управляющего API нет.

Демон и TUI написаны на Rust, в собственном коде запрещён unsafe. Дополнительно ограничены размеры сообщений, очереди и время обработки запросов, предусмотрены проверки сохранённого состояния и тесты поведения при перегрузке. Это не обещание отсутствия уязвимостей и не утверждение, что OpenSnitch небезопасен, а описание выбранных инженерных приоритетов. Обучение тоже не определяет, заслуживает ли приложение доверия: оно лишь фиксирует наблюдавшуюся активность, поэтому полученные разрешения необходимо проверять перед включением Enforcing.

Довольно продолжительное время было уделено производительности приложения, однако она пока остаётся слабым местом при большом количестве коротких соединений и интенсивном исходящем UDP-трафике, особенно состоящем из множества небольших пакетов. Здесь важнее не столько объём переданных данных, сколько количество пакетов и новых соединений, для которых требуется определить приложение.

Это связано со стоимостью проверки правил, привязанных к приложениям. Обычные сетевые правила — адреса, порты, протоколы и интерфейсы — обрабатываются непосредственно ядром через nftables или iptables. Если же решение требует проверки приложения, пакет передаётся демону через NFQUEUE. Демон устанавливает владельца сокета, проверяет идентичность процесса и сопоставляет её с условиями правила: путём исполняемого файла, cgroup, аргументами запуска и другими заданными признаками. Такая проверка существенно дороже сравнения адреса и порта.

Для TCP предусмотрено ускорение: после авторизации соединения его established-трафик может обрабатываться в ядре через conntrack с проверкой поколения политики. Поэтому длительное разрешённое TCP-соединение обычно обходится дешевле постоянного открытия новых. Для UDP, не разрешённого отдельным сетевым правилом, проверка приложения повторяется для каждого пакета, требующего прикладного решения. Именно этот сценарий особенно чувствителен к PPS: даже небольшой по мегабитам поток способен заметно загрузить демон и увеличить задержки. Используемые кеши ускоряют поиск владельца, но не заменяют проверку актуальности его идентичности безусловным повторным разрешением.

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

Приложение собирается для Debian 12 и 13, Ubuntu 22.04, 24.04 и 26.04, Fedora 43 и 44, AlmaLinux 9 и 10, Rocky Linux 9 и 10, openSUSE Leap 16.0, openSUSE Tumbleweed, Alpine Linux 3.23 и 3.24, а также Arch Linux. В зависимости от дистрибутива предусмотрены пакеты для x86_64 (amd64), 32-разрядного x86 (i586/i686), ARMv5, ARMv6, ARMv7, ARM64 (aarch64), PowerPC 64 LE (ppc64le), IBM Z (s390x) и RISC-V 64 (riscv64). Это общий перечень архитектур: не каждая комбинация дистрибутива и архитектуры входит в матрицу сборки.

Предрелизные проверки установки пакетов и функциональные тесты фаервола выполняются:

  • на x86_64 — для всех перечисленных дистрибутивов и версий;
  • на ARM64 — для всех перечисленных, кроме Arch Linux;
  • на 32-разрядном x86 — для Debian 12 и 13, AlmaLinux 10, Alpine Linux 3.23 и 3.24, openSUSE Tumbleweed.

Всего получается 37 комбинаций дистрибутива и архитектуры. Для каждой проверяются nftables и резервный iptables, включая обучение, переход в Enforcing и применение правил. Отдельный performance gate запускается на openSUSE Tumbleweed x86_64.

Для остальных архитектур пока выполняются сборка, проверка формата исполняемых файлов и пробный запуск --version; полноценного тестирования установки и фильтрации трафика на них нет. Контейнерные проверки также не означают проверку собственного ядра каждого дистрибутива.

Скачать и попробовать приложение можно по последнему актуальному тегу v0.2.4

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

Спасибо, что дочитали до конца.

unclestephen
()

Bodycam под openSUSE

 , , ,

Сегодня попалась новость, что Bodycam, которую видел в анонсах уже даже не помню когда, года 2 назад, набрала 38 тысяч игроков в пике.

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

Графоний — положили с горкой. Но тут интереснее не столько количество полигонов, сколько сама механика: обычного HUD, перекрестия и даже счётчика патронов нет, оружие не «приклеено» к центру камеры, а руки, тело и ствол двигаются относительно друг друга. Поэтому первые минут двадцать приходится буквально учиться заново целиться и ходить. Звук тоже играет почти такую же роль, как картинка — шаги, выстрелы и положение противника по этажам действительно приходится слушать.

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

Важно, что поддержка Linux не заявлена, но она есть, поэтому, наверное, я и пишу этот текст. Запущено под openSUSE Tumbleweed. Железо и конфигурация те же, что в прошлый раз.

unclestephen
()

Продолжается работа над портированием Lorsource на Rust

 , , , ,

Продолжается работа над портом движка форума LINUX.ORG.RU на Rust.

Целью изначально было создание полностью совместимого на уровне интерфейсов REST API и доступа к БД порта кода написанного на Java.

Проект казался интересным лично для меня, как с точки зрения изучения работы самого форума, так и реальная работа с большим объемом чужого (открытого) кода с применением GPT.

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

В итоге используя ChatGPT Pro x20, удалось добиться результата, который видно на скриншотах. Более того, такая подписка даже является избыточной.

Работу веду по выходным, достигнутый результат потребовал 4 выходных дня.

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

Преимущества порта которые видны без сложных тестов:

  • мгновенный старт
  • низкое потребление памяти
unclestephen
()

«Атомное сердце» доступно в Steam

 , , , ,

Итак, сегодня узнал, что «Атомное сердце» доступно в Steam для всех, и немедленно купил.

Ждал этого момента, но думал что уже не дождусь, а вон как повернулось.

Видно что место на диске у меня кончилось. Казалось, что Linux много не весит, а вот так, терабайт улетел под завязку.

Игрушку ставил только чтобы сделать скриншот, поскольку сейчас прохожу RoboCop Rogue Сity, места на диске катастрофически нет.

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

В общем, покупайте наших слонов!

PS. На втором скрине RoboCop Rogue Сity. Проходить прохожу, но без фанатизма. Уже, по времени, наверное месяца 4, хотя игра вроде как всего часов на 16. Так же добавил индикацию загрузки системы и погоду, немного устал от дефолта.

unclestephen
()

Игорь из китайского Steam, вместо пиратской копии

 , , ,

Мне писали, что сетап не потянет свежие игры. Опровергаю. По уровню шума, во время игры, моя пекарня значительно превосходит игровые ноутбуки которые у меня были (ROG Strix и TUF Gaming, на 3070Ti и 4060), ещё теперь мне не страшно отключение отопления зимой. Жар выдуваемого воздуха согревает ноги.

Из новинок пробовал запускать Clair Obscur Expedition 33, RoboCop Rouge City, ремейки Resident Evil 2 и Resident Evil 3, везде настройки максимальные для разрешения QuadHD, при чём вместе с трассировкой лучей. Кадры не мерил, но картинка плавная, замечаний не вызывала.

Робокоп с торрентов хоть и GOG версия, то есть ломать игру не требовалось, но имел какой-то баг, поэтому игра падала.

Говорят, Китай и Казахстан спасают русских геймеров. Казахский Steam у меня давно, вчера завёл китайский, чтобы купить Forza по минимальной цене, отдал за игру чуть больше 3К + 300р за смену региона. Пиратка подвела.

Иногда слышу мнение, что раз Steam ушли из РФ, то и нечего там делать, но Valve сделала всё так, чтобы можно было не только продолжить играть, но и максимально развязала руки всем желающим, при этом формально соблюдая санкции.

Разве Габен не крут, после этого? Сумел усидеть на двух стульях.

Винда, на втором диске, в который раз не пригодилась, Ave Linux! Ave Gaben! Ave NVIDIA! Думаю чтобы 2Tb не пропадали, подключить его как один из разделов к Suse. Хотя, пожалуй, спешить не буду.

PS. Пришлось жать png в jpeg, вместо божественного webp, чтобы загрузить скриншоты, в оригинале на скриншотах нет мыла, оно появилось в процессе пережатия.

unclestephen
()

Самосборный OpenSnitch для Suse Tumbleweed

 , , ,

Давно вожусь с фаерволом на своей локальной машине, сначала конфигурировал iptables, потом, глядя на уведомления о скором deprecation перенёс правила на nft, но всё это было немного неудобно.

Принцип был такой, входящие с NEW запрещены, отдельное правило на каждый порт для нужных хостов, если они идут не на tcp:443. Фактически белые списки, кроме исходящих на tcp:443. В общем получилось примерно штук 100 правил, которые было не так сложно администрировать. Ну как не сложно, IP хостов периодически менялись, я правил скрипт, запускал его, всё применялось, коммитил скрипт на gitlab.com, в приватную репу.

Через скрипт это переезжало с одного моего ноута на другой.

Но тут было свободное время, я решил вспомнить про OpenSnitch, оказалось его пакетов нет в Suse Tumbleweed, оставалось одно, собрать его самому.

Чтобы не превращать систему в склад ненужных компонентов, я в течении 4-х часов отладил сборку RPM пакетов внутри docker контейнера. Чистая система, код в репозитории, сборка параметризована, переносимость опять же между хостами и, в итоге, результат в виде пакетов, с указанием зависимостей, всё по правилам местного пакетного менеджера.

Сам докер выкладывать не стану, я пользовался ИИ, тут это очень плохой вайб имеет. Кому надо сделает сам. После замечания @hobbit, делюсь наработкой, интересно, насколько результат переносим на случайную систему любого другого пользователя. Я собрал и установил самую последнюю версию из тега v1.8.0.

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

В экосистеме Suse есть что-то подобное PPA на Ubuntu, но я не хотел ничего ставить из репозиториев, которые контролируют частные лица, не доверяю. А теперь вот, оказывается, можно с недостающим ПО поступать подобным образом.

В общем, спасибо за внимание, за ИИ сильно не пинайте, не будьте как те бухгалтеры их 90-х, которые считали на счётах до тех пор, пока пользоваться АИС не указали на уровне закона.

Осваивайте ИИ, пригодится, ну или просто из интереса. Всякую рутину оно перемалывает на ура, а вам остаётся контроль, идеи, результаты.

unclestephen
()

LINUX не тормозит

 ,

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

Итак, жил я поживал, но решил что хочу запускать модели ИИ локально, купил видеокарту, а дальше получалось, нужно всё равно покупать БП и док, и мириться с узким каналом Thunderbolt 4/USB4, либо всё равно брать какой-то мини-ПК, а это тоже расходы.

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

( читать дальше... )

unclestephen
()

Надоели скучные обои

 ,

В общем, пробую яблоки на вкус.

Ловлю грабли, о которых писал тут (linux.org.ru). Хотя в целом, всё очень приятно.

Пугает конечно, что просто имея доступ к твоему телефону, можно выполнить локальный вход в систему. Нужно смотреть, что там насчёт второго фактора, типа FIDO2.

Сегодня просто решил по лёгкому срубить скора, а все эксперименты буду экспериментировать в свободное время.

Да, уровень печатной машинки для менеджера, достигается на Mac OS очень быстро, да, действительно, консоль не нужна для установки минимально рабочего конфига.

unclestephen
()

Больше Doom богу Doom!

 , ,

Решил запилить скриншот, скор сам себя не накопит, поэтому прошу любить и жаловать.

На скрине Suse Tumleweed, стараюсь не тянуть в систему ничего лишнего, поэтому во всём минимализм. Игорь в браузере – это удобно, для целей озвученных в первом предложении.

Мышка старая, но моделька Logi MX Anywhere 3s уже в пути, сильно не пинайте.

Обоина снята с высотки в Рыбацком (СПб). В своё время, когда увлекался съемками, собрал целую коллекцию подобных снимков. Хобби было дорогое и в плане потраченного времени, и в плане приобретения оборудования. Когда ИИ научился делать любые изображения за копейки, пришло понимание, что съемка пейзажей – пустое.

Был у меня вечно жужжащий Huawei, который удалось выменять на Elitbook, в состоянии нового, у какого-то селлера на Avito. Когда сделка состоялась, я долго задавался вопросом, законно ли это вообще? Настолько был доволен.

cssDoom запущен в web-приложении созданном из вкладки в Microsoft © Edge ® Browser ™. Бложик проекта cssDoom.

В общем, так и живём.

unclestephen
()

Кнопочный телефон на KaiOS вместо 4G роутера

 , ,

Всем привет!

Надеюсь мой обзорчик не первый, но уже точно самый куцый.

Телефон приобретался в качестве роутера 4G, раздавать Wi-Fi, с чем справляется, даже работая со служебным UDP OpenVPN, насколько я знаю, сталкивался, в таком режиме могут быть проблемы, но тут их нет.

Всё работает.

Можно смотреть YouTube, да, но зачем? Вообще в сети пишут, что хоть это и реплика топовой трубки с поддержкой 4G и Wi-Fi, ничего премиального в исполнении нет, и скорее всего если трубочкой активно пользоваться, останутся от неё рожки да ножки через какие-нибудь пол года.

Посылка из Китая пришла завёрнутая в 100 слоёв бумаги, но наушники куда-то делись. Оригинальная заводская коробка прикольная, это да.

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

Вообще этот обзор должен был быть восторженным, но спустя 4 месяца энтузиазм поугас, а взору предстали множественные косяки эргономики девайсов 20 летней давности. Девайс вроде-бы позволяет всё, но одновременно делать на нём что-либо кроме звонков – невозможно.

Приобретал из ностальгических соображений, под которые подводился псевдо-практический смысл, Nokia-смартфоны не застал в платёжеспособном возрасте. Это хоть и не смартфон, но умеет в Интернет, это да.

Гештальт закрыт.

Видимо, нужно оставить ссылку на Wiki об ОС трубочки, ну что же, сделаем!

unclestephen
()

Моё актуальное рабочее место

 , ,

Всем привет!

Ну раз тут модно показывать то, что находится вокруг твоей ЭВМ, не буду отставать от трендов.

Ноут Huawei, ничем особо не примечателен, i7 12700H, 16 прибитой гвоздями памяти, умудрились припаять даже модуль Wi-Fi/BT, но пока всё актуальное. Наушники Huawei, брал на пробу китайскую «Sony MX1000», звучат не плохо, но ничего выдающегося, как у Sony, в их шумодаве нет. Наушники говорят на китайском, очень «удобно».

Мышь/клава/вебка Logi. Nokia 8110 4G, как-нибудь сделаю обзорчик, брал как альтернативу мобильного 4G Wi-Fi роутера.

Дудка, сам себя за это осуждаю. Недавно сорвался снова, продержался год, захотелось чего-то нового, новое – зачастую хорошо забытое старое.

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

Картины достались от предыдущих хозяев квартиры, мне очень нравятся. На стенах их порядка 30 по всей квартире, может из-за них и выбрал именно этот вариант при покупке.

Несколько подарков жены: ёжик и иконка.

Съемный SD/microSD картридер Transcend, USB 3.1 и правда шустрый.

Кружка, подарок мамы, ценю за соотношение цены и качества, сначала ничего не понял, а теперь вожу её во все поездки. Объём – честные 0,5 литра.

Хотелось бы, как-нибудь, сообразить второй монитор, не знаю, к стене его что ли крепить. У круглого стола есть как плюсы так и минусы, в целом плюсы пока перевешивают.

На этом, наверное, всё.

unclestephen
()

Я люблю [спортивную] ходьбу. Пруфы

 , ,

Помнится, не так давно, я описал фреймворк диеты человека с сидячим образом жизни.

Действительно, в плохой день, приходится проводить за монитором по 12 часов.

Но хороших моментов тоже не мало. Вот моя статистика шагов за 2024 год, а так же статистика за декабрь 2024 года, когда ходить удавалось особенно много.

На скрине Huawei Health для Android.

unclestephen
()

Как я перестал бояться и полюбил приложение от сообщества Яндекс

 

Уже довольно давно появился клиент для прослушивания Яндекс Музыки для десктопных операционных систем. Клиент для Linux не заявляется на главной странице проекта, может быть пока, но и как в случае с Я.Диском, существует версия от сообщества. Которая, как выясняется, не только существует но и прекрасно работает.

Я не имею отношения к Яндекс, просто однажды случилось маяться от безделия, решил поставить. А уже через неделю перешёл на классическое приложение взамен веб-версии.

Подкупила меня именно фишка, которую продвигает Яндекс для приложений под Windows и Mac, это возможность слушать музыку без соединения с сетью, когда она ложится у твоего провайдера, ну или еще бывают кейсы…

Очень понравилась возможность закреплять любимые потоки или плейлисты в правой части окна приложения. Круто, что можно сразу установить качество для фонограмм. Насколько я знаю, поставщики контента для приложения сейчас требуют несжатые форматы звука от музыкантов, поэтому все новые релизы точно будут в качестве «без потерь». Сказать что происходит с ранее загруженными треками я не могу, возможно там то же что-то поменялось. Аудифильский «срач» можно устроить в комментариях, если подобные споры еще актуальны.

Немного расстраивает, что пока нет всех возможностей настройки потоков которая была в веб версии, но, думаю, что если попросить, авторы её «завезут». Я имею ввиду выбор музыки по эпохам и жанрам. Это было очень интересно когда хочешь заняться исследованием по упомянутым срезам.

Приложение на моём десктопе стабильно, «не было не единого разрыва».

:-)

Приложению для установки нужен libdrm. Вот пожалуй всё, что может отталкивать пингвинобоязненного пользователя Linux. Существуют версии для deb и rpm систем, а так же версия не требующая установки.

Ссылка на GitHub

Сильно не пинайте, просто хотел рассказать о своем опыте, так как для меня это новинка.

unclestephen
()