[Linux] От Новичка до Senior в Linux и смежных инженерных ролях (roadmap)

БАЗА: Что нужно знать каждому инженеру (обязательно для всех направлений)

ОС и файловая система
Установка и настройка
  • Установить Debian 13 без GUI (минимальная установка)
  • Настроить статический IP через /etc/network/interfaces:
auto enp0s3
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:
%dev ALL=(ALL) NOPASSWD: ALL

Процессы и мониторинг
  • Найти процесс по имени: 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:
pvcreate /dev/sdb1
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-уровень — архитектура, лидерство, безопасность, вклад в сообщество
 
Назад
Сверху