Опубликовано

Встречайте: “Практическая безопасность Linux”

Практическая безопасность Linux

Рассмотрены практические аспекты обеспечения безопасности в Linux. Подробно описаны архитектура системы, уровни привилегий и механизмы управления доступом (DAC, MAC, SELinux, AppArmor). Даны рекомендации по настройке безопасной загрузки, аудиту, журналированию и контролю активности пользователей. Отдельное внимание уделено изоляции приложений, сетевой безопасности, защите данных и памяти, а также противодействию руткитам и вредоносному коду. Рассмотрены методы шифрования, усиления ядра и использования IDS/IPS-систем. Рассказано о защите памяти, настройке компилятора и усилении безопасности ядра. Завершающие главы посвящены расследованию инцидентов безопасности: сбору и анализу логов, использованию инструментов форензики, документированию, восстановлению и постинцидентному анализу.

Для системных администраторов и специалистов по информационной безопасности

Подробное руководство по защите операционной системы

Миф о том, что Linux по умолчанию безопасен, давно пора развеять. Эта книга — подробное практическое руководство по защите Linux-систем: от архитектуры ядра и модели прав доступа до расследования инцидентов безопасности. Она предоставляет все необходимые знания и инструменты для эффективной защиты операционной системы.

Издание ориентировано на системных администраторов, специалистов по информационной безопасности, ИТ-менеджеров и инженеров, которые стремятся глубже понять и укрепить защиту своих Linux-систем.

В книге рассматриваются:

  • Основы архитектуры Linux: как работает ядро, системные вызовы и управление памятью; механизмы безопасности ядра и пользовательского пространства
  • Безопасная загрузка: защита GRUB, Syslinux и UEFI Secure Boot от компрометации
  • Модели доступа и права: настройка многопользовательской безопасности, AppArmor и SELinux
  • Аутентификация и авторизация: SSH-ключи, двухфакторная аутентификация, управление правами с помощью chmod, chown и ACL
  • Песочницы для приложений: изоляция процессов с использованием Firejail и systemd-песочниц
  • Сетевые аспекты безопасности: настройка брандмауэров (iptables, nftables), VPN, SSH и предотвращение атак
  • Контроль целостности: использование Tripwire, AIDE и систем IDS для обнаружения вторжений
  • Антивирусы и руткиты: практические рекомендации по защите от вредоносных программ
  • Шифрование и защита памяти: LUKS, защита от переполнений буфера и атак холодной загрузки
  • Расследование инцидентов безопасности: методы сбора и анализа логов, сетевого трафика и снапшотов, использование инструментов форензики (Volatility, Autopsy, Sleuth Kit), документирование результатов и восстановление системы после инцидента

Книгу “Практическая безопасность Linux” можно купить в нашем интенет-магазине.

Предисловие…………………………………………………………………………………………… 15

Благодарности…………………………………………………………………………………………………………………………… 15

О чем эта книга…………………………………………………………………………………………………………………………… 15

Как устроена эта книга……………………………………………………………………………………………………………… 16

Кому она будет полезна……………………………………………………………………………………………………………. 16

Об авторе……………………………………………………………………………………………………………………………………. 17

Введение………………………………………………………………………………………………… 18

Основы информационной безопасности………………………………………………………………………………….. 18

Роль Linux в инфраструктуре……………………………………………………………………………………………………. 19

История и философия Linux………………………………………………………………………………………………………. 19

Мифы о безопасности Linux……………………………………………………………………………………………………… 19

Миф 1: «На Linux нет вирусов»………………………………………………………………………………………… 19

Миф 2: «Если не root — значит, безопасно»……………………………………………………………………. 20

Миф 3: «Открытый код — значит, безопасный»……………………………………………………………… 20

Миф 4: «Linux безопасен по умолчанию»……………………………………………………………………….. 20

Современные угрозы и векторы атак……………………………………………………………………………………….. 20

Уязвимости в ядре и базовых сервисах……………………………………………………………………………. 20

Злоупотребление доверенными механизмами………………………………………………………………… 20

LOTL (Living Off The Land)……………………………………………………………………………………………….. 21

Контейнеры и облачные среды………………………………………………………………………………………… 21

Supply Chain: атаки на цепочку поставки……………………………………………………………………….. 21

Edge и IoT……………………………………………………………………………………………………………………………. 21

Модели угроз и их применение в безопасности Linux……………………………………………………………. 22

STRIDE………………………………………………………………………………………………………………………………… 22

DREAD………………………………………………………………………………………………………………………………… 22

MITRE ATT&CK………………………………………………………………………………………………………………… 22

Практический подход к безопасности……………………………………………………………………………………… 23

Этика и ответственность…………………………………………………………………………………………………………… 23

Мотивация и призыв к действию………………………………………………………………………………………………. 23

Глава 1. Основы архитектуры Linux………………………………………………………. 25

Уровни привилегий……………………………………………………………………………………………………………………. 26

Пространства выполнения………………………………………………………………………………………………………… 26

Инициализация…………………………………………………………………………………………………………………………… 27

Механизмы перехода………………………………………………………………………………………………………………… 27

Архитектурные особенности……………………………………………………………………………………………………. 27

Ядро и его компоненты……………………………………………………………………………………………………………… 28

Аудит и безопасность………………………………………………………………………………………………………………… 28

Аудит системы с помощью Linux Audit Framework, Lynis и auditd……………………………….. 29

Встроенные механизмы аудита………………………………………………………………………………………… 30

Глава 2. Защита загрузчика и безопасная загрузка………………………………… 32

Этапы загрузки Linux………………………………………………………………………………………………………………… 32

Описание этапов………………………………………………………………………………………………………………… 33

Загрузчик GRUB. Настройка безопасности……………………………………………………………………………. 34

Методы защиты GRUB………………………………………………………………………………………………………. 34

Пароль на доступ к меню загрузки………………………………………………………………………….. 34

Защита параметров загрузки…………………………………………………………………………………… 35

Подпись ядра и модулей…………………………………………………………………………………………… 35

Шифрование конфигурации…………………………………………………………………………………….. 35

Загрузчик Syslinux. Методы обеспечения безопасности……………………………………………………….. 35

Методы защиты Syslinux…………………………………………………………………………………………………… 36

Пароль на доступ к меню загрузки………………………………………………………………………….. 36

Ограничение доступа к консоли……………………………………………………………………………… 36

Защита конфигурационных файлов………………………………………………………………………… 36

Загрузчик rEFInd. Безопасная настройка………………………………………………………………………………… 36

Загрузчик systemd-boot. Настройки, повышающие безопасность………………………………………… 37

Методы защиты systemd-boot…………………………………………………………………………………………… 37

Подпись ядра…………………………………………………………………………………………………………….. 37

Пароль UEFI………………………………………………………………………………………………………………. 38

Шифрование дисков………………………………………………………………………………………………….. 38

UEFI и Secure Boot. Принципы, настройка, обход………………………………………………………………….. 38

Методы защиты………………………………………………………………………………………………………………….. 39

Цифровая подпись кода……………………………………………………………………………………………. 39

Загрузка только проверенного ПО………………………………………………………………………….. 39

Защита от руткитов и буткит-атак………………………………………………………………………….. 39

Блокировка изменения загрузчика и ядра………………………………………………………………. 40

Совместимость с современными методами криптографической защиты……………. 40

Уровни доступа………………………………………………………………………………………………………………….. 40

Векторы атаки……………………………………………………………………………………………………………………. 40

Популярные атаки на UEFI……………………………………………………………………………………………….. 41

Защиты от записи в хранилище основной прошивки……………………………………………………… 41

Настройка Secure Boot………………………………………………………………………………………………………. 42

Пример. Полнодисковое шифрование с LUKS2 Argon2id на Debian 12………………………………… 42

Практика. Настройка Secure Boot на своем устройстве………………………………………………………… 43

Глава 3. Уровни безопасности и модели управления доступом………………. 44

Дискретная модель доступа DAC (Discretionary Access Control)…………………………………………… 44

Мандатная модель доступа MAC (Mandatory Access Control)……………………………………………… 44

SELinux: политика важнее root…………………………………………………………………………………………. 45

AppArmor: контроль по именам………………………………………………………………………………………… 46

Smack: безопасность для встраиваемых систем…………………………………………………………….. 47

Tomoyo: контроль поведения……………………………………………………………………………………………. 47

Классические модели: Biba, MLS, BSD Extended……………………………………………………………. 48

Сертифицированный уровень: Astra Linux SE…………………………………………………………………. 48

Выводы……………………………………………………………………………………………………………………………………….. 49

Глава 4. Аутентификация и авторизация……………………………………………….. 50

Права доступа. Углубленное руководство по chmod, chown, chgrp……………………………………… 50

Настройка пользовательских окружений для повышения безопасности…………………………….. 51

Методы аутентификации: от паролей до MFA……………………………………………………………………….. 52

Система контроля доступа (ACL): расширяя стандартные права……………………………………….. 53

Настройка PAM для повышения безопасности………………………………………………………………………. 53

Системы управления секретами. HashiCorp Vault………………………………………………………………….. 55

Глава 5. Мониторинг системы, сервисов и пользовательской активности в Linux            57

Исторический и событийный мониторинг……………………………………………………………………………….. 57

Метамониторинг………………………………………………………………………………………………………………………… 57

Время отклика и SLA…………………………………………………………………………………………………………………. 57

Контроль нагрузки от мониторинга…………………………………………………………………………………………. 58

Мониторинг системных ресурсов…………………………………………………………………………………………….. 58

Мониторинг сетевых сервисов…………………………………………………………………………………………………. 58

Отслеживание активности пользователей………………………………………………………………………………. 58

Централизованный сбор логов…………………………………………………………………………………………………. 59

Автоматизация оповещений……………………………………………………………………………………………………… 59

Пример. Базовая настройка Zabbix………………………………………………………………………………………….. 59

Интерпретация данных и поведенческий анализ……………………………………………………………………. 60

Риски ложных срабатываний……………………………………………………………………………………………………. 60

Рекомендации…………………………………………………………………………………………………………………………….. 60

Глава 6. Песочницы для приложений…………………………………………………….. 62

Что такое песочница. Какие принципы лежат в ее основе…………………………………………………….. 62

Зачем использовать песочницы. Преимущества и случаи применения……………………………….. 63

Flatpak и Snap как системы распространения приложений со встроенными механизмами песочницы            64

Популярные решения………………………………………………………………………………………………………………… 64

Firejail: легкая изоляция через пространства имен………………………………………………………….. 64

gVisor: контейнеры с собственной реализацией системных вызовов……………………………. 65

Как работает gVisor………………………………………………………………………………………………….. 65

bubblewrap: контейнеризация для десктопа и не только………………………………………………… 66

chroot: изоляция по старинке…………………………………………………………………………………………….. 66

systemd-nspawn: изоляция на уровне systemd…………………………………………………………………. 66

seccomp и seccomp-bpf: фильтрация системных вызовов………………………………………………. 67

Примеры настройки песочницы для приложений…………………………………………………………………… 67

Изоляция браузера Firefox с помощью Firejail…………………………………………………………………. 68

Усиление безопасности системного сервиса через systemd…………………………………………… 68

Побег из песочницы: примеры выхода и защиты от этого…………………………………………………….. 68

Практический выбор………………………………………………………………………………………………………………….. 69

Глава 7. Выбор ядра и дистрибутива……………………………………………………… 70

Виды ядра…………………………………………………………………………………………………………………………………… 70

Generic Stable Kernel…………………………………………………………………………………………………………… 71

Libre Kernel………………………………………………………………………………………………………………………….. 71

Hardened Kernel………………………………………………………………………………………………………………….. 71

Выводы……………………………………………………………………………………………………………………………….. 72

Выбор дистрибутива…………………………………………………………………………………………………………………. 72

Безопасные дистрибутивы: от изоляции к анонимности……………………………………………….. 72

Whonix: анонимность и защита от слежки……………………………………………………………… 72

Qubes OS: модульная безопасность с помощью виртуализации………………………….. 73

Сертифицированные решения и российские дистрибутивы………………………………………………….. 74

Astra Linux Special Edition (SE)………………………………………………………………………………………….. 75

Реализация MAC в Astra Linux SE…………………………………………………………………………… 75

Поддержка аппаратных токенов и доверенной загрузки……………………………………… 76

Администрирование и сопровождение…………………………………………………………………… 76

РЕД ОС………………………………………………………………………………………………………………………………… 76

ALT Linux и ROSA……………………………………………………………………………………………………………… 77

Подбор дистрибутива для специализированных задач…………………………………………………………. 77

Глава 8. Системы инициализации…………………………………………………………. 78

systemd: комплексная модель управления и безопасности……………………………………………………. 78

Архитектура……………………………………………………………………………………………………………………….. 79

Механизмы безопасности…………………………………………………………………………………………………. 79

Анализ жесткой настройки……………………………………………………………………………………………….. 80

Контейнеризация и переносимость………………………………………………………………………………….. 80

OpenRC: модульная простота и ручной контроль…………………………………………………………………. 81

Архитектура……………………………………………………………………………………………………………………….. 81

Безопасность и ограничения…………………………………………………………………………………………….. 81

Преимущества…………………………………………………………………………………………………………………….. 82

Недостатки…………………………………………………………………………………………………………………………. 82

Runit: скорость, надежность, минимум кода…………………………………………………………………………… 82

Архитектура……………………………………………………………………………………………………………………….. 82

Безопасность………………………………………………………………………………………………………………………. 83

Преимущества…………………………………………………………………………………………………………………….. 83

Недостатки…………………………………………………………………………………………………………………………. 83

s6: надежность, изоляция, контроль…………………………………………………………………………………………. 83

Архитектура……………………………………………………………………………………………………………………….. 83

Механизмы безопасности…………………………………………………………………………………………………. 84

Преимущества…………………………………………………………………………………………………………………….. 84

Недостатки…………………………………………………………………………………………………………………………. 85

Сравнение систем инициализации…………………………………………………………………………………………… 85

Что выбирать и когда………………………………………………………………………………………………………………… 85

Практика. Жесткая настройка инициализации для безопасности………………………………………… 86

systemd: контроль через unit-файлы…………………………………………………………………………………. 86

OpenRC: контроль через скрипты…………………………………………………………………………………….. 87

Runit: контроль через chpst……………………………………………………………………………………………….. 87

s6: минимализм с предсказуемостью……………………………………………………………………………….. 87

Общие рекомендации………………………………………………………………………………………………………………… 87

Глава 9. Безопасность виртуализации……………………………………………………. 89

Основные угрозы и уязвимости в системах виртуализации…………………………………………………… 89

Обеспечение безопасности гипервизора…………………………………………………………………………………. 90

Изоляция и безопасность виртуальных машин………………………………………………………………………. 90

Безопасность сети в виртуальных системах…………………………………………………………………………… 91

Мониторинг и аудит в виртуальных системах……………………………………………………………………….. 91

Особенности безопасности контейнерной виртуализации……………………………………………………. 92

Безопасность хоста……………………………………………………………………………………………………………. 93

Rootless Docker и Podman………………………………………………………………………………………………….. 93

Безопасная сборка и запуск контейнеров………………………………………………………………………… 93

Изоляция и контроль………………………………………………………………………………………………………….. 94

Сеть и доступ……………………………………………………………………………………………………………………… 94

Аудит и секреты…………………………………………………………………………………………………………………. 94

Глава 10. Безопасность сети и коммуникаций……………………………………….. 95

Настройка сетевого стека…………………………………………………………………………………………………………. 95

Диагностика соединений…………………………………………………………………………………………………………… 95

iptables и nftables………………………………………………………………………………………………………………………… 96

iptables…………………………………………………………………………………………………………………………………. 96

Основные действия, которые могут быть выполнены с помощью iptables………….. 96

nftables………………………………………………………………………………………………………………………………… 97

Сравнение iptables и nftables: производительность и безопасность……………………………………… 98

Основные отличия iptables и nftables……………………………………………………………………………….. 98

Архитектура………………………………………………………………………………………………………………. 98

Синтаксис………………………………………………………………………………………………………………….. 98

Производительность…………………………………………………………………………………………………. 98

Применение правил…………………………………………………………………………………………………… 98

Примеры безопасности……………………………………………………………………………………………………… 99

Настройка NAT и проброс портов…………………………………………………………………………………………… 99

Пример NAT через iptables (SNAT, MASQUERADE)……………………………………………………….. 99

Проброс порта на внутренний сервер (DNAT)………………………………………………………………. 100

NAT на nftables…………………………………………………………………………………………………………………. 100

Фингерпринтинг и сетевые отпечатки……………………………………………………………………………………. 100

Защита от фингерпринтинга…………………………………………………………………………………………………… 100

Zero Trust: недоверие ко всем по умолчанию………………………………………………………………………… 101

Глава 11. Обеспечение целостности системы……………………………………….. 102

Настройка Integrity Policy Enforcement (IPE)………………………………………………………………………… 102

Основные понятия IPE……………………………………………………………………………………………………… 102

Проверка поддержки IPE в ядре……………………………………………………………………………………… 103

Настройка и компиляция IPE (при необходимости)……………………………………………………… 103

Настройка политики IPE…………………………………………………………………………………………………. 103

Пример базовой политики IPE……………………………………………………………………………….. 104

Создание политики на основе хеша файлов………………………………………………………… 104

Настройка политик на основе подписей………………………………………………………………. 104

Пример политики с разными правилами………………………………………………………………. 104

Настройка GRUB……………………………………………………………………………………………………. 105

Режимы работы IPE…………………………………………………………………………………………………………. 105

Режим аудита (Audit Mode)……………………………………………………………………………………. 105

Режим принуждения (Enforce Mode)……………………………………………………………………… 106

Мониторинг и журналирование……………………………………………………………………………. 106

Тестирование…………………………………………………………………………………………………………… 106

Применение атрибута immutable для контроля целостности системы……………………………….. 106

Мониторинг изменений: инструменты Tripwire, OSSEC, AIDE……………………………………………. 107

Tripwire: настройка и использование для безопасности Linux…………………………………….. 107

Инициализация базы данных………………………………………………………………………………… 108

Конфигурация политики………………………………………………………………………………………… 108

Обработка отчетов…………………………………………………………………………………………………. 108

Советы по использованию……………………………………………………………………………………… 108

OSSEC……………………………………………………………………………………………………………………………….. 109

Установка OSSEC……………………………………………………………………………………………………. 109

Конфигурация OSSEC…………………………………………………………………………………………….. 109

Проверка целостности файлов………………………………………………………………………………. 110

Уведомления и оповещения……………………………………………………………………………………. 110

Практическое использование и примеры……………………………………………………………… 110

AIDE………………………………………………………………………………………………………………………………….. 110

Установка AIDE………………………………………………………………………………………………………. 111

Автоматизация и уведомления………………………………………………………………………………. 111

Примеры использования AIDE для безопасности……………………………………………….. 112

Системы обнаружения вторжений (IDS): различные IDS, их настройка и использование. 112

Snort…………………………………………………………………………………………………………………………………… 112

Установка Snort………………………………………………………………………………………………………. 112

Конфигурация Snort………………………………………………………………………………………………… 112

Запуск Snort…………………………………………………………………………………………………………….. 113

Мониторинг и управление……………………………………………………………………………………… 113

Примеры использования Snort……………………………………………………………………………….. 113

Suricata………………………………………………………………………………………………………………………………. 114

Установка Suricata………………………………………………………………………………………………….. 114

Основная настройка……………………………………………………………………………………………….. 114

Правила и политики……………………………………………………………………………………………….. 115

Мониторинг и анализ……………………………………………………………………………………………… 115

Примеры использования Suricata………………………………………………………………………….. 115

Защита от атак с помощью доверенных приложений (LOTL-атаки)………………………………….. 115

Мониторинг и логирование…………………………………………………………………………………………….. 116

Примеры использования LOTL-атак………………………………………………………………………………. 117

Настройка dm-verity для проверки контрольных сумм файлов и обеспечения целостности 117

Принцип работы dm-verity………………………………………………………………………………………………. 117

Установка и настройка dm-verity…………………………………………………………………………………… 117

Создание образа файловой системы только для чтения…………………………………….. 117

Создание хеш-дерева……………………………………………………………………………………………… 118

Монтирование с проверкой целостности……………………………………………………………… 118

Обеспечение безопасности и целостности…………………………………………………………… 118

Глава 12. Антивирусы и обнаружение руткитов…………………………………… 119

Зачем нужны антивирусы в Linux. Риски и случаи использования…………………………………….. 119

Инструменты для обнаружения скрытых процессов и модулей ядра в Linux…………………… 120

Шифровальщики………………………………………………………………………………………………………………………. 120

Майнеры…………………………………………………………………………………………………………………………………… 121

Руткиты и буткиты в Linux: что это такое и как они угрожают безопасности………………….. 121

Методы обнаружения руткитов: rkhunter, chkrootkit…………………………………………………………… 122

Примеры антивирусов для Linux……………………………………………………………………………………………. 122

Как защититься от вирусов, руткитов и буткитов………………………………………………………………… 124

Глава 13. Защита данных…………………………………………………………………….. 125

Инфраструктура публичных ключей (PKI) и безопасность в Linux……………………………………. 125

Доверие в PKI……………………………………………………………………………………………………………………. 125

Управление сертификатами в Linux……………………………………………………………………………….. 126

Выбор библиотеки SSL: OpenSSL и LibreSSL……………………………………………………………………….. 126

GNU Privacy Guard (GPG). Работа с ключами……………………………………………………………………….. 127

Типы ключей…………………………………………………………………………………………………………………….. 127

Генерация ключей……………………………………………………………………………………………………………. 127

Импорт и экспорт ключей……………………………………………………………………………………………….. 128

Шифрование файловой системы…………………………………………………………………………………………….. 129

dm-crypt…………………………………………………………………………………………………………………………….. 129

eCryptfs……………………………………………………………………………………………………………………………… 130

LUKS………………………………………………………………………………………………………………………………….. 131

VeraCrypt…………………………………………………………………………………………………………………………… 133

Опции разбиения на разделы и монтирования……………………………………………………………………… 134

Разбиение на разделы……………………………………………………………………………………………………… 134

Опции монтирования……………………………………………………………………………………………………….. 135

Файл /etc/fstab…………………………………………………………………………………………………………. 135

FUSE и его применение……………………………………………………………………………………………………………. 136

Применение FUSE-шифрования в контексте безопасности………………………………………….. 137

Рекомендации по использованию FUSE-шифрования………………………………………………….. 137

Безопасность хранения информации: LVM и RAID…………………………………………………………….. 137

Резервное копирование и восстановление данных. Лучшие практики и инструменты…….. 139

Инструменты для резервного копирования…………………………………………………………………… 140

Восстановление данных………………………………………………………………………………………………….. 140

План восстановления после аварий (DRP)…………………………………………………………………….. 141

Безопасное удаление данных: инструменты и методы……………………………………………………….. 142

Глава 14. Защита памяти в Linux…………………………………………………………. 144

Уязвимости памяти в Linux……………………………………………………………………………………………………… 144

Address Space Layout Randomization (ASLR)………………………………………………………………………… 145

Data Execution Prevention (DEP/NX)……………………………………………………………………………………….. 146

Stack Canaries в Linux……………………………………………………………………………………………………………… 146

Настройка компилятора………………………………………………………………………………………………….. 147

Control Flow Integrity (CFI) в Linux…………………………………………………………………………………………. 147

Примеры реализации CFI………………………………………………………………………………………………… 148

Сравнение SLUB с другими аллокаторами памяти в Linux с точки зрения безопасности.. 149

Выбор аллокатора…………………………………………………………………………………………………………… 150

hardened_malloc……………………………………………………………………………………………………………………….. 150

Настройка и использование……………………………………………………………………………………………. 151

Kernel Heap Hardening……………………………………………………………………………………………………………… 152

SELinux или AppArmor…………………………………………………………………………………………………….. 153

Безопасность файла подкачки……………………………………………………………………………………………….. 153

Основные меры по обеспечению безопасности файла подкачки………………………………… 153

Шифрование файла подкачки……………………………………………………………………………….. 153

Регулярная очистка файла подкачки……………………………………………………………………. 154

Мониторинг и ограничение использования файла подкачки…………………………….. 154

Что такое атака холодной загрузки……………………………………………………………………………………….. 154

Шифрование памяти………………………………………………………………………………………………………………… 155

Шифрование памяти и управление доступом в Intel SGX……………………………………………. 155

Шифрование памяти и управление доступом в AMD SEV…………………………………………… 155

Сравнение Intel SGX и AMD SEV……………………………………………………………………………………. 156

Защита от атак DMA……………………………………………………………………………………………………………….. 156

Отключение неиспользуемых портов…………………………………………………………………………….. 157

Использование безопасности сетевых устройств…………………………………………………………. 157

Мониторинг и обновления системы……………………………………………………………………………….. 157

Языки программирования, безопасные для памяти……………………………………………………………… 157

Rust……………………………………………………………………………………………………………………………………. 157

Python………………………………………………………………………………………………………………………………… 158

Java……………………………………………………………………………………………………………………………………. 158

Выводы……………………………………………………………………………………………………………………………………… 158

Глава 15. Усиление безопасности ядра Linux и компилятора……………….. 159

Kernel Self Protection Project (KSPP) и его роль в усилении безопасности ядра Linux……….. 160

Использование патчей Grsecurity/PaX и их возможности…………………………………………………….. 162

Утилита sysctl и ее роль в безопасности ядра Linux…………………………………………………………….. 163

Зачем использовать sysctl для безопасности…………………………………………………………………. 164

Основные параметры безопасности ядра, управляемые через sysctl………………………….. 164

Защита от подмены IP-адреса……………………………………………………………………………….. 164

Отключение перенаправления ICMP (пингов)……………………………………………………… 164

Отключение отправки ICMP-перенаправлений…………………………………………………… 164

Защита от атак SYN-флуд……………………………………………………………………………………… 164

Отключение ответа на широковещательные запросы………………………………………… 165

Отключение IP-перенаправления………………………………………………………………………….. 165

Ограничение доступа к памяти ядра…………………………………………………………………….. 165

Управление ASLR…………………………………………………………………………………………………… 165

Отключение дампов памяти для suid/sgid-файлов……………………………………………….. 165

Защита от форк-бомб……………………………………………………………………………………………… 166

Как применять настройки sysctl……………………………………………………………………………………… 166

Временное изменение параметров………………………………………………………………………… 166

Постоянное сохранение настроек…………………………………………………………………………. 166

Использование отдельного файла в директории /etc/sysctl.d/…………………………….. 166

Практические рекомендации по настройке sysctl для безопасности…………………………… 166

Уменьшение поверхности атаки на ядро Linux…………………………………………………………………….. 167

Способы уменьшения поверхности атаки на ядро……………………………………………………….. 167

Практические примеры уменьшения поверхности атаки…………………………………………….. 168

Отключение дампов ядра и его роль в обеспечении безопасности системы……………………… 169

Причины отключения дампов ядра………………………………………………………………………………… 169

Как отключить дампы ядра в Linux……………………………………………………………………………….. 169

Важные моменты при отключении дампов ядра…………………………………………………………… 170

Альтернативы отключению дампов……………………………………………………………………………….. 170

Дополнительные рекомендации……………………………………………………………………………………… 171

Внесение модулей ядра в черный список и обеспечение безопасности системы……………… 171

Почему важно блокировать определенные модули ядра…………………………………………….. 171

Внесение модулей в черный список……………………………………………………………………………….. 172

Способы блокировки модулей………………………………………………………………………………. 172

Особенности и предостережения…………………………………………………………………………… 173

Дополнительные меры безопасности…………………………………………………………………………….. 173

Практические примеры блокировки модулей……………………………………………………………….. 173

Самостоятельная компиляция ядра для усиления безопасности………………………………………… 174

Почему стоит самостоятельно компилировать ядро……………………………………………………. 174

Подготовка к компиляции ядра………………………………………………………………………………………. 175

Шаги по компиляции ядра………………………………………………………………………………………………. 175

Ключевые настройки для усиления безопасности……………………………………………………….. 176

Отключение ненужных модулей и функций…………………………………………………………. 176

Включение механизмов безопасности………………………………………………………………….. 176

Отключение неиспользуемых системных вызовов………………………………………………. 177

Включение Control Flow Integrity (CFI)…………………………………………………………………. 177

Включение Security Audit……………………………………………………………………………………….. 177

Компиляция и установка ядра………………………………………………………………………………………… 177

Проверка работы нового ядра………………………………………………………………………………………… 178

Дополнительные меры для обеспечения безопасности……………………………………………….. 178

Защита процессора при конфигурировании ядра Linux……………………………………………………… 178

Понимание уязвимостей процессора……………………………………………………………………………… 179

Настройка ядра Linux для защиты процессора……………………………………………………………. 179

Включение изоляции таблиц страниц ядра (Kernel Page Table Isolation, KPTI)… 179

Включение защиты от Spectre……………………………………………………………………………….. 179

Включение функции Microcode Update…………………………………………………………………. 180

Ограничение спекулятивного выполнения…………………………………………………………… 180

Включение Rogue Data Cache Load (RDCL) Mitigations……………………………………… 180

Использование Control-flow Enforcement Technology (CET)………………………………. 180

Обновление компилятора и использование защитных опций…………………………….. 181

Удаление устаревших и неиспользуемых функций…………………………………………….. 181

Ограничение доступа к отладочным интерфейсам……………………………………………… 181

Отслеживание состояния защиты………………………………………………………………………….. 181

Основы безопасности компиляции…………………………………………………………………………………………. 182

Использование опций безопасности компилятора……………………………………………………….. 182

Удаление отладочной информации из релизной версии……………………………………………… 183

Обзор ключевых опций безопасности компилятора GCC……………………………………………………. 184

Ключевые опции безопасности в GCC…………………………………………………………………………… 184

Защита стека (Stack Protector)……………………………………………………………………………….. 184

Усиление стандартных функций (Fortify Source)…………………………………………………. 185

Позиционно-независимый код (Position Independent Executable, PIE)……………….. 185

Защита разделов памяти (Relocation Read-Only, RELRO)………………………………….. 185

Address Sanitizer (ASan)…………………………………………………………………………………………… 186

Undefined Behavior Sanitizer (UBSan)……………………………………………………………………. 186

Контроль потока управления (Control Flow Integrity, CFI)………………………………….. 186

Предупреждения компилятора………………………………………………………………………………. 186

Ограничение размера исполняемых файлов………………………………………………………… 187

Лучшие практики при использовании опций безопасности GCC………………………. 187

Пример полной команды компиляции с опциями безопасности………………………… 187

Основные опции безопасности в Clang и их использование………………………………………………… 188

Основные опции безопасности в Clang………………………………………………………………………….. 188

Stack Canaries (Защита стека)……………………………………………………………………………….. 188

Address Sanitizer (ASan)…………………………………………………………………………………………… 189

Undefined Behavior Sanitizer (UBSan)……………………………………………………………………. 189

Memory Sanitizer (MSan)………………………………………………………………………………………… 189

Control Flow Integrity (CFI)……………………………………………………………………………………… 190

SafeStack………………………………………………………………………………………………………………….. 190

Fortify Source……………………………………………………………………………………………………………. 190

Position Independent Executables (PIE) и Position Independent Code (PIC)………….. 190

Relocation Read-Only (RELRO)………………………………………………………………………………. 191

Stack Clash Protection……………………………………………………………………………………………… 191

Рекомендации по использованию опций безопасности……………………………………………….. 191

Пример полного использования опций безопасности………………………………………………….. 192

Сравнение библиотек C с точки зрения безопасности: musl, glibc и др………………………………. 192

Сравнение библиотек C в контексте безопасности………………………………………………………. 192

Рекомендации по обеспечению безопасности при выборе библиотеки C………………….. 193

Глава 16. Безопасность приложений…………………………………………………….. 194

ModSecurity………………………………………………………………………………………………………………………………. 194

Fail2Ban…………………………………………………………………………………………………………………………………….. 195

Безопасные практики разработки. Принципы обеспечения безопасности на этапе разработки         196

Глава 17. Работа с уязвимостями………………………………………………………….. 198

Обновление системы……………………………………………………………………………………………………………….. 198

Общий стандарт уязвимостей (CWE). Классификация и понимание типов уязвимостей…. 199

Использование Security Advisories и CVE. Поиск и использование информации об уязвимостях         201

Инструменты для сканирования уязвимостей. Обзор и использование
популярных инструментов……………………………………………………………………………………………………… 202

Сравнение инструментов сканирования уязвимостей………………………………………………….. 202

Как использовать инструменты для сканирования уязвимостей………………………………… 203

Практика применения сканера OpenSCAP для поиска уязвимостей…………………………………… 204

Анализ результатов…………………………………………………………………………………………………………. 204

Использование разных профилей…………………………………………………………………………………… 204

Автоматизация и интеграция………………………………………………………………………………………….. 205

Глава 18. Расследование инцидентов безопасности……………………………… 206

Типы инцидентов. Классификация инцидентов и особенности каждого типа…………………… 207

Подготовка к расследованию инцидентов безопасности. Создание плана действий,
сбор команды, инструменты…………………………………………………………………………………………………… 208

Сбор команды…………………………………………………………………………………………………………………… 209

Необходимые инструменты……………………………………………………………………………………………. 209

Сбор и сохранение данных. Методы сбора логов, снапшотов системы,
сетевого трафика……………………………………………………………………………………………………………………… 210

Сбор логов………………………………………………………………………………………………………………………… 210

Создание снимков системы (снапшотов)……………………………………………………………………….. 210

Сбор сетевого трафика……………………………………………………………………………………………………. 211

Журналы системных служб…………………………………………………………………………………… 211

Журналы аутентификации…………………………………………………………………………………….. 212

Журналы приложений……………………………………………………………………………………………. 212

Инструменты для анализа логов…………………………………………………………………………………….. 212

Рекомендации по анализу логов…………………………………………………………………………………….. 212

Анализ сетевой активности. tcpdump и Wireshark — ваши защитники
от нежелательного трафика в Linux………………………………………………………………………………………. 213

tcpdump: быстрый и эффективный снифер командной строки…………………………………….. 213

Wireshark: мощный графический анализатор пакетов…………………………………………………. 214

Обнаружение подозрительного трафика……………………………………………………………………….. 214

Обнаружение вредоносных процессов в Linux. Утилиты lsof, netstat и другие методы……. 215

Идентификация подозрительных процессов…………………………………………………………………. 215

lsof: список открытых файлов…………………………………………………………………………………………. 215

netstat: информация о сетевых соединениях…………………………………………………………………. 216

Другие полезные утилиты……………………………………………………………………………………………….. 216

Форензика файловых систем Linux. Восстановление удаленных файлов
и анализ временных меток………………………………………………………………………………………………………. 216

Восстановление удаленных файлов………………………………………………………………………………. 217

Процесс восстановления………………………………………………………………………………………… 217

Анализ временнх меток…………………………………………………………………………………………………. 218

Использование инструментов форензики: Volatility, Autopsy, Sleuth Kit…………………………….. 218

Volatility…………………………………………………………………………………………………………………………….. 218

Получение дампа памяти……………………………………………………………………………………….. 219

Autopsy……………………………………………………………………………………………………………………………… 220

The Sleuth Kit…………………………………………………………………………………………………………………….. 221

Основные утилиты TSK………………………………………………………………………………………….. 221

Работа с образами дисков……………………………………………………………………………………… 222

Документирование и отчетность в расследовании инцидентов безопасности Linux: от анализа к действиям               222

Этапы документирования……………………………………………………………………………………………….. 222

Структура отчета…………………………………………………………………………………………………………….. 223

Рекомендации по дальнейшим действиям……………………………………………………………………… 224

Восстановление системы Linux после инцидента безопасности………………………………………… 224

Постинцидентный анализ: уроки из прошлого, безопасность будущего…………………………… 226

Правовые аспекты кибербезопасности Linux: взаимодействие
с правоохранительными органами и сохранение цепочки доказательств………………………… 227

Приказы, регулирующие взаимодействие с компетентными органами………………………. 227

Приказ № 524 ФСБ (для организаций, обрабатывающих ПД)…………………………… 227

Приказ № 17 ФСТЭК………………………………………………………………………………………………. 228

Приказ № 21 ФСТЭК………………………………………………………………………………………………. 228

Приказ № 31 (2024) ФСТЭК + приказ № 235………………………………………………………… 228

Взаимодействие с органами при расследовании………………………………………………………….. 228

Легализация данных для расследования……………………………………………………………… 229

Глава 19. Практические рекомендации………………………………………………… 231

Создание и поддержание безопасной среды Linux: ключевые аспекты…………………………….. 231

Лучшие практики безопасности Linux: свод рекомендаций……………………………………………….. 232

Заключение………………………………………………………………………………………….. 233

Будущее безопасности Linux: перспективы и новые технологии……………………………………….. 233

Ресурсы для дальнейшего изучения безопасности Linux: книги, курсы и сообщества…….. 234

Предметный указатель…………………………………………………………………………. 236

Опубликовано

Вышло второе издание книги “Командная строка Linux”

Командная строка Linux, 2 изд. (серия "Профессиональное программирование")

Рассмотрены задачи, которые выполняются из командной строки операционной системы Linux. Объясняется, как попасть в командную строку, работать в консоли, настраивать систему с помощью программ, обладающих только текстовым интерфейсом. Описаны особенности файловой системы Linux, наиболее полезные команды для работы с текстом, сетью и Интернетом, а также команды системного администратора. Особое внимание уделено написанию сценариев автоматизации рутинных задач на языках командных оболочек bash и tcsh. Рассмотрены способы перенаправления ввода-вывода, маски и псевдонимы, различные варианты запуска программ, эффективные приемы использования клавиатуры, примеры сложных команд и другие вопросы.

Во втором издании особое внимание уделено задачам системного администратора – разметке диска, восстановлению загрузчика, в том числе при использовании жестких дисков на основе GPT/UEFI, установке пакетов, мониторингу системы и автоматизации на языках оболочек bash.
Для системных администраторов, программистов и квалифицированных пользователей Linux

Для системных администраторов, программистов и квалифицированных пользователей Linux

Эффективная работа в командной строке Linux

Настоящий линуксоид должен уметь работать в консоли, что требует определенной квалификации пользователя. Рассмотрены задачи, которые выполняются из командной строки Linux. Объясняется, как попасть в командную строку, работать в консоли, настраивать систему с помощью программ, обладающих только текстовым интерфейсом. Описаны особенности файловой системы Linux, наиболее полезные команды для работы с текстом, сетью и  Интернетом, а также команды системного администратора. Особое внимание уделено написанию сценариев автоматизации рутинных задач на языках командных оболочек bash и tcsh. Рассмотрены способы  перенаправления ввода-вывода, маски и псевдонимы, различные варианты запуска программ, эффективные приемы использования клавиатуры, примеры сложных команд и другие вопросы.

  • Работа в консоли
  • Автоматизация на языках оболочек bash и tcsh
  • Особенности файловой системы Linux
  • Управление процессами
  • Команды системного администратора
  • Команды для обработки текста и для работы в сети

Книгу “Командная строка Linux, 2 изд.“.

Глава 1. Командная строка: основы основ………………………………………………. 9

1.1. Переключаемся из графического режима в консоль………………………………………………………….. 9

1.2. Графические (псевдо)-терминалы……………………………………………………………………………………… 12

1.3. Удаленная консоль……………………………………………………………………………………………………………… 14

1.4. Завершение работы из консоли. Команды poweroff, halt, reboot, shutdown………………….. 15

Глава 2. Работаем в консоли………………………………………………………………….. 17

2.1. Ввод команд. Команда man……………………………………………………………………………………………….. 17

2.2. Ввод/вывод и каналы………………………………………………………………………………………………………….. 18

2.3. Шесть полезных команд…………………………………………………………………………………………………….. 20

2.3.1. Команда wc……………………………………………………………………………………………………………………. 20

2.3.2. Команда head………………………………………………………………………………………………………………… 21

2.3.3. Команда cut…………………………………………………………………………………………………………………… 21

2.3.4. Команда grep…………………………………………………………………………………………………………………. 22

2.3.5. Команда sort………………………………………………………………………………………………………………….. 23

2.3.6. Команда uniq…………………………………………………………………………………………………………………. 24

Глава 3. Оболочка bash………………………………………………………………………….. 26

3.1. Маски имен файлов…………………………………………………………………………………………………………….. 26

3.2. Переменные окружения………………………………………………………………………………………………………. 27

3.3. Псевдонимы…………………………………………………………………………………………………………………………. 28

3.4. Изменение приглашения командной строки…………………………………………………………………….. 28

3.5. Еще раз о перенаправлении ввода/вывода………………………………………………………………………. 30

3.6. Пробелы в именах файлов………………………………………………………………………………………………….. 31

3.7. Инициализация переменных………………………………………………………………………………………………. 32

3.8. Просмотр истории команд…………………………………………………………………………………………………. 32

3.9. Вызов предыдущих команд……………………………………………………………………………………………….. 33

3.10. Защита от случайного удаления файла…………………………………………………………………………. 34

3.11. Использование последнего вывода команды…………………………………………………………………. 34

3.12. Редактирование командной строки…………………………………………………………………………………. 34

Глава 4. Файловая система. Команды для работы с файловой системой… 36

4.1. Особенности файловой системы Linux……………………………………………………………………………… 36

4.1.1. Имена файлов в Linux…………………………………………………………………………………………………… 36

4.1.2. Файлы и устройства……………………………………………………………………………………………………… 36

4.1.3. Корневая файловая система и монтирование…………………………………………………………….. 37

4.1.4. Стандартные каталоги Linux………………………………………………………………………………………. 38

4.2. Команды для работы с файлами и каталогами……………………………………………………………….. 39

4.2.1. Работа с файлами………………………………………………………………………………………………………….. 39

4.2.2. Работа с каталогами…………………………………………………………………………………………………….. 42

4.2.3. Удобная навигация по файловой системе…………………………………………………………………… 44

4.3. Команда ln: создание ссылок…………………………………………………………………………………………….. 47

4.4. Команды chmod, chown и chattr…………………………………………………………………………………………. 48

4.4.1. Команда chmod: права доступа к файлам и каталогам…………………………………………….. 48

4.4.2. Команда chown: смена владельца файла…………………………………………………………………… 50

4.4.3. Специальные права доступа: SUID и SGID………………………………………………………………… 50

4.4.4. Команда chattr: атрибуты файла, запрет изменения файла……………………………………… 51

4.5. Монтирование файловых систем………………………………………………………………………………………. 52

4.5.1. Команды mount и umount……………………………………………………………………………………………… 52

4.5.2. Файлы устройств и монтирование………………………………………………………………………………. 54

Жесткие диски………………………………………………………………………………………………………………….. 54

Приводы оптических дисков…………………………………………………………………………………………… 56

Флешки и внешние жесткие диски………………………………………………………………………………….. 56

4.5.3. Опции монтирования файловых систем……………………………………………………………………… 56

4.5.4. Монтирование разделов при загрузке………………………………………………………………………… 58

4.5.5. Подробно о UUID и файле /etc/fstab……………………………………………………………………………. 60

4.5.6. Монтирование флешек…………………………………………………………………………………………………. 62

4.6. Настройка журнала файловой системы ext3/ext4…………………………………………………………… 63

4.7. Файловая система ext4……………………………………………………………………………………………………….. 64

4.7.1. Сравнение ext3 и ext4…………………………………………………………………………………………………… 64

4.7.2. Совместимость с ext3……………………………………………………………………………………………………. 65

4.8. Особые команды…………………………………………………………………………………………………………………. 66

4.8.1. Команда mkfs: создание файловой системы……………………………………………………………….. 66

4.8.2. Команда fsck: проверка и восстановление файловой системы…………………………………. 66

4.8.3. Команда chroot: смена корневой файловой системы………………………………………………… 67

4.8.4. Установка скорости CD/DVD………………………………………………………………………………………. 67

4.8.5. Монтирование каталога к каталогу……………………………………………………………………………. 67

4.8.6. Команды поиска файлов………………………………………………………………………………………………. 67

4.9. Многофункциональная команда dd………………………………………………………………………………….. 69

4.9.1. Копирование файлов с помощью команды dd……………………………………………………………. 69

4.9.2. Разделение файла на несколько частей………………………………………………………………………. 70

4.9.3. Создание резервной копии жесткого диска………………………………………………………………… 71

4.9.4. Создание архива с резервной копией всего жесткого диска…………………………………….. 71

4.9.5. Уничтожение всех данных раздела жесткого диска………………………………………………….. 71

4.10. Команда du………………………………………………………………………………………………………………………… 72

Глава 5. Процессы…………………………………………………………………………………. 73

5.1. Оболочки, команды и программы……………………………………………………………………………………… 73

5.2. Родительский и дочерний процессы………………………………………………………………………………….. 74

5.3. Команды kill, killall, xkill и ps…………………………………………………………………………………………….. 75

5.4. Программы top и htop: кто больше всех расходует процессорное время?……………………. 77

5.5. Команды nice и renice: изменение приоритета процесса………………………………………………… 80

5.6. Команда fuser: кто открыл ресурс?…………………………………………………………………………………… 80

5.7. Команда lsof………………………………………………………………………………………………………………………… 80

5.8. Команды управления сервисами……………………………………………………………………………………….. 81

5.9. Команда journalctl……………………………………………………………………………………………………………… 82

Глава 6. Выполнение команд и установка программ……………………………… 85

6.1. Списки………………………………………………………………………………………………………………………………….. 85

6.1.1. Условные списки…………………………………………………………………………………………………………… 85

6.1.2. Безусловные списки………………………………………………………………………………………………………. 86

6.2. Подстановка………………………………………………………………………………………………………………………… 87

6.2.1. Подстановка команды………………………………………………………………………………………………….. 87

6.2.2. Подстановка процесса………………………………………………………………………………………………….. 88

6.3. Команда как строка……………………………………………………………………………………………………………. 89

6.3.1. Передача команды в виде аргумента………………………………………………………………………….. 89

6.3.2. Перенаправление команды на стандартный ввод bash…………………………………………….. 89

6.4. Удаленное выполнение команды по SSH…………………………………………………………………………. 90

6.5. Фоновое выполнение команд…………………………………………………………………………………………….. 90

6.6. Команда nohup……………………………………………………………………………………………………………………. 92

6.7. Планировщик cron………………………………………………………………………………………………………………. 92

6.8. Установка программ командой apt…………………………………………………………………………………… 94

6.9. Установка программ командой dnf…………………………………………………………………………………… 96

Глава 7. Некоторые полезные команды…………………………………………………. 97

7.1. Команда seq…………………………………………………………………………………………………………………………. 97

7.2. Фигурные скобки…………………………………………………………………………………………………………………. 98

7.3. Команда find……………………………………………………………………………………………………………………….. 98

7.4. Команды zip и unzip……………………………………………………………………………………………………………. 99

7.5. Команда tar……………………………………………………………………………………………………………………….. 100

Глава 8. Команды для работы с текстом………………………………………………. 102

8.1. Команда sort: сортировка файлов…………………………………………………………………………………… 102

8.2. Команда diff: сравнение файлов……………………………………………………………………………………… 102

8.3. Команда diff3: сравнение трех файлов…………………………………………………………………………… 103

8.4. Команда cmp: сравнение двух файлов……………………………………………………………………………. 104

8.5. Команда comm: еще одна команда для сравнения файлов…………………………………………… 104

8.6. Команда column: разбивка текста на столбцы………………………………………………………………. 105

8.7. Команда egrep: расширенный текстовый фильтр………………………………………………………….. 105

8.8. Команда expand: замена символов табуляции пробелами…………………………………………… 106

8.9. Команда fmt……………………………………………………………………………………………………………………….. 107

8.10. Команда fold……………………………………………………………………………………………………………………. 107

8.11. Команда grep: текстовый фильтр………………………………………………………………………………….. 107

8.12. Команды more и less: постраничный вывод…………………………………………………………………. 108

8.13. Команды head и tail: вывод начала и хвоста файла…………………………………………………… 108

8.14. Команда look…………………………………………………………………………………………………………………… 108

8.15. Команда split: разбиение файлов на несколько частей………………………………………………. 108

8.16. Команда unexpand: замена пробелов символами табуляции…………………………………….. 109

8.17. Команды vi, nano, ee, mcedit, pico: текстовые редакторы…………………………………………… 109

8.18. Команда sed: потоковый текстовый редактор……………………………………………………………… 113

8.19. Команда wc: подсчет слов в файле……………………………………………………………………………….. 114

8.20. Команда gpg: шифруем файлы паролем………………………………………………………………………. 114

8.21. Некоторые команды преобразования символов и форматов……………………………………… 116

Глава 9. Эффективное использование клавиатуры………………………………. 117

9.1. Работа с окнами………………………………………………………………………………………………………………… 117

9.2. Доступ к веб-браузерам из командной строки……………………………………………………………….. 119

9.3. Работаем с буфером обмена…………………………………………………………………………………………….. 121

Глава 10. Команды для работы с сетью и Интернетом…………………………. 123

10.1. Команда ifconfig: управление сетевыми интерфейсами……………………………………………… 123

10.2. Команда ip………………………………………………………………………………………………………………………. 125

10.3. Маршрутизация………………………………………………………………………………………………………………. 126

10.3.1. Команда netstat: просмотр таблицы маршрутизации
и другой сетевой информации……………………………………………………………………………………………… 126

10.3.2. Команда route: изменение таблицы маршрутизации……………………………………………. 130

10.4. Команды получения информации об узле……………………………………………………………………. 133

10.4.1. Получение информации о доменном имени……………………………………………………………. 133

10.4.2. Команды host и dig……………………………………………………………………………………………………. 133

10.4.3. Утилита DMitry…………………………………………………………………………………………………………. 135

10.5. Текстовые браузеры……………………………………………………………………………………………………….. 135

10.6. Команда ftp: FTP-клиент………………………………………………………………………………………………… 136

10.7. Команда wget: загрузка файлов…………………………………………………………………………………….. 137

10.8. Команды для диагностики сети…………………………………………………………………………………….. 139

10.9. Команда ssh…………………………………………………………………………………………………………………….. 143

10.10. Сетевой сканер nmap……………………………………………………………………………………………………. 145

10.10.1. Что такое nmap?………………………………………………………………………………………………………. 145

10.10.2. Где мне взять nmap?………………………………………………………………………………………………… 146

10.10.3. Примеры использования nmap………………………………………………………………………………. 146

10.11. Команда systemd-resolve………………………………………………………………………………………………. 148

10.12. Команда netplan……………………………………………………………………………………………………………. 149

10.13. Команда ufw………………………………………………………………………………………………………………….. 150

Глава 11. Команды системного администратора………………………………….. 152

11.1. Программы разметки диска……………………………………………………………………………………………. 152

11.1.1. Программа fdisk………………………………………………………………………………………………………… 152

11.1.2. Программа Parted……………………………………………………………………………………………………… 155

11.1.3. Таблица разделов GPT……………………………………………………………………………………………… 159

11.1.4. Разметка диска на физическом сервере…………………………………………………………………… 160

11.1.5. Добавление диска на виртуальном сервере…………………………………………………………… 161

11.1.6. Расширение существующего диска…………………………………………………………………………. 164

11.1.7. Команды восстановления загрузчика GRUB2……………………………………………………….. 166

Восстановление загрузчика GRUB2 при использовании UEFI…………………………………. 166

Команда boot-repair………………………………………………………………………………………………………. 167

11.2. Информация о системе и пользователях………………………………………………………………………. 167

11.2.1. Команда uptime: информация о работе системы…………………………………………………… 167

11.2.2. Команда users: информация о пользователях………………………………………………………… 168

11.2.3. Команды w, who, ftpwho и whoami: информация о пользователях………………………. 168

11.2.4. Команды last и id………………………………………………………………………………………………………. 169

11.2.5. Мониторинг работы системы………………………………………………………………………………….. 169

11.2.6. Команды uname и lsb_release…………………………………………………………………………………… 172

11.2.7. Команда sensors………………………………………………………………………………………………………… 172

11.3. Команды date и timedatectl…………………………………………………………………………………………….. 173

11.4. Планировщик at………………………………………………………………………………………………………………. 174

11.4.1. Команда at: добавление задания…………………………………………………………………………….. 174

11.4.2. Команды atq и atrm: очередь заданий и удаление задания………………………………….. 175

11.5. Планировщик crond………………………………………………………………………………………………………… 175

11.6. Команды free и df: информация о системных ресурсах………………………………………………. 175

11.7. Команды управления пользователями…………………………………………………………………………. 176

11.8. Получение информации об оборудовании…………………………………………………………………… 176

11.8.1. Команда dmesg………………………………………………………………………………………………………….. 176

11.8.2. Команда lscpu: получение информации о процессоре………………………………………….. 177

11.8.3. Команда lsusb: список USB-устройств……………………………………………………………………. 178

11.8.4. Команда lspci: список PCI-устройств……………………………………………………………………… 178

11.8.5. Команда lshw: получение информации об устройствах……………………………………….. 179

11.8.6. Команда dmidecode…………………………………………………………………………………………………… 179

11.8.7. Команда lsblk…………………………………………………………………………………………………………….. 181

11.8.8. Команда badblocks……………………………………………………………………………………………………. 182

11.9. Команда rsync…………………………………………………………………………………………………………………. 182

Глава 12. Автоматизация рутинных задач с помощью оболочки bash….. 184

12.1. Настройка bash……………………………………………………………………………………………………………….. 184

12.2. Автоматизация задач с помощью сценариев bash………………………………………………………. 185

12.3. Привет, мир!…………………………………………………………………………………………………………………….. 185

12.4. Использование переменных в собственных сценариях………………………………………………. 186

12.5. Передача параметров сценарию…………………………………………………………………………………… 187

12.6. Массивы и bash……………………………………………………………………………………………………………….. 188

12.7. Циклы……………………………………………………………………………………………………………………………….. 188

12.8. Условные операторы……………………………………………………………………………………………………… 189

12.9. Функции…………………………………………………………………………………………………………………………… 191

12.10. Примеры сценариев………………………………………………………………………………………………………. 191

12.10.1. Сценарий мониторинга журнала………………………………………………………………………….. 191

12.10.2. Переименование файлов………………………………………………………………………………………… 192

12.10.3. Преобразование систем счисления……………………………………………………………………….. 192

12.10.4. Проверка прав пользователя…………………………………………………………………………………. 193

12.10.5. Генератор имени временного файла…………………………………………………………………….. 193

12.10.6. Проверка свободного дискового пространства с уведомлением
по электронной почте…………………………………………………………………………………………………………… 194

Глава 13. Примеры полезных решений………………………………………………… 195

13.1. Поиск дубликатов файлов……………………………………………………………………………………………… 195

13.2. Сценарий scanner……………………………………………………………………………………………………………. 196

13.3. Изменение прав доступа к файлам и каталогам………………………………………………………….. 197

13.4. Аварийный перезапуск сервисов…………………………………………………………………………………… 197

13.4.1. Проверка работоспособности веб-сервера…………………………………………………………….. 197

13.4.2. Проверка работоспособности MySQL……………………………………………………………………. 198

13.4.3. Если «падают» процессы…………………………………………………………………………………………. 198

13.5. Поиск битых ссылок с помощью AWK………………………………………………………………………….. 199

13.6. Считаем количество файлов в папке и подпапках………………………………………………………. 200

13.7. Резервное копирование базы данных……………………………………………………………………………. 200

Предметный указатель…………………………………………………………………………. 202

Опубликовано

Новинка: “Администрирование Astra Linux”

Администрирование Astra Linux

Рассмотрена установка Astra Linux, настройка после установки, процесс загрузки системы, в том числе система инициализации systemd, основы командной строки, настройка сети, беспроводного и проводного соединения с Интернетом, установка ПО, настройка хранилища, работа с файловой системой, настройка  Samba (интеграция с Windows-сетью), Apache (веб-сервер), SSH, VNC (графический удаленный доступ) и других необходимых сетевых служб. Сделан акцент на специфические особенности Astra Linux, а именно, мандатный контроль целостности, мандатное управление доступом, системный киоск, служба каталогов ALD и учет сменных накопителей. Книга написана с учетом запросов системных администраторов, которым поставлена задача перейти с Microsoft Windows на популярный отечественный дистрибутив Astra Linux. При этом специально для читателей, никогда ранее не использовавших Linux, рассмотрены основы работы с Linux.

Для системных администраторов

Осваиваем отечественный дистрибутив Astra Linux

Отечественный дистрибутив Astra Linux, широко внедряется в последнее время с целью замены Microsoft Windows.

Книга ориентирована на системного администратора, который впервые сталкивается с Astra Linux. Она позволит начать работу с Astra Linux даже тем администраторам, которые никогда ранее вообще не работали ни с одним другим дистрибутивом Linux.

В книге рассмотрены установка Astra Linux, настройка после установки, процесс загрузки системы, в том числе система инициализации systemd, основы командной строки, настройка сети, беспроводного и проводного соединения с Интернетом, настройка хранилища, работа с файловой системой, а также настройка самых необходимых сетевых служб – Samba, Apache (веб-сервер), SSH. Сделан акцент на специфические особенности Astra Linux, а именно, мандатный контроль целостности, мандатное управление доступом, системный киоск, служба каталогов ALD и учет сменных накопителей.

  • Переход с Windows на Linux
  • Установка системы
  • Начальные навыки администрирования
  • Настройка и защита сети
  • Установка программ
  • Настройка Samba, Apache, SSH, VNC и других служб
  • Мандатный контроль целостности, мандатное управление доступом
  • Системный киоск, учет сменных накопителей
  • Служба каталогов Astra Linux Directory

Книгу “Администрирование Astra Linux” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Евгений Андреев, инженер-программист и системный администратор. Имеет более чем двадцатилетний опыт работы с операционной системой Linux в самых различных вариантах – от встраиваемых систем до серверов

Опубликовано

Новинка: “Современное системное администрирование: управление надежными и устойчивыми системами”

Современное системное администрирование

Книга посвящена современными практиками и технологиями системного администрирования. Приведены основные сведения о системах, архитектурах, вычислительных средах, хра-нилищах, сетях. Рассмотрены методы и наборы инструментов сисадмина, вопросы контроля версий, тестирования, документирования и представления информации. Описана сборка сис-темы, разработка сценариев, управление инфраструктурой и обеспечение ее безопасности.
Рассмотрен мониторинг системы, программного обеспечения и работы сисадмина. Особое внимание уделено масштабированию системы, управлению мощностями, созданию надежной дежурной службы, управлению инцидентами и планированию системы предупреждений.

Для системных администраторов, инженеров службы поддержки и других ИТ-специалистов

Современные практики и технологии системного администрирования

С этой книгой Вы изучите:

  • Основные принципы работы систем и взаимодействия друг с другом отдельных компонентов
  • Практические методы повышения надежности и устойчивости систем и снижения нагрузки на системного администратора при использовании новых технологий
  • Приемы сборки систем, автоматизации работы и управления  системной инфраструктурой, снижения затрат на денежные и людские ресурсы при техническом обслуживании
  • Стратегии мониторинга, современные инструменты мониторинга и фреймворки, управление данными наблюдений
  • Масштабирование системы и повышение ее устойчивости,  планирование системы предупреждений и реагирования на инциденты

Как поддерживать надежную и устойчивую работу систем по мере развития технологий, появления новых инструментов и сервисов?

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

Книга посвящена современными практиками и технологиями системного администрирования. Приведены основные сведения о системах, архитектурах, вычислительных средах, хранилищах, сетях. Рассмотрены методы и наборы инструментов сисадмина, вопросы контроля версий, тестирования, документирования и представления информации. Описана сборка системы, разработка  сценариев,  управление инфраструктурой и обеспечение ее безопасности.

Рассмотрен мониторинг системы, программного обеспечения и работы сисадмина. Особое внимание уделено масштабированию системы, управлению мощностями и созданию надежной дежурной службы.

Дженнифер — ваша путеводная звезда в сфере технологий, она добавляет позитива и экс-пансивности традиционной работе. В этой книге она подробно раскрывает вопросы профес-сионального системного администрирования, от основ сетевых технологий до социотехниче-ских факторов, таких как пропускная способность и управление инцидентами. Независимо от того, начинаете ли вы свой путь или уже работаете десятилетия в данной сфере, здесь есть чему поучиться».
Эми Тобей, главный инженер компании Equinix

Об обложке

Птица на обложке книги «Современное системное администрирование» — это райский зимородок (Tanysiptera galatea). Существует девять видов зимородков, только два из которых обитают за пределами Папуа — Новой Гвинеи (в Австралии и Индонезии). Райский зимородок обитает в тропических лесах острова.

Книгу “Современное системное администрирование: управление надежными и устойчивыми системами” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Вступительное слово………………………………………………………………………………. 13

Предисловие…………………………………………………………………………………………… 15

Для кого предназначена эта книга…………………………………………………………………………………………… 16

О том, чего в этой книге нет………………………………………………………………………………………………………. 16

Круг вопросов, который охватывает книга…………………………………………………………………………….. 17

Последнее, о чем хочется сказать…………………………………………………………………………………………….. 17

И еще одно предупреждение…………………………………………………………………………………………………….. 18

Условные обозначения, используемые в этой книге………………………………………………………………. 18

Благодарности…………………………………………………………………………………………………………………………… 19

Введение в современное системное администрирование………………………… 21

Составьте карту маршрута………………………………………………………………………………………………………. 21

Поменяйте свое мышление………………………………………………………………………………………………………… 23

В чем заключается суть работы?………………………………………………………………………………….. 24

Виды системного администрирования…………………………………………………………………………. 25

Внедрение постоянного развития…………………………………………………………………………………………….. 25

Внедрение практических подходов…………………………………………………………………………………………. 25

Внедрение совместной работы…………………………………………………………………………………………………. 26

Курс на устойчивость……………………………………………………………………………………………………………….. 26

Заключение………………………………………………………………………………………………………………………………… 27

Часть I. Рассуждения о системах…………………………………………… 29

Глава 1. Закономерности и взаимосвязи………………………………………………… 31

Как соединять ингредиенты……………………………………………………………………………………………………… 32

Многоуровневая архитектура………………………………………………………………………………………. 32

Микросервисная архитектура………………………………………………………………………………………. 33

Управляемая событиями архитектура…………………………………………………………………………. 33

Как взаимодействуют компоненты………………………………………………………………………………………….. 34

Прикладной уровень………………………………………………………………………………………………………. 36

Транспортный уровень………………………………………………………………………………………………….. 36

Сетевой уровень……………………………………………………………………………………………………………… 37

Канальный уровень………………………………………………………………………………………………………… 38

Физический уровень……………………………………………………………………………………………………….. 39

Заключение………………………………………………………………………………………………………………………………… 39

Глава 2. Вычислительные среды……………………………………………………………. 40

Распространенные рабочие нагрузки……………………………………………………………………………………… 40

Выбор места размещения рабочих нагрузок………………………………………………………………………….. 41

Локальные вычислительные среды………………………………………………………………………………. 42

Облачные вычисления……………………………………………………………………………………………………. 43

Технологии облачных вычислений………………………………………………………………………………………….. 43

Бессерверные вычисления……………………………………………………………………………………………… 43

Unikernels…………………………………………………………………………………………………………………. 44

Функции…………………………………………………………………………………………………………………… 44

Службы приложений……………………………………………………………………………………………… 45

Контейнеры…………………………………………………………………………………………………………………….. 45

Виртуальные машины……………………………………………………………………………………………………. 46

Рекомендации по выбору вычислительных ресурсов…………………………………………………………….. 47

Заключение………………………………………………………………………………………………………………………………… 50

Глава 3. Хранилище………………………………………………………………………………. 51

Почему стоит заботиться о хранилище?…………………………………………………………………………………. 51

Основные характеристики………………………………………………………………………………………………………… 53

Разновидности систем хранения данных………………………………………………………………………………… 55

Блочная система хранения данных………………………………………………………………………………. 55

Файловая система хранения данных……………………………………………………………………………. 55

Объектная система хранения данных…………………………………………………………………………… 56

Хранилище баз данных………………………………………………………………………………………………….. 57

Соображения по выбору стратегии хранения данных…………………………………………………………… 59

Заранее обдумайте требования к емкости и задержке……………………………………………….. 61

Выбирайте разумную длительность хранения данных……………………………………………… 62

Уважайте озабоченность клиентов по поводу конфиденциальности……………………….. 63

Защитите свои данные…………………………………………………………………………………………………… 63

Будьте готовы к необходимости восстановления после сбоев…………………………………… 64

Заключение………………………………………………………………………………………………………………………………… 65

Глава 4. Сеть………………………………………………………………………………………….. 66

Посмотрим на сети внимательнее…………………………………………………………………………………………….. 66

Основные характеристики сетей………………………………………………………………………………………………. 67

Создание сети…………………………………………………………………………………………………………………………….. 68

Виртуализация…………………………………………………………………………………………………………………………… 69

Программно-определяемые сети………………………………………………………………………………………………. 70

Сети доставки контента…………………………………………………………………………………………………………….. 71

Рекомендации по вашей сетевой стратегии…………………………………………………………………………….. 73

Заключение………………………………………………………………………………………………………………………………… 74

Часть II. Методы……………………………………………………………………………… 75

Глава 5. Набор инструментов сисадмина……………………………………………….. 77

Что представляет собой ваш цифровой инструментарий?…………………………………………………….. 77

Компоненты инструментария…………………………………………………………………………………………………… 78

Выбор редактора……………………………………………………………………………………………………………. 79

Встроенный статический анализ кода…………………………………………………………………. 79

Автозавершение кода…………………………………………………………………………………………….. 80

Установление и утверждение правил, которые должны соблюдаться командой 80

Рабочий процесс, интегрированный с Git…………………………………………………………….. 80

Выбор языков программирования………………………………………………………………………………… 80

Фреймворки и библиотеки……………………………………………………………………………………………… 83

Другие полезные утилиты……………………………………………………………………………………………… 83

Заключение………………………………………………………………………………………………………………………………… 86

Глава 6. Контроль версий………………………………………………………………………. 87

Что такое контроль версий?……………………………………………………………………………………………………… 87

Преимущества контроля версий……………………………………………………………………………………………….. 89

Организация инфраструктурных проектов……………………………………………………………………………… 90

Заключение………………………………………………………………………………………………………………………………… 91

Глава 7. Тестирование……………………………………………………………………………. 93

Вы уже тестируете…………………………………………………………………………………………………………………….. 93

Общие виды тестирования………………………………………………………………………………………………………… 94

Линтинг……………………………………………………………………………………………………………………………. 94

Модульные тесты…………………………………………………………………………………………………………… 96

Интеграционные тесты…………………………………………………………………………………………………… 97

Сквозные тесты……………………………………………………………………………………………………………….. 97

Четкая стратегия тестирования………………………………………………………………………………………………… 98

Совершенствуем тесты, извлекая уроки из их падения………………………………………………………… 101

Дальнейшие шаги…………………………………………………………………………………………………………………….. 102

Заключение………………………………………………………………………………………………………………………………. 103

Глава 8. Безопасность инфраструктуры……………………………………………….. 104

Что такое безопасность инфраструктуры?……………………………………………………………………………. 104

Распределяйте обязанности по обеспечению безопасности……………………………………………….. 105

Оценивайте безопасность с точки зрения злоумышленника……………………………………………….. 106

Проектирование с учетом обеспечения безопасности…………………………………………………………. 109

Классификация обнаруженных проблем………………………………………………………………………………. 110

Заключение………………………………………………………………………………………………………………………………. 112

Глава 9. Документация………………………………………………………………………… 113

Узнайте свою аудиторию……………………………………………………………………………………………………….. 113

Варианты представления документации………………………………………………………………………………. 115

Методы организации информации………………………………………………………………………………………… 116

Организация тем…………………………………………………………………………………………………………… 116

Организация информации на сайте…………………………………………………………………………….. 117

Рекомендации по созданию качественной документации…………………………………………………… 118

Заключение………………………………………………………………………………………………………………………………. 119

Глава 10. Презентации…………………………………………………………………………. 120

Узнайте свою аудиторию……………………………………………………………………………………………………….. 120

Выберите канал общения……………………………………………………………………………………………………….. 122

Выберите подходящий тип истории………………………………………………………………………………………. 124

Сторителлинг на практике……………………………………………………………………………………………………… 125

Случай № 1. Одна диаграмма вместо тысячи слов…………………………………………………… 125

Случай № 2. Одна и та же история для разной аудитории………………………………………. 126

Информационная панель для команды………………………………………………………………. 128

Информационная панель менеджера…………………………………………………………………. 129

Информационная панель клиента………………………………………………………………………. 130

Основные выводы…………………………………………………………………………………………………………. 131

Варианты графического представления информации…………………………………………………………. 131

Визуальные подсказки…………………………………………………………………………………………………. 131

Типы диаграмм……………………………………………………………………………………………………………… 132

Таблицы данных………………………………………………………………………………………………….. 132

Столбчатые диаграммы………………………………………………………………………………………. 134

Линейные диаграммы (графики)…………………………………………………………………………. 134

Диаграмма с областями………………………………………………………………………………………. 135

Тепловые карты……………………………………………………………………………………………………. 135

Flame-графики………………………………………………………………………………………………………. 135

Древовидные карты……………………………………………………………………………………………… 135

Рекомендуемые методы визуализации…………………………………………………………………………………… 136

Заключение………………………………………………………………………………………………………………………………. 137

Часть III. Сборка системы…………………………………………………………. 139

Глава 11. Разработка сценариев инфраструктуры………………………………… 141

Зачем создавать сценарии инфраструктуры?………………………………………………………………………. 141

Три подхода к моделированию инфраструктуры………………………………………………………………… 143

Код для создания образов машин……………………………………………………………………………….. 145

Код для предоставления инфраструктуры………………………………………………………………… 146

Код для настройки инфраструктуры………………………………………………………………………….. 148

Начало работы………………………………………………………………………………………………………………………… 149

Заключение………………………………………………………………………………………………………………………………. 150

Глава 12. Управление инфраструктурой………………………………………………. 151

Инфраструктура как код…………………………………………………………………………………………………………. 151

Инфраструктура как данные………………………………………………………………………………………………….. 156

Приступаем к управлению инфраструктурой………………………………………………………………………. 157

Линтинг………………………………………………………………………………………………………………………….. 160

Написание модульных тестов…………………………………………………………………………………….. 160

Написание интеграционных тестов……………………………………………………………………………. 161

Написание сквозных тестов………………………………………………………………………………………… 161

Заключение………………………………………………………………………………………………………………………………. 162

Глава 13. Обеспечение безопасности инфраструктуры…………………………. 163

Оценка векторов атак………………………………………………………………………………………………………………. 163

Управление идентификацией и доступом……………………………………………………………………………… 165

Как следует управлять доступом к системе?…………………………………………………………….. 165

Кто должен иметь доступ к вашей системе?………………………………………………………………. 167

Управление секретными данными…………………………………………………………………………………………. 168

Менеджеры паролей и программное обеспечение для управления секретными данными        169

Защита секретов и наблюдение за их использованием…………………………………………….. 170

Обеспечение безопасности вычислительной среды…………………………………………………………….. 171

Обеспечение безопасности вашей сети…………………………………………………………………………………. 173

Рекомендации по безопасности для управления инфраструктурой…………………………………… 175

Заключение………………………………………………………………………………………………………………………………. 176

Часть IV. Наблюдение за системой………………………………………. 179

Глава 14. Теоретические аспекты мониторинга…………………………………… 181

Зачем нужен мониторинг?………………………………………………………………………………………………………. 181

Чем отличаются мониторинг и наблюдаемость?………………………………………………………………….. 183

Основные элементы мониторинга………………………………………………………………………………………….. 184

События…………………………………………………………………………………………………………………………. 184

Мониторы……………………………………………………………………………………………………………………… 184

Данные: метрики, журналы и трассировка………………………………………………………………… 185

Мониторинг первого уровня…………………………………………………………………………………………………… 185

Обнаружение события…………………………………………………………………………………………………. 186

Сбор данных…………………………………………………………………………………………………………………. 186

Сокращение объема данных……………………………………………………………………………………….. 186

Анализ данных……………………………………………………………………………………………………………… 187

Представление данных………………………………………………………………………………………………… 188

Мониторинг второго уровня…………………………………………………………………………………………………… 188

Заключение………………………………………………………………………………………………………………………………. 189

Глава 15. Мониторинг вычислительной инфраструктуры
и программного обеспечения на практике……………………………………………. 190

Определите желаемые результаты………………………………………………………………………………………… 190

За какими параметрами следует наблюдать?………………………………………………………………………. 192

Делайте то, что можете сейчас……………………………………………………………………………………. 192

Мониторы, которые имеют значение…………………………………………………………………………. 193

План проекта по мониторингу……………………………………………………………………………………………….. 194

Какие оповещения следует рассылать?………………………………………………………………………………… 197

Изучение платформ мониторинга………………………………………………………………………………………….. 198

Выбор инструмента или платформы для мониторинга……………………………………………………….. 200

Заключение………………………………………………………………………………………………………………………………. 202

Глава 16. Управление данными мониторинга………………………………………. 203

Что такое данные мониторинга?……………………………………………………………………………………………. 203

Метрики…………………………………………………………………………………………………………………………. 204

Журналы……………………………………………………………………………………………………………………….. 204

Структурированные журналы…………………………………………………………………………………….. 205

Трассировка………………………………………………………………………………………………………………….. 206

Распределенная трассировка………………………………………………………………………………………. 206

Выберите типы данных…………………………………………………………………………………………………………… 207

Сохранение данных журналов………………………………………………………………………………………………. 208

Анализ данных журналов……………………………………………………………………………………………………….. 208

Мониторинг данных в масштабе……………………………………………………………………………………………. 209

Заключение………………………………………………………………………………………………………………………………. 210

Глава 17. Мониторинг вашей работы…………………………………………………… 211

Зачем вести мониторинг своей работы?………………………………………………………………………………… 211

Управляйте своей работой по методу канбан………………………………………………………………………. 213

Выбор платформы…………………………………………………………………………………………………………………… 216

Поиск интересующей информации………………………………………………………………………………………… 217

Заключение………………………………………………………………………………………………………………………………. 219

Часть V. Масштабирование системы…………………………………… 221

Глава 18. Управление мощностями………………………………………………………. 223

Что такое мощности?………………………………………………………………………………………………………………. 223

Модель управления мощностями…………………………………………………………………………………………… 224

Закупка ресурсов………………………………………………………………………………………………………….. 225

Обоснование…………………………………………………………………………………………………………………. 226

Управление……………………………………………………………………………………………………………………. 227

Мониторинг…………………………………………………………………………………………………………………… 232

Схема планирования мощностей…………………………………………………………………………………………… 232

Требуется ли планирование мощностей при использовании облачных вычислений?…….. 234

Заключение………………………………………………………………………………………………………………………………. 235

Глава 19. Создание надежной дежурной службы………………………………….. 236

Что представляют собой дежурства………………………………………………………………………………………. 236

Человеческие факторы процессов при дежурстве………………………………………………………………… 237

Проверьте свою политику дежурств…………………………………………………………………………… 238

Подготовка к дежурству………………………………………………………………………………………………. 239

За неделю до дежурства………………………………………………………………………………………………. 241

Ночь накануне дежурства…………………………………………………………………………………………… 242

Ваша дежурная смена………………………………………………………………………………………………….. 243

Сдача смены…………………………………………………………………………………………………………………. 244

День после дежурства………………………………………………………………………………………………….. 245

Мониторинг процесса дежурства………………………………………………………………………………………….. 247

Заключение………………………………………………………………………………………………………………………………. 250

Глава 20. Управление инцидентами…………………………………………………….. 251

Что такое инцидент?………………………………………………………………………………………………………………… 251

Что такое управление инцидентами?…………………………………………………………………………………….. 252

Подготовка к инцидентам и план действий…………………………………………………………………………… 254

Настройка и документирование коммуникационных каналов………………………………… 254

Обучение эффективному общению……………………………………………………………………………… 254

Создание шаблонов……………………………………………………………………………………………………… 255

Ведение документации………………………………………………………………………………………………… 256

Документирование рисков…………………………………………………………………………………………… 256

Моделирование аварийных ситуаций……………………………………………………………………….. 256

Изучение имеющихся инструментов…………………………………………………………………………… 256

Четкое определение должностей и обязанностей……………………………………………………… 257

Представление о степени серьезности и протоколах эскалации…………………………….. 258

Реагирование на инциденты…………………………………………………………………………………………………… 259

Извлечение уроков из инцидента……………………………………………………………………………………………. 260

Как глубоко следует расследовать инцидент?………………………………………………………….. 260

Помощь в обнаружении……………………………………………………………………………………………….. 262

Эффективное документирование инцидентов……………………………………………………………. 262

Распространение информации……………………………………………………………………………………. 263

Дальнейшие шаги…………………………………………………………………………………………………………………….. 264

Заключение………………………………………………………………………………………………………………………………. 264

Глава 21. Руководство устойчивыми командами…………………………………. 266

Коллективное руководство…………………………………………………………………………………………………….. 266

Внедрение командного подхода…………………………………………………………………………………………….. 267

Создание устойчивых команд дежурных специалистов………………………………………….. 268

Обновление процесса дежурства………………………………………………………………………………… 269

Мониторинг работы команды………………………………………………………………………………………………… 271

Зачем нужен мониторинг команды?…………………………………………………………………………… 271

За какими параметрами следует наблюдать?…………………………………………………………… 272

Каковы задачи команды?……………………………………………………………………………………. 274

Как команда определяет для себя задачу?………………………………………………………… 274

Как команда определяет для себя проект?………………………………………………………… 275

Что представляет собой каталог услуг, которые предлагает ваша команда?.. 275

Изучите работу…………………………………………………………………………………………………….. 275

Измерение влияния на команду…………………………………………………………………………………… 276

Поддержка инфраструктуры команды с помощью документации……………………………………… 277

Поддерживайте культуру обучения………………………………………………………………………………………. 278

Адаптация к вызовам………………………………………………………………………………………………………………. 279

Заключение………………………………………………………………………………………………………………………………. 281

Заключение………………………………………………………………………………………….. 283

Приложение А. Протоколы на практике………………………………………………. 285

Протокол HTTP………………………………………………………………………………………………………………………… 285

QUIC………………………………………………………………………………………………………………………………. 288

Система доменных имен………………………………………………………………………………………………. 289

Приложение Б. Определение причин сбоя тестов…………………………………. 293

Сбой теста, вариант № 1: проблемы, связанные с инфраструктурой…………………………………. 293

Сбой теста, вариант № 2: ошибочная логика теста……………………………………………………………… 294

Сбой теста, вариант № 3: изменение предположений………………………………………………………….. 295

Сбой теста, вариант № 4: ненадежные тесты……………………………………………………………………….. 295

Сбой теста, вариант № 5: дефекты кода………………………………………………………………………………… 297

Предметный указатель…………………………………………………………………………. 299

Об авторе……………………………………………………………………………………………… 303

Об обложке…………………………………………………………………………………………… 304

Дженнифер Дэвис

Дженнифер Дэвис — опытный инженер по эксплуатации, докладчик на международных конференциях и автор ряда книг по DevOps. Она работала с различными компаниями, от стартапов до крупных предприятий, повышая надежность систем и обеспечивая их устойчивую работу.