Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Оглавление


Информация
titleДанная статья применима к:
  • 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



Предупреждение
titleВнимание!
  1. Установка Astra Linux в автоматическом режиме означает автоматическое принятие лицензионного соглашения (см. Лицензионные соглашения и политика лицензирования ГК Astra Linux);
  2. При установке в автоматическом режиме Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7) выбор уровня защищенности должен осуществляться в соответствии с условиями действующего лицензионного договора. Подробнее про уровни защищенности см.  Astra Linux Special Edition (очередное обновление x.7): Ключевые изменения в комплексе средств защиты информации.



Примечание

Описанная  в данной статье методика установки на виртуальных машинах может приводить к черному экрану после перезагрузки. Чтобы избежать этого рекомендуется использовать виртуальные графические адаптеры:

  • виртуальный графический адаптер  VMSVGA для Oracle VirtualBox;
  • виртуальный графический адаптер cirrus или qxl для Virt Manager.


Подготовка инфраструктуры PXE на Astra Linux

Информация

PXE (англ.Preboot eXecution Environment) — среда для загрузки компьютеров с помощью сетевой карты без использования жестких дисков, компакт-дисков и других устройств, применяемых при загрузке операционной системы.
Подробная информация об автоматической установке с помощью списка ответов: https://www.debian.org/releases/buster/amd64/apbs02.en.html.

Примечание

Описанная  в данной статье методика установки на виртуальных машинах может приводить к черному экрану после перезагрузки. Чтобы избежать этого рекомендуется использовать виртуальные графические адаптеры:

  • Виртуальный графический адаптер  VMSVGA для Oracle VirtualBox;
  • Виртуальный графический адаптер cirrus или qxl для Virt Manager.
Подготовка инфраструктуры PXE на Astra Linux

См. также статью Контроль целостности Astra Linux при установке и эксплуатации.

См. страницу Подготовка инфраструктуры PXE на Astra Linux

Автоматическая установка с помощью файла preseed

Hide If
special@anonymous


Информация

Начиная с обновления 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



Файлы preseed представляют собой заранее подготовленные ответы на вопросы установщика ОС. Их использование позволяет обеспечить полностью автоматическую установку с заранее заданной конфигурацией.

Ссылки для скачивания файлов:

Файл после скачивания скопировать в каталог установочных файлов соответствующего дистрибутива под именем preseed.cfg, например:

Информация
sudo cp preseed_se16.cfg /srv/tftp/se/preseed.cfg

или

Информация
sudo cp preseed_ce.cfg /srv/tftp/ce/preseed.cfg

Важные параметры файла preseed:

  1. Пути к репозиториям пакетов:

    Информация
    Порядок настройки репозиториев пакетов см. в статье Создание локальных и сетевых репозиториев.


    1. Пример путь к 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


    2. Пример указания пути для 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


  2. Часовой пояс:

    Блок кода
    # Здесь можно указать любое допустимое значение для $TZ; смотрите
    # допустимые значения в файле /usr/share/zoneinfo/.
    d-i time/zone string Europe/Moscow


  3. В следующем блоке подготавливаются разделы на жестком диске (по умолчанию стоит автоматическое создание с использованием всего диска, с одним корневым разделом и разделом подкачки (см. Область подкачки (swap): особенности применения и обеспечения безопасности)):

    Раскрыть
    #Если система имеет свободное место, вы можете выбрать для разметки
    # только его.
    # Замечание: нужно указывать локализованные (переведённые) значения.
    #d-i partman-auto/init_automatically_partition \
    # select Авто - использовать наибольшее свободное место

    #Или же, вы можете задать размечаемый диск. Имя устройства
    # должно задаваться в обычном не-devfs формате.
    # Например, для использования первого жёсткого диска SCSI/SATA:
    #d-i partman-auto/disk string /dev/sda
    # Замечание: если вы хотите использовать любой доступный диск, не важно
    # какое у него имя, закоммерируйте строку выше. Она работает только если
    # в системе один жёсткий диск.
    # Также, вы можете указать какой метод использовать.
    # Доступные методы: "regular", "lvm" и "crypto"
    d-i partman-auto/method string regular

    # Автоматическая установка на компьютеры с уже установленной ОС в режиме UEFI без запроса подтверждения
    # d-i partman-efi/non_efi_system boolean true

    # Если один из дисков, который нужно разметить с помощью автоматической
    # разметки, содержит старую конфигурацию LVM, то пользователю выдаётся
    # предупреждение. Ответ можно автоматизировать...
    d-i partman-auto/purge_lvm_from_device boolean true
    # И подтвердить запись lvm разделов.
    d-i partman-lvm/confirm boolean true

    # Вы можете выбрать любой из имеющихся наборов разметки.
    # Замечание: он должен содержать локализованные (переведённые) значения.
    # Расскомментируйте ниже нужный тип разметки

    # Для режима legacy bios:
    d-i partman-auto/choose_recipe select atomic

    # Для режима UEFI:
    # d-i partman-auto/choose_recipe select /lib/partman/recipes-amd64-efi/30atomic

    # Этот параметр заставляет partman выполнить разметку автоматически
    # без подтверждения.
    d-i partman/confirm_write_new_label boolean true
    d-i partman/choose_partition select finish
    d-i partman/confirm boolean true
    d-i partman-auto-crypto/erase_disks boolean true
    d-i partman-basicfilesystems/no_swap boolean true
    d-i partman-target/mount_failed boolean true
    d-i partman-partitioning/unknown_label boolean true
    d-i partman-auto/purge_lvm_from_device string true
    d-i partman-lvm/vgdelete_confirm boolean true
    d-i partman/confirm_write_new_label string true
    d-i partman-lvm/confirm boolean true
    d-i partman/confirm_nooverwrite boolean true


  4. Создание пользователя (user) и задание пароля:

    Предупреждение

    Не рекомендуется использовать пароли в виде открытого текста.
    В примере ниже использован вариант с указанием пароля 12345678 в виде открытого текста, и вариант с указанием хеша. Получить хеш пароля можно командой:

    Command
    openssl passwd -1

    Эта команда запросит ввод пароля и выведет на экран кеш этого пароля.


    Блок кода
    # Создать учётную запись обычного пользователя.
    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
    
    # или в виде MD5 хеша.
    d-i passwd/user-password-crypted password $1$EPkHS/dI$0tl23aI/oMBBNdBVZP0o.1


  5. Устанавливаемые компоненты:

    Блок кода
    tasksel tasksel/first multiselect Base, Fly
    # Доступные компоненты и входящие в них пакеты можно посмотреть в /usr/share/tasksel/debian-tasks.desc

    Дополнительно устанавливаемые пакеты можно указать в: 

    Блок кода
    # Отдельные дополнительные пакеты для установки
    d-i pkgsel/include string openssh-server 


  6. Установка загрузчика. По умолчанию, загрузчик ставится на первый диск в 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)
    


  7. Пароль для загрузчика:

    Предупреждение

    Не рекомендуется использовать пароли в виде открытого текста.
    В примере ниже использован пароль 12345678 и его хеш. Получить хеш пароля можно командой:

    Command
    openssl passwd -1

    Эта команда запросит ввод пароля и выведет на экран кеш этого пароля.
    Не указывайте пароль в виде открытого текста!


    Блок кода
    # Необязательный пароль на grub, или в виде открытого текста
    #d-i grub-installer/password password 12345678
    #d-i grub-installer/password-again password 12345678
    #grub-installer grub-installer/password-mismatch error
    # или в виде хеша пароля по алгоритму MD5, смотрите grub-md5-crypt(8).
    d-i grub-installer/password-crypted password $1$EPkHS/dI$0tl23aI/oMBBNdBVZP0o.1
    


  8. Выполнение команд перед завершением установки и перезагрузкой компьютера, например включить ssh сервер:

    Блок кода
    # Эта команда выполняется перед окончанием установки, пока ещё
    # есть рабочий каталог /target. Вы можете выполнить chroot в /target
    # и непосредственно использовать его, или же воспользоваться командами
    # apt-install и in-target для облегчения задачи установки пакетов и
    # запуска команд в целевой системе.
    d-i preseed/late_command string in-target systemctl enable ssh.service


Теперь, если подключить машину к этой сети и настроить в BIOS/UEFI загрузку по сети, автоматически запустится установка Astra Linux . Так же можно установить систему вручную, ответив на все вопросы, и после установки выполнить команды:

Command

sudo debconf-get-selections --installer > preseed.new
sudo debconf-get-selections >> preseed.new

Это создаст файл 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.

Принудительно выполнить перенастройку сети (например, задать статический адрес) с помощью файла ответов после завершения установки по сети можно следующим способом:

  1. Создать на ftp-сервере сценарий со следующим содержимым:

    Блок кода
    #!/bin/sh
    kill-all-dhcp; netcfg

    При выполнении этого сценария будут отключены службы автоматической настройки сети через DHCP и выполнены директивы netcfg из файла ответов (список возможных директив см. ниже).


  2. Сделать файл с созданным сценарием исполняемым:

    Command
    sudo chmod +x <имя_файла_со_сценарием>


  3. Добавить следующую строку в файл ответов непосредственно перед статической настройкой сети:

    Блок кода
    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
d-i netcfg/get_ipaddress string 192.168.1.42
d-i netcfg/get_netmask string 255.255.255.0
d-i netcfg/get_gateway string 192.168.1.1
d-i netcfg/confirm_static boolean true

Статические настройки параметров сети (пример для 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 указывает, что шлюз не используется.


Якорь
preseed1.7
preseed1.7
Пример файла 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.

Особенности настройки:

  1. Загрузка выполняется из Интернет-репозитория Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7 (см. Интернет-репозитории Astra Linux Special Edition x.7);
  2. Установка выполняется с раздельными дисковыми разделами для корневого каталога и каталогов /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


  3. Установка ПО выполняется в минимальной конфигурации (только базовые пакеты Base packages и графическая оболочка Fly desktop), дополнительно устанавливается служба SSH Server для обеспечения возможности удаленного управления компьютером:

    Блок кода
    tasksel tasksel/first multiselect Base packages, Fly desktop, SSH server

    Установка ПО Astra Linux Directory (ALD) не выполняется;

  4. Создается пользователь-администратор с именем astra и паролем 12345678;
     
  5. В примере файла ОС устанавливается c максимальным уровнем защищенности, однако возможны варианты:
    1. Максимальный уровень защищенности:

      Блок кода
      d-i astra-additional-setup/os-check select Maximum security level Smolensk


    2. Усиленный уровень защищенности:

      Блок кода
      d-i astra-additional-setup/os-check select Advanced security level Voronezh


    3. Базовый уровень защищенности:

      Блок кода
      d-i astra-additional-setup/os-check select Base security level Orel


  6. Если это позволяет выбранный уровень защищенности, то могут быть включены МРД и МКЦ. Также может быть запрещена трассировка:
    1. Максимальный уровень защищенности:

      Блок кода
      d-i astra-additional-setup/additional-settings-smolensk multiselect Enable Mandatory Integrity Control, Enable Mandatory Access Control, Disable ptrace capability


    2. Усиленный уровень защищенности:

      Блок кода
      d-i astra-additional-setup/additional-settings-voronezh multiselect Enable Mandatory Integrity Control, Disable ptrace capability


    3. Базовый уровень защищенности:

      Блок кода
      d-i astra-additional-setup/additional-settings-orel multiselect Disable ptrace capability


  7. При установке выполняется синхронизация времени:

    Блок кода
    d-i clock-setup/ntp boolean true
    d-i clock-setup/ntp-server string ntp2.vniiftri.ru


  8. После установки:
      1. Удалятся серверная служба синхронизации времени 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 ; \
    
    1. Удаляются созданные при установке сетевые подключения:

      Блок кода
      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

включающей загрузку в режиме восстановления



...