LINUX.ORG.RU

Сообщения ValdikSS

 

Ограничить количество соединений (NAT) на каждый DST каждому пользователю

…не используя connlimit, или ускорив его работу.


Есть роутер, выполняющий NAT. К нему подключено, условно, сто пользователей. Предположим, что выходной IP-адрес один.

Задача: запретить устанавливать больше 50000 соединений любому из пользователей к одному и тому же IP-адресу.
Иными словами, не дать единственному пользователю исчерпать порты на конкретный dst.

С большим удивлением обнаружил, что iptables connlimit невероятно медленный, до невозможности его использования в реальных задачах: отправка 20000 SYN’ов за ~10 секунд положит маршрутизацию на мощном сервере на 15+ секунд, забив ядро 100% softinterrupts.

Других подходящий matcher’ов не нашел. Ничего другого, кроме как connlimit, в голову не приходит. Хоть пиши userspace + eBPF.

Обращаю внимание: мне нужно ограничить количество соединений от одного пользователя к любому IP-адресу в интернете, а не к какому-то конкретному. Не замедлить установку соединений во времени, не применить общий лимит ко всем пользователям разом.

 

ValdikSS
()

Вопросы по баги BIOS int13h и GRUB2

Написал такие вопросы в рассылку GRUB2, если кто из олдов помнит баги BIOS’ов и как всё это должно работать корректно — расскажите, пожалуйста. По моему мнению получается, что баги во всех трёх компонентах: BIOS, GRUB, gdisk/установщик debian.

Hello list,

I noticed that GRUB 2.06 menu and Linux kernel and initrd load times are greatly influenced by the "last sector" data in the first partition entry (byte 0x06 in MBR partition entry, offset 0x1c4 from the beginning of the disk for the first partition) on my WYSE C10LE x86 thin client (32-bit VIA Eden Esther with Phoenix bios, from 2008).

Fresh Debian 12 installation takes about 5 seconds to show GRUB menu (GRUB loading... for 5 seconds), the kernel (4.5 MB) is loaded in 27 seconds, and initrd takes ages to load.

However, if I use gdisk software to perform MBR→GPT→MBR partition table type conversion, without touching any partitions per se, GRUB speeds up by an order of magnitude: the menu is shown instantly and the kernel is loaded under 3 seconds, initrd takes about 8 seconds.

Several hours of debugging resulted in the following observations:

1. My BIOS returns some strange C/H/S values in int13h, influenced by "last sector" data in the first partition entry of MBR. With stock Debian MBR it's 301/255/2, with MBR→GPT→MBR it's 480/255/63.

Debian's MBR contain 4/4/1 CHS start, 255/254/194 CHS end.
Converted MBR contain 1/0/1 CHS start, 255/254/255 CHS end.

Is this a BIOS bug, or some kind of quirk? I don't see this behavior on SeaBIOS in qemu. Does Debian installer fill MBR correctly? Does gdisk fill it correctly?

2. Slow loading times are due to low sector value with stock MBR. GRUB is forced to read only 2 sectors at a time.

3. GRUB obeys CHS layout even if LBA via IBM/MS INT13 Extensions is used. My BIOS supports INT13 extensions and the reads are performed using it, but GRUB still reads by 2 sectors.

grub-core/disk/i386/pc/biosdisk.c, function grub_biosdisk_open contains the following logic for HDD:

if (grub_biosdisk_get_diskinfo_standard() != 0) /* if it fails */ {
  if (data->flags & GRUB_BIOSDISK_FLAG_LBA) {
    data->sectors = 63;
    data->heads = 255;
    ...
  }
}

That means it rewrites the value for LBA only if CHS function fails. Shouldn't LBA mode ignore CHS values and read as many as possible? Is this a GRUB bug? I've changed the function to always rewrite data for LBA to 64 (not 63) sectors, to fill the whole segment in a single read, and it seem to work fine. With 63 sectors GRUB reads 63 sectors, then 1 sector, then 63 sectors, then 1 sector again, which decreases the performance, but not by much.


P.S. nativedisk doesn't have any performance problems.
Thanks.

 , ,

ValdikSS
()

Разница в шрифтах/размере между Firefox 113 и 114

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

Разница, похоже, есть только при использовании старого профиля, несмотря на то, что все настройки шрифтов между свежесозданным и старым профилем одинаковы (одинаковые семейства, размер, даже в about:config по поиску font всё одинаково).

Создал тему в Firefox Community — пока никто не отписался. Можете проверить у себя и подтвердить или опровергнуть?

https://support.mozilla.org/en-US/questions/1415866

Гифка: https://assets-prod.sumo.prod.webservices.mozgcp.net/media/uploads/images/2023-06-14-06-50-35-93c3bb.gif

Fedora 37.

 ,

ValdikSS
()

Легко кастомизируемый дистрибутив для использования по сети

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

Необходим такой дистрибутив, который загружается без какого-либо взаимодействия с пользователем (unattended), без монитора, самостоятельно подключается к сети (в т.ч. Wi-Fi), активирует ssh, каким-то образом настраивает реверс-подключение (пробивает NAT), отправляет уведомление о появлении устройства в сети, и т.п.

Мне временами приходится работать с различным сетевым оборудованием в других сетях, к которым нет VPN, и проще всего обеспечить себе доступ — попросить человека запустить виртуальную машину. Также периодически приходится копировать или стирать SATA/PATA-диски, подключая их к старому компьютеру, который остальное время стоит в кладовке, и всегда влом искать к нему дополнительную клавиатуру и кабели для монитора, только чтобы запустить ОС и включить ssh.
Хотелось бы иметь дистрибутив из разряда «сделал и забыл», который бы давал root-доступ к компьютеру/виртуальной машине по сети максимально простым способом.

На текущий момент использую SystemRescueCD: этот дистрибутив и содержит подавляющее большинство необходимых утилит, и собственную систему конфигурации с помощью YAML-файлов, благодаря которым можно запустить ssh и vnc-серверы, назначить пароль root, добавить ssh-ключи, прописать произвольные скрипты при запуске. Он отлично работает в локальной сети, но у него нет никакой дополнительной инфраструктуры для его использования «через интернет» (за NAT). Настройка Wi-Fi через YAML-конфигурацию не предусмотрена, только Ethernet.
Также он не особо «красиво» располагается на флешке — 6 директорий в корне, а для моего сценария использования была бы предпочтительней одна директория в корне флешки, чтобы было меньше пространства для ошибок при копировании/удалении дистрибутива с носителя.

Из дистрибутивов для удалённого управления компьютером мне известен только bitscout, но он больше для профессионального использования. Ему необходим VPN-сервер, к которому подключается клиент, а мне бы не хотелось поднимать и содержать дополнительную инфраструктуру.

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

 , , ,

ValdikSS
()

p.gif нагружает систему в Firefox

https://www.linux.org.ru/img/p.gif

Этот GIF-файл имеет всего один кадр, но помечен анимированным, из-за чего Firefox пытается применять к нему анимацию, перерисовывая один и тот же кадр снова и снова, что создаёт излишнюю нагрузку на CPU/GPU.

$ gifsicle -I p.gif
* p.gif 1 image
  logical screen 1x1
  global color table [2]
  background 0
  + image #0 1x1 transparent 0
    disposal asis **delay 0.20s**

Прошу пересохранить файл без анимации (без параметра delay у кадра).

Баги Firefox: 1, 2.

 ,

ValdikSS
()

PSA: 32-битные процессоры зависают на 5.15.35, 5.16.11, 5.17.

В драйвер ACPI CPU внесена регрессия, которая попала в ядра версий 5.15.35, 5.16.11, 5.17 и не исправлена в этих ветках по сей день.

Проблема приводит к спонтанным зависаниям на 32-битных процессорах (отмечены на Pentium 3 / Pentium M / VIA C7).

Ошибка внесена патчем ACPI: processor idle: Allow playing dead in C3 state, устранена ACPI: processor: idle: Avoid falling back to C3 type C-states, который пока вошел только в 5.18-rc5.

 , ,

ValdikSS
()

Сделал публичный порт-форвардер через SSH, оцените

ssh ssh-j.com

Сервис для проброса SSH-подключения из-за NAT. Никаких доп. программ ни на сервере, ни на клиенте. Никаких регистраций и временных доменов/портов. Одна команда для проброса SSH, одна для подключения.

Хоть ssh-j и позволяет пробрасывать любые сервисы, предлагается публиковать только порты SSH, чтобы не нарушался принцип end-to-end шифрования.

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

Буду рад услышать отзывы.

 , ,

ValdikSS
()

Выявляем процессы с дисковой активностью в Linux

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

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

https://habr.com/ru/post/476414/

 blktrace, , fatrace, ,

ValdikSS
()

Сборка образа системного контейнера

Для контейнеров приложений (application containers) есть куча систем сборки: Dockerfile, buildah, Buildkit, img, Bazel, kaniko, и еще куча разных.

Для системных контейнеров (system containers, которые запускают в LXC/LXD/systemd-nspawn) нашел только distrobuilder, но его нет в репозиториях (для меня не проблема, но хочу, чтобы пользователи контейнера могли его легко пересобрать, это было бы плюсом).

Кто-нибудь что-нибудь подскажет, что использовать? Мне нужно взять готовый образ ОС (debian 10, например), скопировать несколько файлов по определенным путям, установить несколько программ из репозитория, и сделать из этого контейнер. В общем, то, что делает dockerfile, только для системных контейнеров.
Хоть ansible бери.

 , , ,

ValdikSS
()

CTRL+C не всегда копирует текст, помогите отладить

Когда я выделяю текст в графической программе и нажимаю CTRL+C, текст копируется примерно в 9 из 10 случаев, но 1 раз не копируется, и в буфере остаются старые данные. Проблема не только с комбинацией CTRL+C, а с буфером обмена в принципе. Если в Firefox нажать правой кнопкой на ссылке и выбрать «Copy link location», ссылка не всегда копируется в буфер.

Проблема появилась примерно в Fedora 28, т.е. где-то полтора года назад. Сильно раздражает.

Сейчас пользуюсь Fedora 30, KDE 5.15.5. Пробовал менять настройки и отключать Clipboard manager KDE'шный (единственная программа, которая что-либо делает с буфером обмена) — ничего не изменилось.

У кого-нибудь наблюдается подобное? Если наблюдается, то на каком дистрибутиве и DE?

Кто-нибудь знает, как отлаживать эту проблему? Как обнаружить, из-за чего не копируется текст? Проблема точно программная, с клавиатурой все в порядке.

10.09.2019: создал баг в багтрекере Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1750903

 , , ,

ValdikSS
()

Дистрибутив Linux для удаленного управления компьютером

Ищу Live-дистрибутив Linux (в виде ISO или образа для флешки), предназначенный для управления компьютером из локальной сети и через интернет.

Интересуют следующие сценарии использования:

1. Загрузка компьютера без монитора с флешки, с доступом через SSH. Бывает необходимо самостоятельно загрузить компьютер, к которому есть физический доступ, для копирования данных или восстановления ОС.

2. Загрузка компьютера с флешки, с доступом по SSH/VNC через интернет, даже если компьютер за NAT. Нужно для исправления проблем с компьютером, на котором загружена эта ОС, или для получения доступа к другим компьютерам в удаленной локальной сети.

ОС должна автоматически настраивать доступ в интернет (проводное соединение через DHCP, настройка Wi-Fi через отдельный файл на флешке, или как-то ещё), возможно, как-то уведомлять о том, что компьютер включился (почтой?), удаленный доступ не должен требовать собственный сервер (не VPN, а Tor Hidden Service, или что-то подобное).

Из отдаленно похожего нашел только https://github.com/vitaly-kamluk/bitscout.

Кто-нибудь знает подобные проекты?

 , , , ,

ValdikSS
()

Не берите Wi-Fi-карты на Broadcom BCM4360

Популярные карты Wi-Fi 802.11ac 3x3 MIMO для настольных компьютеров на чипе Broadcom BCM4360 плохо работают в Linux. Скорость скачивания высокая (400+ Мбит/с), а вот скорость отдачи не превышает 60-70 Мбит/с.

Свободным драйвером чип не поддерживается, карты работают только с проприетарным драйвером broadcom-wl, который не обновляется с 2015 года.

В README драйвера указан адрес email, на который можно направлять вопросы, однако на мои письма никто не ответил.

Карты на BCM4360:

  • ASUS PCE-AC68
  • TP-Link Archer T9E

 , ,

ValdikSS
()

Нерабочая ссылка на FAQ при создании темы

В тексте, который выводится при создании темы, ссылка на FAQ ведет на несуществующую страницу www.linux.org.ru/wiki/en/lor-faq

 

ValdikSS
()

Исследуем защиту и восстанавливаем аркады Namco System ES1 (TPM, DMA, MBR)

Написал тут статью, может, кого-то заинтересует способом обхода TPM.

https://habrahabr.ru/post/304014/

 

ValdikSS
()

HiDPI и «неподдерживаемые» разрешения

Написал тут две статьи, одна описывает поддержку HiDPI разными DE и тулкитами, а другая рассказывает, как установить максимальное разрешение в ущерб частоте обновления, если видеокарта не поддерживает высокие разрешения.

HiDPI в Linux
Используем высокие разрешения на неподдерживающих их видеокартах

Может, заинтересует кого.

Перемещено JB из desktop

 

ValdikSS
()

HTTP стриминг-сервер

У меня проблема: я не могу найти никакой вменяемый бесплатный (можно даже не опенсорс, но лучше опенсорс) HTTP (не HLS, не RTMP) стриминг-сервер, кроме VLC VLM. ffserver заброшен и не поддерживается, к тому же, не умеет вещать без перекодировки, а больше-то и нету.

Может, подскажет кто?

 , http streaming, ,

ValdikSS
()

Скрипт/приложение/демон для удобной настройки policy routing / MultiWAN

Ищется какой-нибудь скрипт, приложение или демон для удобной настройки policy routing / multiwan без привязки к конкретному дистрибутиву, либо с минимальной.
Для OpenWRT, например, есть multiwan и mwan3, все настраивается очень просто, но настроить то же самое в Debian бывает проблематично.

Мне нужен только сам policy routing, без балансировки и failover. Очень желательна поддержка IPv6.
Пока присматриваюсь к демонам маршрутизации, вроде BIRD, но это перебор.

Кто-нибудь что-нибудь может подсказать?

 , , ,

ValdikSS
()

Детектор типа блокировки сайтов из реестра

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

https://github.com/ValdikSS/blockcheck

Утилита отправляет определенный тип блокировки на сервер.

ValdikSS
()

Из Totem убрали возможность ресайза по размеру видео

https://mail.gnome.org/archives/commits-list/2013-March/msg09987.html

    main: Remove auto-resize and zoom to video size
    
    Those will not make much sense anymore when we want Totem
    to be maximised most of the time, as per the new designs.

ValdikSS
()

Мониторинг Linux-ботнета BillGates

Я тут штуку сделал поиграться

https://github.com/ValdikSS/billgates-botnet-tracker

Можно смотреть, кого DDoSят.

 

ValdikSS
()

RSS подписка на новые темы