Linux Ready | DevOps
Фотография
нажмите — покажем
нажмите — покажем
📂 Как атакуют пароли и учётные записи!
Например, Brute Force перебирает возможные комбинации пароля, а Credential Stuffing проверяет уже утёкшие учётные данные на других сервисах.
На схеме — 6 распространённых техник, шпаргалка для системных администраторов и DevOps-инженеров: помогает понимать основные векторы компрометации учётных записей и учитывать их при настройке SSH, IAM, MFA и политик доступа.
Сохрани, чтобы не потерять!
🚪 Linux Ready | #ресурс
43 · 1.6K · Linux Ready | DevOps
Восстанавливаем удалённый файл через /proc, пока процесс держит его открытым!
rm удаляет имя файла из каталога, но если какой-либо процесс продолжает держать файл открытым через файловый дескриптор, данные остаются доступны до закрытия последнего такого дескриптора.
Предположим, работающий сервис пишет в лог, который случайно удалили:
rm /var/log/app.log
Найти открытые файлы с нулевым количеством жёстких ссылок можно через lsof. Опция +L1 выбирает открытые файлы, у которых link count меньше 1:
sudo lsof +L1
Для удалённого лога вывод может выглядеть так:
app 4217 root 5w REG ... /var/log/app.log (deleted)
Здесь 4217 — PID процесса, 5 — номер файлового дескриптора, а w означает, что он открыт на запись.
Соответствующий FD доступен через procfs:
sudo ls -l /proc/4217/fd/5
Символическая ссылка будет указывать на уже удалённый pathname:
/proc/4217/fd/5 -> /var/log/app.log (deleted)
Хотя имени файла в каталоге уже нет, открытый файловый дескриптор всё ещё связан с файловым объектом. Пока последний такой FD не закрыт, содержимое можно скопировать через /proc:
sudo cp /proc/4217/fd/5 /tmp/app.log.recovered
Проверяем восстановленную копию:
ls -lh /tmp/app.log.recovered
При необходимости сравниваем размеры:
sudo stat /proc/4217/fd/5
stat /tmp/app.log.recovered
Это не классический undelete — cp создаёт новый файл с новым inode и копирует доступное содержимое. Если процесс продолжает запись, копия не гарантирует консистентный snapshot. Доступ через /proc/<PID>/fd/<FD> также может быть ограничен правами и настройками системы. Восстановить данные нужно до закрытия последнего FD: после этого при нулевом link count ядро сможет освободить inode и блоки файла.
🔥 Поэтому после случайного rm активного файла не спешите перезапускать процесс — сначала проверьте: sudo lsof +L1. Пока FD открыт, данные ещё могут быть доступны через /proc/<PID>/fd/<FD>.
🚪 Linux Ready | #практика
53 · 1.4K · Linux Ready | DevOps
Фотография
нажмите — покажем
нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
👩💻 Подключаем удалённый каталог как обычную папку через SSHFS!
Если файлы находятся на другом сервере, необязательно постоянно переносить их через scp или rsync. SSHFS позволяет смонтировать удалённый каталог через SSH и работать с ним привычными Linux-командами как с локальной файловой системой.
В этом посте:
• Монтируем каталог удалённого сервера через SSH;
• Работаем с удалёнными файлами через grep, find и tail;
• Настраиваем переподключение при разрыве соединения;
• Ограничиваем доступ режимом только для чтения.
SSHFS особенно удобен, когда нужно быстро подключить удалённое дерево файлов к локальным инструментам без настройки отдельного файлового сервера.
🚪 Linux Ready | #гайд
46 · 1.2K · Фотография
нажмите — покажем
нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
Проверяем состояние соединений через conntrack!
Linux firewall работает не только с отдельными пакетами. Подсистема Netfilter connection tracking ведёт таблицу отслеживаемых соединений, в которой хранится состояние TCP, UDP и других потоков. Это полезно при диагностике NAT, firewall и асимметричной маршрутизации.
Установим утилиту для работы с таблицей conntrack:
sudo apt update && sudo apt install conntrack -y
Текущие соединения можно вывести через -L и сразу отфильтровать по протоколу и адресу назначения:
sudo conntrack -L -p tcp --dst 203.0.113.10
(адреса в примерах документационные — при повторении замените их на свои)
Для TCP-запись содержит состояние соединения, а также параметры исходного и обратного направлений. На узле, выполняющем NAT, по различиям между ними можно определить преобразование адресов и портов:
tcp 6 431999 ESTABLISHED
src=10.0.0.20 dst=203.0.113.10 sport=52144 dport=443
src=203.0.113.10 dst=198.51.100.5 sport=443 dport=52144
При диагностике удобнее наблюдать события в реальном времени. conntrack может выводить создание, обновление и удаление записей по мере прохождения трафика:
sudo conntrack -E -p tcp
Фильтр можно ограничить адресом и портом назначения:
sudo conntrack -E -p tcp \
--dst 203.0.113.10 \
--dport 443
Состояние таблицы важно контролировать на загруженных шлюзах:
sysctl net.netfilter.nf_conntrack_count
sysctl net.netfilter.nf_conntrack_max
Если nf_conntrack_count приближается к nf_conntrack_max, таблица близка к заполнению. При переполнении новые соединения могут перестать нормально отслеживаться, а в журнале ядра обычно появляются сообщения conntrack:
journalctl -k -g 'nf_conntrack'
Время хранения записи для установленного TCP-соединения можно проверить отдельно:
sysctl net.netfilter.nf_conntrack_tcp_timeout_established
Удалять записи вручную следует только при понимании последствий. Для удаления конкретного TCP-потока укажем параметры его исходного направления:
sudo conntrack -D -p tcp \
--src 10.0.0.20 \
--d
31 · 1.2K · Linux Ready | DevOps
Фотография
нажмите — покажем
нажмите — покажем
👩💻 SSH: подключение, ключи, туннели и Jump Host!
В этом посте собраны основные команды SSH для безопасной работы с удалёнными серверами. Рассмотрены подключение к серверу, генерация и установка SSH-ключей, выбор приватного ключа, подключение через нестандартный порт, создание локальных SSH-туннелей и работа через Jump Host. Полезно для администрирования серверов, безопасного доступа и работы с закрытой инфраструктурой.
🚪 Linux Ready | #шпора
46 · 1.1K · Фотография
нажмите — покажем
нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
🎓 Как гарантированно войти в сферу кибербезопасности с официальным дипломом?
Самостоятельное обучение в ИБ - это месяцы хаоса и разрозненных роликов с YouTube. Покупка курсов по отдельности на популярных платформах легко переваливает за 300 000 ₽.
🔥CyberYozh Academy собрали цельный карьерный трек в один пак: 5 фундаментальных программ + официальный Диплом системного администратора за 50 000 ₽ (вместо ~250 000 ₽)
Что входит в программу:
▪️ Linux CyberPunk - системное администрирование с выдачей диплома, открывающего двери в корпоративный сектор.
▪️ SQL для хакера - глубокое понимание архитектуры баз данных и векторов атак.
▪️ HackerPoint - продвинутый уровень пентеста и анализа уязвимостей.
▪️ HackerPoint (Blue vs Red Team) - база сетевой безопасности, защиты и атак.
▪️ AI-помощники на Python - автоматизация рутины безопасника при помощи нейросетей.
Вы получаете законченную квалификацию: от администрирования защищенных облачных решений до проведения тестов на проникновение.
⚠️ Обратите внимание: Из-за персональной проверки заданий и официального оформления дипломов на каждый поток действует жесткий лимит - не более 15 мест.
🦔Отправь промокод LinuxReady в чат с менеджером, чтобы закрепить за собой скидку и узнать подробности:
👉@cyacademy_support
1 · 1.2K · Фотография
нажмите — покажем
нажмите — покажем
В Linux можно копировать собранные файлы так, чтобы не менять файл назначения, если новая версия фактически такая же!
Для этого у GNU install есть опция -C (--compare):
install -C -m 0755 ./build/myapp ./bin/myapp
Перед установкой install сравнит исходный и существующий файлы. Если содержимое и заданные атрибуты совпадают, файл назначения вообще не будет изменён.
Это принципиально отличается от обычного копирования поверх файла:
cp ./build/myapp ./bin/myapp
Даже если результат сборки идентичен предыдущему, лишняя перезапись может изменить метаданные файла и запустить всё, что следит за его изменением.
С install -C это удобно убрать прямо из Makefile или скрипта локального развёртывания:
install -C -m 0755 build/myapp /usr/local/bin/myapp
Причём install одновременно умеет выставлять права, поэтому отдельный chmod после копирования не требуется:
install -C -m 0644 config.ini /etc/myapp/config.ini
🔥 install -C полезен там, где одна и та же сборка устанавливается много раз: неизменившийся файл остаётся нетронутым, а копирование и выставление прав сводятся к одной команде.
🚪 Linux Ready | #совет
26 · 1.3K · Linux Ready | DevOps
Фотография
нажмите — покажем
нажмите — покажем
📂 Напоминалка для работы с SED!
Например, sed 's/old/new/g' file.txt заменяет все вхождения old на new, а sed -n '2p' file.txt выводит только вторую строку.
На картинке — основные команды, опции и флаги sed, а также готовые примеры для замены текста, удаления строк и редактирования файлов.
Сохрани, чтобы не потерять!
🚪 Linux Ready | #ресурс
28 · 708 · Фотография
нажмите — покажем
нажмите — покажем
Как оплачивать зарубежные сервисы в 2026 году?
Можно бегать между посредниками и бояться блокировок после оплаты, а можно выпустить международную карту Lumio Pay и пользоваться любимыми сервисами без рисков.
— выпуск карты за 2 минуты
— лучший курс пополнения на рынке (у конкурентов на 20% выше)
— пополнение рублями или криптой
— чистые BIN карт, оплата без риска блокировок
Пока все ищут идеальное решение, оно у тебя перед глазами: @LumioPay
1 · 467 · Фотография
нажмите — покажем
нажмите — покажем
Для отладки изолированного процесса необязательно заходить внутрь контейнера или менять его образ!
Linux хранит namespaces процесса в /proc/<PID>/ns/, а nsenter позволяет выполнить команду внутри выбранного namespace уже работающего процесса.
Например, если сервис видит другую сеть, чем хост:
sudo nsenter -t 1842 -n ss -lntp
-t 1842 выбирает процесс, а -n подключает команду к его network namespace. В результате ss работает с тем же сетевым стеком, таблицами маршрутизации и интерфейсами, которые доступны целевому процессу.
То же самое можно сделать с файловыми монтированиями:
sudo nsenter -t 1842 -m findmnt
А если для диагностики нужны сразу несколько namespaces:
sudo nsenter -t 1842 -m -n -p sh
Так можно получить shell с mount, network и PID namespace нужного процесса и запускать внутри обычные ip, ss, findmnt, ps и другие диагностические инструменты.
При этом nsenter не создаёт новый namespace — он присоединяет запускаемую команду к уже существующему.
🔥 nsenter особенно полезен, когда процесс изолирован namespaces, а внутри его окружения нет диагностических утилит: вместо установки инструментов туда можно зайти в нужный namespace с хоста и исследовать проблему на месте.
🚪 Linux Ready | #совет
3 · 134 · Linux Ready | DevOps
Фотография
нажмите — покажем
нажмите — покажем
Большой файл можно клонировать почти мгновенно без полного копирования его данных!
На файловой системе с поддержкой reflink выполните:
cp --reflink=always build.tar.zst test-build.tar.zst
Новый файл получает собственное имя и метаданные, но первоначально разделяет extents исходного файла.
Когда один из файлов изменяется, файловая система копирует только затронутые блоки:
printf 'test' >> test-build.tar.zst
Исходный файл при этом не изменится.
Режим --reflink=always удобен для проверки: если источник и назначение находятся на разных файловых системах либо reflink не поддерживается, cp завершится ошибкой вместо незаметного полного копирования.
Для автоматического перехода к обычному копированию используется:
cp --reflink=auto build.tar.zst test-build.tar.zst
Такой клон подходит для крупных артефактов сборки, наборов данных и временных рабочих копий. Он не заменяет резервное копирование и не гарантирует согласованность файлов работающих баз данных или виртуальных машин.
🔥 Используйте reflink, когда нужен быстрый независимый клон большого неизменяемого файла внутри одной поддерживаемой файловой системы.
🚪 Linux Ready | #совет
17 · 580 · Фотография
нажмите — покажем
нажмите — покажем
Удобный бот для мониторинга доступности сайтов и серверов
Никаких сторонних сайтов и приложений. Уведомления и интерфейс в Telegram.
Проверки: HTTP/HTTPS, PORT, PING, Истечение SSL, Истечение домена.
Из приятностей:
- Возможность добавить бота в рабочие группы для коллективного получения информации о доступности ресурсов.
- Возможность поделиться ботом с клиентами, коллегами и сотрудниками.
Сам бот: @UptimeScanBot
Более подробное описание на сайте: uptimescan.bot
5 · 353 · Фотография
нажмите — покажем
нажмите — покажем
В GNU/Linux есть отдельная утилита для преобразования чисел внутри текстовых потоков!
Допустим, команда или скрипт отдаёт размер в байтах:
du -B1 /var/log/* | head
Вместо того чтобы подключать awk и вручную делить значения на 1024, вывод можно сразу пропустить через numfmt:
du -B1 /var/log/* | numfmt --field=1 --to=iec-i
--field=1 преобразует только первое поле каждой строки. Всё остальное остаётся на месте, поэтому numfmt удобно вставлять прямо в уже существующие пайпы.
Причём преобразование работает и в обратную сторону — привычные размеры можно превратить в обычные числа:
printf '%s\n' 512Mi 2Gi |
numfmt --from=iec-i
Это удобно в shell-скриптах: на вход можно принимать понятные человеку 500Mi или 4Gi, а внутри работать уже с количеством байтов.
bytes=$(numfmt --from=iec-i <<< "4Gi")
echo "$bytes"
🔥 numfmt позволяет выкинуть из shell-скриптов самодельные конвертеры размеров: он понимает единицы, умеет работать с отдельными полями и встраивается в обычные Linux-пайпы.
🚪 Linux Ready | #совет
23 · 1K · Linux Ready | DevOps
Фотография
нажмите — покажем
нажмите — покажем
📂 Шпаргалка по DevOps, SRE и Platform Engineering!
Например, SRE фокусируется на надёжности и эксплуатации систем, а Platform Engineering — на создании общей платформы и инструментов для продуктовых команд.
На картинке — наглядное сравнение DevOps, SRE и Platform Engineering: от разработки, тестирования и релизов до деплоя, мониторинга и эксплуатации инфраструктуры.
Сохрани, чтобы не потерять!
🚪 Linux Ready | #ресурс
14 · 588 · Фотография
нажмите — покажем
нажмите — покажем
На Stepik запустили мощный курс по «Troubleshooting Docker и Kubernetes: поиск и устранение проблем»
В программе только важные аспекты:
— troubleshooting Docker и образов
— диагностика сетевых проблем
— настройка readiness/liveness probes
— отладка pod’ов, деплоев и ingress
— анализ логов контейнеров и кластера
— разбор ошибок CrashLoopBackOff, OOMKilled, ImagePullBackOff и других
Собеседования на DevOps/SRE сейчас всё чаще строятся вокруг реальных инцидентов. Данный курс фокусируется именно на таких сценариях и помогает в подготовке к практическим вопросам
48 часов доступен со скидкой 25%
↗️ Пройти курс на Stepik
5 · 342 ·