Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8) при использовании установщика debian (debian-installer). Инструкции по использованию установщика Astra (astra-instller) cм. Автоматическая установка Astra Linux Special Edition x.8.
- Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7)
Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
Astra Linux Special Edition РУСБ.10015-16 исп. 1
Astra Linux Common Edition 2.12
Внимание!
- Установка Astra Linux в автоматическом режиме означает автоматическое принятие лицензионного соглашения (см. Лицензионные соглашения и политика лицензирования ГК Astra Linux);
- При установке в автоматическом режиме Astra Linux Special Edition выбор уровня защищенности должен осуществляться в соответствии с условиями действующего лицензионного договора. Подробнее про уровни защищенности см. Astra Linux Special Edition (очередное обновление x.7): Ключевые изменения в комплексе средств защиты информации.
Описанная в данной статье методика установки на виртуальных машинах может приводить к черному экрану после перезагрузки. Чтобы избежать этого рекомендуется использовать виртуальные графические адаптеры:
- виртуальный графический адаптер VMSVGA для Oracle VirtualBox;
- виртуальный графический адаптер cirrus или qxl для Virt Manager.
Подготовка инфраструктуры для автоматической установки и по сети
PXE (англ.Preboot eXecution Environment) — среда для загрузки компьютеров с помощью сетевой карты без использования жестких дисков, компакт-дисков и других устройств, применяемых при загрузке операционной системы.
Подробная информация об автоматической установке с помощью списка ответов: https://www.debian.org/releases/bookworm/amd64/apbs02.en.html.
См. также статью Контроль целостности Astra Linux при установке и эксплуатации.
См. страницу Подготовка инфраструктуры PXE на Astra Linux
Автоматическая установка с помощью файла preseed
- Начиная с очередного обновлений 1.8 для сетевой установки используется новый установщик операционной системы, для которого требуется новый формат файлов preseed. Подробнее см. Автоматическая установка Astra Linux Special Edition x.8.
- Начиная с оперативного обновления 1.7.4 при сетевой установке с технологического установочного диска (ТУД) автоматически вызывается интерактивный диалог настройки network-console. Этот диалог предоставляет возможность переключения дальнейшего выполнения установки на удаленное интерактивное управление с использованием протокола SSH. Если эта возможность не требуется (требуется полное завершение установки с помощью файла preseed без интерактивного взаимодействия), то отключить вызов network-console можно задав в файле выбора устанавливаемой ОС /srv/tftp/pxelinux.cfg/default параметр ядра network-console/enable=false, например:
append initrd=se/initrd.gz network-console/enable=false
- Если установка выполняется в режиме загрузки EFI, то на файловом сервере должен быть установлен пакет grub-efi-amd64-bin и выполнена команда:sudo grub-mknetdir --net-directory=/srv/tftp --subdir=/debian-installer/grubгде /srv/tftp — корневой каталог сетевого ресурса, предоставляемого TFTP-сервером.
Файлы preseed представляют собой заранее подготовленные ответы на вопросы установщика ОС. Их использование позволяет обеспечить полностью автоматическую установку с заранее заданной конфигурацией.
Полностью автоматизированная установка ОС выполняется с заранее заданными фиксированными именами хоста (в обновлениях до Astra Linux x.8), имя пользователя, пароль пользователя). Рекомендуется после установки сменить имена и пароли.
В новом установщике Astra Linux x.8 предусмотрена возможность генерации случайного постфикса имени хоста.
Ссылки для скачивания файлов:
- Файл preseed.cfg для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8) см. в статье Автоматическая установка Astra Linux Special Edition x.8.
- Файл preseed.cfg для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) см. Пример файла preseed.cfg для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7;
- Файл preseed.cfg для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6): preseed_se16.cfg.
- Файл preseed.cfg для Astra Linux Common Edition 2.12: preseed_ce.cfg.
Файл после скачивания скопировать в каталог установочных файлов соответствующего дистрибутива под именем preseed.cfg, например:
или
Важные параметры файла preseed:
Пути к репозиториям пакетов:
Порядок настройки репозиториев пакетов см. в статье Создание локальных и сетевых репозиториев.Пример путь к HTTP-репозиторию с пакетами для установки:
# Репозиторий для установки # Если вы выберете ftp, то mirror/country string устанавливать не обязательно d-i mirror/protocol string http d-i mirror/country string manual d-i mirror/http/hostname string 192.168.56.1 # для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) d-i mirror/http/directory string /repo/se # или, вариант для Astra Linux Common Edition 2.12 #d-i mirror/http/directory string /repo/ce d-i mirror/http/proxy string
Пример указания пути для FTP-репозиториев:
d-i mirror/protocol string ftp d-i mirror/ftp/hostname string 192.168.56.1 d-i mirror/ftp/directory string /repo/se # или, вариант для Astra Linux Common Edition 2.12 #d-i mirror/ftp/directory string /repo/ce d-i mirror/ftp/proxy string
Часовой пояс:
# Здесь можно указать любое допустимое значение для $TZ; смотрите # допустимые значения в файле /usr/share/zoneinfo/. d-i time/zone string Europe/Moscow
В следующем блоке подготавливаются разделы на жестком диске (по умолчанию стоит автоматическое создание с использованием всего диска, с одним корневым разделом и разделом подкачки (см. Область подкачки (swap): особенности применения и обеспечения безопасности)):
Создание пользователя (user) и задание пароля:
В примере ниже использован вариант с указанием пароля 12345678 в виде открытого текста. Пароли в виде открытого текста использовать не рекомендуется, рекомендуется указывать хеш пароля.
Получить хеш пароля можно командой openssl passwd:openssl passwd -<алгоритм>Где <алгоритм> — это вариант получения хеша:- -6 — SHA512 — рекомендуется к использованию;
- -5 — SHA256;
- -1 — MD5.
Эта команда запрашивает ввод и подтверждение пароля и выводит на экран хеш этого пароля.
Пример инструкций presssed-файла:
# Создать учётную запись обычного пользователя. d-i passwd/user-fullname string u d-i passwd/username string u # Пароль обычного пользователя, или открытым текстом #d-i passwd/user-password password 12345678 #d-i passwd/user-password-again password 12345678 # или в виде хеша пароля: d-i passwd/user-password-crypted password $6$mEnK9suwFgN4LuG/$h3It69lO2niPfvxHahmDKm88ksLKbGuMvBFTM6IiCsfzvgGEooMznmf7gxVEf.LHKXqTjjHkPv8H29AtErLas.
Выбор устанавливаемых компонент:
tasksel tasksel/first multiselect Base, Fly # Доступные компоненты и входящие в них пакеты можно посмотреть в /usr/share/tasksel/debian-tasks.desc
Дополнительно устанавливаемые пакеты можно указать в:
# Отдельные дополнительные пакеты для установки d-i pkgsel/include string openssh-server
Установка загрузчика. По умолчанию, загрузчик ставится на первый диск в MBR. Но в Astra Linux Common Edition 2.12 необходимо указать вручную, на какой диск ставить загрузчик:
# В ОС ALCE необходимо указывать на какой диск ставить загрузчик grub-installer grub-installer/choose_bootdev select /dev/sda d-i grub-pc/install_devices multiselect /dev/sda # По умолчанию grub ставится на первый диск # Или же, если вы хотите установить загрузчик не в mbr, # то раскомментируйте и отредактируйте следующие строки: #d-i grub-installer/only_debian boolean false #d-i grub-installer/with_other_os boolean false #d-i grub-installer/bootdev string (hd0,0) #d-i grub-pc/install_devices multiselect /dev/sda # Для установки grub на несколько дисков: #d-i grub-installer/bootdev string (hd0,0) (hd1,0) (hd2,0)
Пароль для загрузчика:
Не рекомендуется использовать пароли в виде открытого текста.
В примере ниже использован пароль 12345678 и его хеш. Получить хеш пароля можно командой:grub-mkpasswd-pbkdf2Эта команда запросит ввод пароля и выведет на экран хеш этого пароля.
Не указывайте пароль в виде открытого текста!# Необязательный пароль на grub, или в виде открытого текста #d-i grub-installer/password password 12345678 #d-i grub-installer/password-again password 12345678 #grub-installer grub-installer/password-mismatch error # или в виде хеша пароля по стандарту PBKDF2, см. man grub-mkpasswd-pbkdf2: d-i grub-installer/password-crypted password grub.pbkdf2.sha512.10000.387670F76D658A9A369292DC37E37E0CC67627E68149E757514EE1873DA7C99DC7A93C58CC54951ED595EC93C03905ADECEFB23FFE3E3F8C07ABAA4A4E0A8FBD.CE02F79A38F623AE9788A363DE94C06A464DEC9C2BFAAF9B54F340C90E91B3F0B09E58E4703AF05872BF27E85D6A682C3AC8626604FCFE849A1025DDFABBC4D8
Выполнение команд перед завершением установки и перезагрузкой компьютера, например включить ssh сервер:
# Эта команда выполняется перед окончанием установки, пока ещё # есть рабочий каталог /target. Вы можете выполнить chroot в /target # и непосредственно использовать его, или же воспользоваться командами # apt-install и in-target для облегчения задачи установки пакетов и # запуска команд в целевой системе. d-i preseed/late_command string in-target systemctl enable ssh.service
Теперь, если подключить машину к этой сети и настроить в BIOS/UEFI загрузку по сети, автоматически запустится установка Astra Linux . Так же можно установить систему вручную, ответив на все вопросы, и после установки выполнить команды:
sudo debconf-get-selections >> preseed.new
Автоматическая установка обновлений после установки системы
В Astra Linux Common Edition 2.12 можно выполнить обновление указав команды обновления в параметре late-command:
d-i preseed/late_command string in-target apt update; in-target apt dist-upgrade;
В Astra Linux Special Edition для автоматической установки обновлений нужно создать файл update.service в корне ftp или http сервера с таким содержимым:
[Unit] Description=Update system After=rc-local.service network-online.target Before=getty.target Before=systemd-user-sessions.service [Service] StandardOutput=tty Type=oneshot ExecStart=/usr/local/bin/update.sh [Install] WantedBy=multi-user.target
Там же создать файл update.sh в котором должны быть указаны репозитории с обновлениями. Репозитории могут размещаться где угодно, важно только правильно указать путь к ним:
#!/bin/bash clear # вносим в /etc/apt/sources.list используемые репозитории (для примера - репозиторий server, работающий по протоколу ftp): echo "deb ftp://server/repo/se/mounted-iso-main smolensk main contrib non-free" > /etc/apt/sources.list echo "deb ftp://server/repo/se/mounted-iso-devel smolensk main contrib non-free" >> /etc/apt/sources.list echo "deb ftp://server/repo/se/repository-update smolensk main contrib non-free" >> /etc/apt/sources.list echo "deb ftp://server/repo/se/repository-update-dev smolensk main contrib non-free" >> /etc/apt/sources.list echo "Updating system, please wait..." echo "Do not turn off your computer!" apt-get update &> /dev/null apt-get -y dist-upgrade &> /dev/null apt-get -y install chromium &> /dev/null rm -f /etc/systemd/system/multi-user.target.wants/update.service systemctl daemon-reload rm -f /usr/local/bin/update.sh reboot
а в файл preseed в конец добавить команды для загрузки и запуска созданных файлов:
d-i preseed/late_command string in-target systemctl enable ssh ; \ in-target wget -O /usr/local/bin/update.sh ftp://10.0.2.20/se/update.sh; \ in-target chmod +x /usr/local/bin/update.sh; \ in-target wget -O /lib/systemd/system/update.service ftp://10.0.2.20/se/update.service; \ in-target systemctl enable update.service;
Если всё сделано корректно - то после завершения установки ОС, после первой перезагрузки выполнится сценарий обновления, самоудалится и перезагрузит машину.
Автоматическая разметка дисковых разделов с помощью partman-auto
См. страницу Автоматическая разметка дисковых разделов с помощью partman-auto
Особенности настройки параметров сети
Eсли файл ответов загружается из сети, то настройка параметров сети выполняется до загрузки файла ответов, и параметры настройки сети, заданные в этом файле, игнорируются. То есть, настройка сети с помощью файла ответов по умолчанию применима если загрузка происходит с компакт-диска или USB-накопителя. При загрузке файла ответов из сети можно только указать используемый для загрузки файлов ответов сетевой интерфейс, для чего используется параметр ядра interface, например interface=eth1
.
Принудительно выполнить перенастройку сети (например, задать статический адрес) с помощью файла ответов после завершения установки по сети можно следующим способом:
Создать на ftp-сервере сценарий со следующим содержимым:
#!/bin/sh kill-all-dhcp; netcfg
При выполнении этого сценария будут отключены службы автоматической настройки сети через DHCP и выполнены директивы netcfg из файла ответов (список возможных директив см. ниже).
Сделать файл с созданным сценарием исполняемым:
sudo chmod +x <имя_файла_со_сценарием>Добавить следующую строку в файл ответов непосредственно перед статической настройкой сети:
d-i preseed/run string ftp://<путь_к_файл_со_сценарием>
Для настройки сети могут использоваться следующие переменные debconf:
Пер
Переменная | Описание |
---|---|
d-i netcfg/enable boolean false | Полностью выключить настройку сети. Это полезно при установке на устройства, не имеющие сети, когда вопросы о сети неуместны. |
d-i netcfg/choose_interface select auto | Автоматический выбор активного сетевого интерфейса, если такой имеется. Если имеется более одного интерфейса, то при данной настройке список интерфейсов выводиться не будет. |
d-i netcfg/choose_interface select eth1 | Принудительный выбор указанного сетевого интерфейса (в данном случае - интерфейс eth1). |
d-i netcfg/link_wait_timeout string 10 | Время ожидания появления связи (link) (по умолчанию 3 секунды). Значение указывается в секундах. |
d-i netcfg/dhcp_timeout string 60 d-i netcfg/dhcpv6_timeout string 60 | Время ожидания параметров DHCP |
d-i netcfg/disable_autoconfig boolean true | Отключение автоматической настройки сети, переход к ручной настройке. |
d-i netcfg/dhcp_failed note d-i netcfg/dhcp_options select Configure network manually | Игнорирование отсутствия DHCP-сервера |
d-i netcfg/get_nameservers string 192.168.1.1 | Статические настройки параметров сети (пример для IPv4). |
d-i netcfg/get_ipaddress string fc00::2 d-i netcfg/get_netmask string ffff:ffff:ffff:ffff:: d-i netcfg/get_gateway string fc00::1 d-i netcfg/get_nameservers string fc00::1 d-i netcfg/confirm_static boolean true | Статические настройки параметров сети (пример для IPv6). |
d-i netcfg/hostname string somehost | Принудительное задание имени хоста (значения, предлагаемые DHCP или реверсивным DNS игнорируются). |
d-i netcfg/wireless_wep string | Выключение диалога о ключе WEP |
d-i netcfg/dhcp_hostname string radish | Специальное имя DHCP-сервера, которое используют некоторые провайдеры в качестве некоего пароля. |
d-i hw-detect/load_firmware boolean true | Разрешение загрузки несвободных микропрограмм без запроса подтверждения (или значение false для запрета загрузки). |
netcfg/get_netmask string 255.255.255.0 | Принудительное задание маски сети. Если не задано, то маска выбирается автоматически. |
netcfg/get_gateway string 192.168.1.1 | Принудительное задание адреса сетевого шлюза. Если не задано, то адрес сетевого шлюза выбирается автоматически. Специальное значение none указывает, что шлюз не используется. |
Пример файла preseed для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7
Полный текст файла preseed для Astra Linux Special Edition 1.7 см. на странице Пример файла preseed для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7.
Особенности настройки:
- Загрузка выполняется из Интернет-репозитория Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7 (см. Интернет-репозитории Astra Linux Special Edition x.7);
Установка выполняется с раздельными дисковыми разделами для корневого каталога и каталогов /boot и /tmp и без создания раздела подкачки (подробнее про рекомендованную структуру разделов см. Рекомендации по безопасной установке и эксплуатации Astra Linux):
d-i partman-auto/expert_recipe string myroot :: \ 512 16384 512 ext2 \ $primary{ } $bootable{ } \ method{ format } format{ } use_filesystem{ } filesystem{ ext2 } mountpoint{ /boot } .\ 8192 16384 16384 ext4 \ method{ format } format{ } use_filesystem{ } filesystem{ ext4 } mountpoint{ / } .\ 2048 16384 2048 ext4 \ method{ format } format{ } use_filesystem{ } filesystem{ ext4 } mountpoint{ /tmp } options/noexec{ noexec } options/nodev{ nodev } options/nosuid{ nosuid } .\ 500 8192 -1 ext4 \ method{ format } format{ } use_filesystem{ } filesystem{ ext4 } mountpoint{ /home } . d-i partman-auto/choose_recipe select myroot
Установка ПО выполняется в минимальной конфигурации (только базовые пакеты Base packages и графическая оболочка Fly desktop), дополнительно устанавливается служба SSH Server для обеспечения возможности удаленного управления компьютером:
tasksel tasksel/first multiselect Base packages, Fly desktop, SSH server
Установка ПО Astra Linux Directory (ALD) не выполняется;
- Создается пользователь-администратор с именем astra и паролем 12345678;
- В примере файла ОС устанавливается c максимальным уровнем защищенности, однако возможны варианты:
Максимальный уровень защищенности:
d-i astra-additional-setup/os-check select Maximum security level Smolensk
Усиленный уровень защищенности:
d-i astra-additional-setup/os-check select Advanced security level Voronezh
Базовый уровень защищенности:
d-i astra-additional-setup/os-check select Base security level Orel
- Если это позволяет выбранный уровень защищенности, то могут быть включены МРД и МКЦ. Также может быть запрещена трассировка:
Максимальный уровень защищенности:
d-i astra-additional-setup/additional-settings-smolensk multiselect Enable Mandatory Integrity Control, Enable Mandatory Access Control, Disable ptrace capability
Усиленный уровень защищенности:
d-i astra-additional-setup/additional-settings-voronezh multiselect Enable Mandatory Integrity Control, Disable ptrace capability
Базовый уровень защищенности:
d-i astra-additional-setup/additional-settings-orel multiselect Disable ptrace capability
При установке выполняется синхронизация времени:
d-i clock-setup/ntp boolean true d-i clock-setup/ntp-server string ntp2.vniiftri.ru
- После установки:
- Удалятся серверная служба синхронизации времени ntp, и включается клиентская служба синхронизации времени systemd-timesyncd.service (см. Службы синхронизации времени в Astra Linux):
d-i preseed/late_command string in-target apt purge -y ntp ; \ in-target systemctl enable systemd-timesyncd.service ; \
Удаляются созданные при установке сетевые подключения:
in-target rm -f /etc/NetworkManager/system-connections/*;
(сетевые подключения будут автоматически созданы при включении компьютера после установки).
Загрузка по сети в режиме восстановления (rescue mode)
Для того, чтобы предоставить пользователям возможность загрузки компьютеров в режиме восстановления следует создать в файле pxelinux.cfg/default элемент меню, ссылающийся на файл preseed. Например, для файла с именем preseed.cfg:
LABEL netinstall MENU LABEL Start Astra Linux 1.07.02 rescue kernel 1.07.00/linux append initrd=ce/initrd.gz modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=ce212 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/ce/preseed.cfg interface=auto netcfg/dhcp_timeout=60 vga=788 debian-installer/allow_unauthenticated=true rescue/enable=true
От ранее приведенных примеров меню данный пример отличается добавленной опцией:
rescue/enable=true
включающей загрузку в режиме восстановления
1 Comment
Сергей Третьяков