БАЗА: Что нужно знать каждому инженеру (обязательно для всех направлений)
ОС и файловая система
Установка и настройка
iface enp0s3 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
Файловая система и права
Пользователи, процессы, ресурсы
Пользователи и sudo
Процессы и мониторинг
Сеть
Конфигурация и диагностика
Firewall
Диски и хранение
Разметка и LVM
vgcreate vg_data /dev/sdb1
lvcreate -L 10G -n lv_storage vg_data
mkfs.ext4 /dev/vg_data/lv_storage
mount /dev/vg_data/lv_storage /mnt/data
Шифрование
Безопасность
SSH и аутентификация
AppArmor и аудит
Автоматизация
Bash
Python
DevOps Engineer
Что строится на Linux
Контейнеры
Службы в контейнерах
Инструменты
CI/CD
IaC и оркестрация
Site Reliability Engineer (SRE)
Что строится на Linux
Диагностика ядра
Высокая доступность
Инструменты
Надёжность
Мониторинг
Cloud Engineer
Что строится на Linux
Образы ВМ
Метаданные
Инструменты
IaC
Управление
Security Engineer
Что строится на Linux
Ядро и безопасность
Аудит и защита
Инструменты
Секреты
Обнаружение
Platform Engineer
Что строится на Linux
Платформа как сервис
Инструменты
Политики
Автоматизация для разработчиков
Часть I: Ядро — Linux как основа (обязательно для всех)
1. Основы операционной системы (0–2 месяца)
2. Процессы и ресурсы (2–4 месяца)
3. Сеть на уровне хоста (4–6 месяцев)
4. Диски, файловые системы и хранение (6–8 месяцев)
5. Безопасность на уровне ОС (8–10 месяцев)
6. Автоматизация и скрипты (10–12 месяцев)
7. Продвинутые темы ядра и системного уровня (12–18 месяцев)
Часть II: Специализации (на основе Linux-ядра)
A. DevOps Engineer
Linux-зависимости:
Добавляется:
B. Site Reliability Engineer (SRE)
Linux-зависимости:
Добавляется:
C. Cloud Engineer
Linux-зависимости:
Добавляется:
D. Security Engineer (Infra/Platform Security)
Linux-зависимости:
Добавляется:
E. Platform Engineer
Linux-зависимости:
Добавляется:
Часть III: Практические рекомендации
Часть IV: Временные рамки
ОС и файловая система
Установка и настройка
- Установить Debian 13 без GUI (минимальная установка)
- Настроить статический IP через /etc/network/interfaces:
iface enp0s3 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
- Обновить систему: sudo apt update && sudo apt upgrade -y
- Отключить ненужные службы: systemctl disable avahi-daemon cups
Файловая система и права
- Знать структуру FHS: /bin (бинарники), /etc (конфиги), /var/log (логи), /proc (процессы), /sys (устройства)
- Установить права: chmod 600 ~/.ssh/id_rsa, chmod 700 ~/.ssh
- Использовать ACL: setfacl -m u:username:rwx /path
Пользователи, процессы, ресурсы
Пользователи и sudo
- Создать пользователя: sudo adduser dev
- Дать права sudo: sudo usermod -aG sudo dev
- Настроить sudo без пароля для группы: в /etc/sudoers через visudo:
Процессы и мониторинг
- Найти процесс по имени: pgrep nginx
- Убить все процессы пользователя: pkill -u username
- Мониторинг: htop (процессы), iotop (диск), nethogs (сеть), vmstat 1 (память), df -h (диски), du -sh /var/log/* (логи)
Сеть
Конфигурация и диагностика
- Просмотр интерфейсов: ip a
- Просмотр маршрутов: ip r
- Проверка порта: ss -tuln | grep :22
- Диагностика: ping 8.8.8.8, traceroute google.com, dig example.com, mtr google.com
- Настроить DNS: echo "nameserver 8.8.8.8" > /etc/resolv.conf
Firewall
- Установить: sudo apt install iptables
- Разрешить SSH: iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- Запретить всё остальное: iptables -P INPUT DROP
- Сохранить правила: iptables-save > /etc/iptables/rules.v4
Диски и хранение
Разметка и LVM
- Посмотреть диски: lsblk
- Создать раздел: fdisk /dev/sdb -> n -> p -> w
- Создать LVM:
vgcreate vg_data /dev/sdb1
lvcreate -L 10G -n lv_storage vg_data
mkfs.ext4 /dev/vg_data/lv_storage
mount /dev/vg_data/lv_storage /mnt/data
Шифрование
- Зашифровать диск: cryptsetup luksFormat /dev/sdc1
- Открыть: cryptsetup open /dev/sdc1 secure_vol
- Смонтировать: mkfs.ext4 /dev/mapper/secure_vol && mount /dev/mapper/secure_vol /secure
Безопасность
SSH и аутентификация
- Генерировать ключ: ssh-keygen -t ed25519 -C "user@host"
- Отключить пароли в /etc/ssh/sshd_config: PasswordAuthentication no
- Перезапустить: systemctl reload sshd
- Установить Fail2ban: apt install fail2ban -> настроить jail.local
AppArmor и аудит
- Установить: apt install apparmor-utils
- Включить профиль: aa-enforce /etc/apparmor.d/usr.sbin.nginx
- Аудит: apt install auditd -> auditctl -w /etc/passwd -p wa -k passwd_access
Автоматизация
Bash
- Переменные: NAME="value"
- Условия: if [ -f /tmp/file ]; then echo "exists"; fi
- Циклы: for i in {1..5}; do echo $i; done
- Функции: backup() { tar -czf "$1".tar.gz "$1"; }
Python
- Чтение файла: with open('file.txt') as f: data = f.read()
- Запуск команды: subprocess.run(['ls', '-l'], capture_output=True)
- Асинхронность: async def fetch(url): async with aiohttp.ClientSession() as session: ...
- Работа с JSON: json.load(f), json.dumps(obj)
- Парсинг аргументов: argparse.ArgumentParser().add_argument('--config')
DevOps Engineer
Что строится на Linux
Контейнеры
- Изоляция через cgroups: cat /sys/fs/cgroup/cpu/cgroup.procs
- Namespaces: unshare -n bash -> ip a (новое сетевое пространство)
- Docker: docker run -it --rm debian:13 bash
- Dockerfile: FROM debian:13, RUN apt update && apt install -y nginx
Службы в контейнерах
- systemd не запускается в контейнере - использовать s6 или supervisord
- Пример: CMD ["/usr/bin/s6-svscan", "/etc/s6"]
Инструменты
CI/CD
- GitLab CI: .gitlab-ci.yml с stages: build, test, deploy
- GitHub Actions: workflow с jobs -> steps -> run: ansible-playbook site.yml
IaC и оркестрация
- Ansible: playbook с tasks: name: Install nginx, apt: name=nginx state=present
- Terraform: resource "aws_instance" "web" { ami = "ami-..." }
- Kubernetes: kubectl apply -f deployment.yaml -> Deployment с image: nginx:1.25
Site Reliability Engineer (SRE)
Что строится на Linux
Диагностика ядра
- perf top - горячие функции ядра
- strace -p $(pgrep nginx) - системные вызовы процесса
- eBPF: bpftrace -e 'tracepoint:syscalls:sys_enter_openat { printf("%s %s\n", comm, str(args->filename)); }'
Высокая доступность
- Keepalived: конфиг /etc/keepalived/keepalived.conf с vrrp_instance VI_1
- VIP: 192.168.1.100 - плавающий IP между двумя хостами
Инструменты
Надёжность
- SLO: latency < 200ms для 99% запросов -> запись в Prometheus
- Error budget: 1% - если израсходован, остановить деплои
- Chaos: litmuschaos - запустить pod-delete в Kubernetes
Мониторинг
- Prometheus: scrape_configs -> job_name: 'node' -> static_configs: targets: ['192.168.1.10:9100']
- Grafana: дашборд с CPU, RAM, диски, HTTP-коды
- Alertmanager: правило - если node_filesystem_avail_bytes < 1G -> alert
Cloud Engineer
Что строится на Linux
Образы ВМ
- cloud-init: /etc/cloud/cloud.cfg.d/99-custom.cfg
- user-data: #cloud-config -> users: - name: admin -> ssh_authorized_keys: [ "ssh-ed25519 ..." ]
Метаданные
- В AWS: curl
У вас нет разрешения на просмотр ссылки, пожалуйста Вход или Регистрация
- В GCP: curl -H "Metadata-Flavor: Google"
У вас нет разрешения на просмотр ссылки, пожалуйста Вход или Регистрация
Инструменты
IaC
- Terraform: provider "aws" { region = "us-east-1" }
- Packer: builders -> type: "amazon-ebs", source_ami: "ami-...", instance_type: "t3.micro"
Управление
- AWS CLI: aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId'
- gcloud: gcloud compute instances list --format="value(name,zone)"
Security Engineer
Что строится на Linux
Ядро и безопасность
- LSM: /sys/kernel/security/apparmor/profiles
- seccomp: docker run --security-opt seccomp=profile.json
- capabilities: getcap /bin/ping -> cap_net_raw+ep
Аудит и защита
- auditd: /etc/audit/rules.d/audit.rules -> -w /etc/shadow -p wa
- Falco: правило - shell_in_container: condition: spawned_process and container and shell_procs
Инструменты
Секреты
- Vault: vault kv put secret/db password="123"
- AWS Secrets Manager: aws secretsmanager get-secret-value --secret-id db-creds
Обнаружение
- Wazuh: агент на хосте -> отправка логов в manager
- Osquery: SELECT * FROM processes WHERE name = 'nc';
Platform Engineer
Что строится на Linux
Платформа как сервис
- Backstage: catalog-info.yaml -> kind: Component, spec: owner: team-a
- Self-hosted: развернуть Backstage на Debian 13 через Node.js
Инструменты
Политики
- OPA: правило - container.resources.limits.memory != null
- Gatekeeper: ConstraintTemplate с rego-кодом
Автоматизация для разработчиков
- Шаблон Helm: values.yaml -> image: tag: "1.25"
- GitHub repo template: .github/ -> workflows/, charts/, README.md
Часть I: Ядро — Linux как основа (обязательно для всех)
1. Основы операционной системы (0–2 месяца)
- Архитектура Linux: ядро, пользовательское пространство, системные вызовы
- Дистрибутивы: Debian (рекомендуется), Ubuntu, RHEL, CentOS Stream
- Установка и настройка Debian 13 (в VM или bare metal)
- Файловая система: FHS (/bin, /etc, /var, /proc, /sys, /dev)
- Работа с терминалом: ls, cd, grep, find, tar, rsync
- Права доступа: chmod, chown, umask, ACL
- Пользователи и группы: /etc/passwd, /etc/shadow, useradd, groupmod
- Переменные окружения, PATH, .bashrc, .profile
- Установка ПО: apt, dpkg, компиляция из исходников (./configure, make, make install)
2. Процессы и ресурсы (2–4 месяца)
- Управление процессами: ps, top, htop, kill, pkill, nice, renice
- Init-системы: systemd (юниты, systemctl, journalctl), сравнение с SysVinit
- Планировщики задач: cron, at, systemd timers
- Логи: /var/log/, rsyslog, logrotate, journalctl -u service
- Мониторинг ресурсов: df, du, free, vmstat, iostat, sar
- Понимание load average, контекстных переключений, состояний процессов (R, S, D, Z)
- Работа с сигналами: SIGTERM, SIGKILL, SIGHUP
3. Сеть на уровне хоста (4–6 месяцев)
- Сетевые интерфейсы: ip addr, ip route, ss, netstat
- Настройка сети в Debian: /etc/network/interfaces, systemd-networkd
- DNS: /etc/resolv.conf, dig, nslookup
- Базовый firewall: iptables (цепочки, правила), переход к nftables
- SSH: ключи, sshd_config, отключение root-логина, Fail2ban
- Прокси и туннели: socat, netcat, SSH port forwarding
- Сетевые пространства имён (network namespaces) — основа для контейнеров
- Мониторинг трафика: tcpdump, tshark
4. Диски, файловые системы и хранение (6–8 месяцев)
- Разметка: fdisk, parted
- Файловые системы: ext4 (основная), XFS, Btrfs
- Монтирование: mount, /etc/fstab, опции (noatime, defaults)
- LVM: pvcreate, vgcreate, lvcreate, расширение томов
- Шифрование: LUKS (cryptsetup), полное шифрование диска при установке
- RAID: программный (mdadm), уровни 0, 1, 5, 10
- SMART-мониторинг: smartctl
- Swap: файл vs раздел, swappiness
5. Безопасность на уровне ОС (8–10 месяцев)
- Мандатные системы: AppArmor (в Debian), SELinux (в RHEL)
- Аудит: auditd, правила для отслеживания доступа к файлам и командам
- Hardening: CIS Benchmarks для Debian
- Управление sudo: visudo, права по группам
- Отключение ненужных служб, минимальная установка
- Secure Boot и проверка целостности загрузки
- TPM (Trusted Platform Module): базовое понимание
- Защита от атак: ASLR, stack canaries, NX bit
6. Автоматизация и скрипты (10–12 месяцев)
- Bash: условия, циклы, функции, обработка аргументов
- Python: работа с os, subprocess, sys, argparse
- Парсинг конфигов: JSON, YAML
- Асинхронность в Python: async/await, aiofiles — для высоконагруженных задач
- Работа с файлами: чтение/запись, блокировки, временные файлы
- Обработка ошибок, логирование в скриптах
- Тестирование скриптов: проверка на разных версиях ОС
7. Продвинутые темы ядра и системного уровня (12–18 месяцев)
- Ядро Linux: модули (lsmod, modprobe), параметры (/proc/cmdline, sysctl)
- cgroups v1 и v2: ограничение CPU, памяти, I/O
- Namespaces: PID, network, mount, user, UTS — основа контейнеров
- LSM (Linux Security Modules): как работают AppArmor/SELinux на уровне ядра
- eBPF: введение — безопасный способ расширения ядра без модулей
- Entropy и /dev/random vs /dev/urandom
- Time sync: NTP, chrony, systemd-timesyncd, leap seconds
- Firmware: обновление через fwupd, понимание UEFI vs Legacy BIOS
Часть II: Специализации (на основе Linux-ядра)
A. DevOps Engineer
Linux-зависимости:
- Контейнеры: изоляция через cgroups, namespaces (ключевые концепции Linux)
- systemd для управления службами в образах
- Безопасность: seccomp, capabilities, read-only файловые системы
- Build-контексты: tmpfs, overlayfs
Добавляется:
- CI/CD (GitLab CI, GitHub Actions)
- Kubernetes, Helm, ArgoCD
- Terraform, Ansible
- Observability: Prometheus, Grafana, Loki
- Image scanning: Trivy, Clair
- GitOps: синхронизация состояния из Git
B. Site Reliability Engineer (SRE)
Linux-зависимости:
- Глубокая диагностика: perf, strace, eBPF, ftrace
- Тюнинг ядра: sysctl, параметры сети и памяти
- Анализ дампов: gdb, core dumps
- Высокая доступность: Keepalived, Pacemaker
- Мониторинг на уровне ядра: /proc/stat, /proc/meminfo
Добавляется:
- SLO/SLI, error budgets
- Chaos Engineering (LitmusChaos, Gremlin)
- Инцидент-менеджмент, blameless postmortems
- Capacity planning, load testing (k6, Locust)
- Toil elimination — автоматизация рутины
C. Cloud Engineer
Linux-зависимости:
- Образы ВМ: cloud-init, минимальные установки
- Безопасность хостов в облаке
- Агенты мониторинга как процессы Linux
- Metadata-сервисы: доступ к IAM-ролям через 169.254.169.254
Добавляется:
- AWS/GCP/Azure: EC2, VPC, IAM, S3, GKE, AKS
- Terraform, Packer
- Multi-region архитектуры, cost optimization
- Serverless: Lambda, Cloud Functions — взаимодействие с Linux-хостами
- Hybrid cloud: подключение on-prem к облаку
D. Security Engineer (Infra/Platform Security)
Linux-зависимости:
- Ядро: LSM (SELinux, AppArmor), seccomp, namespaces
- Сетевой стек: netfilter, eBPF для фильтрации
- Аудит: auditd, sysmon для Linux
- Защита от LPE, анализ CVE в ядре и пакетах
- Шифрование: LUKS, TPM, Secure Boot
- Integrity: IMA/EVM (Integrity Measurement Architecture)
- Runtime protection: Falco, tracee
Добавляется:
- Vault, Keycloak
- SIEM (Wazuh, ELK), EDR (osquery, CrowdStrike)
- Соответствие: CIS, ISO 27001, SOC 2
- Threat modeling: MITRE ATT&CK for Linux
- Secrets rotation, short-lived credentials
E. Platform Engineer
Linux-зависимости:
- Self-hosted компоненты платформы работают на Linux
- Контейнеры и оркестрация основаны на Linux-примитивах
- Безопасность платформы = безопасность хостов + политик
Добавляется:
- Backstage, Internal Developer Platform (IDP)
- Golden paths, self-service порталы
- Policy as Code: OPA/Gatekeeper
- Service Catalog, ownership models
- Developer experience (DX): упрощение работы с инфраструктурой
Часть III: Практические рекомендации
- Используй Debian 13 как основную ОС для обучения и homelab
- Создай репозиторий на GitHub с Ansible-ролями, скриптами и документацией по Linux
- Построй homelab: Proxmox → VM с Debian → Kubernetes → мониторинг → безопасность
- Участвуй в open source: Debian, Prometheus, Falco, Wazuh
- Следи за уязвимостями: CVE в ядре, systemd, glibc, OpenSSL
- Изучай исходный код: kernel.org, GitHub репозитории ключевых утилит
- Практикуйся в изоляции: запускай ненадёжные скрипты в unprivileged-контейнерах
Часть IV: Временные рамки
- 0–12 месяцев: освоение ядра Linux (блоки 1–6)
- 12–18 месяцев: углубление в ядро и системные примитивы (блок 7) + пробные проекты
- 18–36 месяцев: глубокая специализация в 1–2 ролях
- 36+ месяцев: Senior-уровень — архитектура, лидерство, безопасность, вклад в сообщество