Forwarded from Типичный Сисадмин
Пока хипстеры переписывали свои конфиги на WireGuard, деды из OpenVPN выкатили мажорный релиз 2.7. И судя по чейнджлогу, хоронить классику энтерпрайз-VPN еще очень рано.
Главная киллер-фича - полноценная поддержка Data Channel Offload. Если раньше OpenVPN работал поверх ядра и постоянно переключал контекст процессора (что убивало скорость), то теперь обработку данных можно спихнуть прямо в ядро Linux (модуль
ovpn уже в ядре 6.16).📊 Результат на картинке. Обычный
tun выдает 370 Мбит/с, а новый ovpn-dco 2950 Мбит/с. Прирост почти в 10 раз. WireGuard, ты там как, нормально? Что еще вкусного:
wintun, теперь по дефолту win-dco. Плюс служба теперь запускается без админских прав, что сильно возрадует безопасников Релиз получился монументальный... если у вас корпоративный стандарт всё еще OpenVPN, то жизнь стала сильно лучше. Осталось только дождаться, когда DCO-модуль доедет до стабильных ядер дистрибутивов, и можно будет забыть про тормоза.
Типичный
Please open Telegram to view this post
VIEW IN TELEGRAM
3 практических метода усилить безопасность MikroTik
Безопасность роутера строится не на одной "магической" настройке, а на комбинации мер: защита управления, минимизация поверхности атаки и контроль входящего трафика. Ниже три рабочих механизма, которые реально снижают риск компрометации.
Многоступенчатая защита от перебора паролей Winbox и SSH
Мгновенный
Автоматизированные брутфорс-боты создают серию TCP-сессий и быстро попадают в финальный
Результат - автоматическая фильтрация массовых атак без постоянного ручного контроля.
Сужение зоны доступа к управлению и отключение лишних сервисов
Каждый активный сервис увеличивает поверхность атаки. Если сервис не используется - он должен быть выключен. Управление устройством не должно быть доступно из произвольных внешних сетей.
Пример базовой минимизации:
Ограничение management только доверенными подсетями резко снижает вероятность удаленной эксплуатации уязвимостей и перебора учетных данных.
Контроль ICMP и базовая защита от перегрузки
Полное отключение ICMP ломает диагностику и мониторинг. Грамотнее ограничить интенсивность входящих запросов. Это уменьшает эффект ping-flood и защищает CPU роутера от избыточной обработки пакетов.
Такой механизм позволяет сохранить доступность диагностики, одновременно снижая нагрузку при простых DoS-попытках.
Эти три подхода закрывают основные векторы атак на публичный MikroTik: перебор учетных данных, избыточно открытые сервисы и примитивные flood-атаки. В совокупности они дают ощутимый прирост устойчивости без усложнения конфигурации.
#learn
Безопасность роутера строится не на одной "магической" настройке, а на комбинации мер: защита управления, минимизация поверхности атаки и контроль входящего трафика. Ниже три рабочих механизма, которые реально снижают риск компрометации.
Многоступенчатая защита от перебора паролей Winbox и SSH
Мгновенный
drop не всегда оптимален. Эффективнее использовать эскалацию блокировок через address-list. Логика простая: каждая новая попытка подключения увеличивает срок изоляции источника.Автоматизированные брутфорс-боты создают серию TCP-сессий и быстро попадают в финальный
blacklist. При этом администратор, ошибившийся один раз, не будет заблокирован на сутки./ip firewall filter
add chain=input protocol=tcp dst-port=22,8291 connection-state=new \
action=add-src-to-address-list address-list=stage1 address-list-timeout=1m
add chain=input protocol=tcp dst-port=22,8291 src-address-list=stage1 \
action=add-src-to-address-list address-list=stage2 address-list-timeout=10m
add chain=input protocol=tcp dst-port=22,8291 src-address-list=stage2 \
action=add-src-to-address-list address-list=blacklist address-list-timeout=1d
add chain=input src-address-list=blacklist action=drop
Результат - автоматическая фильтрация массовых атак без постоянного ручного контроля.
Сужение зоны доступа к управлению и отключение лишних сервисов
Каждый активный сервис увеличивает поверхность атаки. Если сервис не используется - он должен быть выключен. Управление устройством не должно быть доступно из произвольных внешних сетей.
Пример базовой минимизации:
/ip service disable ftp
/ip service disable www
/ip service set winbox address=192.168.88.0/24
/ip service set ssh address=192.168.88.0/24
Ограничение management только доверенными подсетями резко снижает вероятность удаленной эксплуатации уязвимостей и перебора учетных данных.
Контроль ICMP и базовая защита от перегрузки
Полное отключение ICMP ломает диагностику и мониторинг. Грамотнее ограничить интенсивность входящих запросов. Это уменьшает эффект ping-flood и защищает CPU роутера от избыточной обработки пакетов.
/ip firewall filter
add chain=input protocol=icmp limit=5,10 action=accept \
comment="Allow limited ICMP"
add chain=input protocol=icmp action=drop \
comment="Drop excessive ICMP"
Такой механизм позволяет сохранить доступность диагностики, одновременно снижая нагрузку при простых DoS-попытках.
Эти три подхода закрывают основные векторы атак на публичный MikroTik: перебор учетных данных, избыточно открытые сервисы и примитивные flood-атаки. В совокупности они дают ощутимый прирост устойчивости без усложнения конфигурации.
#learn
👀1
Forwarded from Типичный Сисадмин
Пока мир сходит с ума и люди заваливают друг друга розовыми сердечками, нормальные инженеры отмечают настоящий праздник - День компьютерщика. Именно в этот день, 14 февраля 1946 года, человечеству показали ENIAC I. И это был первый реально работающий электронный монстр, который перевернул игру.
Романтика того времени была суровой... машину строили не для лайков в соцсетях, а на деньги американской армии для расчета баллистических таблиц артиллерии и авиации. До появления ENIAC должность Computer (или Вычислитель) занимали живые люди, которым приходилось вручную перемалывать тонны данных. Железный предок весил 27 тонн, жрал 150 кВт энергии и заменил собой целый штат сотрудников, подарив нам ту самую двоичную систему счисления, на которой теперь держится вся наша цифровая цивилизация, которая уже успела докатиться до... ладно, не в этот день
И чтобы два раза не вставать
Так что, коллеги, обнимите сегодня свой сервер (или ноутбук, как Столлман), он греет лучше, чем картонное розовое сердце
Типичный
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Типичный Сисадмин
Тут в Токио на Linux Plumbers Conference подняли тему, которая болит у каждого, кто хоть раз пытался разобрать 😰
В качестве решения предлагают переходить на компактные форматы типа CTF или SFrame. Идея в том, чтобы облегченные таблицы символов, необходимые для построения стек-трейсов и профилирования, весили мало и всегда были загружены в память вместе с ядром. Представьте мир, где утилиты мониторинга работают сходу, без танцев с бубном и подключения
Идея здравая🥳
Типичный🥸 Сисадмин
vmcore или запустить профайлер на проде. Один участник зачитал доклад о том, что текущий формат отладочной информации устарел и разжирел. Сейчас, чтобы проанализировать дамп ядра, нужно выкачивать сотни мегабайт (а то и гигов) символов в формате DWARF. Это долго, неудобно и часто невозможно в закрытых контурах, где нет доступа к внешним репозиториям В качестве решения предлагают переходить на компактные форматы типа CTF или SFrame. Идея в том, чтобы облегченные таблицы символов, необходимые для построения стек-трейсов и профилирования, весили мало и всегда были загружены в память вместе с ядром. Представьте мир, где утилиты мониторинга работают сходу, без танцев с бубном и подключения
debuginfo-репов. Если индустрия это примет, мы наконец-то перестанем качать гигабайты ненужного ради того, чтобы увидеть одну строчку с адресом функции, которая уронила сервер.Идея здравая
Типичный
Please open Telegram to view this post
VIEW IN TELEGRAM
Полезные приёмы Bash, которые стоит использовать в скриптах
1. Контроль наличия файлов и каталогов
Конструкция тестирования через
Такая проверка обязательна перед удалением, чтением или изменением файлов. Это снижает риск аварийного завершения скрипта и делает логику предсказуемой.
2. Подстановка значения по умолчанию
Если переменная
Разница вариантов:
Используется для безопасной работы со входными параметрами и переменными окружения.
3. Обход файлов через цикл for
Важно помнить:
-всегда заключать переменные в кавычки
-при работе с произвольными именами лучше использовать
Это защищает от проблем с пробелами и спецсимволами в именах файлов.
4. Чтение файла построчно
Безопасный способ чтения строк.
Такой шаблон обязателен при работе с конфигами, логами и любыми текстовыми данными.
5. Проверка результата выполнения команды
В Bash код возврата
Использование
6. Многострочный ввод через heredoc
Позволяет передать блоку команд заранее заданный текст.
Часто используется для генерации конфигурационных файлов, шаблонов и inline-скриптов.
7. Очистка ресурсов через trap
Команда trap регистрирует обработчик завершения.
Необходимо для удаления временных файлов и корректного освобождения ресурсов.
8. Жёсткий режим выполнения
После включения этой опции Bash завершит выполнение при первой команде, вернувшей ненулевой код выхода.
Что это даёт:
-Любая ошибка прерывает сценарий немедленно.
-Исключается продолжение работы в неконсистентном состоянии.
-Снижается риск повреждения данных из-за "тихих" сбоев.
Обычно включают вместе с:
Ошибка при обращении к неинициализированной переменной. Позволяет отлавливать опечатки и логические дефекты.
Возвращает код ошибки любой команды внутри пайпа, а не только последней. Это критично при использовании конвейеров.
#learn
1. Контроль наличия файлов и каталогов
if [ -f "$file" ]; then
echo "Файл существует"
fi
Конструкция тестирования через
[ ]позволяет проверять разные типы объектов файловой системы.-f - обычный файл-d - директория-x - исполняемый файлТакая проверка обязательна перед удалением, чтением или изменением файлов. Это снижает риск аварийного завершения скрипта и делает логику предсказуемой.
2. Подстановка значения по умолчанию
name=${NAME:-"Гость"}Если переменная
NAME не определена или пуста, будет использовано значение "Гость".Разница вариантов:
${VAR:-value} - только подставляет${VAR:=value} - подставляет и записывает в переменнуюИспользуется для безопасной работы со входными параметрами и переменными окружения.
3. Обход файлов через цикл for
for file in *.txt; do
echo "Обрабатываю $file"
done
Важно помнить:
-всегда заключать переменные в кавычки
-при работе с произвольными именами лучше использовать
for file in *; doЭто защищает от проблем с пробелами и спецсимволами в именах файлов.
4. Чтение файла построчно
while IFS= read -r line; do
echo "Строка: $line"
done < input.txt
Безопасный способ чтения строк.
IFS= отключает автоматическое разбиение по пробелам-r запрещает интерпретацию backslashТакой шаблон обязателен при работе с конфигами, логами и любыми текстовыми данными.
5. Проверка результата выполнения команды
if command; then
echo "Команда прошла успешно"
else
echo "Ошибка"
fi
В Bash код возврата
0 означает успех, любое другое значение - ошибка.Использование
if напрямую с командой - базовый механизм обработки ошибок. Это предпочтительнее, чем анализ вывода.6. Многострочный ввод через heredoc
cat << EOF
Это многострочный текст.
EOF
Позволяет передать блоку команд заранее заданный текст.
Часто используется для генерации конфигурационных файлов, шаблонов и inline-скриптов.
7. Очистка ресурсов через trap
trap 'rm -f /tmp/tempfile' EXIT
Команда trap регистрирует обработчик завершения.
EXIT - выполняется при любом выходе из скриптаINT - перехват Ctrl+CTERM - корректное завершение процессаНеобходимо для удаления временных файлов и корректного освобождения ресурсов.
8. Жёсткий режим выполнения
set -e
После включения этой опции Bash завершит выполнение при первой команде, вернувшей ненулевой код выхода.
Что это даёт:
-Любая ошибка прерывает сценарий немедленно.
-Исключается продолжение работы в неконсистентном состоянии.
-Снижается риск повреждения данных из-за "тихих" сбоев.
Обычно включают вместе с:
set -u
Ошибка при обращении к неинициализированной переменной. Позволяет отлавливать опечатки и логические дефекты.
set -o pipefail
Возвращает код ошибки любой команды внутри пайпа, а не только последней. Это критично при использовании конвейеров.
#learn
👍2
SELinux и AppArmor - что делать, если сервис не запускается или работает некорректно.
SELinux и AppArmor - это механизмы принудительного контроля доступа MAC. Они ограничивают действия процессов независимо от прав пользователя, включая root. Если служба не читает файлы, не открывает порт или падает без очевидной причины, проблема часто связана именно с ними.
В Linux действует двухуровневая модель безопасности:
1) DAC - классические UNIX права и владельцы.
2) MAC - обязательная политика, которая проверяется дополнительно.
Если DAC разрешает доступ, но MAC запрещает, операция будет заблокирована.
SELinux
SELinux использует модель на основе меток. Каждый объект в системе имеет security context:
user:role:type:level
Решение принимается по правилу type enforcement. Если для пары source_type и target_type нет разрешения allow - операция будет отклонена.
Что проверить в первую очередь:
Возможные значения:
Если в
Проверка контекстов:
Тип процесса должен соответствовать типу файлов. Например, процесс
Анализ отказов:
или
Типовые причины:
1) файлы скопированы вручную и потеряли корректный label
2) данные размещены в нестандартном каталоге
3) сервис использует нетипичный порт
4) приложению требуется доступ к сети, не разрешенный boolean
Корректное исправление - восстановление контекста:
Если используется нестандартный путь:
Добавление нестандартного порта:
Проверка и включение boolean:
Создание локального модуля политики:
Этот способ добавляет новое allow правило. Использовать только если невозможно решить проблему через корректные типы или booleans.
Временный перевод в permissive режим для диагностики:
Но это только для диага, не для прода.
AppArmor
AppArmor использует модель на основе путей. Политика задается профилем, который ограничивает доступ к конкретным файлам, каталогам и возможностям ядра.
Проверка статуса:
Поиск отказов:
В логе будет строка вида:
apparmor="DENIED" operation="open" profile="/usr/sbin/nginx"
Решение через complain режим:
Профиль перестает блокировать и начинает только логировать.
Автоматическое добавление правил из логов:
Редактирование профиля вручную:
Добавление правила доступа:
Перезагрузка профиля:
Основные ошибки сисадминов ^_^
1) Полное отключение SELinux или AppArmor вместо анализа причины.
2) Использование
3) Генерация модуля через
4) Оставление системы в
Рабочий алгоритм при отказе сервиса:
1) Проверить режим SELinux или AppArmor.
2) Найти deny в логах.
3) Проверить контексты или профиль.
4) Попробовать восстановить стандартную политику.
5) Добавить точечное разрешение.
6) Только в крайнем случае создавать кастомный модуль.
MAC - это лишь доп слой защиты. Он не должен мешать, а только ограничивать потенциальный ущерб.
Правильная настройка залог нервов, и спокойной смены на работе :)
#learn
SELinux и AppArmor - это механизмы принудительного контроля доступа MAC. Они ограничивают действия процессов независимо от прав пользователя, включая root. Если служба не читает файлы, не открывает порт или падает без очевидной причины, проблема часто связана именно с ними.
В Linux действует двухуровневая модель безопасности:
1) DAC - классические UNIX права и владельцы.
2) MAC - обязательная политика, которая проверяется дополнительно.
Если DAC разрешает доступ, но MAC запрещает, операция будет заблокирована.
SELinux
SELinux использует модель на основе меток. Каждый объект в системе имеет security context:
user:role:type:level
Решение принимается по правилу type enforcement. Если для пары source_type и target_type нет разрешения allow - операция будет отклонена.
Что проверить в первую очередь:
getenforce
Возможные значения:
Enforcing - блокируетPermissive - только логируетDisabled - отключенЕсли в
Permissive сервис начинает работать, причина точно в политике.Проверка контекстов:
ls -Z /path
ps -eZ | grep nginx
Тип процесса должен соответствовать типу файлов. Например, процесс
httpd_t может читать только файлы с httpd_sys_content_t. Если каталог имеет тип default_t - будет отказ.Анализ отказов:
grep "avc: denied" /var/log/audit/audit.log
или
ausearch -m avc -ts recent
Типовые причины:
1) файлы скопированы вручную и потеряли корректный label
2) данные размещены в нестандартном каталоге
3) сервис использует нетипичный порт
4) приложению требуется доступ к сети, не разрешенный boolean
Корректное исправление - восстановление контекста:
restorecon -Rv /var/www/html
Если используется нестандартный путь:
semanage fcontext -a -t httpd_sys_content_t "/srv/site(/.*)?"
restorecon -Rv /srv/site
Добавление нестандартного порта:
semanage port -a -t http_port_t -p tcp 8080
Проверка и включение boolean:
getsebool -a | grep httpd
setsebool -P httpd_can_network_connect on
Создание локального модуля политики:
grep "avc: denied" /var/log/audit/audit.log | audit2allow -M mymodule
semodule -i mymodule.pp
Этот способ добавляет новое allow правило. Использовать только если невозможно решить проблему через корректные типы или booleans.
audit2allow может открыть избыточный доступ.Временный перевод в permissive режим для диагностики:
setenforce 0
Но это только для диага, не для прода.
AppArmor
AppArmor использует модель на основе путей. Политика задается профилем, который ограничивает доступ к конкретным файлам, каталогам и возможностям ядра.
Проверка статуса:
aa-status
Поиск отказов:
journalctl -xe | grep apparmor
dmesg | grep DENIED
В логе будет строка вида:
apparmor="DENIED" operation="open" profile="/usr/sbin/nginx"
Решение через complain режим:
aa-complain /usr/sbin/nginx
Профиль перестает блокировать и начинает только логировать.
Автоматическое добавление правил из логов:
aa-logprof
Редактирование профиля вручную:
/etc/apparmor.d/usr.sbin.nginx
Добавление правила доступа:
/srv/site/** r,
Перезагрузка профиля:
apparmor_parser -r /etc/apparmor.d/usr.sbin.nginx
Основные ошибки сисадминов ^_^
1) Полное отключение SELinux или AppArmor вместо анализа причины.
2) Использование
chmod 777 вместо корректной политики.3) Генерация модуля через
audit2allow без понимания, что именно разрешается.4) Оставление системы в
permissive или complain режиме в продакшене.Рабочий алгоритм при отказе сервиса:
1) Проверить режим SELinux или AppArmor.
2) Найти deny в логах.
3) Проверить контексты или профиль.
4) Попробовать восстановить стандартную политику.
5) Добавить точечное разрешение.
6) Только в крайнем случае создавать кастомный модуль.
MAC - это лишь доп слой защиты. Он не должен мешать, а только ограничивать потенциальный ущерб.
Правильная настройка залог нервов, и спокойной смены на работе :)
#learn
Forwarded from Типичный Сисадмин
Годами мы лепили гостевые SSID, ставили галочку AP Isolation и верили, что юзеры внутри одной подсети изолированы друг от друга. Оказалось - показалось
На симпозиуме NDSS 2026 показали атаку AirSnitch, которая умножает на ноль всю изоляцию Wi-Fi клиентов. Причем делает это не брутфорсом, а фундаментальным обманом логики работы коммутаторов на первом и втором уровнях модели OSI. Уязвимы практически все протестированные железки... Cisco, Ubiquiti, Netgear, D-Link, а также кастомные прошивки OpenWrt и DD-WRT
Суть атаки... Атакующий подключается к точке доступа, подделывая MAC-адрес жертвы. AP обновляет таблицу коммутации, связывая виртуальный порт атакующего с MAC-адресом жертвы. В результате весь входящий трафик начинает литься хакеру. Но чтобы сделать атаку двусторонней и не сбросить жертву окончательно, хакер использует хитрый трюк... он отправляет ICMP-пинг с рандомного MAC-адреса, завернутый в общий групповой ключ сети. Это заставляет точку доступа переключить маршрутизацию обратно на жертву. Постоянно жонглируя этими состояниями, атакующий незаметно встает посередине канала
Самая дичь заключается в том, что атака работает даже за пределами одного BSSID. Злоумышленник может сидеть на гостевом SSID, а ломать клиента из корпоративного SSID, если они обслуживаются одной точкой доступа. В энтерпрайз-сетях ситуация еще хуже, т.к. AirSnitch позволяет перехватывать трафик между пользователями, подключенными к разным физическим точкам доступа, если они делят общую проводную распределительную сеть. Разделение по VLAN помогает далеко не всегда, так как многие вендоры криво реализуют изоляцию между L2 и L3. Исследователи даже продемонстрировали, как с помощью этого метода перехватить RADIUS-пакеты и поднять фейкового двойника корпоративной WPA3-Enterprise сети.
Что со всем этим делать - пока вопрос открытый. Проблема кроется в самой архитектуре обработки фреймов, и некоторые производители железа уже говорят, что починить это программно невозможно и нужны фиксы в Wi-Fi чипах. Патчи будут, но до тех пор любая открытая или слабо защищенная сеть (даже с изоляцией) - это ваши риски уже сейчас
Типичный
Please open Telegram to view this post
VIEW IN TELEGRAM
😨2
Forwarded from Типичный Сисадмин
🧬 Ученые собрали перезаписываемый жесткий диск из ДНК
Исследователи научились не просто архивировать данные в молекулы ДНК (это умели и раньше в режиме...записал и положил в холодильник на сотню лет), а создали полноценный многоразовый носитель. Теперь эту био-флешку можно стирать и переписывать по кругу, прямо как обычный хард😮
Внутри сплошной киберпанк. Чтобы записать инфу, бинарный код конвертируют в последовательности нуклеотидов (A, C, G, T) с помощью алгоритма frameshift encoding. А для чтения используется сенсор-нанопора... нить ДНК протаскивают через микроскопическое отверстие, электроника замеряет колебания электрического сигнала и расшифровывает их обратно в нули и единицы. По сути, получилась классическая логика контроллера HDD, только на молекулярном уровне.
Профиты технологии очевидны. Плотность записи такая, что в одной пробирке можно унести бэкапы ДЦ среднего гиперскейлера. Плюс нулевое энергопотребление в режиме простоя и срок хранения в несколько столетий. Никакой деградации ячеек, как в SSD, и никаких заклинивших головок.
Однако до коммерческого прода и компактных USB-свистков с ДНК еще пройдут годы. Но перспектива забавная. Походу в будущем придется следить за тем, чтобы полка с бэкапами случайно не мутировала🏥
Типичный🥸 Сисадмин
Исследователи научились не просто архивировать данные в молекулы ДНК (это умели и раньше в режиме...записал и положил в холодильник на сотню лет), а создали полноценный многоразовый носитель. Теперь эту био-флешку можно стирать и переписывать по кругу, прямо как обычный хард
Внутри сплошной киберпанк. Чтобы записать инфу, бинарный код конвертируют в последовательности нуклеотидов (A, C, G, T) с помощью алгоритма frameshift encoding. А для чтения используется сенсор-нанопора... нить ДНК протаскивают через микроскопическое отверстие, электроника замеряет колебания электрического сигнала и расшифровывает их обратно в нули и единицы. По сути, получилась классическая логика контроллера HDD, только на молекулярном уровне.
Профиты технологии очевидны. Плотность записи такая, что в одной пробирке можно унести бэкапы ДЦ среднего гиперскейлера. Плюс нулевое энергопотребление в режиме простоя и срок хранения в несколько столетий. Никакой деградации ячеек, как в SSD, и никаких заклинивших головок.
Однако до коммерческого прода и компактных USB-свистков с ДНК еще пройдут годы. Но перспектива забавная. Походу в будущем придется следить за тем, чтобы полка с бэкапами случайно не мутировала
Типичный
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
Если запускаешь сервисы или ботов на сервере, не храни токены и API-ключи в коде и не вводи их через export в терминале. Они остаются в git и истории shell.
Используй
Плюсы:
Ключи не попадают в git.
Не сохраняются в history.
Проще переносить сервис между серверами.
Конфигурация лежит в одном месте.
После изменения
Создание
Пример переменных:
Загрузка переменных:
Проверка:
Используй
.env файл и подгружай переменные при запуске процесса.Плюсы:
Ключи не попадают в git.
Не сохраняются в history.
Проще переносить сервис между серверами.
Конфигурация лежит в одном месте.
После изменения
.env всегда проверяй, какие переменные реально видит процесс.Создание
.env:cd /root/bot
vim .env
chmod 600 .env
Пример переменных:
X_API_KEY=your_key_here
OPENAI_API_KEY=your_key_here
Загрузка переменных:
set -a
source .env
set +a
Проверка:
python -c "import os; print(os.getenv('X_API_KEY'))"👎1
Forwarded from Типичный Сисадмин
Сегодня, 16 марта, свой 73-й левелап празднует Ричард Мэттью Столлман (он же RMS). Отец-основатель Фонда свободного ПО, создатель идеологии опенсорса и человек, который придет к вам во сне и откусит лицо, если вы назовете ОС просто Linux, а не GNU/Linux
Кто же он, поинтересуется молодой эникей... так вот, пока Гейтс и Джобс в 80-х активно огораживали исходники и впаривали всем проприетарные бинарники, молодой хакер из MIT в соло объявил корпорациям священный ИТ-джихад. Он решил написать свою свободную ОС с блэкджеком и открытым кодом.
В итоге Столлман выкатил фундамент, на котором до сих пор крутится вообще весь современный ИТ-мир... монументальный компилятор GCC (без которого ни одно ядро не собралось бы), отладчик GDB, базовый юзерспейс GNU и Emacs... отличную операционную систему, которой, по историческому недоразумению, не хватает лишь нормального текстового редактора
А главным его достижением стала лицензия GPL, за что ему огромный респект... это гениальный юридический вирус, который заставил жадные корпорации делиться кодом и до сих пор вызывает жжение ниже спины у проприетарных вендоров
Еще RMS это ходячий генератор приколов. Человек, который благословляет линуксоидов блином от старого винчестера на голове (в образе Святого ИГНУциуса - фото к этому посту). Принципиально не пользуется мобильными телефонами (называя их портативными зондами и мечтой Сталина). Серфит веб через отправку email-запросов к специальному демону. Признает только старые ThinkPad с прошитым Libreboot, чтобы ни один байт проприетарного Intel ME не проник на его жесткий диск. Ну и аппетитная классика... может ВНЕЗАПНО начать отковыривать и есть что-то со своей ноги прямо во время лекции
А еще...дед был прав, ведь что характерно, если в сытые нулевые над паранойей Столлмана откровенно ржали, называя его городским сумасшедшим и радикальным фанатиком, то в суровых реалиях 2026 года смех как-то поутих. Дед теперь не кажется таким сумасшедшим
Когда Windows 11 без онлайна отказывается открывать Блокнот, ИИ-агенты Microsoft и Apple скриншотят каждый твой пук на рабочем столе, вендоры продают по подписке ядра в процессорах и обогрев сидений, а Гугл принудительно выжигает сайдлоадинг APK-файлов на Android - дедовские проповеди о цифровом рабстве и зондах оказались абсолютной базой. Он не был параноиком. Он просто читал логи будущего
С днем рождения, Ричард! Долгих лет жизни, железобетонного здоровья, стабильных компиляций и чистого кода без проприетарных блобов.
Поднимем же бокалы (free as in free beer, разумеется) за этого великого человека в нашем с вами ИТ
Типичный
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😁1
Forwarded from Типичный Сисадмин
В стане пингвиноводства случилась эпохальная победа. Загрузчик GNU GRUB переходит на современные рельсы разработки. Деды решили отказаться от почтовых рассылок 😬
Испокон веков суровые бородатые мейнтейнеры GRUB хостили исходники на древнем как бивни мамонта GNU Savannah. Весь процесс разработки шел исключительно по олдскульному хардкору... патчи кидались через почтовые рассылки, а ревью кода происходило в тредах email-клиентов.
Но на дворе 2026 год, и даже до таких аксакалов дошло, что этот палеозой пора заканчивать. Разрабы объявили о миграции проекта на мощности
Вместо🎩
Для нас ничего не изменится... GRUB как грузил ядро, так и будет. А вот для комьюнити разрабов это чистый WIN. Порог входа в контрибьютинг резко снижается, т.к. больше не нужно проходить обряд посвящения🪄 через настройку почтовых клиентов для отправки патчей. Код будет проверяться быстрее, новые фичи внедряться оперативнее.
Типичный🥸 Сисадмин
Испокон веков суровые бородатые мейнтейнеры GRUB хостили исходники на древнем как бивни мамонта GNU Savannah. Весь процесс разработки шел исключительно по олдскульному хардкору... патчи кидались через почтовые рассылки, а ревью кода происходило в тредах email-клиентов.
Но на дворе 2026 год, и даже до таких аксакалов дошло, что этот палеозой пора заканчивать. Разрабы объявили о миграции проекта на мощности
FreeDesktop.org. Это полноценный инстанс GitLab. А значит, разработка самого популярного опенсорсного бутлоадера планеты наконец-то получит человеческий воркфлоу. Вместо
git send-email теперь будут нормальные Merge Requests, удобное ревью кода прямо в веб-морде, трекинг багов без необходимости курить мануалы по древним багтрекерам и нормальный CI/CD Для нас ничего не изменится... GRUB как грузил ядро, так и будет. А вот для комьюнити разрабов это чистый WIN. Порог входа в контрибьютинг резко снижается, т.к. больше не нужно проходить обряд посвящения
Типичный
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Nerva - утилита на Go для точного определения сервиса за открытым портом. Не "порт 22", а конкретно: SSH, Redis, Kafka, Kubernetes API и т.д.Работает за счёт анализа ответов сервиса, баннеров и поведения протокола. На выходе даёт метаданные: тип сервиса, транспорт (TCP/UDP/SCTP), иногда версию и дополнительные детали.
Поддерживает 120+ протоколов: от базовых (HTTP, FTP, PostgreSQL) до телеком и industrial (Diameter, GTP, Modbus, BACnet).
Установка:
go install github.com/praetorian-inc/nerva/cmd/nerva@latest
Примеры:
Определить сервис:
nerva -t example.com:22
JSON-вывод:
nerva -t example.com:22 --json
Связка со сканером:
naabu -host example.com -silent | nerva
Сценарий: сканер находит открытые порты, Nerva определяет, какие сервисы за ними стоят.