Создание и настройка опций ФС [203.3]

Рейтинг: 74.1% · 11 голосов
Курс LPIC-2 (201-450 и 202-450): емкостное планирование, ядро, хранилище и RAID/LVM, продвинутая сеть, DNS/BIND, Apache/Nginx, Samba/NFS, DHCP/LDAP, почта, безопасность и VPN.
Ответить
Аватара пользователя
Sergey_Sysadmin
Сообщения: 134
Зарегистрирован: 11 май 2026, 05:31

Создание и настройка опций ФС [203.3]

Сообщение Sergey_Sysadmin »

Оглавление курса (41)
  1. Введение в LPIC-2 и уровень инженера
  2. Измерение и устранение проблем с ресурсами [200.1]
  3. Прогнозирование потребности в ресурсах
  4. Компоненты ядра Linux [201.1]
  5. Сборка ядра из исходников [201.2]
  6. Управление модулями ядра в рантайме [201.3]
  7. Кастомизация запуска системы [202.1]
  8. Восстановление системы [202.2]
  9. Альтернативные загрузчики [202.3]
  10. Работа с файловой системой Linux [203.1]
  11. Обслуживание файловых систем [203.2]
  12. Создание и настройка опций ФС [203.3] (вы здесь)
  13. Программный RAID [204.1]
  14. Тюнинг доступа к устройствам хранения [204.2]
  15. Менеджер логических томов LVM [204.3]
  16. Базовая конфигурация сети [205.1]
  17. Продвинутая конфигурация сети [205.2]
  18. Диагностика сетевых проблем [205.3]
  19. Сборка и установка программ из исходников [206.1]
  20. Резервное копирование [206.2]
  21. Оповещение пользователей о событиях
  22. DNS-сервер BIND: базовая настройка [207.1]
  23. Зоны DNS: создание и сопровождение [207.2]
  24. Безопасность DNS-сервера [207.3]
  25. Веб-сервер Apache: базовая настройка [208.1]
  26. Apache и HTTPS [208.2]
  27. Кэширующий прокси Squid [208.3]
  28. Веб-сервер и обратный прокси Nginx [208.4]
  29. Файловый сервер Samba [209.1]
  30. Файловый сервер NFS [209.2]
  31. DHCP-сервер [210.1]
  32. Аутентификация PAM и SSSD [210.2]
  33. Использование LDAP-клиента
  34. Сервер OpenLDAP [210.4]
  35. Почтовый сервер Postfix [211.1]
  36. Управление доставкой почты и Sieve [211.2]
  37. Доступ к почтовым ящикам: Dovecot [211.3]
  38. Linux как маршрутизатор и фильтр [212.1]
  39. FTP-серверы [212.2]
  40. SSH углублённо [212.3]
  41. Безопасность, IDS и VPN [212.4 + 212.5]
Урок 11. Создание и настройка опций ФС [203.3]

Этот урок про две задачи администратора, которые на первый взгляд не связаны, но обе про то, как ФС появляется в системе в нужный момент и в нужном виде. Первая - автомонтирование через AutoFS: вместо того чтобы держать десятки NFS-шар или флешек постоянно примонтированными, мы монтируем их по требованию и отпускаем после простоя. Вторая - шифрование разделов через LUKS и cryptsetup: данные на диске лежат в зашифрованном виде, и без ключа это просто шум. Разберём, как они работают, как настраивать загрузку и где обычно ломается.

Изображение

Как это работает

AutoFS - это демон, который слушает обращения к каталогам внутри заданной точки и монтирует нужный ресурс ровно тогда, когда в него кто-то заходит. Технически он опирается на autofs-модуль ядра и механизм точек монтирования: каталог пустой, пока вы в него не шагнёте, после чего демон по карте находит, что монтировать, и делает mount на лету. После таймаута простоя (по умолчанию 600 секунд) ресурс отмонтируется сам. Это экономит ресурсы и спасает от зависаний, когда NFS-сервер недоступен - вы просто не получите доступ к одной ветке, а не повесите всю систему.

Конфигурация состоит из главной карты auto.master и подчинённых карт. В auto.master строка говорит: вот базовый каталог (например /mnt/net) и вот файл-карта, описывающая его содержимое. Подчинённая карта построчно задаёт ключ (имя подкаталога), опции монтирования и источник. Карты бывают прямые и косвенные: косвенная (самая частая) создаёт подкаталоги динамически под общим каталогом, прямая привязывает конкретный абсолютный путь.

LUKS (Linux Unified Key Setup) - это стандарт шифрования блочных устройств. Шифруется не файл и не каталог, а весь раздел целиком на уровне блоков, прозрачно для ФС поверх него. Ключевой момент - двухуровневая схема ключей. Сами данные шифруются мастер-ключом, который генерируется случайно и хранится в заголовке LUKS в зашифрованном виде. А ваша парольная фраза лишь расшифровывает один из слотов заголовка, откуда достаётся мастер-ключ. Поэтому пароль можно менять без перешифрования диска и можно завести несколько паролей (слотов) для одного тома. Современный формат - LUKS2 (по умолчанию с 2018 года): метаданные в JSON, по умолчанию функция формирования ключа Argon2id, устойчивая к перебору на GPU.

Работает это так: cryptsetup luksOpen открывает зашифрованное устройство и создаёт виртуальное устройство в /dev/mapper через device-mapper (модуль dm-crypt). Дальше с /dev/mapper/имя работают как с обычным блочным устройством - создают ФС, монтируют. При загрузке за автоматическое открытие отвечает /etc/crypttab (аналог fstab, но для шифрованных томов), а уже /etc/fstab монтирует то, что появилось в /dev/mapper.

Команды и примеры

Установка и базовая настройка AutoFS. Пакеты называются одинаково, инструменты управления различаются:

Код: Выделить всё

# Debian 13 / Ubuntu 24.04
apt install autofs
# RHEL 10 / Fedora 41+
dnf install autofs

systemctl enable --now autofs
В /etc/auto.master добавляем косвенную карту:

Код: Выделить всё

# /etc/auto.master
/mnt/net    /etc/auto.net    --timeout=120
Подчинённая карта /etc/auto.net (имя подкаталога, опции, источник):

Код: Выделить всё

# /etc/auto.net
fileserver  -fstype=nfs4,ro,soft   nfs-srv:/export/data
backup      -fstype=nfs4,rw        nfs-srv:/export/backup
usb         -fstype=ext4           :/dev/disk/by-label/USBDATA
После правок перечитываем карты без перезапуска:

Код: Выделить всё

systemctl reload autofs
ls /mnt/net/fileserver    # вот тут и произойдёт монтирование
Теперь LUKS. Шифруем чистый раздел (внимание - luksFormat стирает данные):

Код: Выделить всё

cryptsetup luksFormat --type luks2 /dev/sdb1
# подтверждаем YES заглавными и задаём парольную фразу

cryptsetup luksOpen /dev/sdb1 secure   # откроется как /dev/mapper/secure
mkfs.ext4 /dev/mapper/secure
mount /dev/mapper/secure /mnt/secure
Управление слотами и просмотр заголовка:

Код: Выделить всё

cryptsetup luksDump /dev/sdb1          # формат, KDF, занятые слоты
cryptsetup luksAddKey /dev/sdb1        # добавить второй пароль/ключ
cryptsetup luksKillSlot /dev/sdb1 1    # удалить слот 1
cryptsetup luksClose secure
Автооткрытие при загрузке. Сначала узнаём UUID (именно LUKS-устройства, не ФС внутри):

Код: Выделить всё

cryptsetup luksUUID /dev/sdb1
В /etc/crypttab (имя в mapper, источник, ключ, опции):

Код: Выделить всё

# /etc/crypttab
secure  UUID=ваш-luks-uuid  none  luks
Значение none означает спрашивать пароль при загрузке. Затем в /etc/fstab монтируем уже расшифрованное устройство:

Код: Выделить всё

/dev/mapper/secure  /mnt/secure  ext4  defaults  0 2
Шифрованный swap, который перегенерируется при каждой загрузке (ключ случайный, файл подкачки не нужно бэкапить):

Код: Выделить всё

# /etc/crypttab
cryptswap  /dev/sdb2  /dev/urandom  swap,cipher=aes-xts-plain64,size=256

# /etc/fstab
/dev/mapper/cryptswap  none  swap  sw  0 0
После правки crypttab на обоих семействах надо пересобрать initramfs, иначе корень не разблокируется при загрузке:

Код: Выделить всё

# Debian/Ubuntu
update-initramfs -u
# RHEL/Fedora
dracut --force
Частые грабли
  • В auto.master НЕ создавайте базовый каталог (/mnt/net) вручную и не держите его непустым - AutoFS им управляет сам, посторонние файлы внутри ломают монтирование.
  • Жёсткие (hard) опции NFS в карте при недоступном сервере вешают процесс намертво. Для автомонтируемых сетевых шар почти всегда хотите soft и разумный timeo.
  • В crypttab для swap указывайте /dev/urandom как ключ - но тогда раздел перешифровывается каждую загрузку, и старый swap восстановить нельзя. Для постоянного шифрованного swap используйте обычный LUKS-том с паролем, а не случайный ключ.
  • Забыли пересобрать initramfs после правки crypttab - и зашифрованный корень при загрузке не открывается, система падает в emergency shell.
  • В crypttab берут UUID файловой системы внутри тома вместо UUID самого LUKS-устройства - устройство не находится. Это разные UUID, нужен именно luksUUID.
  • luksFormat необратимо затирает старый заголовок. Перепутали устройство - данные уже не вернуть, бэкап заголовка (luksHeaderBackup) надо делать заранее.
  • Потеря заголовка LUKS = потеря данных, даже если пароль вы помните: мастер-ключ хранится только в заголовке.
Мини-лаба
  • Создайте на тестовом диске два раздела: /dev/sdb1 под данные и /dev/sdb2 под swap.
  • Зашифруйте sdb1 командой luksFormat --type luks2, откройте как secure, создайте на нём ext4 и примонтируйте в /mnt/secure, положите туда файл.
  • Добавьте второй пароль через luksAddKey и проверьте luksDump - должно быть два занятых слота.
  • Пропишите sdb1 в /etc/crypttab по luksUUID и /dev/mapper/secure в /etc/fstab, пересоберите initramfs, перезагрузитесь и убедитесь, что система спросила пароль и смонтировала том.
  • Настройте шифрованный swap на sdb2 через /dev/urandom, проверьте swapon --show.
  • Установите AutoFS, настройте косвенную карту /mnt/net с одним любым локальным ресурсом (например loopback NFS или bind), зайдите в подкаталог и убедитесь через mount, что монтирование произошло, а через 2 минуты простоя отмонтировалось.
Контрольные вопросы
  • Чем косвенная карта AutoFS отличается от прямой и какую из них чаще используют для набора NFS-шар?
  • Где физически хранится мастер-ключ тома LUKS и почему смена парольной фразы не требует перешифровывать диск?
  • Какие три поля минимально нужны в строке /etc/crypttab и что означает значение none в поле ключа?
  • Почему для шифрованного swap часто указывают /dev/urandom и какой ценой это достигается?
  • Что произойдёт при загрузке, если изменить /etc/crypttab, но не пересобрать initramfs для зашифрованного корня?
  • Какой UUID нужно указывать в crypttab - тома LUKS или файловой системы внутри него, и как его получить?
👍2 ❤️5 🔥2 😄 🤔
Аватара пользователя
sanea5
Сообщения: 1
Зарегистрирован: 13 май 2026, 04:10

Re: Создание и настройка опций ФС [203.3]

Сообщение sanea5 »

А если в crypttab вместо none прописать путь к файлу-ключу на флешке - получится открывать без ввода пароля, но только когда флешка вставлена? Хочу так для бэкап-диска
👍1 ❤️1 🔥 😄 🤔2
Аватара пользователя
wireguard1
Сообщения: 1
Зарегистрирован: 15 май 2026, 12:23

Re: Создание и настройка опций ФС [203.3]

Сообщение wireguard1 »

Поймал грабли с swap на urandom: после ребута hibernate отвалился. Логично же - образ памяти писался под старый случайный ключ, который уже сменился. Для гибернейта только постоянный LUKS-том
👍1 ❤️ 🔥1 😄 🤔
Ответить
← Предыдущая глава
Обслуживание файловых систем [203.2]
Следующая глава →
Программный RAID [204.1]

Все главы курса «LPIC-2: инженер Linux (201 + 202)»

Поделиться темой: ✈ Telegram VK

Вернуться в «LPIC-2: инженер Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость