DevOps by REBRAIN – Telegram
DevOps by REBRAIN
29K subscribers
414 photos
9 videos
4 files
887 links
Открытые практикумы по DevOps, Linux, Golang, Networks, Security

Мы на связи:
info@rebrainme.com
+7 (499) 116-34-68

https://rebrainme.com/

Зарегистрированы в РКН: https://knd.gov.ru/license?id=674db558d793bc0b0b8845ff&registryType=bloggersPermission
Download Telegram
немного про greenplum от эксперта курса Никиты Целищева, архитектора Data Platform Yandex Cloud
Forwarded from Nikita Tselishchev
This media is not supported in your browser
VIEW IN TELEGRAM
👍7
Forwarded from Nikita Tselishchev
This media is not supported in your browser
VIEW IN TELEGRAM
👍7
👍3
Привет!🤘

Кратко о граблях, на которые наступают даже профи. Нужно дать скрипту права root. Кажется, что это просто:

# ⛔️ ОШИБКА, НЕ ДЕЛАЙ ТАК!
sudo chown root my_tool.sh
sudo chmod u+s my_tool.sh


Эта команда ставит SUID`-бит, который должен запускать файл с правами владельца (`root`). Но с скриптами (.sh`, .py`) это не работает — ядро Linux игнорирует `SUID для них из соображений безопасности.

Хуже того, это создает ложное чувство защиты и открывает двери для атаки Path Injection.

Как `root`-скрипт отдает тебе систему
Представь, у тебя есть скрипт, который запускается через sudo и содержит вызов системной команды без полного пути:

victim_noscript.sh

#!/bin/bash
# ...какой-то код...
# Вот уязвимость:
ps aux
# ...


Атакующий делает три простых шага:

1️⃣ Создает свой `ps`:

# Этот "ps" на самом деле запускает шелл
echo '/bin/bash' > /home/attacker/ps
chmod +x /home/attacker/ps


2️⃣ Добавляет свою папку в `PATH`:

export PATH=/home/attacker:$PATH


Теперь его папка в приоритете для поиска команд.

3️⃣ Запускает твой скрипт:

sudo /path/to/victim_noscript.sh


Скрипт попытается выполнить ps, найдет вредоносный файл атакующего и запустит его с правами root. Игра окончена, система захвачена.

Как делать правильно и безопасно

Всего два железных правила, которые спасут твою инфраструктуру:

1️⃣ Всегда указывай полные пути к исполняемым файлам в своих скриптах: /bin/ps, /usr/bin/systemctl и т.д.

2️⃣ Используй `sudoers` для выдачи прав. Это единственный контролируемый способ.

Создай файл /etc/sudoers.d/developers:

# Дать право запускать ТОЛЬКО один конкретный скрипт без пароля
developer ALL=(root) NOPASSWD: /usr/local/bin/my_awesome_tool.sh


Это безопасно, логируется и полностью под твоим контролем.

---
Знание таких основ — это фундамент. Чтобы видеть все векторы атак, от sudo и SUID до эксплойтов ядра, и уметь им противостоять, нужно мыслить как атакующий.

Именно этому мы учим на нашем практикуме "Повышение привилегий в Linux". Только хардкор, только практика на стендах.

🚀 Старт курса уже 26 января! Успей запрыгнуть, чтобы стать на голову выше в понимании Linux.

🤘Записаться на курс

---

P.S. Мы хотим постить прямые ссылки на самые сочные материалы в сторис, но для этого Телеграм просит "бусты". Если наши посты тебе полезны, поддержи канал своим голосом! Это быстро и бесплатно.

🚀 Бустануть канал Rebrain

Спасибо! 💪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥2320👎1
Привет, инженеры!

Слушайте, мы тут оглянулись на четвертый квартал и сами офигели. Работа проделана колоссальная. Мы не просто пилили контент, мы реально прокачали платформу.

Вы часто спрашиваете: «А что там нового?». Скажу прямо: индустрия летит вперед, и мы вместе с ней. Более 80% контента мы либо обновили с нуля, либо жестко перетряхнули.

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

🔥 Абсолютно новые модули
Смотрите, это не просто теория, а ответы на то, что сейчас болит у бизнеса и девопсов:

🔹Безопасность веб-приложений (OWASP Top 10): Чтобы спать спокойно и не быть тем самым инженером, через которого слили базу.
🔹Прикладной LLM: Хайп хайпом, а понимание, как встроить нейронки в реальный пайплайн — это уже мастхэв.
🔹Kube-prometheus-stack: Весь мониторинг в кубе как на ладони. Настраиваем грамотно.
🔹GitLab CI: Классика, но теперь в самом свежем и правильном виде. Пайплайны, раннеры — всё как надо.
🔹ArgoCD: GitOps победил. Если вы еще не деплоите через Argo, вы либо мазохисты, либо просто еще не видели этот модуль.
🔹EFK (Elasticsearch, Fluentd, Kibana): Логи — это жизнь. Учимся их собирать и читать так, чтобы решать инциденты за минуты.
🔹Teamlead: Софт-скиллы для тех, кто устал быть просто крутым инженером и хочет вести команду за собой.
🔹Starvault: Секреты должны оставаться секретами. Глубокое погружение.

🛠 Глобальные рефакторинги
Мы взяли проверенные временем темы и пересобрали их под современные реалии. Убрали "воду", добавили "мяса":

🔸Ceph: Распределенное хранилище без боли (ну, почти).
🔸 Kafka Admin: Чтобы брокеры летали, а не падали.
🔸RabbitMQ: Очереди для тех, кто понимает толк в асинхронности.
🔸HAProxy: Балансировка на максималках.
🔸Grafana: Красивые дашборды — это половина успеха в инцидент-менеджменте.
🔸Terraform: IaC наше всё. Актуализировали под свежие версии провайдеров.

---

В чем суть?
Мы не заставляем зубрить конфиги. Мы даем понимание *архитектуры*. Как это работает под капотом и зачем это вообще нужно твоему проекту. Теория сразу закрепляется практикой — заходите, ломаете, чините.

Если чувствуешь, что в твоем стеке пробел по этим технологиям — велкам к нашим менеджерам. Они подскажут, с чего лучше начать.

🤝 Чтобы вход был приятнее, сделали скидки (действуют до 27 января включительно):

💰 Одна технология — скидка 3 000 ₽
💰💰 Две технологии — скидка 7 000 ₽
💰💰💰 Три технологии — скидка 15 000 ₽

Не стой на месте. Инженерия — это постоянное движение.

👉 Пиши менеджерам в лс: @rebrain_manager
👍17🔥76👎1💯1
🟡 Анонс открытых практикумов на следующую неделю

1️⃣ Keycloak: часть 3
Регистрация

Время проведения:
27 января 2026, вторник, 19:00 по МСК

Программа практикума:
🟢Интегрируем apiserver к Keycloak
🟢Настраиваем роли и группы в Kubernetes
🟢Связываем kubectl с Keycloak"

Кто ведёт?
Василий Озеров — co-Founder REBRAIN, IT-инженер с 2012 года, провёл 100+ вебинаров по DevOps и инфраструктуре.
---------------------------------------------------------------------------------------

2️⃣ Linux From Scratch: 01
Регистрация

Время проведения:
28 января 2026, среда, 20:00 по МСК

Программа практикума:
🟢Получаем нужные пакеты для создания окружения
🟢Получаем нужные патчи для создания окружения
🟢Настраиваем пользователя для создание окружения

Кто ведёт?
Андрей Буранов — системный администратор в департаменте VK Play, 10+ лет опыта работы с ОС Linux, 8+ лет опыта преподавания. Входит в топ 3 лучших преподавателей образовательных порталов
---------------------------------------------------------------------------------------

3️⃣ HTTPS в Angie и Nginx
Регистрация

Время проведения:
29 января 2026, четверг, 19:00 по МСК

Программа практикума:
🟢Теория TLS: шифры, версии;
🟢Оптимальная настройка TLS;
🟢Особенности реализации Kernel TLS;
🟢Получение бесплатных сертификаты с помощью различных инструментов;
🟢Создаём самоподписные сертификаты;
🟢Используем модуль ACME от Angie;
🟢Настраиваем аутентификацию по TLS-сертификату (mTLS).

Кто ведёт?
Николай Лавлинский — Технический директор в ООО “Метод Лаб”. Веб-разработчик более 15 лет. Спикер конференций HighLoad++, РИТ++
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥6💯2
1
Привет! 🤙

Мы с вами уже говорили про sudo и скрытые угрозы типа Capabilities. Но сегодня я хочу затронуть слона в посудной лавке — Docker 🐳

Все мы любим Докер. Но часто ради удобства (или лени) мы прокидываем доступ к Docker сокету внутрь контейнеров или даем пользователям группу docker.

⚠️ В чем проблема?
Если у пользователя есть доступ к /var/run/docker.sock или он входит в группу docker, это эквивалентно правам root на хост-системе. Без паролей, без регистрации и смс.

🔫 Сценарий атаки:
Злоумышленник (или кривой скрипт) получает доступ к сокету и запускает привилегированный контейнер, монтируя корень хостовой системы (`/`) внутрь контейнера. Всё, он владеет сервером.

🛡️ Решение: Docker Socket Proxy (Harden Configuration)

Не прокидывайте сырой сокет! Используйте проксирующий контейнер, который фильтрует запросы к Docker API. Это "флоппинет" (firewall) для вашего докера.

Ниже готовый docker-compose.yml для Tecnativa Docker Socket Proxy. Он разрешает только чтение (GET запросы) и запрещает запуск новых контейнеров. Идеально для мониторинга (Portainer, Traefik, Prometheus и др.).

📂 Конфигурация (docker-compose.yml)


version: '3.8'

services:
docker-proxy:
image: tecnativa/docker-socket-proxy
container_name: docker-proxy
privileged: true # Нужно для доступа к реальному сокету
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro # Монтируем оригинал в RO
environment:
# --- Политика безопасности ---
# Разрешаем только безопасные операции
CONTAINERS: 1 # List containers
IMAGES: 1 # List images
NETWORKS: 1 # List networks
VOLUMES: 1 # List volumes
INFO: 1 # System info

# Запрещаем всё, что может менять состояние
POST: 0 # Запрет на создание (POST)
DELETE: 0 # Запрет на удаление
AUTH: 0 # Запрет auth
SECRETS: 0 # Не палить секреты
# Остальное по умолчанию запрещено образом
ports:
- "127.0.0.1:2375:2375" # Слушаем только на localhost!
restart: unless-stopped
networks:
- proxy-net

# Пример сервиса, которому нужен доступ к докеру (например, мониторинг)
monitoring-agent:
image: alpine:latest
command: ["curl", "http://docker-proxy:2375/containers/json"]
depends_on:
- docker-proxy
networks:
- proxy-net

networks:
proxy-net:
internal: true # Изолированная сеть


🛠️ Как это работает в продакшене:

1️⃣ Изоляция: Сервисы (мониторинг, Traefik и т.д.) больше не получают /var/run/docker.sock.
2️⃣ Доступ: Они общаются с docker-proxy:2375 внутри внутренней сети proxy-net.
3️⃣ Фильтр: Если взломанный сервис попробует сделать POST /containers/create (создать новый контейнер для побега), прокси ответит 403 Forbidden.

Совет: Если у вас Jenkins или GitLab Runner требует сокет для сборки — используйте Docker-in-Docker (dind) или выделенные ноды. Не давайте CI/CD системам прямой доступ к сокету продакшн-хоста. Это самоубийство.

---

Хочешь реально понимать, где в Linux живут уязвимости и как их закрывать, а не просто копировать конфиги с StackOverflow?

Жду тебя на курсе "Повышение привилегий в Linux".
Разберем всё: от SUID и ядра до NFS и токенов.

🗓 Старт: 26 января
👉 Записывайся тут, Стоимость всего 22 000 рублей ⛔️сегодня последний день скидки на модуль⛔️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27👍117
Всем привет, небольшой апдейт по вебинару Keycloak: часть 3 👋

Мы отменяем вебинар по этой теме: спикер приболел, а также выяснилось, что все ключевые моменты Вася Озеров уже подробно разобрал в предыдущих вебинарах.

Увидимся с Васей 5 февраля на вебинаре Kubernetes: Service Mesh на базе Linkerd 🚀

Спасибо за понимание и до встречи!
19🔥8💯5
🚀 Турбо-поиск в Dovecot или как ускорить сервер 🚀

Знакомая боль: пользователь ищет письмо за 2018 год, Thunderbird висит, а сервер выжирает диск в полку. Почему? Dovecot по умолчанию ищет "в лоб", перебирая файлы.

Решение — Full Text Search (FTS) на движке Lucene. Он быстрый, легкий, не требует Java (как Solr) и хранит индексы прямо рядом с письмами.

🛠 Настройка за 5 минут

1️⃣ Ставим плагин:`apt install dovecot-lucene` (или yum)
2️⃣ Правим глобальный конфиг (`/etc/dovecot/conf.d/90-plugin.conf`):


plugin {
fts = lucene
# Лайфхак: @. в whitespace_chars позволяет искать по email целиком
fts_lucene = whitespace_chars=@. no_index=mime

# Индексируем входящие сразу. Для HighLoad лучше 'no' + cron
fts_autoindex = yes

# Стемминг для русского и английского
fts_languages = en ru
}


3️⃣ Включаем плагин в протоколах (`10-mail.conf` или `20-imap.conf`):


protocol imap {
mail_plugins = $mail_plugins fts fts_lucene
}
# То же самое добавляем в protocol lda и lmtp!


После рестарта (`systemctl restart dovecot`) новые письма индексируются сами.

Как ускорить старые письма?
Их нужно прогнать через индексатор вручную. Осторожно, нагрузка на CPU!


# Для одного страдающего пользователя
doveadm fts rescan -u user@domain.com && doveadm index -u user@domain.com INBOX

# Для всех сразу (запускать в screen/tmux)
doveadm fts rescan -A


Итог:
* Скорость: Поиск занимает миллисекунды.
* Ресурс: Диски перестают "хрустеть" I/O операциями при поиске.
* Цена: Индексы съедят ~10-20% доп. места на диске.

---

🔥 Почта — это сложная экосистема. Хочешь понимать, как тюнить производительность, интегрировать SQL/LDAP, настраивать Sieve и безопасность?

Приходи на новый курс Dovecot, материалы уже на платформе. Разбираем архитектуру, а не просто копипастим конфиги.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥168👍5
1
Как приручить хаос: Импорт ресурсов и рефакторинг без даунтайма

Знакомая ситуация? Ты приходишь на новый проект, а там — классический ClickOps. Половина инфраструктуры натыкана руками в консоли облака, другая половина — в потерянных bash-скриптах. Или другой сценарий: ты решил навести порядок в коде, переименовать ресурсы, разложить всё по модулям, запускаешь plan, а Terraform радостно сообщает:

Plan: 10 to add, 10 to destroy.


У тебя холодный пот. Удалять прод нельзя. Оставлять как есть — значит плодить технический долг.

Многие в этот момент сдаются и оставляют "как есть". Но сильный инженер знает: Terraform state — это не скрижаль, которую нельзя трогать. Это база данных, которой можно и нужно управлять.

Проблема 1️⃣: "Это было создано руками"

Допустим, у тебя уже есть виртуалка в Yandex Cloud (`ID: fhm...`), созданная через UI. Тебе нужно загнать её под IaC.

Неправильно: Писать код и надеяться, что Terraform "подхватит" существующий айдишник. Он попытается создать новую ВМ и упадет с ошибкой конфликта.

Как делает профи: Использует terraform import.

1️⃣ Описываем ресурс в коде (пока можно даже пустой):

resource "yandex_compute_instance" "legacy_vm" {
# Пока пусто, заполним после импорта, глядя в state
}


2️⃣ Импортируем реальное состояние в наш стейт:

terraform import yandex_compute_instance.legacy_vm fhm1234567890abcdef


3️⃣ Теперь самое интересное. Выполняем `terraform plan`. Terraform скажет, что хочет *изменить* ресурс, чтобы привести его к пустому конфигу. Твоя задача — дописать HCL код так, чтобы plan показал: No changes.

Проблема 2️⃣: "Хочу переименовать, но боюсь пересоздания"

Ты назвал ресурс resource "yandex_vpc_network" "net" {}, но по стайл-гайду нужно vpc-main. Если просто поменяешь имя в коде — Terraform удалит старую сеть (и всё, что в ней!) и создаст новую.

💡Решение: Манипуляции со стейтом (`terraform state mv`).

Мы объясняем Terraform, что объект в базе данных переехал по новому адресу:


terraform state mv yandex_vpc_network.net yandex_vpc_network.vpc-main


После этой команды меняешь имя в .tf файле, запускаешь plan — и видишь заветный зеленый свет без разрушений.

🚀 Terraform 2.0: Глобальная перезагрузка

Умение работать со стейтом, писать чистые модули, внедрять CI/CD и понимать, *как* это работает под капотом — это база. И именно эту базу мы полностью пересобрали.

Рады сообщить, что мы обновили курс по Terraform на 90%. Это не просто косметика, это полный рефакторинг программы.

🔗 Смотреть подробную программу (PDF)

🔗 Купить обновленный курс. Мы сделали знания доступнее. Теперь модуль стоит 30 000 ₽ (вместо 50 000 ₽).

🛑 Важно для "старичков": Если ты уже покупал этот курс ранее — тебе не нужно платить снова. Пиши в поддержку, и тебе откроют доступ к новой версии бесплатно (без сохранения прогресса старой, так как программа новая).

Перестань бояться terraform apply. Становись архитектором своей инфраструктуры.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1410👍5
🟡 Анонс открытых практикумов на следующую неделю

1️⃣ EIGRP. Протокол динамической маршрутизации
Регистрация

Время проведения:
3 февраля 2026, вторник, 19:00 по МСК

Программа практикума:
🟢Дистанционно-векторная маршрутизация (Distance Vector Routing, DVR);
🟢EIGRP: основные теоретические сведения;
🟢Базовая настройка протокола EIGRP."

Кто ведёт?
Андрей Шабалин — Тренер Cisco / Huawei, инструктор академии Eltex и Астра-Университета
---------------------------------------------------------------------------------------

2️⃣ Linux From Scratch - 02
Регистрация

Время проведения:
4 февраля 2026, среда, 20:00 по МСК

Программа практикума:
🟢Binutils
🟢GCC
🟢Linux API Headers
🟢Glibc
🟢Libstdc

Кто ведёт?
Андрей Буранов — системный администратор в департаменте VK Play, 10+ лет опыта работы с ОС Linux, 8+ лет опыта преподавания. Входит в топ 3 лучших преподавателей образовательных порталов
---------------------------------------------------------------------------------------

3️⃣ Kubernetes: Service Mesh на базе Linkerd
Регистрация

Время проведения:
5 февраоя 2026, четверг, 19:00 по МСК

Программа практикума:
🟢Что такое service mesh и как он работает?
🟢Почему Linkerd, а не Istio?
🟢Разворачиваем Linkerd
🟢Настраиваем авторизацию между подами

Кто ведёт?
Василий Озеров — co-Founder REBRAIN, IT-инженер с 2012 года, провёл 100+ вебинаров по DevOps и инфраструктуре.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥94👍1
Прокачали контент: дайджест исправлений и доработок за январь 2026

Привет, на связи команда Rebrain! 👋

Мы постоянно говорим, что мир технологий не стоит на месте. Как и наши курсы. Хотим делиться с вами какие изменения мы вносим в модули, чтобы держать вас в курсе. И вы знали, что модули проходят постоянный рефаткоринг с учетом обновлений технологий и вашей💚 обратной связи. Для нас «качество» — это не просто красивый интерфейс, а когда ты открываешь задачу и понимаешь: «Ага, вот как это работает на самом деле». Без магии и сломанных костылей.

Собрали фидбек, вытряхнули из бэклога баги и немного причесали наши практикумы. Держи отчет о том, что изменилось. 👇

🛠 Nginx
Исправили мелкие, но досадные неточности, чтобы ничего не отвлекало от настройки конфигов:
* Уточнили формулировки про кэширование (да, "backend" и "application" серверы — вещи разные, теперь в тексте порядок).
* Обновили ссылки на репозитории Nginx и скорректировали версии пакетов в примерах установки через dpkg.
* Поправили опечатки в описании флагов ./configure и блоков server.

🐳 Docker & DevOps 2.0
Фокус на актуальности образов и логике проверки:
* В примерах убрали путаницу между Ubuntu 22.04 и 24.04. Теперь версия базового образа и тега совпадают, чтобы при сборке не было сюрпризов.
* Gitlab CI: Добавили ясности в навигацию — теперь четко понятно, где искать раздел Merge Requests.
* Terraform / старая версия: Поправили форматирование .tf файлов и логику проверки состояния (state file), чтобы автопроверка работала стабильно. 🛑Новая версия уже на платформе, вы можете бесплатно обновить модуль, но без сохранения прогресса. Для это нужно написать в поддержку.
* Observability: Чиним автопроверки Grafana dashboard, чтобы ваши красивые графики засчитывались с первого раза.

☸️ Kubernetes & Helm
Больше практики и рабочих конфигов:
* Kubectl Config: Исправили ошибку с расширением файла .yaml vs .yml) при генерации конфига — теперь консоль не ругается на "no such file".
* Новые блоки: Внедряем автопроверки для блоков Helm, Canary Deploy и Argo Rollouts. Практика без обратной связи — деньги на ветер, исправляем это.

🛡 Безопасность (White Hat & Vault)
Безопасность требует точности:
* OWASP Top 10: На основе фидбека первых студентов допиливаем доступы к тачкам (SSH, VNC) и уточняем формулировки в заданиях по Injection и Broken Access Control.
* Hashicorp Vault: Исправили команды отключения аудита (пути list/ вместо команды list) и уточнили пути к ролям в БД. Раньше приходилось гадать, теперь все по документации.

🐧 Linux (Basics & Advanced)
Чтобы консоль была другом, а не врагом:
* Инфраструктура: Актуализируем инструкции по доступу к стендам (SSH vs Browser) для разных потоков.
* Systemd: В задании по траблшутингу сервисов добавили проверку статуса Nginx после перезагрузки.
* Убрали опечатки в путях конфигов (типа лишней "d" в rsyslog.conf).

🧠 Другие улучшения (Ansible, SQL, ClickHouse, Kafka)
* Ansible: Убрали категоричное заявление, что with_ — это устаревшее и запрещенное. Да, loop моднее, но старый синтаксис жив и валиден (спасибо за внимательность!).
* ClickHouse: Вернули звук в видео про масштабирование кластера (да, бывает и такое 😅) и актуализировали даты в заданиях.
* Golang Advanced: Работали над добавлением недостающих видеоматериалов по GraphQL.

Мы читаем всю вашу обратную связь, которую вы отправляете нам при прохождении курсов. Если видишь, что что-то работает не так или объяснение хромает — пиши.

Мы здесь, чтобы ты стал крутым инженером, а не чтобы ты боролся с багами в тексте задания.

Развивайся, практикуйся и не бойся ломать проды (но лучше тестовые)! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
👍219🔥9💯1
Надоело лазить через бастион?

Знакомая боль: каждый день нужно попасть на прод, на стенд или в мониторинг. Но все сервера надежно спрятаны за бастионом. И вот ты уже в сотый раз набираешь:


ssh user@bastion
# ...подождал, зашел...
ssh internal-server-1

Или, что еще хуже, копируешь ключи, открывая дыру в безопасности (пробрасывать ключи на не доверенные сервера — плохая идея, и мы на курсе разберем почему).

Есть способ лучше. Безопасный, быстрый и настраивается один раз.

Решение: `~/.ssh/config` и магия `ProxyJump`

Всё, что тебе нужно — это прописать алиасы в конфиге на своей рабочей машине.

Базовый пример:
У нас есть бастион bastion.mycompany.com, а за ним сервер app-server-1 с серыми IP 10.0.5.10.

Открываем ~/.ssh/config и пишем:

# Наш прыжковый хост (бастион)
Host bastion
HostName bastion.mycompany.com
User vasya
IdentityFile ~/.ssh/id_ed25519_work

# Конечный сервер, доступный ТОЛЬКО через бастион
Host app1
HostName 10.0.5.10
User deploy
IdentityFile ~/.ssh/id_ed25519_work
ProxyJump bastion # <--- Вся магия здесь


Теперь, чтобы попасть на app-server-1, просто пишешь одну команду:


ssh app1


OpenSSH сам установит соединение с бастионом и пробросит туннель до конечного сервера. Всё прозрачно. Ключи подтягиваются автоматически. Никаких лишних действий.

🚀 Ускоряем всё в разы с ControlMaster

Если вам часто требуется открывать параллельные сессии по одним и тем же хостам, добавьте мультиплексирование.

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

Дополним наш конфиг для бастиона:

Host bastion
HostName bastion.mycompany.com
User vasya
IdentityFile ~/.ssh/id_ed25519_work
# Включаем мультиплексирование
ControlMaster auto
# Файл-сокет для управления сессией
ControlPath ~/.ssh/cm-%r@%h:%p
# Держим мастер-сессию 10 минут после выхода
ControlPersist 10m


Теперь повторные подключения к бастиону или через него будут мгновенными.

Детально ознакомивший с протоколом SSH и его нюансами, вы можете добавить с свою работу следующие фишки:

🔹Строить цепочки из нескольких прыжков (`ProxyJump bastion1,bastion2`).
🔹Динамически управлять доступом через Match (например, разные настройки для разных Wi-Fi сетей).
🔹Работать с SSH Certificates вместо кучи authorized_keys.

Если хочешь системно прокачать SSH — от архитектуры протокола до настройки туннелирования и аутентификации по сертификатам, у меня отличные новости!

Мы с командой Rebrain написали новый курс «OpenSSH».
В нём нет воды — только практика на реальной инфраструктуре, схемы и ответы на вопрос «почему это работает так».

🗓 Доступ к программе откроется 24 февраля

📄 Полная обновлённая программа тут

💰 Успей забрать со скидкой: 22 000 ₽ (вместо 25 000 ₽) — только до 23 февраля включительно.

👉 Ссылка на покупку модуля

Прокачивай фундамент. Становись тем, кто не просто "тыкает" в консоль, а понимает безопасность своей инфраструктуры.

До встречи на курсе!
👍35🔥51
Привет, инженер!

Ты наверняка настраивал статические маршруты. ip route ... — и погнали. В маленькой сети это работает отлично. Но представь, что твоя инфраструктура выросла: добавилось несколько офисов, десяток VLAN-ов, резервные линки.

И тут начинается ад. Один линк упал — и ты судорожно переписываешь таблицы маршрутизации на пяти роутерах в 3 часа ночи. Знакомо?

Так вот, статическая маршрутизация — это костыль для растущей системы. Настоящий инженер должен уметь в динамику. И сегодня разберем EIGRP (Enhanced Interior Gateway Routing Protocol).

Главная фишка: EIGRP сходится (перестраивает маршруты) молниеносно благодаря алгоритму DUAL. Если основной путь падает, он достает из кармана заранее просчитанный запасной (Feasible Successor) и переключается на него за миллисекунды. Никаких простоев.

---

Давай разберем одну из частых проблем: "Почему мой трафик идет по медленному каналу?"

Допустим, у тебя два пути до сервера: оптический линк (1Gbps) и DSL-резерв (10Mbps). Ты настроил EIGRP, но видишь, что трафик "скачет" или балансируется 50/50, забивая медленный канал.

В чем суть?
EIGRP по умолчанию делает балансировку нагрузки (Load Balancing), но только для маршрутов с *равной* метрикой (Equal Cost). Но иногда метрика "почти" равна, или мы хотим использовать оба канала, но непропорционально (Variance).

Как это решается?
Смотрим конфиг. EIGRP использует формулу $Metric$, которая учитывает:
1️⃣ Bandwidth (пропускную способность)
2️⃣ Delay (задержку)

Если ты не задал bandwidth на интерфейсе явно, роутер берет дефолтное значение для типа порта. И часто для Serial-интерфейсов оно не совпадает с реальностью.

Решение:
Всегда явно указывай параметры линка.


Router(config)# interface GigabitEthernet0/0
Router(config-if)# bandwidth 1000000 ! Ставим 1Гбит (в кбит/c)
Router(config-if)# delay 10 ! Задержка в десятках микросекунд

Router(config)# interface Serial0/0
Router(config-if)# bandwidth 10000 ! Ставим честные 10Мбит
Router(config-if)# delay 1000


После этого EIGRP пересчитает метрику $K$-values и поймет, что Гигабит — это приоритет, а Serial — только на черный день.

Хочешь хитро балансировать неравные каналы? Используй команду variance.
Например, если быстрый путь имеет метрику 1000, а медленный 3000. variance 3 позволит использовать оба канала, распределяя трафик умнее.

---

Хочешь копнуть глубже?
Тема динамической маршрутизации — это база для любого, кто хочет считать себя серьезным сетевым или DevOps инженером. EIGRP — проприетарный протокол Cisco (хотя частично открыт), но понимая его логику (Distance Vector), ты поймешь принципы работы сетей в целом.

Приходи на наш бесплатный вебинар «EIGRP. Протокол динамической маршрутизации» сегодня в 19-00.

Что будем делать?
👉 Разберем теорию Дистанционно-векторной маршрутизации и алгоритм DUAL.
👉 Поймем, как считается метрика (никакой магии, только математика).
👉 На практике настроим EIGRP с нуля и посмотрим, как он реагирует на падение линков.

🔗 Регистрируйся и залетай. Увидимся в эфире!
🔥14😁7👍62👎1
Как за 1 команду получить доступ к БД, которая слушает только localhost?

Знакома ситуация? На сервере крутится PostgreSQL, Redis или веб-интерфейс, но они закрыты и слушают только 127.0.0.1. В целях безопасности — правильно. Но как подключиться?

💡Решение — SSH-туннель. 1 команда:


ssh -L 6543:localhost:5432 user@backend-prod-01


Что произошло:

🔹На твоём ноуте открылся порт 6543
🔹Весь трафик с него шифрованно идёт на backend-prod-01:5432
🔹Подключайся в DBeaver к localhost:6543 — работает!

Делаем навсегда удобным в ~/.ssh/config:


Host backend-tunnel
HostName backend-prod-01
User deploy
LocalForward 6543 localhost:5432 # PostgreSQL
LocalForward 9100 localhost:3000 # Grafana


Теперь просто: ssh backend-tunnel -Nf и оба порта доступны локально.

Обратная задача — дать коллеге доступ к твоему localhost:


ssh -R 9090:localhost:8080 bastion-server


Почему это безопасно?

1️⃣Весь трафик шифруется через SSH
2️⃣Доступ есть только у тех, у кого есть SSH-ключ
3️⃣Не нужно открывать порты в firewall

На курсе OpenSSH разбираем туннели глубоко:
👉Local/Remote Port Forwarding (Урок 6)
👉Dynamic (SOCKS5) прокси (Урок 7)
👉Интеграция с конфигом (Урок 4)
👉Hardening для безопасности (Урок 9)

Программа: PDF
Цена 22 000₽ вместо 25 000₽ до 23 февраля: купить модуль.

Перестань бороться с доступом — начни его контролировать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍354👏4😁3🔥2
🟡 Анонс открытых практикумов на следующую неделю

1️⃣ Suricata. Режим обнаружения вторжений (IDS)
Регистрация

Время проведения:
10 февраля 2026, вторник, 19:00 по МСК

Программа практикума:
🟢IDS/IPS: основные теоретические сведения;
🟢Установка и базовая настройка Suricata;
🟢Отправка событий безопасности на удаленный сервер.

Кто ведёт?
Андрей Шабалин — Тренер Cisco / Huawei, инструктор академии Eltex и Астра-Университета
---------------------------------------------------------------------------------------

2️⃣ Linux From Scratch - 03
Регистрация

Время проведения:
11 февраля 2026, среда, 20:00 по МСК

Программа практикума:
🟢M4
🟢 Bash
🟢Coreutils
🟢Diffutils
🟢File
🟢Findutils
🟢Gawk
🟢Grep
🟢Gzip
🟢Make
🟢Patch
🟢Sed
🟢Tar
🟢Xz

Кто ведёт?
Андрей Буранов — системный администратор в департаменте VK Play, 10+ лет опыта работы с ОС Linux, 8+ лет опыта преподавания. Входит в топ 3 лучших преподавателей образовательных порталов
---------------------------------------------------------------------------------------

3️⃣ Фидбек как инструмент роста: как давать и принимать конструктивную критику
Регистрация

Время проведения:
12 февраоя 2026, четверг, 19:00 по МСК

Программа практикума:
🟢Для инженера: как просить и обрабатывать обратную связь по своей работе
🟢Для руководителя: как внедрить ритуалы регулярного фидбека, как модерировать конфликтные обсуждения
🟢Разбор: Как превратить эмоциональные комментарии в конструктивную обратную связь
🟢Методика: SBI (Situation-Behavior-Impact — Ситуация-Поведение-Влияние) на технических примерах.

Кто ведёт?
Елена Фролкина - лидер с 15-летним опытом построения и управления командами в лидерах рынка и стартапах
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2👏2
Человеческий фактор vs Железобетонная защита

Ты идеально настроил мониторинг, защитил всю инфраструктуру и пропатчил все уязвимости. А в один прекрасный день начинаешь видеть огромное количество алертов о недоступности прода. Знакомая ситуация? Такое зачастую происходит потому, что бухгалтер открыл фишинговое письмо с файлом "Премия бухгалтеру.docx", и по сети начал гулять шмфровальщик.

Мы привыкли работать с серверами, забывая, что человек — это endpoint с кучей уязвимостей (CVE-Human-Critical), который очень сложно патчить. А мы можем научить как это делать.

Часто слышу: "Социальная инженерия — это для психологов, я ж инженер" . Это ошибка. Чтобы защитить почтовый сервер, ты должен понимать, как его пытаются обмануть. Ты должен знать, как настроить DNS так, чтобы левый сервер не мог притвориться твоим доменом.

Пример из жизни. Многие настраивают SPF, но забывают про DMARC policy. В итоге атакующий просто шлет письмо с левого IP, и оно проходит.

На курсе мы разбираем это на уровне конфигов (bind/postfix), а не на пальцах:


# Плохой пример (SoftFail), который пропустит фишинг
v=spf1 include:_spf.google.com ~all

# Хороший пример (HardFail), к которому будем стремиться
v=spf1 include:_spf.google.com -all


🚀 Что интересного в курсе «Атаки, направленные на людей»:

Глубокий OSINT с Maltego.
Обход современных почтовых защит (SPF, DKIM, DMARC).
Практика с Evilginx2: учимся перехватывать сессии с включенной двухфакторкой.

📅 Важные моменты:
1. Старт первого потока: 24 февраля.
2. Мы порезали косты, чтобы знания были доступнее
💰 Цена: 25 00022 000 руб.

👉 Посмотреть полную программу (PDF)
👉 Купить курс со скидкой

Перестань надеяться на авось. Начни понимать, как ломают, чтобы строить системы, которые выстоят.
🔥116👏3
Привет, коллега.

Типичная история: после деплоя в K8s всё зелёное, поды RUNNING. Но скоро начинаются странности:

* Плавающие 504 Gateway Timeout
* Часть пользователей видит старые версии после деплоя
* После перезапуска пода приложение "тупит", но трафик уже идёт

Знакомо?

Проблема в 90% случаев не в коде, а в отсутствии Health Checks. K8s по умолчанию считает: контейнер запущен (`RUNNING`) = готов принимать трафик. Но твоему приложению нужно время на инициализацию, а при сбое оно может "зависнуть".

Решение (бери и внедряй):

Добавь в deployment.yaml два типа проверок:


containers:
- name: app
image: my-registry/my-cool-app:v1.0
ports:
- containerPort: 8080
# Liveness Probe: проверяет, живо ли приложение
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 10

# Readiness Probe: проверяет, готово ли принимать трафик
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5


Что это даёт сразу:
1. Стабильность: Трафик идёт только на готовые поды
2. Корректные деплои: RollingUpdate работает как задумано
3. Самовосстановление: "Зависшие" контейнеры перезапускаются автоматически

Без этого K8s просто перезапускает контейнеры, но не управляет доступностью.

Если думаешь: "Это же просто YAML. А как проектировать всю систему?" — ты на правильном пути. Это и есть инженерный подход к Kubernetes.

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

В этом месяце мы будем много говорить про кубер, давай разбираться вместе🤍
17👍6🔥4👎1