- Введение в администрирование Linux-серверов
- Отличия и сферы применения Ubuntu, Debian, CentOS и openSUSE
- Критерии выбора дистрибутива по задачам и инфраструктуре
- Установка и базовая настройка
- Подготовка образов, разметка диска и автоматизированная установка (Preseed, Kickstart)
- Первичный доступ, SSH, локальные настройки и временные зоны
- Управление пакетами и репозиториями
- APT в Debian/Ubuntu: источники, ключи и pinning
- YUM/DNF/Zypper в CentOS/openSUSE: репозитории и обновления
- Управление пользователями и правами
- Создание пользователей, группы и sudo-политики
- SELinux, AppArmor и расширенные ACL для контроля доступа
- Службы и системный менеджмент
- systemd: юниты, таймеры и отладка служб
- Работа с системными логами и init-скриптами в старых системах
- Сетевые настройки и безопасность
- Настройка интерфейсов, маршрутизация, VLAN и bonding
- Фаерволы и контроль доступа: UFW, firewalld и nftables
- Хранение данных и файловые системы
- LVM, RAID, управление томами и снэпшоты
- Выбор файловых систем, монтирование и оптимизация производительности
- Мониторинг и логирование
- Инструменты мониторинга (Prometheus, Zabbix, Netdata) и метрики
- Централизованное логирование: rsyslog, journald, ELK/Graylog
- Резервное копирование и восстановление
- Стратегии бэкапа: полные, инкрементальные и дедупликация
- Проверка восстановления, хранение и шифрование резервов
- Автоматизация и управление конфигурацией
- Ansible: плейбуки, роли и практические примеры
- Puppet, Salt, Terraform для автоматизации инфраструктуры
- Контейнеризация и виртуализация
- Docker и Podman: развертывание и безопасность контейнеров
- KVM, libvirt, LXC и управление виртуальными машинами
- Безопасность и соответствие требованиям
- Управление уязвимостями, обновления и hardening (CIS)
- Аудит, логирование и соответствие политикам безопасности
- Устранение неполадок и аварийное восстановление
- Диагностика производительности, профайлинг и поиск узких мест
- Типичные сценарии ошибок и алгоритмы отката изменений
- Практические чек-листы и рекомендации
- Ежедневные, еженедельные и ежеквартальные процедуры обслуживания
- Шаблоны конфигураций и полезные команды для разных дистрибутивов
- Видео
Введение в администрирование Linux-серверов
Администрирование Linux-серверов включает развертывание, настройку и сопровождение операционной системы и прикладных служб, обеспечение доступности, безопасности и производительности. Практики и инструменты зависят от выбранного дистрибутива, используемой виртуализации и требований к отказоустойчивости; краткие методические материалы по установке и автоматизации расположены тут.
В тексте рассматриваются особенности четырёх популярных семейств дистрибутивов, методы установки, управление пакетами, безопасность, мониторинг и восстановление. Описанные подходы ориентированы на типовые серверные сценарии и могут адаптироваться к корпоративной или облачной среде.
Отличия и сферы применения Ubuntu, Debian, CentOS и openSUSE
Дистрибутивы различаются моделью выпуска обновлений, менеджером пакетов и политиками поддержки. Debian и Ubuntu используют семейство APT и ориентированы на широкую совместимость пакетов; Ubuntu добавляет частые релизы и коммерческую упаковку. CentOS (и форки RHEL-совместимых систем) ориентирован на стабильность релизов для корпоративных сред, с длительной поддержкой и YUM/DNF. openSUSE предлагает инструменты для управления конфигурацией и два ветвления: стабильная Leap и более динамичная Tumbleweed.

Выбор обычно определяется требованиями к поддержке, срокам обновления и наличию сертифицированного ПО. Для тестовых и лабораторных задач чаще используются rolling-релизы и дистрибутивы с новыми пакетами; для критичных сервисов — релизы с длительной поддержкой и консервативной моделью обновлений.
Критерии выбора дистрибутива по задачам и инфраструктуре
- Поддержка железа и драйверов: важна для специализированного оборудования.
- Сроки жизненного цикла и патч-менеджмент: определяют стратегию обновлений.
- Совместимость с инструментами управления конфигурацией и оркестрации.
- Наличие пакетов и репозиториев для целевого ПО.
- Требования к безопасности и сертификациям.
Установка и базовая настройка
Подготовка образов, разметка диска и автоматизированная установка (Preseed, Kickstart)
Подготовка образов включает создание минимального инсталлятора, интеграцию обновлений и конфигурационных скриптов. Для Debian/Ubuntu применяется Preseed или более современные cloud-init и Autoinstall; для RHEL-производных используется Kickstart. Образы могут генерироваться с помощью инструментов для создания облачных и контейнерных образов.

Разметка диска проектируется с учётом требований к отказоустойчивости и производительности: выделение разделов для /var, /var/log, /home, использование LVM для гибкости и RAID для устойчивости к отказам дисков. Автоматизированная установка позволяет стандартизировать инфраструктуру и ускорить восстановление.
Первичный доступ, SSH, локальные настройки и временные зоны
После установки настраиваются базовые параметры доступа: создание пользователя администратора, конфигурация SSH (удаление аутентификации по паролю, добавление ключей), установка политики логирования и настройка временной зоны с использованием timedatectl. Рекомендуется привязывать часы системы к NTP-сервису для корректной работы журналирования и распределённых систем.
- Отключение root-доступа по паролю и разрешение входа через ключи.
- Конфигурация SSHD: ограничение версий протокола, настройка Port, AllowUsers/AllowGroups.
- Настройка локалей и кодировок для корректной обработки логов и вывода приложений.
Управление пакетами и репозиториями
APT в Debian/Ubuntu: источники, ключи и pinning
APT управляет установкой и обновлением пакетов через /etc/apt/sources.list и дополнительные файлы в /etc/apt/sources.list.d. Подписи репозиториев проверяются GPG-ключами; добавление репозитория требует импорта ключа и указания релевантной ветки. Политики pinning (/etc/apt/preferences) применяются для фиксации версий или приоритетов пакетов из нескольких источников.
- Обновление индексов: apt update; установка и обновление: apt install, apt upgrade, apt full-upgrade.
- Использование unattended-upgrades для автоматического применения безопасностных патчей.
- Подтрёржка локальных прокси/кэшей apt (например, apt-cacher-ng) для ускорения развертывания.
YUM/DNF/Zypper в CentOS/openSUSE: репозитории и обновления
DNF/YUM и Zypper обеспечивают управление пакетами в RPM-системах. Репозитории конфигурируются через файлы в /etc/yum.repos.d или через zypper repos. Подписи пакетов проверяются RPM-GPG-ключами. Для обновлений обычно применяются стратегии staged-updates и тестирование перед массовым развёртыванием.
- Команды: dnf/yum install, update, remove; zypper install/patch/refresh.
- Использование реплик и локальных зеркал для стабильных релизов.
- Инструменты для управления группами пакетов и зависимостями.
Управление пользователями и правами
Создание пользователей, группы и sudo-политики
Управление пользователями включает создание учетных записей, настройку оболочек, домашней директории и групповых прав. Для привилегированного доступа применяются sudo-политики, определяемые в /etc/sudoers и /etc/sudoers.d с использованием visudo для проверки синтаксиса. Для крупных инфраструктур применяется централизованная аутентификация через LDAP/AD и управление правами через группы.
- Создание пользователя: useradd/adduser, настройка пароля и SSH-ключей.
- Организация групп: разграничение доступа к ресурсам по группам.
- Конфигурация sudo: минимальные привилегии и аудит команд.
SELinux, AppArmor и расширенные ACL для контроля доступа
SELinux и AppArmor обеспечивают контроль доступа на уровне политики безопасности: SELinux применяется в RHEL-подобных системах, AppArmor — в некоторых Debian/Ubuntu и openSUSE реализациях. Политики ограничивают поведение процессов и доступ к файлам. ACL (setfacl/getfacl) расширяют стандартные POSIX-права и позволяют задавать детальные разрешения для пользователей и групп.
- Выбор и конфигурация модуля доступа в зависимости от дистрибутива и требований.
- Инструменты для отладки политик: ausearch, audit2allow, aa-status.
- Баланс между безопасностью и удобством сопровождения через регламенты.
Службы и системный менеджмент
systemd: юниты, таймеры и отладка служб
systemd управляет службами через юниты (.service, .socket, .timer, .mount). Для обеспечения автоматического запуска и управления состояниями используются команды systemctl enable/disable, start/stop, status. Таймеры systemd заменяют cron в ряде задач и обеспечивают точную последовательность запуска. Отладка включает просмотр журналов через journalctl и анализ зависимостей с помощью systemctl list-dependencies.
- Создание пользовательских юнитов для приложения и сервиса.
- Использование шаблонных юнитов и параметризации через EnvironmentFile.
- Настройка ограничений ресурсов через cgroups и параметров юнитов.
Работа с системными логами и init-скриптами в старых системах
В системах без systemd используются init-скрипты SysV или Upstart; обслуживание включает управление скриптами в /etc/init.d и уровнями запуска. Логи обрабатываются rsyslog или syslog-ng и могут сохраняться в /var/log. Переход на systemd требует миграции скриптов в юниты.
Сетевые настройки и безопасность
Настройка интерфейсов, маршрутизация, VLAN и bonding
Конфигурация сети включает статические и динамические настройки интерфейсов, настройку маршрутов и использование VLAN для сегментации трафика. Bonding/NIC teaming применяется для отказоустойчивости и увеличения пропускной способности. В cloud-средах часто используются виртуальные интерфейсы и управление через cloud-init.
- Файлы конфигурации различаются по дистрибутивам: /etc/network/interfaces, Netplan, NetworkManager.
- Настройка MTU, маршрутов и policy routing для сложных схем.
- Применение LACP для агрегации каналов в сочетании с конфигурацией коммутатора.
Фаерволы и контроль доступа: UFW, firewalld и nftables
Контроль сетевого доступа реализуется через nftables или его оболочки: firewalld и UFW. nftables служит современным фреймворком для фильтрации и NAT. firewalld обеспечивает динамическое управление зонами и сервисами; UFW предоставляет упрощённый интерфейс. Правила фаервола оформляются в виде зон и служат для разграничения доверенных и публичных сетей.
Хранение данных и файловые системы
LVM, RAID, управление томами и снэпшоты
LVM обеспечивает управление логическими томами, позволяет менять размеры файловых систем и создавать снэпшоты. RAID (аппаратный или программный mdadm) применяется для защиты данных от отказа дисков. Комбинация LVM поверх RAID или наоборот проектируется в зависимости от требований к восстановлению и расширяемости.
- Создание PV, VG, LV и управление расширением и сокращением томов.
- Настройка автоматического восстановления при замене дисков и регулярная проверка целостности.
- Использование снэпшотов для резервного копирования и тестирования изменений.
Выбор файловых систем, монтирование и оптимизация производительности
Выбор файловой системы зависит от нагрузки: ext4 применяется для общего назначения, XFS — для больших файлов и потоковой записи, Btrfs и ZFS предоставляют встроенные снэпшоты и дедупликацию. При монтировании устанавливаются параметры для оптимизации: noatime, nodiratime, barrier/flush-параметры и настройки для конкретных рабочих нагрузок.
| Файловая система | Особенности | Сценарии |
|---|---|---|
| ext4 | Простая, стабильная | Универсальные серверы |
| XFS | Хороша для больших файлов | Медиа, базы данных |
| Btrfs | Снэпшоты, RAID уровнями | Гибкие хранилища, контейнеры |
| ZFS | Интегрированный RAID, дедупликация | Хранилища корпоративного класса |
Мониторинг и логирование
Инструменты мониторинга (Prometheus, Zabbix, Netdata) и метрики
Мониторинг включает сбор метрик о состоянии CPU, памяти, дисков, сетевых интерфейсов, а также метрик приложений. Prometheus использует модель pull и экспортеры; Zabbix предлагает агентную модель и шаблоны; Netdata предоставляет детальный мониторинг в реальном времени. Метрики собираются с учётом интервалов, ретенции и системы алертинга.
- Определение ключевых метрик SLA и SLO.
- Гибкая настройка алертов и интеграция с каналами оповещений.
- Сбор метрик контейнеров и виртуальных машин.
Централизованное логирование: rsyslog, journald, ELK/Graylog
Логирование собирается локально через rsyslog/journald и централизуется в ELK-стеке, Graylog или других платформах для поиска и анализа. Структурирование логов и использование парсеров упрощают корреляцию событий и инцидент-реакцию. Важно проектировать ретенцию, ротацию и шифрование логов.
Резервное копирование и восстановление
Стратегии бэкапа: полные, инкрементальные и дедупликация
Стратегия резервного копирования формируется на основании RPO и RTO. Полные бэкапы обеспечивают целостность, инкрементальные — экономию места и времени. Технологии дедупликации и сжатия оптимизируют хранение. Для баз данных применяются специфичные методы: snapshot-основные решения или логические дампы с учётом согласованности данных.
Проверка восстановления, хранение и шифрование резервов
Регулярное тестирование восстановления критично для подтверждения пригодности бэкапов. Хранение резервов на разных носителях и в разных географических локациях уменьшает риск потери. Шифрование резервных копий обеспечивает конфиденциальность при хранении в сторонних хранилищах.
Автоматизация и управление конфигурацией
Ansible: плейбуки, роли и практические примеры
Ansible реализует декларативную автоматизацию через плейбуки и роли. Роли структурируют конфигурации для переиспользования; инвентори и переменные позволяют управлять большим пулом хостов. Идемпотентность плейбуков упрощает повторяемую настройку и развёртывание обновлений.
- Структура роли: tasks, handlers, templates, files, vars.
- Использование vault для хранения секретов и динамических инвентарей для облачных сред.
- Интеграция с CI/CD для автоматического применения конфигураций.
Puppet, Salt, Terraform для автоматизации инфраструктуры
Puppet и Salt ориентированы на управление конфигурацией с различными моделями агент/безагент; Terraform применяется для декларативного описания инфраструктуры как кода, включая провижининг в облаках и настройку сетевых ресурсов. Комбинация инструментов обеспечивает полную автоматизацию жизненного цикла инфраструктуры.
Контейнеризация и виртуализация
Docker и Podman: развертывание и безопасность контейнеров
Контейнеры упрощают упаковку приложений и их зависимостей. Docker предоставляет развитую экосистему; Podman обеспечивает работу без демона и совместимость с OCI. Для безопасности применяются политики запусков, сканирование образов и ограничение привилегий контейнеров.
- Организация хранения образов и использование приватных реестров.
- Наложение лимитов ресурсов и настройка сетевых плагинов для изоляции.
- Регулярные обновления базовых образов и управление уязвимостями.
KVM, libvirt, LXC и управление виртуальными машинами
KVM в сочетании с libvirt обеспечивает виртуализацию уровня гипервизора; LXC предоставляет лёгкую контейнерную виртуализацию. Управление включает настройку дисков, сетей и снимков состояния виртуальных машин, а также миграцию и балансировку нагрузки.
Безопасность и соответствие требованиям
Управление уязвимостями, обновления и hardening (CIS)
Процессы управления уязвимостями включают сканирование, оценку рисков и применение патчей. Рекомендации CIS и аналогичные бенчмарки предлагают конкретные шаги по hardening ОС: управление сервисами, контроль паролей, шифрование и настройка аудита. Внедрение процесса релизов с тестированием снижает риск регрессий.
Аудит, логирование и соответствие политикам безопасности
Аудит действий, централизованное логирование и контроль доступа создают основу для проверки соответствия политикам. Сопровождение регламентов и документирование изменений упрощают прохождение внешних аудитов и внутренних проверок.
Устранение неполадок и аварийное восстановление
Диагностика производительности, профайлинг и поиск узких мест
Диагностика включает сбор метрик, профайлинг CPU/Disk/IO и анализ системных вызовов. Инструменты strace, perf, iostat, sar и top помогают локализовать узкие места. На основе данных формируются планы оптимизации и смены архитектурных решений.
Типичные сценарии ошибок и алгоритмы отката изменений
Частые проблемы включают несовместимости при обновлениях, зависшие процессы и сбои дисковой подсистемы. Алгоритм отката включает сохранение конфигурационных снимков, использование контрольных точек и тестирование отката в изолированной среде перед применением в продакшн. Документированные процедуры и резервные планы ускоряют восстановление.
Практические чек-листы и рекомендации
Ежедневные, еженедельные и ежеквартальные процедуры обслуживания
- Ежедневно: проверка состояния сервисов, свободного места на дисках, алертов мониторинга.
- Еженедельно: применение безопасностных обновлений в тестовой среде, проверка бэкапов.
- Ежеквартально: полное тестирование восстановления, ревизия прав доступа и аудит конфигураций.
Шаблоны конфигураций и полезные команды для разных дистрибутивов
Шаблоны конфигураций включают стандартизированные systemd-юниты, шаблоны Ansible-ролей и примерные файлы для сетевых настроек и логирования. Набор полезных команд: systemctl, journalctl, ss/ip, dmesg, strace, top/htop, iostat, df/mount, lvdisplay/mdadm. Использование шаблонов облегчает воспроизводимость и сопровождение инфраструктуры.







