CodeGuard: PySec Edition
Канал по ИБ и этичному хакингу. Автор: @Arakcheev_Ruslan Ссылка: @invite_CG Рекламный менеджер: @Diggsale Биржа: https://telega.in/c/+3X56uL4A-UM3Njgy
Больше📈 Аналитический обзор Telegram-канала CodeGuard: PySec Edition
Канал CodeGuard: PySec Edition является активным участником. Сейчас сообщество объединяет 14 462 подписчиков, занимая 8 850 место в категории Технологии и приложения и 44 940 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 14 462 подписчиков.
Согласно последним данным от 11 ноября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило 171, а за последние 24 часа — 15, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 8.46%. В первые 24 часа после публикации контент обычно набирает 4.98% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 1 222 просмотров. В течение первых суток публикация набирает 719 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 4.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как codeguard, pysec, docker, grep, контейнер.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Канал по ИБ и этичному хакингу.
Автор: @Arakcheev_Ruslan
Ссылка: @invite_CG
Рекламный менеджер: @Diggsale
Биржа: https://telega.in/c/+3X56uL4A-UM3Njgy”
Благодаря высокой частоте обновлений (последние данные получены 12 ноября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
🤨 CVE-2026-119977 — TOCTOU (time-of-check to time-of-use) race condition в процессе обновления ядра WordPress. Проблема в том, что путь к временной директории, который используется во время установки обновления, предсказуем и доступен по сети. Атакующий может успеть записать свой setup-config.php в эту директорию до того, как WordPress его использует. Результат — выполнение произвольного кода без аутентификации.Уязвимость исправлена в WordPress 7.1.4, выпущенном 28 октября. Бэкпорты для веток начиная с 4.7 выходят постепенно. Масштаб атак Wordfence сообщает, что за первые 21 час после раскрытия зафиксировано более 18 500 запросов к предсказуемому пути
setup-config.php. За первые 24 часа — 12 632 заблокированных попытки эксплуатации. Previdian подтвердила как минимум три успешные попытки на honeypot, источник — IP в Великобритании.
CISA добавила уязвимость в KEV 3 ноября. Федеральные гражданские агентства обязаны установить патч до 6 ноября и проверить системы на признаки компрометации.
Что делать
1️⃣ Проверьте версию WordPress. Если ядро ниже 7.1.4 — обновитесь немедленно.
2️⃣Не откладывайте на «после выходных». Дедлайн CISA — 6 ноября, но атаки идут сейчас.
3️⃣После обновления — проверка на компрометацию. Ищите необычные файлы в wp-content/uploads, mu-plugins, изменения в .htaccess, новых пользователей с правами администратора.
4️⃣Если обновление невозможно — ограничьте доступ к wp-admin по IP или включите WAF-правила для блокировки запросов к setup-config.php извне.
🤒 CodeGuard: OSINT | Чат🔵 Компания получила уведомление об уязвимости в NAS-хранилище Synology. Администратор обновил прошивку до последней версии в тот же день. Через месяц все данные на NAS оказались зашифрованы ransomware-группой. Бэкапы тоже были зашифрованы — они хранились на том же устройстве.Вопрос: Что администратор сделал не так, если формально «патч был установлен»? Варианты: A) Неправильно выбрал версию прошивки. B) Патч закрыл уязвимость, но не удалил уже существующий бэкдор, который атакующие оставили до обновления. C) Ransomware не использовал уязвимость — он попал через фишинг. D) Synology выпускает патчи, которые не работают. 😈 CodeGuard: PySec Edition | Чат
• Код: лидирует Claude (без комментариев) • Работа с данными: Gemini (легко переваривает тяжелые файлы без ошибок по лимитам). • Мультимодальность: ChatGPT (генерация и распознавание картинок работают стабильнее всего). • Быстрый поиск: паритет между ChatGPT и Gemini.Фильтрация контента для меня сейчас важнее всего, поэтому на нее ушло больше всего времени. Скинул всем трем моделям массив своих подписок в тг (промпт на скрине), чтобы отсеять бесполезные каналы и оставить только полезных авторов-практиков. В итоге нейронки сошлись на 80% и выдали практически один список. Я лично проверил каждого автора — за подборку ручаюсь, многих читаю сам. Подписаться на подборку в 1 клик 👉️️️️️️https://t.me/addlist/vw3x-Xhc04NjYzAy
🔵 CVE-2026-104935 (CVSS 8.6) — authentication bypass. Уже в KEV с 13 октября. Это точка входа: атакующий обходит аутентификацию и получает доступ к административному интерфейсу. 🔵 CVE-2026-111357 (CVSS 8.8) — privilege escalation. Позволяет аутентифицированному пользователю повысить привилегии. 🔵 CVE-2026-118527 (CVSS 4.3) — позволяет загрузить файл с контролируемым содержимым в известное место на диске.Вместе: обход аутентификации → повышение привилегий → загрузка и выполнение кода с правами root. Почему это важно именно сейчас
🤨 Первое: атаки начались до патча. Volexity сообщает, что UTA0576 использует цепочку как минимум с 3 октября, ещё до того, как исправления стали доступны. 🤨 Второе: тактика отличается от типичной. Вместо веб-шеллов и малвари — кража учётных данных, метаданных Active Directory, администраторских паролей и ключей восстановления BitLocker. Атакующий повторно эксплуатирует устройство для каждой команды и подчищает логи, чтобы обойти встроенный Integrity Checker Tool от Ivanti. Это не «оставить бэкдор». Это «собрать всё, что нужно для дальнейшего доступа». 🤨 Третье: патч вышел, но не для всех веток сразу. Ivanti выпустила исправления, но компания признала, что изначально сосредоточилась на CVE-2026-104935, а фикс для повышения привилегий ещё разрабатывался, когда началась эксплуатация.Что делать
🤨 Проверьте версию Ivanti Connect Secure. Если вы на уязвимой ветке — обновитесь до исправленной сборки. 🤨 Не считайте патч ремедиацией. Любой appliance, который был доступен из интернета в период эксплуатации, нужно отправить на форензик-ревью. Патч закрывает дверь, но не выгоняет того, кто уже внутри. 🤨 Ищите признаки кражи учётных данных. BitLocker recovery keys, администраторские пароли, метаданные AD — это то, что искал UTA0576.Для федеральных агентств США: дедлайн по CVE-2026-111357 — 2 ноября 2026, по CVE-2026-118527 — 13 ноября 2026. Для всех остальных — рекомендация не ждать. Ссылка 🔗 Ivanti patches two more Connect Secure zero-days chained in attacks — BleepingComputer — бесплатно 😈 CodeGuard: PySec Edition | Чат
🔵 CVE-2026-104935 (CVSS 8.6) — authentication bypass. Уже в KEV с 13 октября. Это точка входа: атакующий обходит аутентификацию и получает доступ к административному интерфейсу. 🔵 CVE-2026-111357 (CVSS 8.8) — missing authentication for a critical function. Позволяет аутентифицированному пользователю повысить привилегии. Сама по себе не критична, но в цепочке становится шагом к RCE. 🔵 CVE-2026-118527 (CVSS 4.3) — predictable numbers or identifiers. Позволяет загрузить файл с контролируемым содержимым в известное место на диске. Это завершающий шаг: загрузка полезной нагрузки, которая затем исполняется.Вместе: обход аутентификации → повышение привилегий → загрузка и выполнение кода с правами root. Без валидных учётных данных. Что делать
1️⃣ Проверьте версию Ivanti Connect Secure. Если вы на 25.1.1.2 или 22.8R2.5 — обновитесь до 25.1.1.3 или 22.8R2.6 соответственно. 2️⃣ Не считайте патч ремедиацией. Любой appliance, который был доступен из интернета в период эксплуатации, нужно отправить на форензик-ревью. Патч закрывает дверь, но не выгоняет того, кто уже внутри. 2️⃣ Ищите признаки кражи учётных данных. BitLocker recovery keys, администраторские пароли, метаданные AD — это то, что искал UTA0576. 4️⃣ Для федеральных агентств США: дедлайн по CVE-2026-111357 — 2 ноября 2026, по CVE-2026-118527 — 13 ноября 2026. Для всех остальных — рекомендация не ждать.😈 CodeGuard: PySec Edition | Чат
✨ 28 октября правительство Японии подтвердило: официальный сайт торговли электроэнергией и газом был взломан. За несколько дней до этого хакеры заявили о публикации данных клиентов GMO Internet Group — той самой истории с отказом платить $50 млн. На прошлой неделе критическая уязвимость в PHP вынудила Mizuho Financial Group и других срочно принимать меры. По данным Macnica Security Research Center, с июля в Японии зафиксировано минимум 81 атака. Почти треть всех атак за последние три года пришлась именно на этот период. Эксперты связывают всплеск с AI-агентами и открытыми хакерскими инструментами: они снижают порог входа и помогают обходить языковые барьеры и устаревшую инфраструктуру.Что меняется
🤨 Премьер-министр Сано Такаичи ещё летом сделал кибербезопасность национальным приоритетом. Теперь Япония сдвигается от пост-инцидентного реагирования к мониторингу телекоммуникационного трафика для блокировки угроз до того, как они нанесут ущерб. Для этого пришлось снять законодательные ограничения, которые запрещали правительству мониторить коммуникации.Профессор Keio University Мотохиро Цучия дал жёсткую оценку: «Япония гораздо слабее других стран G7». Главный секретарь кабинета министров Минору Кихарa 29 октября заявил, что обеспечение квалифицированных security-специалистов — срочная задача. Почему это касается всех
🤨 Первое: это прецедент. Если G7-страна меняет законодательство ради упреждающего мониторинга трафика, другие могут последовать. Для специалистов по ИБ это означает сдвиг в сторону network detection and response и мониторинга на уровне операторов. 🤨 Второе: AI-атаки перестают быть теорией. Япония — не «страна третьего мира» с точки зрения ИТ. Если её инфраструктура не выдерживает, вопрос не в том, «когда» это дойдёт до других, а в том, «насколько мы готовы». 🤨 Третье: нехватка кадров. Заявление Кихарa — это прямое признание: технологий недостаточно, нужны люди. Для тех, кто входит в ИБ, это сигнал: спрос будет расти.😈 CodeGuard: PySec Edition | Чат
🔥 Атакующий нашёл internet-facing Ivanti Connect Secure. Устройство уязвимо к трём проблемам: обход аутентификации, выполнение кода и повышение привилегий. Вопрос: в каком порядке он их использует, и что получает на выходе?Варианты ответа: A) Сначала RCE, потом обход аутентификации, потом повышение привилегий. B) Сначала обход аутентификации, потом RCE, потом повышение привилегий. C) Сначала повышение привилегий, потом обход аутентификации, потом RCE. D) Порядок не важен — любая последовательность даёт root. 😈 CodeGuard: PySec Edition | Чат
5h4d0wn1k/cybersecurity-framework — интерактивная карта всего ИБ
🤨 Бесплатно. Не просто список, а живой атлас: 27 доменов, 776 категорий, 1067 курируемых инструментов с оценкой усилий и подсказками «когда использовать». 517 инструментов помечены как best-in-class, чтобы новичок не тонул в выборе. Если не знаешь, с чего начать в новой области — открываешь карту и видишь, какие инструменты там вообще есть.🔗 GitHub: 5h4d0wn1k/cybersecurity-framework — бесплатно 2.
TheSecuredAnalyst/security-suite (SecSuite) — одна платформа вместо зоопарка
🤨 Бесплатно. Объединяет OSINT-разведку, сканирование веб-уязвимостей, аудит API, проверку комплаенса и AI-анализ в одном инструменте. 11 OSINT-модулей, 6 веб-сканеров, 4 инструмента для API. Вместо того чтобы переключаться между пятью утилитами, ты работаешь в одной среде. Open-source, AGPL-3.0.🔗 GitHub: TheSecuredAnalyst/security-suite — бесплатно 3.
zinvite/awesome-cybersecurity — кураторский список без мусора
🤨 Бесплатно. Проверенные ресурсы, инструменты и фреймворки для защиты систем, сетей и данных. Внутри — не «всё подряд», а отобранные проекты: Burp Suite, Wireshark, Suricata, Shodan, theHarvester, Amass. Если нужен надёжный список для старта, а не 500 ссылок из гугла — этот репозиторий экономит часы фильтрации.🔗 GitHub: zinvite/awesome-cybersecurity — бесплатно 4.
Think-Cube/awesome-security — от сети до веба, без белых пятен
🤨 Бесплатно. Компиляция инструментов, библиотек и ресурсов для безопасности. Покрывает сетевую и веб-безопасность, пентест и защиту. Metasploit, Nmap, Nuclei, Lynis — всё с описаниями. Хорош как отправная точка, если ты только выбираешь направление и хочешь увидеть ландшафт целиком.🔗 GitHub: Think-Cube/awesome-security — бесплатно 5.
CyberDefenderAI/AI-Security-Tools-Applied-Scenarios — AI в ИБ не на словах, а в сценариях
Бесплатно. Не просто список AI-инструментов, а прикладные сценарии: как применять LLM и ML для решения конкретных задач в security operations. Codium PR-Agent, GitHub Advanced Security, Snyk Code, Bito, Fabric — с примерами использования. Если ты хочешь понять, где AI реально помогает в ИБ, а не «где хайп», это репозиторий с ответами.🔗 GitHub: CyberDefenderAI/AI-Security-Tools-Applied-Scenarios — бесплатно 😈 CodeGuard: PySec Edition | Чат
ps auxww — все процессы с полной командной строкой. Сразу видно, что именно запущено, а не только имя бинарника.
🟣 ps -eo pid,ppid,user,cmd --forest — дерево процессов. Помогает найти «сирот» и понять, кто кого породил.
🟣 cat /proc/<pid>/cmdline | tr '\0' ' ' — точная командная строка процесса. Полезно, когда ps обрезает аргументы.
🟣 readlink /proc/<pid>/exe — путь к бинарнику. Если в конце (deleted) — процесс работает из удалённого файла. Это красный флаг.
🟣 lsof -p <pid> — все открытые файлы процесса. Видно, что он читает и пишет прямо сейчас.
Сеть — с кем говорит сервер
🤨 ss -tulpn — все слушающие порты и процессы, которые их держат. Замена устаревшему netstat.
🤨 ss -tunpa state established — только установленные соединения. Сразу видно, куда сервер уже подключён.
🤨 lsof -i :80 — какой процесс использует конкретный порт. Быстрее, чем перебирать ss.
🤨 tcpdump -i any -n port 4444 — живой захват трафика на подозрительном порту. Для глубокого анализа — -w capture.pcap и открыть в Wireshark.
Файлы и логи — что изменилось
🟠 find /var/www -mtime -1 — файлы, изменённые за последние 24 часа. Первое, что смотрят при подозрении на веб-шелл.
🟠grep -ri "malicious_ip" /var/log/ — рекурсивный поиск по логам. Без него поиск инцидента превращается в перебор файлов вручную.
🟠last -n 10 и w — кто заходил и кто сейчас в системе. w показывает ещё и активные сессии.
Практический пример
Сервер тормозит. Запускаешь:
ss -tulpn | grep -v "127.0.0.1"
Видишь процесс python3 на незнакомом порту. Дальше:
lsof -p <PID> | grep -i deleted
Если процесс держит удалённый бинарник — это майнер или бэкдор. find / -mmin -30 -type f покажет, что ещё появилось за последние полчаса.
😈 CodeGuard: PySec Edition | Чат🔥 Бесплатно (open-source). Некоммерческий фонд выпустил набор из 57 защитных скриптов, которые покрывают 139 уязвимостей в 67 проектах на 10 языках (PHP, Node.js, Python, Ruby). Главный фокус — PHP2Shell, критическая дыра, затрагивающая почти 70% веб-доменов. Скрипты работают недеструктивно: аудит конфигураций и оценка экспозиции без изменения кода.🔗 Security Today: PrivacySafe Foundation Releases Free Open Source Cybersecurity Tools — бесплатно 2. CVEngine — attack surface assessment, который отвечает на вопрос «что из этого реально моё?»
🔥 Бесплатно (open-source, self-hosted). Один Docker Compose — и у тебя непрерывный цикл: discovery (bbot, certificate transparency), fingerprinting (nmap, nuclei), сопоставление с live-фидами эксплуатируемых CVE (CISA KEV, ENISA EUVD). Вместо горы алертов — вердикт: «эта CVE есть на твоём ассете, и вот доказательство». Инвентарь остаётся на твоём сервере, AI-ключи — твои.🔗 GitHub: hevnsnt/CVEngine — бесплатно 3. Zero-Breach Toolkit — проверка на Pegasus, Predator и другие шпионские программы
🔥 Бесплатно (open-source). Офлайн-проверка на следы mercenary spyware (Pegasus, Predator, Graphite, Candiru) на Windows, macOS, Linux, Android и iPhone-бэкапах. Работает read-only, без сетевых запросов во время скана. Каждый отчёт честно указывает, что найдено и насколько сильны доказательства. Полезно для журналистов, активистов и всех, кто в группе риска.🔗 GitHub: interplains/Zero-Breach-Toolkit — бесплатно 4. DevGuard — управление уязвимостями в цепочке поставок
🔥 Бесплатно (open-source, OWASP Incubating Project). Собирает security-находки проекта в одном месте: secret scanning, SAST, dependency checks, IaC, container scanning, лицензии. Работает через один CLI, который оборачивает существующие open-source инструменты (Trivy, Grype, Semgrep). Findings синхронизируются с GitHub Issues, GitLab и Jira. Можно self-host.🔗 Help Net Security: DevGuard — Open-Source Vulnerability Management — бесплатно 🔗 GitHub: l3montree-dev/devguard — бесплатно 5. ProjectDiscovery Neo Triage — валидация уязвимостей в изолированной песочнице
🔥 Бесплатно (часть open-source платформы ProjectDiscovery). Вместо того чтобы верить сканеру на слово, Neo Triage воспроизводит находку в sandbox: показывает запросы и ответы, которые доказывают, что уязвимость существует. Дальше — определяет реальную severity, предлагает фикс и автоматически перепроверяет после исправления. По данным вендора, превращает ~50 000 часов ручного триажа в ~8 300 часов ревью.🔗 Security Boulevard: ProjectDiscovery Adds Free Tool to Validate Vulnerabilities — бесплатно 6. brotli2shell_Hunter — поиск уязвимых декодеров Brotli, включая встроенные копии
🔥 Бесплатно (open-source). Пока все патчат системные библиотеки, уязвимость CVE-2026-111497 (Brotli2Shell / HTTP2Shell) часто живёт во встроенных копиях декодера — в Node.js, Bun, PyPI-пакетах, бинарниках. Этот сканер находит такие копии, определяет, достижимы ли они из недоверенного ввода, и ранжирует по серьёзности. Работает read-only, поддерживает SBOM (CycloneDX/SPDX) и вывод в SARIF.🔗 GitHub: dansaurabh/brotli2shell_Hunter — бесплатно Как использовать
➡️ Не пытайся внедрить всё сразу. Выбери одну цель: ➡️ Защита от PHP2Shell → PrivacySafe Foundation ➡️ Мониторинг внешнего периметра → CVEngine ➡️ Проверка на шпионское ПО → Zero-Breach Toolkit ➡️ Supply chain security → DevGuard ➡️ Валидация сканера → Neo Triage ➡️ Brotli2Shell → brotli2shell_HunterВсе шесть — с бесплатным доступом и открытым кодом. Начни с того, что закрывает текущую боль. 😈 CodeGuard: PySec Edition | Чат
.gitlab-ci.yml и видите:
stages:
- test
- deploy
test_job:
stage: test
script:
- echo "Running tests..."
- ./run_tests.sh
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
Вопрос: Что в этом конфиге выглядит подозрительно, если учесть, что уязвимость CVE-2026-97229 связана с недостаточной валидацией регулярных выражений в CI/CD?
Варианты ответа:
A) stages — слишком мало этапов
B) script — нет кавычек вокруг ./run_tests.sh
C) rules: if: — регулярное выражение $CI_PIPELINE_SOURCE не валидируется должным образом, и атакующий может внедрить свой код через специально сформированное значение
D) stage: test — не указан allow_failure
😈 CodeGuard: PySec Edition | Чат🔵CVE-2026-111497 — out-of-bounds write в декодере Brotli. Уязвимость позволяет неаутентифицированному атакующему вызвать падение процесса, раскрыть память или выполнить код через специально сжатые данные. Проблема в том, что Brotli часто обрабатывает входящие запросы и ответы доаутентификации и контроля на уровне приложения.Затронуты встроенные копии декодера в Node.js, Python-пакетах, .NET, Bun, PHP для Windows, а также в некоторых прокси и инструментах обработки файлов. Почему это критично именно сейчас
🔵27 октября CISA добавила CVE-2026-111497 в каталог Known Exploited Vulnerabilities. Это значит, что эксплуатация подтверждена — не теоретическая, а реальная.По данным ThreatLabz, за первые 24 часа после раскрытия зафиксировано 402 события разведки и попыток эксплуатации с 20 source IP против 12 клиентов. Imperva продемонстрировала выполнение кода на контейнере Node.js, а ELLIO — получение shell на официальных сборках Node.js 24.22.0 для x86-64 в конфигурации по умолчанию. Главная ловушка: обновление системной библиотеки может не помочь Многие думают: «Я обновил
brotli в системе — значит, закрыл». Это не так. Уязвимость часто живёт в встроенных копиях декодера, которые поставляются вместе с Node.js, Python-пакетами или контейнерными образами. Обновление системной библиотеки не трогает эти встроенные копии.
Что делать:
1️⃣Обновить все зависимости Brotli — не только системную, но и те, что идут в составе приложений. 2️⃣Пересобрать контейнеры — старые образы могут содержать уязвимый декодер. 3️⃣Перезапустить процессы — чтобы уязвимый код не остался в памяти. 4️⃣Проверить, что уязвимые компоненты больше не запущены — обновление файла не всегда означает, что процесс использует новую версию.Временная мера: если патч отложен, можно временно отклонять Brotli-сжатые запросы или отключить пути декодирования — включая обработку ответов. Ссылка 🔗 CISA Adds Critical Brotli Decoder Flaw Node2Shell to Exploited Vulnerabilities Catalog — Mallory — бесплатно 🔗 CVE-2026-111497: Node2Shell / HTTP2Shell — Zscaler ThreatLabz — бесплатно 🔗 Brotli2Shell: A Compression Library Flaw Becomes Cross-Runtime RCE — CSA Labs — бесплатно 😈 CodeGuard: PySec Edition | Чат
auth.log — сотни попыток подбора пароля. Это не паранойя, это норма для публичного IP. Вот процесс hardening, который закрывает почти все автоматические атаки. Бесплатно (все шаги — стандартные команды и open-source инструменты).
Что такое hardening и зачем он нужен
🔵Hardening — это не «поставить антивирус». Это приведение сервера к состоянию, где осталось только то, что нужно для его роли: убраны лишние сервисы, закрыты ненужные порты, настроены права доступа, включено логирование. По данным Atlantic.net, большинство проблем возникает ещё на этапе установки: дефолтные конфигурации содержат сервисы и аккаунты, которые серверу не нужны.8 шагов, которые стоит сделать в первый час 1. Обнови всё сразу.
sudo apt update && sudo apt upgrade -y
Если обновилось ядро — перезагрузись.
2. Создай пользователя с sudo. Не работай под root постоянно. Одна ошибка может сломать систему.
adduser deploy
usermod -aG sudo deploy
3. Перейди на SSH-ключи. Ключ подобрать несравнимо сложнее, чем пароль.
ssh-keygen -t ed25519 -a 100
ssh-copy-id deploy@ТВОЙ_IP
4. Отключи root-логин и вход по паролю. Только после того, как ключ работает. В /etc/ssh/sshd_config.d/ создай файл:
PermitRootLogin no PasswordAuthentication no AuthenticationMethods publickey MaxAuthTries 3Проверь конфиг перед перезапуском:
sudo sshd -t.
5. Включи файрвол. Разреши только то, что используешь.
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable
6. Поставь Fail2ban. Он читает логи и блокирует IP после нескольких неудачных попыток.
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
7. Включи логирование и мониторинг. Без логов ты не узнаешь, что происходит. Настрой auditd или хотя бы убедись, что journald пишет всё необходимое.
8. Проверь открытые порты. После настройки — ещё раз посмотри, что слушает:
ss -tulpnЕсли видишь что-то, чего не ожидал — выключи. Практический пример
🤨 Свежий VPS. Через час в auth.log — 5000 неудачных попыток. После шагов 3–6: ключ вместо пароля, root закрыт, файрвол пропускает только 22/80/443, Fail2ban банит IP после трёх промахов. Через сутки попытки продолжаются, но ни одна не проходит. Это не «пуленепробиваемость». Но это база, с которой можно работать.😈 CodeGuard: PySec Edition | Чат
ssh-keygen -t ed25519 -a 100 -C "secops-bastion-admin"
Не правь /etc/ssh/sshd_config напрямую.
Современный OpenSSH подхватывает файлы из /etc/ssh/sshd_config.d/. Создай 01-hardened.conf:
PermitRootLogin no PasswordAuthentication no KbdInteractiveAuthentication no AuthenticationMethods publickey MaxAuthTries 3 ClientAliveInterval 300 ClientAliveCountMax 2 X11Forwarding no AllowTcpForwarding noПеред перезапуском —
sshd -t, чтобы не потерять доступ.
2. IPv6: не забывай про вторую половину стека
Классическая ошибка: IPv4 закрыт stateful-файрволом, а IPv6 — открыт. Атакующие это знают. nftables позволяет описать симметричные правила для обоих стеков в одном файле. Пример для /etc/nftables.conf:
table inet filter {
chain input {
type filter hook input priority filter; policy drop;
ct state established,related accept
ct state invalid drop
ip protocol icmp accept
ip6 nexthdr ipv6-icmp accept
tcp dport { 22, 80, 443 } accept
}
}
inet означает, что таблица применяется и к IPv4, и к IPv6. Не нужно дублировать правила.
3. Egress: не только «кто может войти», но и «куда можно выйти»
🔵 Если сервис скомпрометирован, майнеру или reverse shell нужен исходящийдоступ. Базовый файрвол это часто игнорирует. Добавь ограничение egress: разреши только то, что нужно приложению (обновления, API, DNS), остальное — drop.Практический пример Свежий VPS. Через час в
auth.log — сотни попыток. После Ed25519, модульного sshd_config.d, симметричного nftables и egress-фильтра: попытки продолжаются, но ни одна не проходит. Reverse shell, если вдруг появится, не сможет «позвонить домой».
😈 CodeGuard: PySec Edition | Чат