Безопасность серверов Linux
О КУРСЕ
Через несколько минут после того, как сервер появляется в интернете, его уже начинают сканировать. Не хакеры — боты. Им всё равно что там запущено и кто владелец. Они просто ищут открытые порты, стандартные пароли, известные уязвимости.
Большинство об этом не думают. Настроили, запустили, работает — и ладно. До тех пор, пока однажды что-то идёт не так.
Этот курс о том, как сделать так, чтобы не узнавать таким образом.
104 урока, 12 блоков — от первого знакомства с Linux до централизованного мониторинга. Каждый инструмент объясняется не просто «вводите вот это», а почему именно это, что будет если не сделать, и как проверить что всё работает правильно.
ДЛЯ КОГО
Для тех, кто умеет поднять сервер — но честно не знает, насколько он защищён.
Вы работаете с Linux, знаете основные команды, SSH настраивали. Но если спросят «а pg_hba.conf смотрел?» или «nftables настроен?» — где-то внутри появляется лёгкая тревога. Знакомо? Этот курс именно про это. Не одна статья из Stack Overflow, а системное понимание того, как всё устроено и почему.
Если вы совсем в начале пути — тоже нормально. Блок 0 начинается с нуля, уровень нарастает постепенно. Никто не бросает вас в глубину без объяснений.
ЧТО ВНУТРИ
Каждый блок строится на предыдущем — к концу курса у вас в голове не набор инструментов, а цельная картина.
Начинаем с основ Linux: файловая система, пользователи, права, процессы, сеть, SSH. Звучит скучно — но именно здесь закладывается понимание, без которого всё остальное будет просто магией.
Потом — кто вообще имеет право что делать на сервере. sudo, PAM, SELinux, AppArmor. Почему root в логах SSH — это не просто строчка, а повод остановиться и разобраться.
systemd знают как «systemctl start/stop». Но он умеет изолировать службу так, что даже если nginx взломают — он не сможет прочитать /etc/passwd, записать файл за пределами своей директории или запустить новый процесс. Об этом целый блок.
Ядро. Параметры sysctl — не магические строчки, которые копируют из интернета не глядя. Каждый из них делает что-то конкретное: закрывает вектор атаки, ограничивает утечку информации, меняет поведение сетевого стека под нагрузкой.
Сертификаты. «Поставить Let’s Encrypt» и «понимать как это работает» — очень разные вещи. Разбираем цепочки доверия, собственный CA, mTLS, шифрование дисков и файлов. После этого блока OpenSSL перестаёт пугать.
Firewall на nftables — не iptables с его синтаксисом из 1990-х, а нормальный современный инструмент. Строим политику «всё запрещено, кроме явно разрешённого», защищаемся от DDoS и сканирования, учимся отлаживать правила когда что-то идёт не так.
nginx — не просто «раздавать файлы». Правильный HTTPS, заголовки безопасности, rate limiting, reverse proxy. И главное — как читать логи так, чтобы видеть атаки, а не просто цифры.
База данных в приватной сети, за двойной изоляцией, с mTLS и минимальными привилегиями. Потому что «PostgreSQL слушает на 0.0.0.0» — это не настройка, это открытая дверь.
fail2ban автоматически блокирует по логам. Разбираем как он работает изнутри, пишем свои фильтры, интегрируем с nftables — и разбираемся почему иногда он молчит, когда должен блокировать.
Cloudflare — CDN, WAF, защита от DDoS, Tunnel, Zero Trust. Как правильно встроить его в стек и не потерять реальные IP клиентов по дороге.
Аудит и мониторинг: auditd, контроль целостности файлов, анализ трафика, стандарты CIS, отслеживание CVE, автоматические обновления. Как знать, что происходит на сервере — не только когда уже горит.
Последний блок — логирование и troubleshooting. Как устроены логи в Linux, как их анализировать, и как диагностировать типичные проблемы: nginx отдаёт 502, fail2ban не блокирует, systemd-служба не стартует, TLS ругается на сертификат. Grafana и Loki для тех, кто хочет видеть всё в одном месте.
ЧТО ИЗМЕНИТСЯ
Берёте чистый сервер — и настраиваете его для production сами.
SSH с ключами, без root, с ограничением по IP. Firewall, который по умолчанию закрыт. nginx с нормальным HTTPS и заголовками безопасности. База данных в приватной сети. Автоматическая блокировка атак. Логи, которые вы умеете читать. Мониторинг, который покажет проблему раньше, чем позвонит клиент.
И — это важнее всего — вы понимаете, почему именно так. Когда что-то пойдёт не так в production, а рано или поздно это случается, вы будете знать куда смотреть.
Учебная программа
- 12 Sections
- 111 Lessons
- Срок службы
- БЛОК 0: Введение в Linux | Beginner10
- 1.1УРОК 1. Что такое Linux — история, дистрибутивы и безопасность системы
- 1.2УРОК 2. Файловая система Linux — структура, где что лежит
- 1.3УРОК 3. Выжить в терминале — команды которые нужны каждый день
- 1.4УРОК 4. Пользователи и группы — первый рубеж безопасности
- 1.5УРОК 5. Права доступа — chmod, chown и почему 777 это катастрофа
- 1.6УРОК 6. Процессы и службы — что происходит в системе прямо сейчас
- 1.7УРОК 7. Сеть в Linux — диагностика, анализ и контроль соединений
- 1.8УРОК 8. Пакетный менеджер — установка, обновления и защита от уязвимостей
- 1.9УРОК 9. Текстовый редактор на сервере — nano, vim и первые шаги
- 1.10УРОК 10. SSH — первое подключение и базовая безопасность
- БЛОК 1: Управление доступом и привилегиями | Junior — Middle5
- 2.1УРОК 1. sudo — безопасная настройка, ограничение команд и аудит
- 2.2УРОК 2. PAM — аутентификация, политики паролей и блокировка аккаунтов
- 2.3УРОК 3. SELinux — мандатный контроль доступа, режимы и контексты
- 2.4УРОК 4. AppArmor — профили безопасности, режимы и управление исключениями
- 2.5УРОК 5. Многоуровневая модель доступа Linux: ACL, capabilities и диагностика отказов
- БЛОК 2: systemd Security | Junior11
- 3.1УРОК 1. systemd — сердце Linux-сервера: архитектура, PID 1 и как это работает
- 3.2УРОК 2. Unit-файлы: как systemd читает инструкции для каждой службы
- 3.3УРОК 3. systemctl: главный инструмент администратора — от запуска служб до блокировки опасных процессов
- 3.4УРОК 4. Что крутится на вашем сервере — аудит служб и зачистка attack surface
- 3.5УРОК 5. Песочница для каждой службы — изолируем процессы через директивы безопасности
- 3.6УРОК 6. Последний рубеж — SystemCallFilter и CapabilityBoundingSet против атак на уровне ядра
- 3.7УРОК 7. cgroups через systemd — не даём одной службе положить весь сервер
- 3.8УРОК 8. systemd-analyze — рентген вашего сервера: скорость загрузки и security score
- 3.9УРОК 9. journald — сбор и анализ логов безопасности
- 3.10УРОК 10. Таймеры systemd — запускаем задачи по расписанию без дыр в безопасности
- 3.11УРОК 11. systemd-resolved: безопасный DNS с поддержкой DNS over TLS и DNSSEC
- БЛОК 3: Kernel Hardening | Junior4
- БЛОК 4: Шифрование и сертификаты | Junior10
- 5.1УРОК 1. Как работают сертификаты — CA, цепочка доверия, x.509
- 5.2УРОК 2. Let’s Encrypt + Certbot — бесплатные сертификаты
- 5.3УРОК 3. Self-signed сертификаты — для внутренних сервисов
- 5.4УРОК 4. Собственный CA — создание своего центра сертификации
- 5.5УРОК 5. Cloudflare Origin Certificate — сертификат между Cloudflare и сервером
- 5.6УРОК 6. Wildcard-сертификаты — один сертификат на все поддомены
- 5.7УРОК 7. mTLS — взаимная аутентификация клиент-сервер
- 5.8УРОК 8. Мониторинг сертификатов — хранение, ротация, срок действия
- 5.9УРОК 9. LUKS — шифрование дисков
- 5.10УРОК 10. GPG — шифрование файлов и цифровые подписи
- БЛОК 5: nftables Security | Junior — Middle8
- 6.1УРОК 1. Введение в nftables — почему iptables уходит в прошлое
- 6.2УРОК 2. Таблицы, цепочки, правила — базовая структура nftables
- 6.3УРОК 3. Базовый firewall — политика запрет по умолчанию
- 6.4УРОК 4. Фильтрация входящего и исходящего трафика — детальная настройка
- 6.5УРОК 5. NAT и проброс портов через nftables
- 6.6УРОК 6. Sets и maps — эффективное управление правилами nftables
- 6.7УРОК 7. Защита от DDoS и сканирования портов средствами nftables
- 6.8УРОК 8. Логирование и отладка правил nftables
- БЛОК 6: nginx Security | Middle10
- 7.1УРОК 1. Введение в nginx — архитектура и конфигурация
- 7.2УРОК 2. Базовая безопасная конфигурация nginx
- 7.3УРОК 3. TLS/SSL — настройка HTTPS, сертификаты
- 7.4УРОК 4. Заголовки безопасности — HSTS, CSP, X-Frame-Options
- 7.5УРОК 5. Ограничение доступа — rate limiting, geo blocking
- 7.6УРОК 6. Reverse proxy — безопасная настройка
- 7.7УРОК 7. nginx + nftables — интеграция защиты
- 7.8УРОК 8. Логи nginx — мониторинг и анализ атак
- 7.9УРОК 9. Hardening nginx — минимальные привилегии, чеклист и финальный аудит
- 7.10УРОК 10. Защита API через nginx — rate limiting по endpoint-ам, блокировка ботов, защита от злоупотребления бизнес-логикой
- БЛОК 7: Безопасность баз данных | Middle10
- 8.1УРОК 1. Архитектура — почему БД должна быть в приватной сети
- 8.2УРОК 2. Приватная сеть — настройка сетевой изоляции БД
- 8.3УРОК 3. nftables для БД — доступ только с IP веб-сервера
- 8.4УРОК 4. PostgreSQL — настройка pg_hba.conf, ограничение доступа
- 8.5УРОК 5. MySQL/MariaDB — bind-address, ограничение доступа
- 8.6УРОК 6. SSL/TLS для PostgreSQL — шифрование соединения
- 8.7УРОК 7. SSL/TLS для MySQL/MariaDB — шифрование соединения
- 8.8УРОК 8. mTLS для БД — взаимная аутентификация
- 8.9УРОК 9. Пользователи БД — минимальные привилегии
- 8.10УРОК 10. Аудит БД — логирование запросов и подключений
- БЛОК 8: fail2ban Security | Middle9
- 9.1УРОК 1. fail2ban — автоматическая блокировка атак: принцип работы и архитектура
- 9.2УРОК 2. fail2ban — установка, первый запуск и базовая настройка
- 9.3УРОК 3. Jails — настройка защиты для SSH
- 9.4УРОК 4. Jails — защита nginx от атак
- 9.5УРОК 5. Filters — создание своих правил обнаружения атак
- 9.6УРОК 6. Actions — как fail2ban блокирует через nftables
- 9.7УРОК 7. Whitelist, ignoreip — исключения и доверенные IP
- 9.8УРОК 8. Мониторинг и отладка fail2ban — логи, статусы
- 9.9УРОК 9. fail2ban + nginx + nftables — полная интеграция
- БЛОК 9: Cloudflare Security | Middle — Senior10
- 10.1УРОК 1. Что такое Cloudflare — CDN, proxy, защита
- 10.2УРОК 2. DNS через Cloudflare — настройка, режимы proxy
- 10.3УРОК 3. SSL/TLS в Cloudflare — режимы, Full Strict
- 10.4УРОК 4. WAF — Web Application Firewall, правила
- 10.5УРОК 5. DDoS защита — настройка, уровни
- 10.6УРОК 6. Cloudflare Rules — Page Rules, Transform Rules
- 10.7УРОК 7. Cloudflare + nginx — интеграция, реальный IP
- 10.8УРОК 8. Cloudflare + fail2ban — совместная защита
- 10.9УРОК 9. Cloudflare Tunnel — безопасный доступ без открытых портов
- 10.10УРОК 10. Zero Trust — Cloudflare Access, основы
- БЛОК 10: Аудит и мониторинг | Senior10
- 11.1УРОК 1. auditd — аудит событий безопасности
- 11.2Урок 2. AIDE — контроль целостности файлов
- 11.3УРОК 3. logwatch — анализ логов
- 11.4УРОК 4. WireGuard VPN — настройка
- 11.5УРОК 5. tcpdump — анализ трафика
- 11.6УРОК 6. nmap — сканирование своей сети
- 11.7УРОК 7. CIS Benchmarks — стандарты безопасной настройки
- 11.8УРОК 8. Lynis — автоматический аудит безопасности сервера
- 11.9УРОК 9. CVE — как следить за уязвимостями
- 11.10УРОК 10. Автоматические обновления безопасности
- БЛОК 11: Логирование и Troubleshooting | Junior — Senior14
- 12.1УРОК 1. Архитектура логирования в Linux — где что пишется
- 12.2УРОК 2. journald — journalctl, фильтрация, анализ
- 12.3УРОК 3. rsyslog — централизованное логирование
- 12.4УРОК 4. logrotate — ротация, хранение, сжатие
- 12.5УРОК 5. Логи nginx — access.log, error.log, анализ атак
- 12.6УРОК 6. Логи fail2ban — что заблокировано и почему
- 12.7УРОК 7. Логи nftables — логирование правил firewall
- 12.8УРОК 8. Анализ логов — grep, awk, sed
- 12.9УРОК 9. Troubleshooting nginx — типичные ошибки
- 12.10УРОК 10. Troubleshooting nftables — отладка правил
- 12.11УРОК 11. Troubleshooting fail2ban — почему не блокирует
- 12.12УРОК 12. Troubleshooting systemd — служба не запускается
- 12.13УРОК 13. Troubleshooting сертификатов — ошибки TLS/SSL
- 12.14УРОК 14. Централизованный мониторинг — Grafana + Loki