Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Проверить текущее состояние THP можно командой:
cat /sys/kernel/mm/transparent_hugepage/enabled
Отключить, если они мешают:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3
Переход на российское ПО и защита КИИ — что изменится осенью 2025 года?
6 июня | 12:00–13:00 (МСК)
С 2014 года тема импортозамещения в ИТ только набирает обороты, а за нарушения в сфере КИИ теперь грозит не только административная, но и уголовная ответственность.
Для кого: руководители, ИБ-специалисты и все, кто работает с объектами КИИ.
На вебинаре разберём:
🔹 Как развивалось импортозамещение в ИТ — ключевые этапы
🔹 Актуальные законы и грядущие с 1 сентября 2025 года изменения
🔹 Ответственность за нарушения: на что обратить внимание
🔹 Почему Deckhouse Kubernetes Platform Certified Security Edition (DKP CSE) — лучшее решение для задач КИИ (и реальные примеры внедрения)
Бонус: чек-лист для предварительной проверки ПО на соответствие требованиям ФСТЭК России — каждому участнику!
📅 6 июня, 12:00–13:00 (МСК)
🔗 Зарегистрироваться на вебинар
6 июня | 12:00–13:00 (МСК)
С 2014 года тема импортозамещения в ИТ только набирает обороты, а за нарушения в сфере КИИ теперь грозит не только административная, но и уголовная ответственность.
Для кого: руководители, ИБ-специалисты и все, кто работает с объектами КИИ.
На вебинаре разберём:
🔹 Как развивалось импортозамещение в ИТ — ключевые этапы
🔹 Актуальные законы и грядущие с 1 сентября 2025 года изменения
🔹 Ответственность за нарушения: на что обратить внимание
🔹 Почему Deckhouse Kubernetes Platform Certified Security Edition (DKP CSE) — лучшее решение для задач КИИ (и реальные примеры внедрения)
Бонус: чек-лист для предварительной проверки ПО на соответствие требованиям ФСТЭК России — каждому участнику!
📅 6 июня, 12:00–13:00 (МСК)
🔗 Зарегистрироваться на вебинар
👍3❤2
Бэкапы без rsync: моментальные снапшоты с Btrfs
Если у вас раздел на Btrfs — можно делать моментальные резервные копии за секунду, без копирования данных.
1️⃣ Создаём снапшот
Мгновенно создаётся снимок текущего состояния. Это не копия файлов — это ссылка на те же блоки.
2️⃣ Откат к снапшоту
Можно быстро откатиться без rsync и без восстановления из архива.
3️⃣ Монтируем снапшот отдельно
Открываем снапшот как read-only и вытаскиваем нужные файлы.
4️⃣ Удаление старых снапшотов
Удаляется мгновенно, освобождая место.
5️⃣ Автоматизация через cron
Добавьте в crontab -e:
Снапшоты будут создаваться каждый день в 2:00.
Если у вас раздел на Btrfs — можно делать моментальные резервные копии за секунду, без копирования данных.
btrfs subvolume snapshot /home /btrfs-backups/home-$(date +%F)
Мгновенно создаётся снимок текущего состояния. Это не копия файлов — это ссылка на те же блоки.
mv /home /home-old
btrfs subvolume snapshot /btrfs-backups/home-2025-05-28 /home
Можно быстро откатиться без rsync и без восстановления из архива.
mount -o ro,subvol=home-2025-05-28 /dev/sdX /mnt/snapshot
Открываем снапшот как read-only и вытаскиваем нужные файлы.
btrfs subvolume delete /btrfs-backups/home-2025-04-01
Удаляется мгновенно, освобождая место.
Добавьте в crontab -e:
0 2 * * * btrfs subvolume snapshot /home /btrfs-backups/home-$(date +\%F)
Снапшоты будут создаваться каждый день в 2:00.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤4
Что делает параметр Delegate=yes в unit-файле systemd?
Anonymous Quiz
34%
Передаёт права на управление процессом другому пользователю
15%
Разрешает дочерним процессам изменять cgroups
47%
Делегирует создание systemd-сервисов
4%
Отключает cgroup-ограничения
👍7👎1
Sudo под контролем: аудит и ограничения для продакшена
Иногда sudo — это дыра в безопасности. Особенно, если все команды идут в лог просто как sudo bash.
Вот как сделать использование sudo прозрачным и контролируемым.
⏺ Включаем логирование команд с точностью до аргументов
Добавьте в /etc/sudoers:
Теперь всё, что делает пользователь с sudo, пишется в лог.
⏺ Ограничиваем команды
Разрешаем user1 только перезапуск nginx и просмотр логов:
Никаких sudo bash — только строго определённые команды.
⏺ Проверяем логи sudo
Анализируем, кто запускал sudo, когда, и что именно делал.
⏺ Используем sudoreplay
Для продвинутого аудита:
Показывает ввод и вывод команды из лога log_input, log_output.
⏺ Пример защиты от “sudo su”
В sudoers:
Теперь нельзя поднять shell с sudo, только конкретные команды.
Иногда sudo — это дыра в безопасности. Особенно, если все команды идут в лог просто как sudo bash.
Вот как сделать использование sudo прозрачным и контролируемым.
Добавьте в /etc/sudoers:
Defaults log_input, log_output
Defaults logfile="/var/log/sudo.log"
Теперь всё, что делает пользователь с sudo, пишется в лог.
Разрешаем user1 только перезапуск nginx и просмотр логов:
user1 ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx, /bin/journalctl -u nginx
Никаких sudo bash — только строго определённые команды.
cat /var/log/sudo.log | less
ausearch -k sudo
Анализируем, кто запускал sudo, когда, и что именно делал.
Для продвинутого аудита:
sudo sudoreplay <ID>
Показывает ввод и вывод команды из лога log_input, log_output.
В sudoers:
Cmnd_Alias BLOCKED = /bin/su, /bin/bash
user1 ALL=(ALL) !BLOCKED
Теперь нельзя поднять shell с sudo, только конкретные команды.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤5
Оптимизируем операции через tmpfs
tmpfs — это не просто «/tmp в RAM». Это инструмент для сокращения I/O, минимизации wear-out на SSD и ускорения CI, кэширования и даже временного хранения IPC-артефактов.
Но при неправильной настройке — источник OOM и нестабильной производительности.
Зачем использовать tmpfs?
• Изоляция чувствительных к IOPS операций (например, /var/cache, /run, компиляции, unit-тестов).
• Уменьшение latency в пайплайнах CI/CD и dev-окружениях.
• Кратковременное хранение промежуточных артефактов без обращения к диску.
Настройка через systemd mount units
Вместо /etc/fstab можно использовать systemd для более гибкой логики:
Активируем:
Учет ограничения RAM: tmpfs в cgroups
Если tmpfs монтируется внутри systemd-сервиса, лучше ограничить память через MemoryMax, иначе может съесть всю RAM:
Продвинутые use-case’ы
1️⃣ /tmpfs + overlayfs = изолированная среда
Подменяем часть rootfs без записи на диск, например, для временных hotfix-тестов:
2️⃣ Сборка пакетов в RAM в CI
Ускоряет сборку deb/rpm, кэш и распаковка исходников не используют диск.
3️⃣ Безопасный IPC
Храним сокеты и FIFO в tmpfs — данные исчезают при ребуте, не остаётся следов на диске.
tmpfs — это не просто «/tmp в RAM». Это инструмент для сокращения I/O, минимизации wear-out на SSD и ускорения CI, кэширования и даже временного хранения IPC-артефактов.
Но при неправильной настройке — источник OOM и нестабильной производительности.
Зачем использовать tmpfs?
• Изоляция чувствительных к IOPS операций (например, /var/cache, /run, компиляции, unit-тестов).
• Уменьшение latency в пайплайнах CI/CD и dev-окружениях.
• Кратковременное хранение промежуточных артефактов без обращения к диску.
Настройка через systemd mount units
Вместо /etc/fstab можно использовать systemd для более гибкой логики:
# /etc/systemd/system/tmp-build.mount
[Unit]
Description=Build cache in RAM
Before=local-fs.target
[Mount]
What=tmpfs
Where=/mnt/buildcache
Type=tmpfs
Options=mode=1777,size=2G,noatime
[Install]
WantedBy=multi-user.target
Активируем:
systemctl enable --now tmp-build.mount
Учет ограничения RAM: tmpfs в cgroups
Если tmpfs монтируется внутри systemd-сервиса, лучше ограничить память через MemoryMax, иначе может съесть всю RAM:
[Service]
MemoryMax=3G
TemporaryFileSystem=/tmp:rw,size=1G
Продвинутые use-case’ы
Подменяем часть rootfs без записи на диск, например, для временных hotfix-тестов:
mount -t tmpfs tmpfs /mnt/tmpfs
cp -a /etc /mnt/tmpfs/etc
mount -t overlay overlay -o lowerdir=/etc,upperdir=/mnt/tmpfs/etc,workdir=/mnt/tmpfs/work /etc
Ускоряет сборку deb/rpm, кэш и распаковка исходников не используют диск.
Храним сокеты и FIFO в tmpfs — данные исчезают при ребуте, не остаётся следов на диске.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4
Вышла SQLite 3.50
Состоялся релиз легковесной СУБД SQLite 3.50. Проект написан на C, распространяется без лицензий и бесплатно.
Поддержку разработчикам оказывает отдельный консорциум.
Основные изменения:
⏺ Новая функция sqlite3_setlk_timeout() для управления блокировками.
⏺ Ослаблены ограничения на SQL-комментарии.
⏺ Добавлены SQL-функции unistr() и unistr_quote().
⏺ Улучшена работа printf(), .dump, .schema --indent.
⏺ Оптимизация JSON-функций и улучшение sqlite3_rsync.
⏺ Поддержка сборки под Cygwin, MinGW, Termux.
⏺ Исправления и улучшения производительности.
⏺ WASM/JavaScript: важное обновление VFS OPFS SAHPool — новые базы несовместимы со старыми VFS, но обратно совместимость сохранена.
Состоялся релиз легковесной СУБД SQLite 3.50. Проект написан на C, распространяется без лицензий и бесплатно.
Поддержку разработчикам оказывает отдельный консорциум.
Основные изменения:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3👻1
Любой сбой инфраструктуры = простои, потери и размытая репутация.
Но классические платформы виртуализации сегодня либо сложные, либо дорогие, либо не отвечают новым требованиям к отказоустойчивости и управляемости. Есть ли альтернатива?
Расскажем и покажем на деле:Вебинар «Точка устойчивости ИТ: почему HCI не только про “проще”, но и про “надёжнее”»
Что вы узнаете:
🔸Почему гиперконвергентная инфраструктура действительно может выигрывать у классических решений
🔸Как снизить затраты времени, ресурсов и усилий на поддержку
🔸Живое демо: веб-интерфейс vStack — управление инфраструктурой без лишней сложности
🔸Анонс новых возможностей — для тех, кто хочет быть на шаг впереди
🔸Открытый Q&A: разберём ваши кейсы, ответим на вопросы
Когда: 10.06 в 11.00
ЗАРЕГИСТРИРОВАТЬСЯ
Но классические платформы виртуализации сегодня либо сложные, либо дорогие, либо не отвечают новым требованиям к отказоустойчивости и управляемости. Есть ли альтернатива?
Расскажем и покажем на деле:Вебинар «Точка устойчивости ИТ: почему HCI не только про “проще”, но и про “надёжнее”»
Что вы узнаете:
🔸Почему гиперконвергентная инфраструктура действительно может выигрывать у классических решений
🔸Как снизить затраты времени, ресурсов и усилий на поддержку
🔸Живое демо: веб-интерфейс vStack — управление инфраструктурой без лишней сложности
🔸Анонс новых возможностей — для тех, кто хочет быть на шаг впереди
🔸Открытый Q&A: разберём ваши кейсы, ответим на вопросы
Когда: 10.06 в 11.00
ЗАРЕГИСТРИРОВАТЬСЯ
❤1
Используем iptables hashlimit + recent вместо fail2ban
Когда fail2ban уже не справляется или слишком медленный, пора перейти на уровень ниже — к iptables.
Сочетание --hashlimit и --recent даёт мощный инструмент контроля попыток подключения к SSH без необходимости читать логи и запускать демоны.
Защитить порт 22 от перебора и сканеров
Входящие подключения должны:
⏺ быть не чаще X раз в минуту с одного IP (аналог hashlimit),
⏺ блокироваться при агрессивной активности (аналог recent),
⏺ не мешать своим или автоматическим задачам (допускаем trusted IP или подсети).
1️⃣ Разрешаем trusted-подсеть без лимитов
2️⃣ Ограничение по частоте с hashlimit
Допускаем не более 3 подключений в минуту с одного IP:
Это не требует ни журналов, ни доп. сервисов — чисто на уровне netfilter.
3️⃣ Ловим и блокируем агрессивных через recent
Если IP попытался открыть соединение >5 раз за 60 секунд — баним на 5 минут:
4️⃣ Остальные соединения — по умолчанию DROP или REJECT
Тестирование
Подключитесь к серверу с другого IP и сделайте 10 попыток:
После 5–6 попыток пакет начнёт дропаться.
Когда fail2ban уже не справляется или слишком медленный, пора перейти на уровень ниже — к iptables.
Сочетание --hashlimit и --recent даёт мощный инструмент контроля попыток подключения к SSH без необходимости читать логи и запускать демоны.
Защитить порт 22 от перебора и сканеров
Входящие подключения должны:
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
Допускаем не более 3 подключений в минуту с одного IP:
iptables -A INPUT -p tcp --dport 22 \
-m state --state NEW \
-m hashlimit --hashlimit 3/min \
--hashlimit-burst 5 \
--hashlimit-mode srcip \
--hashlimit-name sshlimit \
-j ACCEPT
Это не требует ни журналов, ни доп. сервисов — чисто на уровне netfilter.
Если IP попытался открыть соединение >5 раз за 60 секунд — баним на 5 минут:
iptables -A INPUT -p tcp --dport 22 \
-m state --state NEW \
-m recent --name SSH --set
iptables -A INPUT -p tcp --dport 22 \
-m state --state NEW \
-m recent --name SSH --update \
--seconds 60 --hitcount 5 -j DROP
iptables -A INPUT -p tcp --dport 22 -j DROP
Тестирование
Подключитесь к серверу с другого IP и сделайте 10 попыток:
for i in {1..10}; do nc -zv your.server.ip 22; sleep 2; done
После 5–6 попыток пакет начнёт дропаться.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍7
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Процессы — это независимые единицы выполнения, каждая из которых имеет собственное адресное пространство. Это означает, что процессы изолированы друг от друга, и данные одного процесса недоступны другому без использования механизмов межпроцессного взаимодействия (IPC).
Потоки, в отличие от процессов, выполняются внутри одного адресного пространства. Это позволяет потокам одного процесса совместно использовать память и ресурсы, что делает их легче и быстрее в создании по сравнению с процессами. Для создания потоков используются библиотеки, такие как POSIX Threads (pthread).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍5
Чем отличается limit nofile в systemd от ulimit -n в shell?
Anonymous Quiz
6%
nofile управляет доступом к логам systemd
30%
ulimit настраивает ядро, а limit nofile — нет
37%
limit nofile — способ зафиксировать ulimit -n для сервиса
26%
Разницы нет — это синонимы
❤6👍2
Амбициозные проекты, удалёнка и рост в сфере DevOps — звучит как работа мечты! Отправляйте резюме до 8 июня и присоединяйтесь к команде YADRO! 🧑💻
Как получить оффер за 3 дня? Подробности на карточках выше — листайте!
Оставляйте заявку — мы ждём именно вас!
Как получить оффер за 3 дня? Подробности на карточках выше — листайте!
Оставляйте заявку — мы ждём именно вас!
❤1
Тихие подвисания через zombie TCP connections: почему idle-сессии могут убивать сервис
Всё вроде работает: соединение открыто, но данных нет, новых клиентов не пускает. Вы перезапускаете сервис — и всё ок. Через день — снова. Причина может быть в зомби-TCP-соединениях.
В чём проблема
Если приложение не настраивает таймауты — такие подключения висят неделями и занимают ресурсы.
Как заметить
Ищите timer:(on, x ms, y retrans) — это таймеры ядра. Если timer:(keepalive,...) или timer:(on,...) висят слишком долго — это подозрительно.
Решение — настраиваем TCP Keepalive
Добавьте в sysctl:
Это значит: спустя 60 секунд без активности начнутся keepalive-пробы. Если за 75 секунд клиент не ответил — соединение будет закрыто.
Ещё лучше — на уровне приложения
Например, для Nginx:
Для PostgreSQL через tcp_keepalives_* в конфиге или переменных окружения.
Всё вроде работает: соединение открыто, но данных нет, новых клиентов не пускает. Вы перезапускаете сервис — и всё ок. Через день — снова. Причина может быть в зомби-TCP-соединениях.
В чём проблема
Некоторые клиенты (особенно IoT, нестабильные мобильные сети или старые прокси) теряют соединение без корректного FIN или RST. С точки зрения ядра, соединение всё ещё открыто.
Если приложение не настраивает таймауты — такие подключения висят неделями и занимают ресурсы.
Как заметить
ss -o state established '( dport = :http or dport = :ssh )'
Ищите timer:(on, x ms, y retrans) — это таймеры ядра. Если timer:(keepalive,...) или timer:(on,...) висят слишком долго — это подозрительно.
Решение — настраиваем TCP Keepalive
Добавьте в sysctl:
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5
Это значит: спустя 60 секунд без активности начнутся keepalive-пробы. Если за 75 секунд клиент не ответил — соединение будет закрыто.
Ещё лучше — на уровне приложения
Например, для Nginx:
keepalive_timeout 15s;
Для PostgreSQL через tcp_keepalives_* в конфиге или переменных окружения.
👍17❤5
Любой сбой инфраструктуры = простои, потери и размытая репутация.
Но классические платформы виртуализации сегодня либо сложные, либо дорогие, либо не отвечают новым требованиям к отказоустойчивости и управляемости. Есть ли альтернатива?
Расскажем и покажем на деле:Вебинар «Точка устойчивости ИТ: почему HCI не только про “проще”, но и про “надёжнее”»
Что вы узнаете:
🔸Почему гиперконвергентная инфраструктура действительно может выигрывать у классических решений
🔸Как снизить затраты времени, ресурсов и усилий на поддержку
🔸Живое демо: веб-интерфейс vStack — управление инфраструктурой без лишней сложности
🔸Анонс новых возможностей — для тех, кто хочет быть на шаг впереди
🔸Открытый Q&A: разберём ваши кейсы, ответим на вопросы
Когда: 10.06 в 11.00
ЗАРЕГИСТРИРОВАТЬСЯ
Но классические платформы виртуализации сегодня либо сложные, либо дорогие, либо не отвечают новым требованиям к отказоустойчивости и управляемости. Есть ли альтернатива?
Расскажем и покажем на деле:Вебинар «Точка устойчивости ИТ: почему HCI не только про “проще”, но и про “надёжнее”»
Что вы узнаете:
🔸Почему гиперконвергентная инфраструктура действительно может выигрывать у классических решений
🔸Как снизить затраты времени, ресурсов и усилий на поддержку
🔸Живое демо: веб-интерфейс vStack — управление инфраструктурой без лишней сложности
🔸Анонс новых возможностей — для тех, кто хочет быть на шаг впереди
🔸Открытый Q&A: разберём ваши кейсы, ответим на вопросы
Когда: 10.06 в 11.00
ЗАРЕГИСТРИРОВАТЬСЯ
❤1🤔1