Часть II. Установка дистрибутива
В этой части рассматривается процесс установки дистрибутива.
Глава 4. Подготовка установочного диска
Наиболее частый способ установки операционной системы на компьютер представляет собой установку с установочного DVD-диска. В этой главе описываются различные способы записи дистрибутива на DVD-диск.
Установочные образы являются гибридными, что позволяет производить установку, записав такой образ на USB Flash. О записи установочного образа на USB Flash также рассказано в этой главе.
4.1. Запись ISO-образа дистрибутива на DVD
4.1.1. Запись образа диска под операционной системой MS Windows
Файл ISO-образа диска — это файл специального формата, подготовленный для записи на диск. Для записи ISO-образа под операционной системой MS Windows используйте специальные программы:
SCDWriter,
Nero BurningROM и другие. Рекомендуем для записи использовать новые диски от известных производителей, таких как: Verbatim, TDK. Записанный на плохой диск образ может вызвать неразрешимые проблемы при установке.
4.1.1.1. Запись образа диска с помощью Small CD-Writer
Весь процесс записи установочного диска при помощи
Small CD-Writer состоит из следующих шагов:
скачать образ дистрибутива;
распаковать файлы программы из архива в любой каталог;
вставить чистый диск в привод;
войти в распакованный каталог и запустить программу SCDWriter.exe
;
открыть пункт меню → и, в появившемся окне, указать путь к образу диска;
нажать кнопку Записать.
4.1.1.2. Запись образа диска с помощью Nero BurningROM
Процесс записи установочного диска при помощи
Nero BurningROM состоит из следующих шагов:
скачать образ дистрибутива;
запустить программу и выбрать в списке устройств необходимый для записи CD/DVD дисковод;
нажать кнопку Открыть в главном окне. В появившемся окне выбрать необходимый ISO-образ для записи и нажать кнопку Открыть;
в окне Записать проект на вкладке Запись установить отметку в поле Запись и настроить необходимые параметры прожига;
записать ISO-образа на диск, щёлкнув по кнопке Прожиг.
4.1.2. Запись образа диска под операционной системой Linux
Для записи ISO-образов можно использовать множество утилит и программ с графическим или текстовым интерфейсом. Наиболее удобно использовать программы K3b или Brasero, которые поставляются в комплекте большинства дистрибутивов операционной системы Linux.
4.1.2.1. Запись образа диска с помощью K3b
Весь процесс записи установочного диска при помощи
K3b состоит из следующих шагов:
если программа k3b отсутствует, необходимо установить её в систему, используя стандартные для вашего дистрибутива инструменты установки программ;
запустить программу k3b. При правильных настройках программа сообщит об отсутствии проблем с системой и предложит перейти к записи на диск;
в меню главного окна выбрать пункт ;
в появившемся окне Записать образ DVD (Burn DVD image) нажать на кнопку Выбор файла для записи. Откроется диалог, в котором необходимо выбрать ISO-образ для записи и после выбора нажать кнопку ОК;
программа k3b покажет информацию о ISO-файле и начнёт вычислять контрольную сумму. Эта операция может занять несколько минут. Полученную контрольную сумму можно сравнить с MD5SUM суммой на странице дистрибутива;
если контрольные суммы не совпадают, значит, для записи был выбран не тот файл или скачанный ISO-образ был испорчен во время передачи данных по сети;
если контрольные суммы совпадают, вставить диск для записи в дисковод. Дождаться активации кнопки Начать (Start);
нажать на кнопку Начать (Start).
4.2. Запись установочного образа на USB Flash
Запись образа дистрибутива на flash-диск приведёт к изменению таблицы разделов на носителе, таким образом, если flash-диск выполнил функцию загрузочного\установочного устройства и требуется вернуть ему функцию переносного накопителя данных, то необходимо удалить все имеющиеся разделы на flash-диске и создать нужное их количество заново.
Для восстановления совместимости flash-диска с операционными системами семейства Windows может понадобиться также пересоздание таблицы разделов (например, при помощи parted). Нужно удалить таблицу GPT и создать таблицу типа msdos. Кроме того, должен быть только один раздел с FAT или NTFS.
Для создания загрузочного flash-диска понадобится файл ISO-образа установочного диска с дистрибутивом. ISO-образы установочных дисков являются гибридными (Hybrid ISO/IMG), что позволяет записать их на flash-накопитель.
4.2.1. В операционной системе Windows
ALT Media Writer — это инструмент, который помогает записывать образы ALT на портативные накопители, такие как flash-диски. Он может автоматически загружать образы из интернета и записывать их. Для записи образа на flash-диск необходимо:
скачать и установить
ALT Media Writer;
вставить flash-диск в USB-разъем;
запустить ALT Media Writer;
выбрать дистрибутив и нажать кнопку
Создать Live USB…:
начнётся загрузка образа из интернета;
выбрать устройство (flash-диск);
после окончания загрузки нажать кнопку Записать на диск (если был отмечен пункт Записать образ после загрузки, запись образа начнётся автоматически).
Инструкция для записи образа в программе
Win32 Disk Imager:
скачать образ дистрибутива;
вставить flash-диск в USB-разъем (размер flash-диска должен быть не меньше размера скачанного образа диска);
запустить Win32 Disk Imager;
в появившимся окне выбрать ISO-образ дистрибутива, выбрать устройство (flash-диск):
нажать кнопку Write для записи образа на flash-диск.
Для записи образа на flash-диск подойдёт и утилита
HDD Raw Copy Tool. На первом шаге нужно выбрать файл с образом диска:
На втором шаге нужно выбрать flash-диск, на который будет записан образ:
Будьте внимательны при указании имени usb-устройства — запись образа по ошибке на свой жёсткий диск приведёт к почти гарантированной потере данных на нём!
После проверки правильности выбранных параметров и нажатия кнопки Continue можно приступать к записи, нажав кнопку START. По успешному завершению записи окно с индикацией процесса записи закроется, после чего можно закрыть и окно самой программы.
4.2.2. В операционной системе Linux
Для записи образа на flash-диск можно воспользоваться одной из программ с графическим интерфейсом:
Будьте внимательны при указании имени usb-устройства — запись образа по ошибке на свой жёсткий диск приведёт к почти гарантированной потере данных на нём!
Не добавляйте номер раздела, образ пишется на flash-диск с самого начала!
Для записи установочного образа можно воспользоваться утилитой командной строки dd:
# dd
oflag=direct if=<файл-образа.iso> of=/dev/sdX bs=1M status=progress
# sync
где <файл-образа.iso> — образ диска ISO, а
/dev/sdX
— устройство, соответствующее flash-диску.
Для удобства показа прогресса записи можно установить пакет
pv и использовать команду:
# pv
<файл-образа.iso> | dd oflag=direct of=/dev/sdX bs=1M;sync
где <файл-образа.iso> — образ диска ISO, а
/dev/sdX
— устройство, соответствующее flash-диску.
Просмотреть список доступных устройств можно командой lsblk
или (если такой команды нет): blkid
.
Например, так можно определить имя flash-диска:
$ lsblk | grep disk
sda 8:0 0 931,5G 0 disk
sdb 8:16 0 931,5G 0 disk
sdc 8:32 1 7,4G 0 disk
flash-диск имеет имя устройства sdc.
Затем записать:
# dd oflag=direct if=/home/iso/alt-server-10.2-x86_64.iso of=/dev/sdc bs=1M status=progress; sync
или, например, так:
# pv /home/iso/alt-server-10.2-x86_64.iso | dd oflag=direct of=/dev/sdc bs=1M;sync
dd: warning: partial read (524288 bytes); suggest iflag=fullblock
3GiB 0:10:28 [4,61MiB/s] [===================================> ] 72% ETA 0:04:07
Не извлекайте flash-диск, пока образ не запишется до конца! Определить финал процесса можно по прекращению моргания индикатора flash-диска либо посредством виджета "Безопасное извлечение съемных устройств". В консоли можно подать команду
# eject /dev/sdX
и дождаться ее успешного завершения.
4.2.3. В операционной системе OS X
В операционной системе OS X для создания загрузочного flash-диска можно использовать команду:
sudo dd if=alt-server-10.2-x86_64.iso
of=/dev/rdiskX bs=10M
sync
где alt-server-10.2-x86_64.iso
— образ диска ISO, а /dev/rdiskX — flash-диск.
Просмотреть список доступных устройств можно командой:
diskutil list
Будьте внимательны при указании имени usb-устройства — запись образа по ошибке на свой жёсткий диск приведёт к почти гарантированной потере данных на нём!
4.2.4. Проверка целостности записанного образа
Для проверки целостности записанного образа необходимо выполнить следующие шаги:
определить длину образа в байтах:
$ du -b alt-server-10.2-x86_64.iso | cut -f1
5191223296
посчитать контрольную сумму образа (или просмотреть контрольную сумму образа из файла MD5SUM на сервере FTP):
$ md5sum alt-server-10.2-x86_64.iso
b06b8b45c579c430fc4c53ffd1111427 alt-server-10.2-x86_64.iso
подсчитать контрольную сумму записанного образа на DVD или USB Flash (выполняется под правами пользователя root):
# head -c 5191223296 /dev/sdd | md5sum
b06b8b45c579c430fc4c53ffd1111427
где размер после -c — вывод в п.1, а /dev/sdd — устройство DVD или USB Flash, на которое производилась запись.
Глава 5. Сохранение данных и меры предосторожности
Если необходимо установить ОС Альт Сервер и при этом сохранить уже установленную на компьютере операционную систему (например, другую версию GNU/Linux или Microsoft Windows), то нужно обязательно позаботиться о подготовке компьютера к установке второй системы и о сохранении ценных для вас данных.
Если у вас нет загрузочного диска для уже установленной системы, создайте его. В случае прерванной установки ОС Альт Сервер или неправильной настройки загрузчика, вы можете потерять возможность загрузиться в вашу предыдущую ОС.
Если на диске, выбранном для установки ОС Альт Сервер, не осталось свободного раздела, то программа установки должна будет изменить размер существующего раздела. От этой операции могут пострадать ваши данные, поэтому предварительно надо сделать следующие действия:
Выполнить проверку раздела, который вы собираетесь уменьшать. Для этого воспользуйтесь соответствующим программным обеспечением (далее — ПО), входящим в состав уже установленной ОС. Программа установки Альт Сервер может обнаружить некоторые очевидные ошибки при изменении размера раздела, но специализированное ПО предустановленной ОС справится с этой задачей лучше.
Выполнить дефрагментацию уменьшаемого раздела в целях повышения уровня безопасности данных. Это действие не является обязательным, но мы настоятельно рекомендуем его произвести: изменение размера раздела пройдёт легче и быстрее.
Полной гарантией от проблем, связанных с потерей данных, является резервное копирование!
Глава 6. Начало установки: загрузка системы
6.1. Способы первоначальной загрузки
Для загрузки компьютера с целью установки системы необходимо воспользоваться носителем, содержащим начальный загрузчик.
Простейший способ запустить программу установки — загрузить компьютер с помощью загрузочного носителя, находящегося на установочном DVD с дистрибутивом (при условии, что система поддерживает загрузку с устройства для чтения DVD).
Программу установки можно также запустить с другого загрузочного носителя. Например, в качестве загрузочного носителя может использоваться загрузочный USB-flash-накопитель.
Для того чтобы начать установку ОС Альт Сервер, достаточно загрузиться с носителя, на котором записан дистрибутив.
Предварительно следует включить в BIOS опцию загрузки с оптического привода или с USB-устройства.
В большинстве случаев указание способа входа в BIOS отображается на вашем мониторе непосредственно после включения компьютера. Способ входа в меню BIOS и информация о расположении настроек определяется производителем используемого оборудования. За информацией можно обратиться к документации на ваше оборудование.
Загрузка с установочного диска или специально подготовленного USB-flash-накопителя начинается с меню, в котором перечислено несколько вариантов загрузки:
— установка операционной системы;
— установка по VNC с соединением в сторону устанавливаемой машины. Параметры установки по VNC передаются как параметры ядра. Нажатие клавиши E позволяет задать пароль (по умолчанию — VNCPWD):
— восстановление уже установленной, но так или иначе поврежденной ОС Linux путем запуска небольшого образа ОС в оперативной памяти. Восстановление системы потребует некоторой квалификации. Этот пункт также может быть использован для сбора информации об оборудовании компьютера, которую можно отправить разработчикам, если ОС Альт Сервер устанавливается и работает неправильно. Загрузка восстановительного режима заканчивается приглашением командной строки:
[root@localhost /]#
— позволяет выбрать устанавливаемое ядро. По нажатию клавиши F5 открывается окно выбора ядра (ядро 6.1.79-un-def-alt загружается и устанавливается по умолчанию):
— проверка целостности оперативной памяти. Процесс диагностики заключается в проведении нескольких этапов тестирования каждого отдельного модуля ОЗУ (данный процесс будет выполняться бесконечно, пока его не остановят, необходимо дождаться окончания хотя бы одного цикла проверки).
— позволяет получить доступ к настройкам UEFI.
Начальный загрузчик в режиме Legacy:
Пункт — позволяет запустить уже установленную на жёсткий диск операционную систему.
Мышь на этом этапе установки не поддерживается. Для выбора опций установки и различных вариантов необходимо использовать клавиатуру.
Нажатием клавиши E можно вызвать редактор параметров текущего пункта загрузки. Если система настроена правильно, то редактировать их нет необходимости.
Чтобы начать процесс установки, нужно клавишами перемещения курсора вверх и вниз выбрать пункт меню и нажать Enter. Начальный этап установки не требует вмешательства пользователя: происходит автоматическое определение оборудования и запуск компонентов программы установки. Сообщения о происходящем на данном этапе можно просмотреть, нажав клавишу ESC.
В начальном загрузчике установлено небольшое время ожидания: если в этот момент не предпринимать никаких действий, то будет загружена та система, которая уже установлена на жестком диске. Если вы пропустили нужный момент, перезагрузите компьютер и вовремя выберите пункт .
Глава 7. Последовательность установки
До того как будет произведена установка базовой системы на жёсткий диск, программа установки работает с образом системы, загруженным в оперативную память компьютера.
Если инициализация оборудования завершилась успешно, будет запущен графический интерфейс программы-установщика. Процесс установки разделён на шаги. Каждый шаг посвящён настройке или установке определённого свойства системы. Шаги нужно проходить последовательно. Переход к следующему шагу происходит по нажатию кнопки Далее. При помощи кнопки Назад, при необходимости, можно вернуться к уже пройденному шагу и изменить настройки. Однако возможность перехода к предыдущему шагу ограничена теми шагами, в которых нет зависимости от данных, введённых ранее.
Если по каким-то причинам возникла необходимость прекратить установку, необходимо нажать кнопку <Reset> на корпусе системного блока компьютера.
Совершенно безопасно выполнить отмену установки только до шага «
Подготовка диска», поскольку до этого момента не производится никаких изменений на жёстком диске. Если прервать установку между шагами «
Подготовка диска» и «
Установка загрузчика», существует вероятность, что после этого с жёсткого диска не сможет загрузиться ни одна из установленных систем (если такие имеются).
Технические сведения о ходе установки можно посмотреть, нажав Ctrl+Alt+F1, вернуться к программе установки — Ctrl+Alt+F7. По нажатию Ctrl+Alt+F2 откроется отладочная виртуальная консоль.
Каждый шаг сопровождается краткой справкой, которую можно вызвать, щёлкнув кнопку Справка или нажав клавишу F1.
Нажатие на кнопку
позволяет показать/скрыть панель со списком шагов установки:
Во время установки системы выполняются следующие шаги:
Установка Альт Сервер начинается с выбора основного языка — языка интерфейса программы установки и устанавливаемой системы. В списке, помимо доступных языков региона (выбранного на этапе начальной загрузки), указан и английский язык.
На этом же этапе выбирается вариант переключения раскладки клавиатуры. Раскладка клавиатуры — это привязка букв, цифр и специальных символов к клавишам на клавиатуре. Помимо ввода символов на основном языке, в любой системе Linux необходимо иметь возможность вводить латинские символы (имена команд, файлов и т.п.). Для этого обычно используется стандартная английская раскладка клавиатуры. Переключение между раскладками осуществляется при помощи специально зарезервированных для этого клавиш. Для русского языка доступны следующие варианты переключения раскладки:
Если выбранный основной язык имеет всего одну раскладку (например, при выборе английского языка в качестве основного), эта единственная раскладка будет принята автоматически.
Глава 9. Лицензионное соглашение
Перед продолжением установки следует внимательно прочитать условия лицензии. В лицензии говорится о ваших правах. В частности, за вами закрепляются права на:
эксплуатацию программ на любом количестве компьютеров и в любых целях;
распространение программ (сопровождая их копией авторского договора);
получение исходных текстов программ.
Если вы приобрели дистрибутив, то данное лицензионное соглашение прилагается в печатном виде к вашей копии дистрибутива. Лицензия относится ко всему дистрибутиву Альт Сервер. Если вы согласны с условиями лицензии, отметьте пункт Да, я согласен с условиями и нажмите кнопку Далее.
На данном этапе выполняется выбор региона и города, по которым будет определен часовой пояс и установлены системные часы.
Для корректной установки даты и времени достаточно правильно указать часовой пояс и выставить желаемые значения для даты и времени.
На этом шаге следует выбрать часовой пояс, по которому нужно установить часы. Для этого в соответствующих списках выберите регион, а затем город. Поиск по списку можно ускорить, набирая на клавиатуре первые буквы искомого слова.
Пункт Хранить время в BIOS по Гринвичу выставляет настройки даты и времени в соответствии с часовыми поясами, установленными по Гринвичу, и добавляет к местному времени часовую поправку для выбранного региона.
После выбора часового пояса будут предложены системные дата и время по умолчанию.
Для ручной установки текущих даты и времени нужно нажать кнопку Изменить…. Откроется окно ручной настройки системных параметров даты и времени.
Для сохранения настроек и продолжения установки системы в окне ручной установки даты и времени необходимо нажать кнопку ОК и затем в окне Дата и время нажать кнопку Далее.
В случае если ОС Альт Сервер устанавливается как вторая ОС, необходимо снять отметку с пункта Хранить время в BIOS по Гринвичу, иначе время в уже установленной ОС может отображаться некорректно.
Глава 11. Подготовка диска
На этом этапе подготавливается площадка для установки Альт Сервер, в первую очередь — выделяется свободное место на диске.
Переход к этому шагу может занять некоторое время. Время ожидания зависит от производительности компьютера, объёма жёсткого диска, количества разделов на нём и других параметров.
11.1. Выбор профиля разбиения диска
После завершения первичной конфигурации загрузочного носителя откроется окно Подготовка диска. В списке разделов перечислены уже существующие на жёстких дисках разделы (в том числе здесь могут оказаться съёмные flash-диски, подключённые к компьютеру в момент установки).
В списке
Выберите профиль перечислены доступные профили разбиения диска. Профиль — это шаблон распределения места на диске для установки ОС. Можно выбрать один из профилей:
Установка сервера;
Вручную.
11.2. Автоматический профиль разбиения диска
Профиль Установка сервера предполагает автоматическое разбиение диска. При выборе этого профиля будет создан раздел под корень (swap и раздел под efi автоматически). Если размер диска больше 100 ГБ, будет также создан раздел /var
.
Если при применении профиля автоматического разбиения диска доступного места на диске окажется недостаточно, то на монитор будет выведено сообщение об ошибке:
Невозможно применить профиль, недостаточно места на диске.
Для решения этой проблемы можно полностью очистить место на диске, отметив пункт Очистить выбранные диски перед применением профиля и применить профиль повторно.
Если сообщение о недостатке места на диске появляется и при отмеченном пункте Очистить выбранные диски перед применением профиля, то это связано с недостаточным для использования автоматических методов разметки объёмом выбранных дисков. В этом случае вы можете воспользоваться методом ручной разметки: профиль Вручную.
При отмеченном пункте Очистить выбранные диски перед применением профиля будут удалены все данные с выбранных дисков (включая внешние USB-носители) без возможности восстановления. Рекомендуется использовать эту возможность при полной уверенности в том, что диски не содержат никаких ценных данных.
Для продолжения установки следует нажать кнопку Далее. Появится окно со списком настроенных разделов и их точек монтирования. Если вы уверены в том, что подготовка диска завершена, подтвердите переход к следующему шагу нажатием кнопки ОК.
11.3. Ручной профиль разбиения диска
При необходимости освободить часть дискового пространства следует воспользоваться профилем разбиения Вручную. В этом случае можно удалить некоторые из существующих разделов или содержащиеся в них файловые системы. После этого можно создать необходимые разделы самостоятельно или вернуться к шагу выбора профиля и применить автоматический профиль. Выбор этой возможности требует знаний об устройстве диска и технологиях его разметки.
По нажатию кнопки Далее будет произведена запись новой таблицы разделов на диск и форматирование разделов. Только что созданные на диске программой установки разделы пока не содержат данных и поэтому форматируются без предупреждения. Уже существовавшие, но изменённые разделы, которые будут отформатированы, помечаются специальным значком в колонке Файловая система слева от названия. При уверенности в том, что подготовка диска завершена, подтвердите переход к следующему шагу нажатием кнопки Далее.
Не следует форматировать разделы с теми данными, которые вы хотите сохранить, например, со старыми пользовательскими данными (/home
) или с другими операционными системами. С другой стороны, отформатировать можно любой раздел, который вы хотите «очистить» (удалить все данные).
Не уменьшайте NTFS-раздел с установленной Microsoft Windows Vista/Windows 7 средствами программы установки. В противном случае вы не сможете загрузить Microsoft Windows Vista/Windows 7 после установки Альт Сервер. Для выделения места под установку Альт Сервер воспользуйтесь средствами, предоставляемыми самой Microsoft Windows Vista/Windows 7: Управление дисками → Сжать.
Для того чтобы система правильно работала (в частности могла загрузиться) с UEFI, при ручном разбиении диска надо обязательно сделать точку монтирования
/boot/efi
, в которую нужно смонтировать vfat раздел с загрузочными записями. Если такого раздела нет, то его надо создать вручную. При разбивке жёсткого диска в автоматическом режиме такой раздел создаёт сам установщик. Особенности разбиения диска в UEFI-режиме:
требуется создать новый или подключить существующий FAT32-раздел с GPT-типом ESP (efi system partition) размером ~100—500 Мб (будет смонтирован в /boot/efi
);
может понадобиться раздел типа bios boot partition минимального размера, никуда не подключенный и предназначенный для встраивания grub2-efi;
остальные разделы — и файловая система, и swap — имеют GPT-тип basic data; актуальный тип раздела задаётся отдельно.
Для сохранения всех внесенных настроек и продолжения установки в окне Подготовка диска нужно нажать кнопку Далее. Появится окно со списком настроенных разделов и их точек монтирования. Если вы уверены в том, что подготовка диска завершена, подтвердите переход к следующему шагу нажатием кнопки ОК.
11.4. Дополнительные возможности разбиения диска
Ручной профиль разбиения диска позволяет установить ОС на программный RAID-массив, разместить разделы в томах LVM и использовать шифрование на разделах. Данные возможности требуют от пользователя понимания принципов функционирования указанных технологий.
11.4.1. Создание программного RAID-массива
Избыточный массив независимых дисков RAID (redundant array of independent disks) — технология виртуализации данных, которая объединяет несколько жёстких дисков в логический элемент для избыточности и повышения производительности.
Для создания программного RAID-массива потребуется минимум два жёстких диска.
Программа установки поддерживает создание программных RAID-массивов следующих типов:
RAID 1;
RAID 0;
RAID 4/5/6;
RAID 10.
Процесс подготовки к установке на RAID условно можно разбить на следующие шаги:
создание разделов на жёстких дисках;
создание RAID-массивов на разделах жёсткого диска;
создание файловых систем на RAID-массиве.
Для создания программного RAID-массива может потребоваться предварительно удалить существующую таблицу разделов с жёсткого диска.
Системный раздел EFI должен быть физическим разделом в основной таблице разделов диска.
Для настройки параметров нового раздела из состава RAID-массива необходимо выбрать неразмеченный диск в окне профиля разбивки пространства Вручную и нажать кнопку Создать раздел.
Для создания программного массива на GPT-разделах следует сначала создать разделы типа basic data и не создавать на них том (снять отметку с пункта Создать том):
В этом окне необходимо настроить следующие параметры:
Размер — в поле необходимо указать размер будущего раздела в Мбайт;
Смещение — в поле необходимо указать смещение начала данных на диске в Мбайт;
Тип раздела — в выпадающем поле нужно выбрать значение для последующего включения раздела в RAID-массив.
В режиме Legacy при создании разделов на жёстких дисках для последующего включения их в RAID-массивы следует указать Тип раздела для них равным :
На втором диске создать два раздела с типом без создания на них томов. При этом разделы на разных дисках должны совпадать по размеру.
При создании разделов следует учесть, что объём результирующего массива может зависеть от размера, включённых в него разделов жёсткого диска. Например, при создании RAID 1 результирующий размер массива будет равен размеру минимального участника.
После создания разделов на дисках можно переходить к организации самих RAID-массивов. Для этого в списке следует выбрать пункт RAID, после чего нажать кнопку Создать RAID:
Далее мастер предложит выбрать тип массива:
И указать участников RAID-массива (по умолчанию выбираются все разделы, поэтому необходимо снять отметку с раздела ):
Результат создания RAID-массива:
После того, как RAID-массив создан, его можно использовать как обычный раздел на жёстких дисках, то есть на нём можно создавать файловые системы или же, например, включать в LVM-тома.
После установки системы можно будет создать ещё один RAID-массив и добавить в него загрузочный раздел (/boot/efi
).
11.4.2. Создание LVM-томов
Менеджер логических дисков LVM (Logical Volume Manager) — средство гибкого управления дисковым пространством, позволяющее создавать поверх физических разделов (либо неразбитых дисков) логические тома, которые в самой системе будут видны как обычные блочные устройства с данными (обычные разделы).
Процесс подготовки к установке на LVM условно можно разбить на следующие шаги:
создание разделов на жёстких дисках;
создание группы томов LVM;
создание томов LVM;
создание файловых систем на томах LVM.
Для создания группы томов LVM может потребоваться предварительно удалить существующую таблицу разделов с жёсткого диска.
Системный раздел EFI должен быть физическим разделом в основной таблице разделов диска, не под LVM.
Для настройки параметров нового раздела необходимо выбрать неразмеченный диск в окне профиля разбивки пространства Вручную и нажать кнопку Создать раздел:
При создании разделов на жёстких дисках для последующего включения их в LVM-тома следует указать Тип раздела для них равным и не создавать на них том (снять отметку с пункта Создать том):
В режиме Legacy при создании разделов на жёстких дисках для последующего включения их в LVM-тома следует указать Тип раздела для них равным :
После создания разделов на дисках можно переходить к созданию группы томов LVM. Для этого в списке следует выбрать пункт LVM, после чего нажать кнопку Создать группу томов:
В открывшемся окне необходимо выбрать разделы, которые будут входить в группу томов, указать название группы томов и выбрать размер экстента:
Размер экстента представляет собой наименьший объем пространства, который может быть выделен тому. Размер экстента по умолчанию 65536 (65536*512 байт = 32 Мб, где 512 байт — размер сектора).
После того, как группа томов LVM создана, её можно использовать как обычный жёсткий диск, то есть внутри группы томов можно создавать тома (аналог раздела на физическом жёстком диске) и файловые системы внутри томов.
11.4.3. Создание шифрованных разделов
Программа установки Альт Сервер позволяет создавать шифрованные разделы.
Процесс создания шифрованного раздела ничем не отличается от процесса создания обычного раздела и инициируется нажатием на кнопку Создать шифруемый раздел:
После создания шифрованного раздела мастер, как и при создании обычного раздела, предложит создать на нём файловую систему и при необходимости потребует указать точку монтирования:
Установка загрузчика на шифрованный раздел не поддерживается.
11.4.4. Создание подтомов BtrFS
Подтом (subvolume) не является блочным устройством, но в каждом томе btrfs создаётся один подтом верхнего уровня (subvolid=5), в этом подтоме могут создаваться другие подтома и снапшоты. Подтома (подразделы, subvolumes) создаются ниже вершины дерева BtrFS по мере необходимости, например, для
/
и
/home
создаются подтома с именами @ и @home. Это означает, что для монтирования подтомов необходимы определенные параметры вместо корня системы BtrFS по умолчанию:
подтом @ монтируется в /
с помощью опции subvol=@;
подтом @home, если он используется, монтируется в /home
с помощью параметра монтирования subvol=@home.
Программа установки Альт Сервер позволяет создать подтома (subvolume), указав разные точки монтирования.
Процесс подготовки к установке на подтома условно можно разбить на следующие шаги:
В данном разделе рассмотрен вариант подготовки раздела BtrFS с разбивкой на подразделы @ и @home.
Для настройки параметров нового раздела необходимо выбрать неразмеченный диск в окне профиля разбивки пространства Вручную и нажать кнопку Создать раздел:
При создании раздела на жёстком диске следует указать Тип раздела равным или :
В режиме Legacy при создании раздела на жёстком диске для последующего создания подтомов BtrFS следует указать Тип раздела равным :
На следующем шаге выбрать файловую систему BtrFS:
В окне Изменить точку монтирования нажать кнопку Отмена (не указывать точку монтирования для раздела):
После создания раздела можно переходить к созданию подтомов. Для этого в списке следует выбрать раздел с файловой системой BtrFS, после чего нажать кнопку Создать подтом:
В открывшемся окне следует указать имя подтома или путь до него. Создание подтома @home:
Данное действие следует повторить для создания подтома @.
После создания подтомов необходимо указать точки монтирования для каждого тома. Для этого выбрать подтом и нажать кнопку Изменить точку монтирования:
В открывшемся окне указать точку монтирования:
Далее можно установить систему как обычно.
11.4.5. Настройка RAID-массива с IMSM-метаданными (Intel VROC)
RAID (0/1/5/10) массив должен быть сформирован средствами UEFI BIOS на основе INTEL VROC. На этом массиве также средствами UEFI BIOS может быть сформирован логический том (Volume).
Программа установки Альт Сервер позволяет:
выбрать IMSM-раздел для размещения на нём какой-то точки монтирования;
удалить и создать заново раздел;
удалить и создать GPT и разделы для загрузки и системы.
Пример разбивки (GPT) тома на разделы средствами установщика:
Глава 12. Перемонтирование
По завершении этапа подготовки диска начинается шаг перемонтирования. Он проходит автоматически и не требует вмешательства пользователя. На экране отображается индикатор выполнения.
Глава 13. Установка системы
На данном этапе происходит распаковка ядра и установка набора программ, необходимых для работы Альт Сервер.
Программа установки предлагает выбрать дополнительные пакеты программ, которые будут включены в состав Альт Сервер и установлены вместе с ней на диск.
13.1. Дополнительные приложения
В дистрибутиве Альт Сервер доступно значительное количество программ, часть из них составляет саму операционную систему, а остальные — это прикладные программы и утилиты.
В Альт Сервер все операции установки и удаления производятся над пакетами — отдельными компонентами системы. Пакет и программа соотносятся неоднозначно: иногда одна программа состоит из нескольких пакетов, иногда один пакет включает несколько программ.
В процессе установки системы обычно не требуется детализированный выбор компонентов на уровне пакетов — это требует слишком много времени и знаний от проводящего установку, тем более, что комплектация дистрибутива подбирается таким образом, чтобы из имеющихся программ можно было составить полноценную рабочую среду для соответствующей аудитории пользователей. Поэтому в процессе установки системы пользователю предлагается выбрать из небольшого списка групп пакетов именно те, которые необходимы для решения наиболее распространённых задач. Под списком групп на экране отображается информация об объёме дискового пространства, которое будет занято после установки пакетов, входящих в выбранные группы.
При установке сервера доступны следующие профили:
Офисный сервер — для установки будут предложены группы пакетов с серверными приложениями и система управления сетевыми интерфейсами systemd-networkd;
Сервер Samba DC (контроллер AD) — для установки будут предложена группа пакетов для конфигурации сервера в качестве контроллера AD;
Домашний сервер — в состав устанавливаемых пакетов будут включены инструменты диагностики, графическая среда MATE и система управления сетевыми интерфейсами NetworkManager;
Минимальная установка — дополнительное ПО в состав устанавливаемых пакетов включаться не будет.
После выбора профиля можно изменить состав устанавливаемых пакетов.
При установке серверного приложения Сервер Nextcloud после загрузки будет доступна служба Nextcloud 27. Для доступа к административным функциям этого приложения через веб-интерфейс необходимо сменить пароль администратора в «Центре управления системой» (пароль должен быть достаточно сложным и содержать не менее 10 символов).
Веб-приложение Nextcloud, установленное при установке системы, будет доступно по адресу https://localhost/nextcloud/. Администратор: ncadmin, пароль: пароль пользователя root.
При первом запуске установленной системы запускаются скрипты настройки данного приложения, поэтому первый запуск системы может занять достаточно продолжительное время.
Под списком групп на экране отображается информация об объёме дискового пространства, которое будет занято после установки пакетов, входящих в выбранные группы.
Опция Показать состав группы выводит список программных пакетов, входящих в состав той или иной группы пакетов.
Если выбрана группа пакетов
Сборка пакетов, после установки системы необходимо настроить пользователя для сборки. Для этого следует выполнить команду (если пользователь не существует, он будет создан):
# builder-useradd <имя_пользователя>
и перелогиниться.
Выбрав необходимые группы, следует нажать кнопку Далее, после чего начнётся установка пакетов.
На этом этапе происходит установка набора программ, необходимых для работы системы.
Установка происходит автоматически в два этапа:
получение пакетов;
установка пакетов.
Получение пакетов осуществляется из источника, выбранного на этапе начальной загрузки. При сетевой установке (по протоколу FTP или HTTP) время выполнения этого шага будет зависеть от скорости соединения и может быть значительно большим в сравнении с установкой с лазерного диска.
Глава 14. Сохранение настроек
Начиная с данного этапа, программа установки работает с файлами только что установленной базовой системы. Все последующие изменения можно будет совершить после завершения установки посредством редактирования соответствующих конфигурационных файлов или при помощи модулей управления, включенных в дистрибутив.
По завершении установки базовой системы начинается шаг сохранения настроек. Он проходит автоматически и не требует вмешательства пользователя. На экране отображается индикатор выполнения.
На этом шаге производится перенос настроек, выполненных на первых шагах установки, в только что установленную базовую систему. Производится также запись информации о соответствии разделов жесткого диска смонтированным на них файловым системам (заполняется конфигурационный файл /etc/fstab
).
После сохранения настроек осуществляется автоматический переход к следующему шагу.
Глава 15. Установка загрузчика
Загрузчик ОС — это программа, которая позволяет загружать Альт Сервер и другие ОС, если они установлены на данной машине.
При установке на
EFI модуль установки загрузчика предложит вариант установить загрузчик в специальный раздел «» (рекомендуется выбрать автоматическое разбиение на этапе разметки диска для создания необходимых разделов для загрузки с
EFI):
Варианты установки загрузчика при установке в режиме EFI:
— при установке загрузчика в NVRAM будет добавлена запись, без которой большинство компьютеров не смогут загрузиться во вновь установленную ОС;
— перед добавлением записи в NVRAM её содержимое будет сохранено в /root/.install-log
, после чего из неё будут удалены все загрузочные записи, что приведёт к восстановлению полностью заполненной NVRAM и гарантирует загрузку вновь установленной ОС;
— этот вариант следует выбрать, только если инсталлятор не может создать запись в NVRAM или если заведомо известно, что запись в NVRAM может вывести компьютер из строя (вероятно, запись в NVRAM придётся создать после установки ОС средствами BIOS Setup);
— этот вариант следует выбрать, только если ОС устанавливается на съёмный накопитель. Этот вариант также можно использовать вместо варианта при условии, что это будет единственная ОС на данном накопителе. Создавать запись в NVRAM не потребуется.
Выбор варианта установки загрузчика, зависит от вашего оборудования. Если не работает один вариант, попробуйте другие.
Установка загрузчика при установке в режиме Legacy:
Программа установки автоматически определяет, в каком разделе жёсткого диска следует располагать загрузчик для возможности корректного запуска ОС Альт Сервер. Положение загрузчика, в случае необходимости, можно изменить в списке Устройство, выбрав другой раздел.
Если же вы планируете использовать и другие ОС, уже установленные на этом компьютере, тогда имеет значение, на каком жёстком диске или в каком разделе будет расположен загрузчик.
Для ограничения доступа к опциям загрузки можно установить пароль на загрузчик. Для этого необходимо отметить пункт Установить или сбросить пароль и задать пароль в появившихся полях для ввода.
При необходимости изменения опций загрузки при старте компьютера потребуется ввести имя пользователя «boot» и заданный на этом шаге пароль.
Для подтверждения выбора и продолжения работы программы установки необходимо нажать кнопку Далее.
Глава 16. Настройка сети
На этом этапе необходимо задать параметры работы сетевой карты и настройки сети: IP-адреса сетевых интерфейсов, DNS-сервер, шлюз и т.п. Конкретные значения будут зависеть от используемого вами сетевого окружения. Ручного введения настроек можно избежать при наличии в сети настроенного DHCP-сервера. В этом случае все необходимые сетевые настройки будут получены автоматически.
В окне
Настройка сети доступны следующие поля:
Имя компьютера — сетевое имя компьютера (это общий сетевой параметр, не привязанный к какому либо конкретному интерфейсу);
Интерфейсы — список доступных сетевых интерфейсов;
Конфигурация — способ назначения IP-адресов (, , );
IP-адреса — пул назначенных IP-адресов из поля Добавить ↑ IP, выбранные адреса можно удалить нажатием кнопки Удалить;
Добавить ↑ IP — позволяет ввести IP-адрес вручную и выбрать в выпадающем поле предпочтительную маску сети. Для переноса адреса в пул поля IP-адреса необходимо нажать кнопку Добавить;
Шлюз по умолчанию — адрес шлюза, который будет использоваться сетью по умолчанию;
DNS-серверы — список предпочтительных DNS-серверов, которые будут получать информацию о доменах, выполнять маршрутизацию почты и управлять обслуживающими узлами для протоколов в домене;
Домены поиска — список предпочтительных доменов, по которым будет выполняться поиск.
При переключении конфигурации с на в поле IP-адреса может отображаться IP-адрес, полученный по DHCP. Этот адрес никак не используется в дальнейшей настройке. Необходимо удалить отображаемый IP-адрес и задать адрес вручную, иначе сетевому интефейсу будет назначен IP-адрес локальной заглушки (например, 127.0.0.2).
В окне, открываемом при нажатии кнопки Дополнительно, можно выбрать сетевую подсистему (NetworkManager, Etcnet, systemd-networkd) для интерфейса, а также указать должен ли запускаться данный интерфейс при загрузке системы.
Для сохранения настроек сети и продолжения работы программы установки необходимо нажать кнопку Далее.
Глава 17. Администратор системы
На данном этапе загрузчик создает учетную запись администратора. В открывшемся окне необходимо ввести пароль учетной записи администратора (root). Чтобы исключить опечатки при вводе пароля, пароль учетной записи вводится дважды.
Чтобы избежать последствий неверной раскладки клавиатуры можно просмотреть пароль, который будет сохранен. Для этого нажмите на значок глаза в поле ввода:
Для автоматической генерации пароля необходимо отметить пункт Создать автоматически. Система предложит пароль, сгенерированный автоматическим образом в соответствии с требованиями по стойкости паролей.
В любой системе Linux всегда присутствует один специальный пользователь — администратор системы, он же суперпользователь. Для него зарезервировано стандартное системное имя — root.
Администратор системы отличается от всех прочих пользователей тем, что ему позволено производить любые, в том числе самые разрушительные изменения в системе. Поэтому выбор пароля администратора системы — очень важный момент для безопасности. Любой, кто сможет ввести его правильно (узнать или подобрать), получит неограниченный доступ к системе. Даже ваши собственные неосторожные действия от имени root могут иметь катастрофические последствия для всей системы.
Стоит запомнить пароль root — его нужно будет вводить для получения права изменять настройки системы с помощью стандартных средств настройки Альт Сервер. Более подробную информацию о режиме суперпользователя вы можете прочитать в главе
Режим суперпользователя.
Подтверждение введенного (или сгенерированного) пароля учетной записи администратора (root) и продолжение работы программы установки выполняется нажатием кнопки Далее.
Глава 18. Системный пользователь
На данном этапе программа установки создает учетную запись системного пользователя (пользователя) Альт Сервер.
Помимо администратора (root) в систему необходимо добавить, по меньшей мере, одного обычного системного пользователя. Работа от имени администратора системы считается опасной, поэтому повседневную работу в Linux следует выполнять от имени ограниченного в полномочиях системного пользователя.
При добавлении системного пользователя предлагается ввести имя учётной записи пользователя. Имя учётной записи всегда представляет собой одно слово, состоящее только из строчных латинских букв (заглавные запрещены), цифр и символа подчёркивания «_» (причём цифра и символ «_» не могут стоять в начале слова).
Для того чтобы исключить опечатки, пароль пользователя вводится дважды. Пароль пользователя можно создать автоматически, по аналогии с автоматическим созданием пароля суперпользователя.
Для автоматической генерации пароля необходимо отметить пункт Создать автоматически. Система предложит пароль, сгенерированный автоматическим образом в соответствии с требованиями по стойкости паролей.
В процессе установки предлагается создать только одну учётную запись системного пользователя — от его имени можно выполнять задачи, не требующие привилегий суперпользователя. Учётные записи для всех прочих пользователей системы можно будет создать в любой момент после установки операционной системы.
Подтверждение введенного (или сгенерированного) пароля учетной записи системного пользователя и продолжение работы программы установки выполняется нажатием кнопки Далее.
Глава 19. Установка пароля на шифрованные разделы
Если вы не создавали шифруемые разделы, то этот шаг пропускается автоматически. В этом случае сразу переходите к главе
Завершение установки.
На этом этапе требуется ввести пароль для шифруемых разделов. Этот пароль потребуется вводить для того, чтобы получать доступ к информации на данных разделах.
Например, если вы зашифровали /home
, то во время загрузки системы будет необходимо ввести пароль для этого раздела, иначе вы не сможете получить доступ в систему под своим именем пользователя.
Глава 20. Завершение установки
На экране последнего шага установки отображается информация о завершении установки Альт Сервер.
После нажатия кнопки Завершить автоматически начнется перезагрузка системы.
Не забудьте извлечь установочный DVD (если это не происходит автоматически). Далее можно загружать установленную систему в обычном режиме.
Глава 21. Обновление системы до актуального состояния
После установки системы, её лучше сразу обновить до актуального состояния. Можно не обновлять систему и сразу приступать к работе только в том случае, если вы не планируете подключаться к сети или Интернету, не собираетесь устанавливать дополнительных программ.
Для обновления системы необходимо выполнить команды (с правами администратора):
# apt-get update
# apt-get dist-upgrade
# update-kernel
# apt-get clean
# reboot
Получить права администратора можно, выполнив в терминале команду:
$ su -
или зарегистрировавшись в системе (например, на второй консоли
Ctrl+
Alt+
F2) под именем
root. Про режим суперпользователя можно почитать в главе
Режим суперпользователя.
Глава 22. Автоматическая установка системы (autoinstall)
ОС Альт Сервер можно установить в автоматическом режиме. Для этого нужно иметь установочный диск и доступный по сети (по протоколам HTTP или FTP) каталог с несколькими файлами.
Настроить FTP-сервер можно, например, в
ЦУС (подробнее см.
FTP-сервер).
22.1. Файлы автоустановки
Файлы автоустановки:
pkg-groups.tar
— архив, содержащий дополнительные к базовой системе группы пакетов;
autoinstall.scm
— сценарий автоматической установки на языке Scheme;
vm-profile.scm
— различные варианты автоматической разбивки жёсткого диска на языке Scheme;
install-scripts.tar
— архив, содержащий дополнительные скрипты для preinstall.d и postinstall.d в одноимённых каталогах. Скрипты должны быть исполняемыми. Скрипты из архива заменяют одноимённые скрипты инсталлятора.
Файлы, описывающие процесс установки, необходимо поместить в каталог (например, metadata
), доступный по сети по протоколам HTTP или FTP.
22.1.1. Формат файла vm-profile.scm
Файл vm-profile.scm
содержит сценарий на языке Scheme, описывающий формат автоматической разбивки жёсткого диска.
Пример файла
vm-profile.scm
с одним профилем (server) разбивки жёсткого диска:
((server
(title . "Setup for server")
(action . trivial)
(actiondata ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods plain))
("/" (size 16384000 . 16384000 ) (fsim . "Ext4") (methods plain))
("/var" (size 4096000 . #t ) (fsim . "Ext4") (methods plain))))
)
В примере указана разбивка:
подкачка (swap) — 1024 МБ;
корневой раздел (/) — 8 ГБ;
/var — всё остальное, но не меньше 2 ГБ.
Все числа в файле vm-profile.scm
указываются в виде 512-байтных блоков, поэтому чтобы получить размер в байтах, нужно умножить значения на 512.
Добавление записи для /boot/efi
не требуется — установщик добавит её сам.
Пример файла
vm-profile.scm
с тремя профилями разбивки жёсткого диска:
((server
(title . "Setup for server")
(action . trivial)
(actiondata ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods plain))
("/" (size 16384000 . 16384000 ) (fsim . "Ext4") (methods plain))
("/var" (size 4096000 . #t ) (fsim . "Ext4") (methods plain))))
(server_lvm
(title . "Setup for server LVM")
(action . trivial)
(actiondata ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods lvm))
("/" (size 16384000 . 16384000 ) (fsim . "Ext4") (methods lvm))
("/var" (size 4096000 . #t ) (fsim . "Ext4") (methods lvm))))
(timeshift
(title . "Timeshift-compatible setup")
(action . trivial)
(actiondata ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods plain))
("" (size 40632320 . #t) (fsim . "BtrFS") (methods plain) (subvols ("@" . "/") ("@home" . "/home")))))
)
В примере указаны профили:
server — подкачка (swap), корневой раздел и раздел /var
;
server_lvm — подкачка (swap), корневой раздел и раздел /var
в томе LVM;
timeshift — подкачка (swap) и раздел BtrFS с разбивкой на подразделы @ и @home.
Имя профиля указывается в файле
autoinstall.scm
:
("/evms/profiles/server_lvm" action apply commit #f clearall #t exclude ())
22.1.2. Формат файла pkg-groups.tar
Файл
pkg-groups.tar
представляет собой tar-архив с двумя подкаталогами:
groups
— содержит описание групп программного обеспечения в файлах *.directory
;
lists
— содержит файлы со списками пакетов для каждой группы и скрытый файл .base
, содержащий список пакетов «базовой системы» (то есть те пакеты, которые устанавливаются в любом случае).
Файл pkg-groups.tar
проще всего взять из установочного ISO-образа из каталога /Metadata/
и доработать, если необходимо.
Для изменения списка пакетов:
Распаковать архив, например, выполнив команду:
$ tar xf pkg-groups.tar
Перейти в подкаталог
lists
и добавить или изменить файл группы. Имена пакетов указываются по одному в каждой строке, например, содержимое файла
admc
:
admc
alterator-gpupdate
gpupdate
local-policy
admx-basealt
samba-dc-common
admx-firefox
admx-chromium
gpui
Упаковать архив, например, выполнив команду:
$ tar cf pkg-groups.tar groups lists
Имя файла используемой группы затем указывается через пробел в
autoinstall.scm
:
(("pkg-install") action "write" lists "group-1 group-2" auto #t)
где
group-1
и
group-2
— имена файлов со списками пакетов из подкаталога
lists
.
В качестве источника пакетов при установке выступает сам диск, поэтому указание пакетов, которых нет на диске, приведёт к сбою установки.
22.1.3. Формат файла autoinstall.scm
Файл autoinstall.scm
представляет собой командный скрипт для программы установки, написанный с использованием языка программирования Scheme. Каждая строка скрипта — команда для модуля программы установки.
Пример файла
autoinstall.scm
:
; установка языка операционной системы (ru_RU)
("/sysconfig-base/language" action "write" lang ("ru_RU"))
; установка переключателя раскладки клавиатуры на Ctrl+Shift
("/sysconfig-base/kbd" language ("ru_RU") action "write" layout "ctrl_shift_toggle")
; установка часового пояса в Europe/Moscow, время в BIOS будет храниться в UTC
("/datetime-installer" action "write" commit #t name "RU" zone "Europe/Moscow" utc #t)
; автоматическая разбивка жёсткого диска в профиле server_lvm
("/evms/control" action "write" control open installer #t)
("/evms/control" action "write" control update)
("/evms/profiles/server_lvm" action apply commit #f clearall #t exclude ())
("/evms/control" action "write" control commit)
("/evms/control" action "write" control close)
; перемонтирование
("/remount-destination" action "write")
; установка пакетов операционной системы
("pkg-init" action "write")
; установка только базовой системы (дополнительные группы пакетов из pkg-groups.tar указываются по именам через пробел)
("/pkg-install" action "write" lists "" auto #t)
("/preinstall" action "write")
; установка загрузчика GRUB в efi
("/grub" action "write" device "efi" passwd #f passwd_1 "*" passwd_2 "*")
; настройка сетевого интерфейса на получение адреса по DHCP
("/net-eth" action "write" reset #t)
("/net-eth" action "write" name "enp0s3" ipv "4" configuration "dhcp" default "" search "" dns "" computer_name "newhost" ipv_enabled #t)
("/net-eth" action "write" commit #t)
; установка пароля суперпользователя root '123'
("/root/change_password" passwd_2 "123" passwd_1 "123")
; задание первого пользователя 'user' с паролем '123'
("/users/create_account" new_name "user" gecos "user" allow_su #t auto #f passwd_1 "123" passwd_2 "123" autologin #f)
;("/postinstall/firsttime" script "ftp://192.168.0.123/metadata/update.sh")
В данном примере будет выполнена установка системы в минимальном профиле (дополнительное ПО в состав устанавливаемых пакетов включаться не будет). Если, например, необходимо установить графический интерфейс MATE, то в список устанавливаемых пакетов нужно добавить группу centaurus/mate:
("/pkg-install" action "write" lists "centaurus/mate" auto #t)
При установке системы в режиме EFI загрузчик устанавливается в специальный раздел efi. Пример установки пароля на загрузчик в режиме EFI (пароль '123'):
("/grub" action "write" device "efi" passwd #t passwd_1 "123" passwd_2 "123")
Если установка происходит в режиме Legacy, то загрузчик GRUB необходимо установить на первый жёсткий диск, например:
("/grub" action "write" device "/dev/sda" passwd #f passwd_1 "*" passwd_2 "*")
Пример настройки сетевого интерфейса на статический IP-адрес:
("/net-eth" action "write" reset #t)
("/net-eth" action "write" name "enp0s3" ipv "4" configuration "static" default "192.168.0.1" search "" dns "8.8.8.8" computer_name "newhost" ipv_enabled #t)
("/net-eth" action "add_iface_address" name "enp0s3" addip "192.168.0.25" addmask "24" ipv "4")
("/net-eth" action "write" commit #t)
где:
addip "192.168.0.25"
— IP-адрес;
default "192.168.0.1"
— шлюз по умолчанию;
dns "8.8.8.8"
— DNS-сервер;
computer_name "newhost"
— имя хоста.
В конец файла
autoinstall.scm
можно добавить шаг
/postinstall, который позволяет в конце установки или при первом запуске ОС выполнить команду или скрипт. Например:
("/postinstall/firsttime" script "ftp://192.168.0.123/metadata/update.sh")
У шага /postinstall есть два уровня запуска:
И два метода (method) указания скрипта запуска:
Примеры:
("/postinstall/firsttime" script "http://server/script.sh")
("/postinstall/firsttime" run "curl --silent --insecure http://server/finish")
("/postinstall/laststate" script "http://server/script.sh")
("/postinstall/laststate" run "curl --silent --insecure http://server/gotoreboot")
На уровне
laststate
для работы с установленной системой требуется указывать пути с
$destdir
или выполнять команды через run_chroot:
#!/bin/sh
a= . install2-init-functions
run_chroot sh -c "date > /root/STAMP_1"
date > $destdir/root/STAMP_2
22.1.4. Формат файла install-scripts.tar
Файл install-scripts.tar
представляет собой tar-архив содержащий дополнительные скрипты.
Скрипты preinstall.d выполняются сразу после установки базовой системы. Как правило, это скрипты для дополнительной настройки базовой системы (перед установкой дополнительного набора ПО) и для переноса настроек из среды инсталлятора. Добавлять сюда свои собственные скрипты стоит только тогда, когда вы чётко представляете свои цели. Скрипты postinstall.d выполняются сразу после последнего шага инсталлятора. Как правило, это скрипты, удаляющие служебные пакеты инсталлятора из базовой системы. Если нужно сделать какие-нибудь специфические настройки системы, то это можно сделать здесь.
Скрипты preinstall.d необходимо поместить в каталог
preinstall.d
, скрипты postinstall.d — в каталог
postinstall.d
. Упаковать архив можно, например, выполнив команду:
$ tar cf install-scripts.tar preinstall.d postinstall.d
Данные скрипты выполняются в среде установщика, а не в среде установленной системы. Для работы с установленной системой требуется указывать пути с
$destdir
или выполнять команды через run_chroot:
#!/bin/sh
a= . install2-init-functions
run_chroot sh -c "date > /root/STAMP_1"
date > $destdir/root/STAMP_2
22.2. Запуск автоматической установки
Для включения режима автоматической установки ядру инсталлятора ОС необходимо передать параметр загрузки
ai
(без значения) и параметр
curl
с указанием каталога с установочными файлами. Формат адреса в
curl
должен быть представлен в виде URL:
ai curl=ftp://<IP-адрес>/metadata/
Чтобы начать процесс автоматической установки ОС Альт Сервер, необходимо загрузиться с носителя, на котором записан дистрибутив. Затем клавишами перемещения курсора вверх и вниз выбрать пункт меню и нажать клавишу E. В открывшемся редакторе следует найти строку, начинающуюся с linux /boot/vmlinuz, в её конец дописать требуемые параметры:
После нажатия клавиши F10 начнётся автоматическая установка системы.
При невозможности получения файлов из указанного источника по сети, программа установки будет смотреть в следующих местах:
На диске в каталоге /Metadata/
.
В образе установщика в каталоге /usr/share/install2/metadata/
.
В случае возникновения каких-либо неприятностей не паникуйте, а спокойно разберитесь в сложившейся ситуации. Linux не так уж просто довести до полной неработоспособности и утраты ценных данных. Поспешные действия отчаявшегося пользователя могут привести к плачевным результатам. Помните, что решение есть, и оно обязательно найдётся!
23.1. Проблемы при установке системы
При возникновении проблем с UEFI или Legacy/CSM рекомендуется изменить выбор используемого вида прошивки на другой. Не следует выбирать режим смешанной загрузки Legacy/UEFI! Рекомендуется отключить всевозможные оптимизации и ускорение UEFI-загрузки, а также отключить на время установки SecureBoot.
Если в системе не произошла настройка какого-либо компонента после стадии установки пакетов, не отчаивайтесь, доведите установку до конца, загрузитесь в систему и попытайтесь в спокойной обстановке повторить настройку.
Нажатием клавиши E можно вызвать редактор параметров текущего пункта загрузки. В открывшемся редакторе следует найти строку, начинающуюся с linux /boot/vmlinuz, в её конец дописать требуемые параметры, отделив пробелом и нажать F10.
Примеры параметров пункта загрузки:
nomodeset
— не использовать modeset-драйверы для видеокарты;
vga=normal
— отключить графический экран загрузки установщика;
xdriver=vesa
— явно использовать видеодрайвер vesa. Данным параметром можно явно указать нужный вариант драйвера;
acpi=off noapic
— отключение ACPI (управление питанием), если система не поддерживает ACPI полностью.
Если вы вообще не смогли установить систему (не произошла или не завершилась стадия установки пакетов), то сначала попробуйте повторить попытку в безопасном режиме (apm=off acpi=off mce=off barrier=off vga=normal
). В безопасном режиме отключаются все параметры ядра, которые могут вызвать проблемы при загрузке. В этом режиме установка будет произведена без поддержки APIC. Возможно, у вас какое-то новое или нестандартное оборудование, но может оказаться, что оно отлично настраивается со старыми драйверами.
Если вы хотите получить точный ответ, то сообщите, пожалуйста, подробный состав вашего оборудования и подробное описание возникшей проблемы в
нашей системе отслеживания ошибок.
23.2. Проблемы с загрузкой системы
Если не загружается ни одна из установленных операционных систем, то значит, есть проблема в начальном загрузчике. Такие проблемы могут возникнуть после установки системы, в случае если загрузчик все-таки не установлен или установлен с ошибкой. При установке или переустановке Windows на вашем компьютере загрузчик Linux будет перезаписан в принудительном порядке, и станет невозможно запускать Linux.
Повреждение или перезапись загрузчика никак не затрагивает остальные данные на жёстком диске, поэтому в такой ситуации очень легко вернуть работоспособность: для этого достаточно восстановить загрузчик.
Если у вас исчез загрузчик другой операционной системы или другого производителя, то внимательно почитайте соответствующее официальное руководство на предмет его восстановления. Но в большинстве случаев вам это не потребуется, так как загрузчик, входящий в состав Альт Сервер, поддерживает загрузку большинства известных операционных систем.
Для восстановления загрузчика достаточно любым доступным способом загрузить Linux и получить доступ к тому жёсткому диску, на котором находится повреждённый загрузчик. Для этого проще всего воспользоваться восстановительным режимом, который предусмотрен на установочном диске дистрибутива (пункт ).
Загрузка восстановительного режима заканчивается приглашением командной строки: [root@localhost /]#
. Начиная с этого момента, система готова к вводу команд.
В большинстве случаев для восстановления загрузчика можно просто воспользоваться командой fixmbr
без параметров. Программа попытается переустановить загрузчик в автоматическом режиме.
Часть III. Начало использования Альт Сервер
В этой части рассматривается загрузка установленной операционной системы и вход в среду рабочего стола.
Глава 24. Загрузка системы
Запуск Альт Сервер выполняется автоматически после запуска компьютера и отработки набора программ BIOS.
На экране появляется меню, в котором перечислены возможные варианты загрузки операционной системы.
При первом старте, в условиях установки нескольких ОС на один компьютер, возможно отсутствие в загрузочном меню пункта/пунктов с другой/другими операционными системами, они будут добавлены в список при последующей перезагрузке. Все перечисленные в меню после перезагрузки варианты могут быть загружены загрузчиком Linux.
Стрелками клавиатуры Вверх и Вниз выберите нужную операционную систему. Дополнительно к основным вариантам запуска ОС из этого меню можно загрузить Linux в безопасном режиме или запустить проверку памяти.
Загрузка операционной системы по умолчанию (первая в списке) начинается автоматически после небольшого времени ожидания (обычно несколько секунд). Нажав клавишу Enter, можно начать загрузку немедленно.
Нажатием клавиши E можно вызвать редактор параметров текущего пункта загрузки. Если система настроена правильно, то редактировать их нет необходимости.
В процессе загрузки Альт Сервер пользователь может следить за информацией процесса загрузки, которая отображает этапы запуска различных служб и программных серверов в виде отдельных строк, на экране монитора.
При этом каждая строка начинается словом вида [XXXXXXX] (FAILED или OK), являющегося признаком нормального или ненормального завершения этапа загрузки. Слово XXXXXXX=FAILED (авария) свидетельствует о неуспешном завершении этапа загрузки, что требует вмешательства и специальных действий администратора системы.
Загрузка операционной системы может занять некоторое время, в зависимости от производительности компьютера. Основные этапы загрузки операционной системы — загрузка ядра, подключение (монтирование) файловых систем, запуск системных служб — периодически могут дополняться проверкой файловых систем на наличие ошибок. В этом случае время ожидания может быть занять больше времени, чем обычно. Подробную информацию о шагах загрузки можно получить, нажав клавишу Esc.
Глава 25. Получение доступа к зашифрованным разделам
В случае, если вы создали шифрованный раздел, вам потребуется вводить пароль при обращении к этому разделу.
Например, если был зашифрован домашний раздел /home
, то для того, чтобы войти в систему под своим именем пользователя, вам потребуется ввести пароль этого раздела и затем нажать Enter.
Если не ввести пароль за отведенный промежуток времени, то загрузка системы завершится ошибкой. В этом случае вам следует перезагрузить систему, нажав для этого два раза Enter, а затем клавиши Ctrl+Alt+Delete.
Глава 26. Вход в систему
26.1. Вход и работа в консольном режиме
Стандартная установка Альт Сервер включает базовую систему, работающую в консольном режиме.
При загрузке в консольном режиме работа загрузчика Альт Сервер завершается запросом на ввод логина и пароля учетной записи. В случае необходимости на другую консоль можно перейти, нажав Ctrl+Alt+F2.
Сразу после загрузки в консоли будут показаны имя и IP-адрес компьютера.
Для дальнейшего входа в систему необходимо ввести логин и пароль учетной записи пользователя.
В случае успешного прохождения процедуры аутентификации и идентификации будет выполнен вход в систему. ОС Альт Сервер перейдет к штатному режиму работы и предоставит дальнейший доступ к консоли.
26.2. Виртуальная консоль
В процессе работы ОС Альт Сервер активно несколько виртуальных консолей. Каждая виртуальная консоль доступна по одновременному нажатию клавиш Ctrl, Alt и функциональной клавиши с номером этой консоли от F1 до F6.
При установке системы в профиле по умолчанию на первой виртуальной консоли пользователь может зарегистрироваться и работать в графическом режиме. При нажатии Ctrl+Alt+F1 осуществляется переход на первую виртуальную консоль в графический режим.
Двенадцатая виртуальная консоль (Ctrl+Alt+F12) выполняет функцию системной консоли — на неё выводятся сообщения о происходящих в системе событиях.
26.3. Вход и работа в системе в графическом режиме
В состав ОС Альт Сервер также может входить графическая оболочка MATE. Графическая оболочка состоит из набора различных программ и технологий, используемых для управления ОС и предоставляющих пользователю удобный графический интерфейс для работы в виде графических оболочек и оконных менеджеров.
При загрузке в графическом режиме работа загрузчика ОС заканчивается переходом к окну входа в систему.
Для регистрации в системе необходимо выбрать имя пользователя из выпадающего списка. Далее необходимо ввести пароль, затем нажать Enter или щелкнуть на кнопке Войти. После непродолжительного времени ожидания запустится графическая оболочка операционной системы.
Добавлять новых пользователей или удалять существующих можно после загрузки системы с помощью стандартных средств управления пользователями.
Если систему устанавливали не вы, то имя системного пользователя и его пароль вам должен сообщить системный администратор, отвечающий за настройку данного компьютера.
Поскольку работа в системе с использованием учётной записи администратора системы небезопасна, вход в систему в графическом режиме для суперпользователя root запрещён. Попытка зарегистрироваться в системе будет прервана сообщением об ошибке.
Часть VII. Средства удаленного администрирования
Альт Сервер в сети организации может быть использован для решения различных задач. Он может предоставлять компьютерам сети общий доступ в Интернет, выступать в роли почтового сервера, файлового хранилища, веб-сервера и т.д. Все эти возможности обеспечиваются соответствующими службами, запускаемыми на сервере.
Дальнейшие разделы описывают некоторые возможности использования Альт Сервер, настраиваемые в ЦУС.
Эта и последующие главы рекомендуются к прочтению опытным пользователям и системным администраторам.
Глава 33. Вход в систему
Глава 34. Настройка подключения к Интернету
Помимо множества различных служб, которые Альт Сервер может предоставлять компьютерам сети, важно определить, будет ли сервер предоставлять общий доступ в Интернет для компьютеров домена или нет. В зависимости от этого сервер можно рассматривать как:
Сервер без подключения к сети Интернет
Типичный случай — это сервер с одним сетевым интерфейсом (одной сетевой картой), который и связывает его с компьютерами локальной сети. Такой сервер называется также
сервер рабочей группы.
Шлюз
В этом случае сервер обычно имеет два сетевых интерфейса (например, две сетевые карты), одна из которых служит для подключения к локальной сети, а другая — для подключения к сети Интернет.
Как для обеспечения доступа в сеть Интернет самого Альт Сервер, так и для настройки общего выхода в Интернет для компьютеров сети необходимо настроить подключение к Интернету на самом сервере. Альт Сервер поддерживает самые разные способы подключения к сети Интернет:
Ethernet;
PPTP;
PPPoЕ;
и т.д.
Для настройки подключения воспользуйтесь одним из разделов ЦУС .
Доступные разделы:
PPTP-соединения;
PPPoE-соединения;
Выберите раздел, соответствующий вашему типу подключения, и приступайте к настройке.
34.1. Конфигурирование сетевых интерфейсов
Конфигурирование сетевых интерфейсов осуществляется в модуле ЦУС (пакет alterator-net-eth) из раздела :
В модуле можно заполнить следующие поля:
Имя компьютера — указать сетевое имя ПЭВМ в поле для ввода имени компьютера (это общий сетевой параметр, не привязанный к какому-либо конкретному интерфейсу). Имя компьютера, в отличие от традиционного имени хоста в Unix (hostname), не содержит названия сетевого домена;
Интерфейсы — выбрать доступный сетевой интерфейс, для которого будут выполняться настройки;
Версия протокола IP — указать в выпадающем списке версию используемого протокола IP (IPv4, IPv6) и убедиться, что пункт Включить, обеспечивающий поддержку работы протокола, отмечен;
Конфигурация — выбрать способ назначения IP-адресов (службы DHCP, Zeroconf, вручную);
IP-адреса — пул назначенных IP-адресов из поля Добавить ↑ IP, выбранные адреса можно удалить нажатием кнопки Удалить;
Добавить ↑ IP — ввести IP-адрес вручную и выбрать в выпадающем поле предпочтительную маску сети, затем нажать кнопку Добавить для переноса адреса в пул назначенных IP-адресов (поле IP-адреса);
Шлюз по умолчанию — в поле для ввода необходимо ввести адрес шлюза, который будет использоваться сетью по умолчанию;
DNS-серверы — в поле для ввода необходимо ввести список предпочтительных DNS-серверов, которые будут получать информацию о доменах, выполнять маршрутизацию почты и управлять обслуживающими узлами для протоколов в домене;
Домены поиска — в поле для ввода необходимо ввести список предпочтительных доменов, по которым будет выполняться поиск. Если в поле Домены поиска перечислить наиболее часто используемые домены (например, domain), то можно пользоваться неполными именами машин (computer вместо computer.domain).
IP-адрес и Маска сети — обязательные параметры каждого узла IP-сети. Первый параметр – уникальный идентификатор машины, от второго напрямую зависит, к каким машинам локальной сети данная машина будет иметь доступ. Если требуется выход во внешнюю сеть, то необходимо указать параметр Шлюз по умолчанию.
В случае наличия DHCP-сервера можно все вышеперечисленные параметры получить автоматически — выбрав в списке Конфигурация пункт Использовать DHCP:
При переключении конфигурации с на в поле IP-адреса может отображаться IP-адрес, полученный по DHCP. Этот адрес никак не используется в дальнейшей настройке. Необходимо удалить отображаемый IP-адрес и задать адрес вручную, иначе сетевому интефейсу будет назначен IP-адрес локальной заглушки (например, 127.0.0.2).
Дополнительно для каждого интерфейса можно настроить сетевую подсистему (NetworkManager, Etcnet, systemd-networkd), а также должен ли запускаться данный интерфейс при загрузке системы:
Список доступных сетевых подистем зависит от пакетов, выбранных на этапе
Установка системы (группа пакетов ).
В списке Сетевая подсистема можно выбрать следующие режимы:
Etcnet
В этом режиме настройки берутся исключительно из файлов находящихся в каталоге настраиваемого интерфейса
/etc/net/ifaces/<интерфейс>
. Настройки сети могут изменяться либо в ЦУС в данном модуле, либо напрямую через редактирование файлов
/etc/net/ifaces/<интерфейс>
.
NetworkManager (etcnet)
В этом режиме
NetworkManager сам инициирует сеть, используя в качестве параметров — настройки из файлов Etcnet. Настройки сети могут изменяться либо в ЦУС в данном модуле, либо напрямую через редактирование файлов
/etc/net/ifaces/<интерфейс>
. В этом режиме можно просмотреть настройки сети, например, полученный по DHCP IP-адрес, через графический интерфейс
NetworkManager.
NetworkManager (native)
В данном режиме управление настройками интерфейса передаётся
NetworkManager и не зависит от файлов Etcnet. Управлять настройками можно через графический интерфейс
NetworkManager. Файлы с настройками находятся в каталоге
/etc/NetworkManager/system-connections
. Этот режим особенно актуален для задач настройки сети на клиенте, когда IP-адрес необходимо получать динамически с помощью DHCP, а DNS-сервер указать явно. Через ЦУС так настроить невозможно, так как при включении DHCP отключаются настройки, которые можно задавать вручную.
systemd-networkd
В данном режиме режиме управление настройками интерфейса передаётся службе systemd-networkd. Настройки сети могут изменяться либо в ЦУС в данном модуле (только настройки физического интерфеса), либо напрямую через редактирование файлов
/etc/systemd/network/<имя_файла>.network
,
/etc/systemd/network/<имя_файла>.netdev
,
/etc/systemd/network/<имя_файла>.link
. Данный режим доступен, если установлен пакет
systemd-networkd;
Не контролируется
В этом режиме интерфейс находится в состоянии DOWN (выключен).
После смены сетевой подсистемы c
Etcnet на
systemd-networkd может потребоваться вручную отключить службу network и включить systemd-networkd:
# systemctl disable --now network && systemctl enable --now systemd-networkd
И, наоборот, при смене с
systemd-networkd на
Etcnet отключить службу systemd-networkd и включить network:
# systemctl disable --now systemd-networkd && systemctl enable --now network
34.2. Объединение сетевых интерфейсов
Модуль (пакет alterator-net-bond) позволяет объединить несколько физических сетевых интерфейсов в один логический. Это позволяет достичь отказоустойчивости, увеличения скорости и балансировки нагрузки.
Для создания объединения интерфейсов необходимо выполнить следующие действия:
Нажать кнопку Создать объединение…:
Переместить сетевые интерфейсы, которые будут входить в объединение, из списка Доступные интерфейсы в список Используемые интерфейсы.
Выбрать режим объединения:
Round-robin — режим циклического выбора активного интерфейса для исходящего трафика;
Активный-резервный — активен только один интерфейс, остальные находятся в режиме горячей замены;
XOR — один и тот же интерфейс работает с определённым получателем, передача пакетов распределяется между интерфейсами на основе формулы ((MAC-адрес источника) XOR (MAC-адрес получателя)) % число интерфейсов;
Широковещательная — трафик идёт через все интерфейсы одновременно;
Агрегирование каналов по стандарту IEEE 802.3ad — в группу объединяются одинаковые по скорости и режиму интерфейсы, все физические интерфейсы используются одновременно в соответствии со спецификацией IEEE 802.3ad. Для реализации этого режима необходима поддержка на уровне драйверов сетевых карт и коммутатор, поддерживающий стандарт IEEE 802.3ad (коммутатор требует отдельной настройки);
Адаптивная балансировка нагрузки передачи — исходящий трафик распределяется в соответствии с текущей нагрузкой (с учётом скорости) на интерфейсах (для данного режима необходима его поддержка в драйверах сетевых карт). Входящие пакеты принимаются только активным сетевым интерфейсом;
Адаптивная балансировка нагрузки — включает в себя балансировку исходящего трафика и балансировку на приём (rlb) для IPv4 трафика и не требует применения специальных коммутаторов. Балансировка на приём достигается на уровне протокола ARP путём перехвата ARP ответов локальной системы и перезаписи физического адреса на адрес одного из сетевых интерфейсов (в зависимости от загрузки).
Указать, если это необходимо, параметры объединения в поле Параметры объединения.
Нажать кнопку Назад:
В результате будет создан агрегированный интерфейс bond0. Для данного интерфейса можно задать IP-адрес и, если необходимо, дополнительные параметры:
Нажать кнопку Применить.
Информацию о получившемся агрегированном интерфейсе можно посмотреть в /proc/net/bonding/bond0
.
Для удаления агрегированного интерфейса необходимо выбрать его в списке Интерфейсы и нажать кнопку Удалить объединение….
Модуль (пакет alterator-net-bridge) позволяет организовать виртуальный сетевой мост.
Если интерфейсы, входящие в состав моста, являются единственными физически подключенными и настройка моста происходит с удалённого узла через эти интерфейсы, то требуется соблюдать осторожность, так как эти интерфейсы перестанут быть доступны.
Для создания Ethernet-моста необходимо выполнить следующие действия:
У интерфейсов, которые будут входить в мост, удалить IP-адреса и шлюз по умолчанию (если они были установлены).
Нажать кнопку
Создать сетевой мост…:
В окне Сетевые мосты в поле Интерфейс-мост ввести имя моста.
В выпадающем списке Тип моста выбрать тип моста: (по умолчанию) или .
Переместить сетевые интерфейсы, которые будут входить в мост, из списка Доступные интерфейсы в список Члены.
Нажать кнопку Ок:
В результате будет создан сетевой интерфейс моста (в примере vmbr0). Для данного интерфейса можно задать IP-адрес и, если необходимо, дополнительные параметры:
Нажать кнопку Применить.
Для удаления интерфейса моста необходимо выбрать его в списке Интерфейсы и нажать кнопку Удалить сетевой мост….
34.4. Настройка общего подключения к сети Интернет
Пользователи корпоративных сетей обычно подключаются к сети Интернет через один общий канал. Для организации совместного доступа к сети Интернет стандартными средствами поддерживаются две технологии, которые могут использоваться как по отдельности, так и совместно:
Оба способа предполагают, что соединение с Интернет компьютера, через который предполагается настроить общий выход, предварительно
сконфигурировано . Сделать это можно в разделе ЦУС .
Отличительной особенностью использования прокси-сервера является то, что, помимо предоставления доступа к веб-сайтам, прокси-сервер кэширует загруженные страницы, а при повторном обращении к ним — отдаёт их из своего кэша. Это может существенно снизить потребление трафика.
У прокси-сервера есть два основных режима работы:
Для работы с прокси-сервером в прозрачном режиме не потребуется специальная настройка рабочих станций. Они лишь должны использовать сервер в качестве шлюза по умолчанию. Этого можно добиться, сделав соответствующие настройки на DHCP-сервере.
Для использования прокси-сервера в обычном режиме потребуется на каждом клиенте в настройках браузера указать данные прокси-сервера (IP-адрес и порт).
Преимуществом обычного режима работы, требующего перенастройки программ локальной сети, является возможность производить аутентификацию пользователей и контролировать их доступ во внешнюю сеть.
В различных браузерах местоположение формы настройки на прокси-сервер различное. Например, в браузере Firefox она доступна через меню → → → кнопка Настроить…. Здесь следует выбрать Ручная настройка прокси и указать IP-адрес и порт прокси-сервера.
По умолчанию прокси-сервер не предоставляет доступ в Интернет никому кроме себя самого. Список сетей, обслуживаемых прокси-сервером можно изменить, нажав на кнопку «Разрешённые сети…» в модуле ЦУС (пакет alterator-squid) из раздела .
Для того чтобы включить аутентификацию пользователей и контролировать их доступ во внешнюю сеть, необходимо выбрать обычный режим проксирования и способ аутентификации, отличный от Без аутентификации:
Прокси-сервер принимает запросы из локальной сети и, по мере необходимости, передаёт их во внешнюю сеть. Поступление запроса ожидается на определённом порту, который по умолчанию имеет стандартный номер 3128. Если по каким-то причинам не желательно использовать данный порт, то можно поменять его значение на любое другое.
Перед тем как выполнить перенаправление запроса, прокси-сервер проверяет принадлежность сетевого адрес узла, с которого запрос был отправлен к группе внутренних сетевых адресов. Для того чтобы запросы, отправленные из локальной сети, обрабатывались прокси-сервером, необходимо добавить соответствующую группу адресов (адрес подсети и адресную маску) в список внутренних сетей в разделе :
Вторым условием передачи запроса является принадлежность целевого порта к разрешённому диапазону. Посмотреть и отредактировать список разрешённых целевых портов можно в разделе :
Прокси-сервер позволяет вести
статистику посещений страниц в Интернете. Она доступна в модуле ЦУС (пакет
alterator-squidmill) в разделе . Основное предназначение статистики — просмотр отчёта об объёме полученных из Интернета данных в привязке к пользователям (если включена аутентификация) или к IP-адресам клиентов.
Статистика не собирается по умолчанию. Включить её сбор следует в модуле ЦУС (раздел ). Для этого отметьте Включить сбор данных прокси-сервера и нажмите кнопку Применить.
Для учёта пользователей в статистике нужно добавить хотя бы одно правило. Самое очевидное — запрет неаутентифицированных пользователей. Только после этого в статистике начнут показываться пользователи.
NAT (Network Address Translation, преобразование сетевых адресов) — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Таким образом, компьютеры локальной сети, имеющие IP-адреса, зарезервированные для использования исключительно в локальных сетях, могут использовать общий канал доступа к Интернет (общий внешний IP-адрес). При этом на компьютере-шлюзе, непосредственно подключённом к Интернет, выполняется преобразование адресов.
Настройка NAT осуществляется в модуле ЦУС (пакет alterator-net-iptables) из раздела . Для минимальной настройки достаточно выбрать режим работы Шлюз (NAT), отметить правильный внешний сетевой интерфейс и нажать на кнопку Применить.
34.5. Автоматическое присвоение IP-адресов (DHCP-сервер)
DHCP (Dynamic Host Configuration Protocol) — протокол, позволяющий клиенту самостоятельно получить IP-адрес из зарезервированного диапазона адресов, а также дополнительную информацию о локальной сети (DNS-сервер сети, домен поиска, шлюз по умолчанию). Это облегчает администрирование клиентских машин, избавляя администратора домена от необходимости вручную настраивать сетевые интерфейсы на компьютерах локальной сети.
Чтобы настраивать DHCP-сервер, на машине должен быть хотя бы один статически сконфигурированный Ethernet-интерфейс.
Настройка DHCP-сервера осуществляется в модуле ЦУС (пакет alterator-dhcp) из раздела .
Для включения DHCP-сервера необходимо установить флажок Включить службу DHCP, указать начальный и конечный IP-адрес, а также шлюз по умолчанию (обычно это IP-адрес сервера на сетевом интерфейсе, обслуживающем локальную сеть).
Теперь при включении любой клиентской машины с настройкой получение ip и dns автоматически будет присваиваться шлюз 192.168.0.1, DNS 192.168.0.251 и адреса начиная с 192.168.0.50 по порядку включения до 192.168.0.60.
Иногда бывает полезно выдавать клиенту один и тот же IP-адрес независимо от момента обращения. В этом случае он определяется по аппаратному адресу (MAC-адресу) сетевой карты клиента. Для добавления своих значений в таблицу соответствия статических адресов введите IP-адрес и соответствующий ему MAC-адрес и нажмите кнопку Добавить.
Выданные IP-адреса можно увидеть в списке Текущие динамически выданные адреса. Здесь также имеется возможность зафиксировать выданные адреса, за данными компьютерами. Для этого необходимо отметить хост, за которым нужно закрепить IP-адрес и нажать кнопку Зафиксировать адрес для выбранных компьютеров.
Глава 35. Развертывание доменной структуры
Для развертывания доменной структуры предназначен модуль ЦУС из раздела (пакет alterator-net-domain):
Модуль поддерживает следующие виды доменов:
ALT-домен. Домен, основанный на OpenLDAP и MIT Kerberos. Домен нужно устанавливать только после настройки сервера DHCP. В противном случае придётся выбирать другое имя домена.
Active Directory. Домен для контроллера домена Samba AD. Рекомендуется для аутентификации рабочих станций под управлением и Windows и Linux.
FreeIPA. Домен для контроллера домена FreeIPA. Рекомендуется для аутентификации рабочих станций под управлением Linux.
DNS. Обслуживание только запросов DNS указанного домена сервисом BIND.
Глава 36. Сетевая установка операционной системы на рабочие места
Одной из удобных возможностей Альт Сервер при разворачивании инфраструктуры является сетевая установка (пакет alterator-netinst). При помощи сетевой установки можно производить установку Альт Сервер не с DVD-диска, а загрузив инсталлятор по сети.
36.1. Подготовка сервера
Каталог /var/lib/tftpboot
должен быть доступен клиенту через TFTP, каталог /srv/public/netinst
должен быть доступен клиенту через NFS.
В настоящий момент модуль не позволяет настроить установку в EFI-режиме для PXE-установки.
Локальный файл должен быть доступен для nobody и должен находиться на сервере, где запущен alterator-netinst.
В разделе (пакет alterator-netinst) укажите, откуда импортировать новый образ, и нажмите кнопку Добавить.
Процесс добавления образа занимает какое-то время. Пожалуйста, дождитесь окончания этого процесса.
После добавления образ появится в списке Доступные образы дисков. Необходимо выбрать из списка один из образов и нажать кнопку Выбрать.
На этом подготовка сервера к сетевой установке рабочих станций завершена.
Дополнительно данный модуль позволяет выбрать вариант загрузки (например, непосредственно загружать ОС некоторых Live-версий дистрибутивов):
Для включения режима автоматической установки (см.
Автоматическая установка системы (autoinstall)) необходимо выбрать образ, выбрать вариант загрузки и сохранить настройки, нажав кнопку
Применить. Затем в файле
/var/lib/tftpboot/pxelinux.cfg/default
следует дописать параметр загрузки
ai
(без значения) и параметр
curl
с указанием каталога с установочными файлами, например:
label linux
kernel syslinux//boot/vmlinuz
append initrd=syslinux//boot/initrd.img fastboot changedisk stagename=altinst ramdisk_size=648701 showopts vga=normal quiet splash automatic=method:nfs,network:dhcp tz=Europe/Kaliningrad lang=ru_RU vnc vncpassword=123 ai curl=ftp://192.168.0.123/metadata/
Если отмечен пункт Включить установку по VNC, то далее следует выбрать направление соединения. Удалённый доступ к компьютеру может быть двух видов:
Со стороны клиента. Во время установки администратор может с помощью VNC-клиента подключиться к компьютеру, на которой производится установка, зная его IP-адрес и заданный пароль.
Со стороны сервера. Во время установки с каждого компьютера инициируется подключение к запущенному на заданном компьютере VNC-клиенту. Компьютер-приёмник соединений задаётся IP-адресом или именем.
В случае, когда работа с аппаратной подсистемой ввода-вывода невозможна (например, если клавиатура, мышь или монитор отсутствуют), можно использовать вариант Только по VNC.
Если необходимо управлять установкой удалённо, отметьте пункт Включить установку по VNC и пункт Подключение со стороны VNC сервера раздела и укажите в поле IP-адрес или имя компьютера, с которого будет происходить управление. Для приёма подключения можно запустить, например, vncviewer -listen
.
Не забудьте отключить сетевую установку по окончании процесса установки ОС на рабочих станциях. Это можно сделать, выбрав в списке Доступные образы дисков пункт и подтвердив действие нажатием кнопки Выбрать.
36.2. Подготовка рабочих станций
Для сетевой установки следует обеспечить возможность загрузки по сети рабочих станций, на которых будет производиться установка ОС.
Большинство современных материнских плат имеют возможность загрузки по сети, однако она по умолчанию может быть отключена в BIOS. Различные производители материнских плат дают разные названия данной возможности, например: «Boot Option ROM» или «Boot From Onboard LAN».
Некоторые материнские платы позволяют выбрать источник загрузки во время включения компьютера. Эта возможность может называться, например, «Select boot device» или «Boot menu».
Последовательность установки при установке с DVD-диска и при сетевой установке не отличаются друг от друга. Обратитесь к разделу руководства
Последовательность установки.
Модуль (пакет alterator-vsftpd) из раздела предназначен для настройки FTP-сервера (vsftpd).
Чаще всего протокол FTP (File Transfer Protocol) используется для организации файлового сервера с анонимным доступом. Возможность анонимного доступа управляется параметром Разрешить вход анонимному пользователю. Менее распространённый вариант — сервер с возможностью загружать на него файлы, в том числе и анонимным пользователям. Возможность загрузки включается параметром Разрешить запись. Еще один вариант — сервер, позволяющий локальным пользователям скачивать и загружать файлы из своих домашних каталогов. Этот вариант используется редко, что связано с небезопасностью протокола FTP. Возможность работы с локальными пользователями управляется параметром Разрешить вход локальным пользователям. Чтобы пользователи могли загружать файлы, требуется включить параметр Разрешить запись. Разрешение на загрузку файлов можно настраивать индивидуально, для этого необходимо отметить параметр Разрешить настройку локальных пользователей.
Если вам необходимо создать анонимный FTP-сервер, вы можете использовать vsftpd в сочетании с пакетом anonftp. В целях безопасности сервер по умолчанию сконфигурирован именно для предоставления анонимного доступа. Запрещены любые команды записи, а также доступ локально зарегистрированных пользователей.
При установке пакета anonftp автоматически создаётся каталог, который будет корневым при анонимном подключении, — /var/ftp
с необходимыми правами доступа. Владельцем этого каталога является пользователь root, а не псевдопользователь, от имени которого работает vsftpd. Это сделано для обеспечения безопасности FTP-сервера и системы в целом. Группой-владельцем каталога является специальная группа ftpadmin, предназначенная для администраторов FTP-сервера.
Многие параметры использования FTP-сервера, в том числе относящиеся к безопасности, могут быть заданы при помощи xinetd. В частности, этот сервер позволяет ограничить количество одновременно выполняемых процессов как по системе в целом, так и для каждого отдельного пользователя, указать пользователя, от имени которого будет выполняться служба, задать приоритет процесса (nice), указать адреса, с которых разрешено подключение к данной службе, а также время доступа и множество других параметров. Указать эти настройки можно в модуле (пакет alterator-xinetd) из раздела . Например, установить неограниченный по адресам доступ можно, указав в поле Только с адресов значение 0.0.0.0:
Глава 38. Удостоверяющий центр
Модуль (пакет alterator-са) из раздела служит для выдачи сертификатов службам на серверах и рабочих станциях.
Для обеспечения безопасности соединения для клиента (в качестве клиентского ПО может выступать, например, веб-браузер) основным является вопрос о принятии сертификата. При принятии сертификата возможны описанные ниже варианты.
Сертификат сервера подписан одним из известных клиенту удостоверяющим центром (УЦ)
В этом случае сертификат принимается и устанавливается безопасное SSL-соединение. Обычно клиентское ПО (например, веб-браузер) содержит список наиболее известных УЦ и предоставляет возможность управления (добавление/удаление) сертификатами таких УЦ.
Сертификат сервера подписан УЦ неизвестным клиенту
В этом случае следует самостоятельно решить вопрос о принятии такого сертификата:
можно временно (на время одной сессии) принять сертификат сервера;
можно принять сертификат сервера на постоянной основе;
если вы доверяете УЦ, подписавшему сертификат, можно добавить сертификат самого УЦ к списку известных сертификатов, и таким образом, в дальнейшем все сертификаты, подписанные этим УЦ, будут приниматься автоматически.
Сертификат сервера является самоподписанным
Это случай, когда сертификат сервера не подтверждён вообще никакой третьей стороной. Такие сертификаты используются в локальных сетях, где вы самостоятельно можете проверить аутентичность сервера. В случае самоподписанных сертификатов вы должны самостоятельно убедиться в том, что сервер является тем, за кого себя выдаёт. Сделать это можно, сверив отпечатки полученного сертификата и реально находящегося на сервере.
При первом обращении к модулю необходимо создать УЦ, указав страну и организацию:
Модуль включает две вкладки: Управление УЦ и Управление сертификатами.
На вкладке
Управление УЦ можно:
просмотреть информацию о сертификате УЦ;
выгрузить для дальнейшего использования сертификат УЦ (файл ca-root.pem
). Этот файл можно будет добавить к списку УЦ, используемому клиентским ПО, после чего все сертификаты, подписанные данным УЦ будут приниматься автоматически;
выгрузить, для дальнейшего использования, запрос на подпись сертификата УЦ (файл ca-root.csr
). Этот запрос можно подписать сторонним УЦ;
перегенерировать сертификат УЦ с другими параметрами (можно изменить параметры: Страна (С) и Организация (O)).
На вкладке
Управление сертификатами можно:
настроить ежедневное обновление подписей сертификатов, используемых локальными службами и службами подчинённых серверов;
подписать произвольный сертификат (запрос на подпись) корневым сертификатом УЦ, настроенным на вкладке Управление УЦ;
просмотреть состояния и подпись локальных сертификатов и сертификатов подчинённых серверов:
Чтобы подписать сертификат необходимо на вкладке Управление сертификатами нажать кнопку Выберите файл, выбрать файл с запросом на подпись и нажать кнопку Загрузить запрос. В результате на экране отобразится запрос на подпись. Далее следует нажать кнопку Подписать:
Подписанный сертификат (файл output.pem
) будет загружен в каталог загрузок.
Глава 39. Соединение удалённых офисов (OpenVPN-сервер)
Альт Сервер предоставляет возможность безопасного соединения удалённых офисов, используя технологию
VPN (англ. Virtual Private Network — виртуальная частная сеть), которая позволяет организовать безопасные шифрованные соединения через публичные сети (например, Интернет) между удалёнными офисами или локальной сетью и удалёнными пользователями. Таким образом, вы можете связать два офиса организации, что делает работу с документами, расположенными в сети удалённого офиса, более удобной.
Помимо соединения целых офисов, также существует возможность организовать доступ в офисную сеть для работы в ней извне. Это означает, например, что сотрудник может работать в своём привычном окружении, даже находясь в командировке или просто из дома.
39.1. Настройка OpenVPN-сервера
Для организации VPN соединения на стороне сервера предусмотрен модуль ЦУС (пакет alterator-openvpn-server) из раздела .
Используя модуль можно:
включить/отключить OpenVPN-сервер;
настроить параметры сервера: тип, сети сервера, использование сжатия и т.д.;
управлять сертификатами сервера;
настроить сети клиентов.
Особое внимание при планировании и настройке подключений следует обратить на используемые сети. Они не должны пересекаться.
Для создания соединения необходимо установить флажок Включить службу OpenVPN, выбрать тип подключения: маршрутизируемое (используется TUN) или через мост (используется TAP), и проверить открываемую по соединению сеть (обычно это локальная сеть в виде IP-адреса и маски подсети).
Для настройки сертификата и ключа ssl необходимо нажать на кнопку Сертификат и ключ ssl... Откроется окно модуля (пакет alterator-sslkey):
Здесь нужно заполнить поле Общее имя (CN) и поле Страна (С) (прописными буквами), отметить пункт (Пере)создать ключ и запрос на подпись и нажать кнопку Подтвердить. После чего станет активной кнопка Забрать запрос на подпись:
Если нажать на кнопку Забрать запрос на подпись, появится диалоговое окно с предложением сохранить файл openvpn-server.csr
. Необходимо сохранить этот файл на диске.
В модуле появился новый ключ openvpn-server (Нет сертификата):
Чтобы подписать сертификат, необходимо перейти в модуль → , нажать кнопку Выберите файл, указать путь до полученного файла openvpn-server.csr
и загрузить запрос:
В результате на экране появится две группы цифр и кнопка Подписать. Необходимо нажать на кнопку Подписать и сохранить файл output.pem
(подписанный сертификат).
Далее в разделе , необходимо выделить ключ openvpn-server (Нет сертификата) и нажать кнопку Изменить. В появившемся окне, в пункте Положить сертификат, подписанный УЦ нужно нажать кнопку Выберите файл, указать путь до файла output.pem
и нажать кнопку Положить:
В модуле , видно, что изменился ключ openvpn-server (истекает_и_дата). Ключ создан и подписан.
Для того чтобы положить сертификат УЦ, необходимо найти его в модуле , нажать на ссылку Управление УЦ и забрать сертификат, нажав на ссылку Сертификат: ca-root.pem:
В модуле , в графе Положить сертификат УЦ: при помощи кнопки Выберите файл указать путь к файлу ca-root.pem
и нажать кнопку Положить:
Появится сообщение: «Сертификат УЦ успешно загружен».
Для включения OpenVPN необходимо отметить пункт Включить службу OpenVPN и нажать кнопку Применить.
Если необходимо организовать защищённое соединение между двумя локальными сетями, воспользуйтесь модулем (раздел ).
39.2. Настройка клиентов
Со стороны клиента соединение настраивается в модуле ЦУС (пакет alterator-net-openvpn) из раздела . Доступ к настроенной приватной сети могут получить пользователи, подписавшие свои ключи и получившие сертификат в удостоверяющем центре на том же сервере.
Для создания нового соединения необходимо отметить пункт Сетевой туннель (TUN) или Виртуальное Ethernet устройство (TAP) и нажать кнопку Создать соединение. Должен быть выбран тот же тип, что и на стороне сервера.
Обратите внимание, что на стороне клиента, должен быть выбран тот же тип виртуального устройства, что и на стороне сервера. Для большинства случаев подходит маршрутизируемое подключение.
Помимо этого нужно создать ключ (например,
openvpn) в модуле и подписать его в модуле
Удостоверяющий центр на сервере.
В результате станут доступны настройки соединения. На клиенте в модуле OpenVPN-соединение необходимо указать:
Для применения настроек, нажать кнопку
Применить. Состояние с
Выключено должно поменяться на
Включено.
Проверить, появилось ли соединение с сервером можно, выполнив команду:
$ ip addr
должно появиться новое соединение tun0. При обычных настройках это может выглядеть так:
tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
link/none
inet 10.8.0.6 peer 10.8.0.5/32 scope global tun0
Глава 40. Доступ к службам сервера из сети Интернет
Сервер предоставляет возможность организовать доступ к своим службам извне. Например, можно предоставить доступ к корпоративному веб-сайту из сети Интернет. Для обеспечения такой возможности необходимо разрешить входящие соединения на внешних интерфейсах. По умолчанию такие соединения блокируются.
Для разрешения внешних и внутренних входящих соединений предусмотрен раздел ЦУС . В списке Разрешить входящие соединения на внешних интерфейсах модуля (пакет alterator-net-iptables) перечислены наиболее часто используемые службы, отметив которые, вы делаете их доступными для соединений на внешних сетевых интерфейсах. Если вы хотите предоставить доступ к службе, отсутствующей в списке, задайте используемые этой службой порты в соответствующих полях.
Можно выбрать один из двух режимов работы:
Роутер. В этом режиме перенаправление пакетов между сетевыми интерфейсами происходит без трансляции сетевых адресов.
Шлюз (NAT). В этом режиме будет настроена трансляция сетевых адресов (NAT) при перенаправлении пакетов на внешние интерфейсы. Использование этого режима имеет смысл, если у вас настроен, по крайней мере, один внешний и один внутренний интерфейс.
В любом режиме включено только перенаправление пакетов с внутренних интерфейсов. Перенаправление пакетов с внешних интерфейсов всегда выключено.
Все внутренние интерфейсы открыты для любых входящих соединений.
40.2. Список блокируемых хостов
Модуль ЦУС (пакет alterator-net-iptables) предназначен для блокирования любого трафика с указанными узлами. Данный модуль позволяет блокировать любой сетевой трафик с указанных в списке узлов (входящий, исходящий и пересылаемый).
Блокирование трафика с указанных в списке узлов начинается после установки флажка Использовать чёрный список.
Для добавления блокируемого узла необходимо ввести IP-адрес в поле Добавить IP-адрес сети или хоста и нажать кнопку Добавить.
Для удаления узла из списка выберите его и нажмите кнопку Удалить.
Все входящие и исходящие с сервера сетевые пакеты могут подсчитываться, и выводится по запросу для анализа.
Модуль (пакет alterator-ulogd) из раздела предназначен для просмотра статистики входящих и исходящих с сервера сетевых пакетов. Данный модуль позволяет оценить итоговый объём полученных и переданных данных за всё время работы сервера, за определённый период времени и по каждой службе отдельно.
Для включения сбора данных необходимо установить флажок Включить сбор данных, и нажать кнопку Применить.
Для просмотра статистики укажите период (в виде начальной и конечной дат). Дата указывается в формате YYYY-MM-DD (год-месяц-день) или выбирается из календаря справа от поля ввода даты. Из списка доступных сетевых интерфейсов необходимо выбрать интересующий и нажать на кнопку Показать.
Трафик на указанном интерфейсе за заданный период показывается в виде:
служба (название протокола);
входящий трафик в килобайтах;
исходящий трафик в килобайтах.
Пересылка каждого запроса во внешнюю сеть фиксируется прокси-сервером в специальном журнале. На основании этих данных автоматически формируются отчёты о статистике использования ресурсов сети, в том числе потраченного времени и количества переданных данных (трафика).
Статистика не собирается по умолчанию. Для включения сбора статистики и просмотра отчётов воспользуйтесь модулем ЦУС (пакет alterator-squidmill) из раздела .
Для включения сбора статистики прокси-сервера установите флажок Включить сбор данных прокси-сервера.
В том случае, если на прокси-сервере производилась аутентификация пользователей, отчёты будут содержать данные об обращениях каждого пользователя. Иначе отчёты будут формироваться только на основании адресов локальной сети.
Для показа отчёта задайте условия фильтра и нажмите кнопку Показать. Данные в таблице будут отсортированы по объёму трафика в порядке убывания.
Для учёта пользователей в статистике необходимо добавить хотя бы одно правило. Самое очевидное правило — запрет неаутентифицированных пользователей. Только после этого в статистике начнут показываться пользователи.
Глава 42. Обслуживание сервера
Для безотказной работы всего домена очень важно следить за корректной работой его центрального звена — сервера под управлением Альт Сервер. Регулярный мониторинг состояния сервера, своевременное резервное копирование, обновление установленного ПО являются важной частью комплекса работ по обслуживанию сервера.
42.1. Мониторинг состояния системы
Для обеспечения бесперебойной работы сервера крайне важно производить постоянный мониторинг его состояния. Все события, происходящие с сервером, записываются в журналы, анализ которых помогает избежать сбоев в работе сервера и предоставляет возможность разобраться в причинах некорректной работы сервера.
Для просмотра журналов предназначен модуль ЦУС (пакет alterator-logs) из раздела ). Интерфейс позволяет просмотреть различные типы журналов с возможностью перехода к более старым или более новым записям.
Различные журналы могут быть выбраны из списка Журналы.
Каждый журнал может содержать довольно большое количество сообщений. Уменьшить либо увеличить количество выводимых строк можно, выбрав нужное значение в списке Показывать.
Для изменения состояния служб можно использовать модуль ЦУС (пакет alterator-services) из раздела . Интерфейс позволяет изменять текущее состояние службы и, если необходимо, применить опцию запуска службы при загрузке системы.
После выбора названия службы из списка отображается описание данной службы, а также текущее состояние: Работает/Остановлена/Неизвестно.
42.3. Обновление системы
После установки системы крайне важно следить за обновлениями ПО. Обновления для Альт Сервер могут содержать как исправления, связанные с безопасностью, так и новый функционал или просто улучшение и ускорение алгоритмов. В любом случае настоятельно рекомендуется регулярно обновлять систему для повышения надёжности работы сервера.
Для автоматизации процесса установки обновлений предусмотрен модуль ЦУС (пакет alterator-updates) из раздела . Здесь можно включить автоматическое обновление через Интернет с одного из предлагаемых серверов или задать собственные настройки.
Источник обновлений указывается явно (при выбранном режиме Обновлять систему автоматически из сети Интернет) или вычисляется автоматически (при выбранном режиме Обновление системы управляемое сервером и наличии в локальной сети настроенного сервера обновлений).
Рабочие станции «видят» локальный сервер обновлений, при выборе режима Обновление системы управляемое сервером, если они находятся в домене (при этом сервер обновлений должен быть настроен на Опубликовать как репозиторий для автоматических обновлений).
Процесс обновления системы будет запускаться автоматически согласно заданному расписанию.
Чтобы указать в качестве сервера обновлений локально настроенный источник, необходимо выбрать режим Обновлять систему автоматически из Интернет, выбрать в списке Другой адрес и указать адрес локального сервера обновлений, например, http://<ip сервера>/mirror:
42.4. Обновление ядра ОС
Модуль ЦУС (пакет
alterator-update-kernel) из раздела реализует функционал утилиты
update-kernel
. Данный модуль предоставляет возможность:
просматривать список установленных ядер;
устанавливать, обновлять и удалять ядра;
задавать ядро, загружаемое по умолчанию;
устанавливать/удалять отдельные модули ядра.
В главном окне модуля отображается ядро, загруженное по умолчанию, и список установленных модулей ядра:
В дистрибутиве Альт Сервер можно установить несколько версий ядра одного и того же типа одновременно. После установки или обновления ядра старые ядра не удаляются.
В случае возникновения проблем с новым ядром можно переключиться на установленное ранее. Для этого следует выбрать нужное ядро в списке Установленные ядра и нажать кнопку Сделать ядро загружаемым по умолчанию.
Накопленный при обновлениях набор ранее установленных ядер можно удалить для освобождения дискового пространства. Для этого следует выбрать нужное ядро в списке Установленные ядра и нажать кнопку Удалить ядро.
Для того чтобы обновить ядро или установить модули ядра, следует нажать кнопку Обновить ядро….
При нажатии кнопки Обновить ядро… локальная база данных пакетов будет синхронизирована с удалённым репозиторием, это может занять некоторое время.
Если в системе уже установлено последнее ядро, сообщение об этом появится в открывшемся окне, иначе в этом окне будет показано доступное к установке ядро.
Чтобы обновить ядро, необходимо нажать кнопку Обновить ядро. Далее следует подтвердить желание обновить ядро нажатием кнопки Да.
Новое ядро загрузится только после перезагрузки системы.
Если с новым ядром что-то пойдёт не так, вы сможете вернуться к предыдущему варианту, выбрав его в начальном меню загрузчика.
Если ядро не требует обновления, в окне Доступные модули можно отметить модули ядра необходимые к установке и нажать кнопку Установить модули.
42.5. Обновление систем, не имеющих выхода в Интернет
Для систем, не имеющих прямого выхода в Интернет, рекомендуется установка отдельного сервера обновлений на базе ОС Альт Сервер, находящегося вне защищенного контура и организация ограниченного доступа к этому серверу.
Модуль ЦУС (пакет alterator-mirror) из раздела предназначен для зеркалирования репозиториев и публикации их для обновлений рабочих станций и серверов.
Сервер обновлений — технология, позволяющая настроить автоматическое обновление программного обеспечения, установленного на клиентских машинах (рабочих местах), работающих под управлением Альт Рабочая станция.
На странице модуля можно выбрать, как часто выполнять закачку пакетов, можно выставить время, когда начинать зеркалирование.
Здесь также можно выбрать репозитории, локальные срезы которых необходимы. При нажатии на название репозитория, появляются настройки этого репозитория. Необходимо выбрать источник (сайт, откуда будет скачиваться репозиторий), архитектуру процессора (если их несколько, то стоит выбрать соответствующие).
При выборе любой архитектуры также будет добавлен источник с noarch.
Сервер обновлений предоставляет возможность автоматически настроить обновление клиентских машин в нужном режиме:
Локальное зеркало репозитория
В этом режиме на сервере создаётся копия удалённого репозитория. Загрузка ПО клиентскими машинами может производится с локального сервера по протоколам HTTP, HTTPS, FTP, rsync (для каждого протокола нужно настроить соответствующие службы, ниже приведён пример настройки HTTP- и FTP-сервера). Наличие на локальном сервере зеркала репозитория при большом количестве машин в сети позволяет существенно сэкономить трафик.
Зеркалирование потребует наличия большого количества места на диске.
Уменьшить размер скачиваемых файлов и занимаемое репозиторием место на диске можно, указав имена каталогов и файлов, которые будут исключены из синхронизации. Например, не скачивать пакеты с исходным кодом и пакеты с отладочной информацией:
SRPMS
*-debuginfo-*
Шаблоны указываются по одному в отдельной строке. Символ «*» используется для подстановки любого количества символов.
Публикация репозитория
В этом случае публикуется или URL внешнего сервера, содержащего репозиторий или, если включено локальное зеркало репозитория, адрес этого сервера. Такая публикация позволяет клиентским машинам автоматически настроить свои менеджеры пакетов на использование внешнего или локального репозитория.
Со стороны клиентских машин, в этом случае, необходимо настроить модуль
, отметив в нём
Обновление системы управляемое сервером.
Настройка локального репозитория заканчивается нажатием на кнопку Применить.
По умолчанию локальное зеркало репозитория находится в
/srv/public/mirror
. Для того чтобы зеркалирование происходило в другую папку, необходимо эту папку примонтировать в папку
/srv/public/mirror
. Для этого в файл
/etc/fstab
следует вписать строку:
/media/disk/localrepo /srv/public/mirror none rw,bind,auto 0 0
где
/media/disk/localrepo
— папка-хранилище локального репозитория.
Если в каталогах /srv/public/mirror/<репозиторий>/branch/<архитектура>/base/
. нет файлов pkglist.*
значит зеркалирование не закончено (т.е. не все файлы загружены на ваш сервер).
42.5.1. Настройка веб-сервера
Установить веб-сервер (в данном примере nginx):
# apt-get install nginx
Создать файл конфигурации сервера в
/etc/nginx/sites-available.d/repo.conf
:
server {
listen 80;
server_name localhost .local <ваш ip>;
access_log /var/log/nginx/repo-access.log;
error_log /var/log/nginx/repo-error.log;
location /mirror {
root /srv/public;
autoindex on;
}
}
Сделать ссылку в
/etc/nginx/sites-enabled.d/
:
# ln -s /etc/nginx/sites-available.d/repo.conf /etc/nginx/sites-enabled.d/repo.conf
Запустить nginx и добавить его в автозагрузку:
# systemctl enable --now nginx
На клиентских машинах необходимо настроить репозитории. Сделать это можно в программе управления пакетами
Synaptic ( → ) или в командной строке:
# apt-repo rm all
# apt-repo add http://<ip сервера>/mirror/p10/branch
Проверить правильность настройки репозиториев:
# apt-repo
rpm http://192.168.0.185/mirror p10/branch/x86_64 classic
rpm http://192.168.0.185/mirror p10/branch/noarch classic
42.5.2. Настройка FTP-сервера
Установить пакеты
vsftpd,
lftp, если они еще не установлены:
# apt-get install vsftpd lftp
Настроить параметры использования vsftpd в файле
/etc/xinetd.d/vsftpd
:
# default: off
# description: The vsftpd FTP server.
service ftp
{
disable = no # включает службу
socket_type = stream
protocol = tcp
wait = no
user = root
nice = 10
rlimit_as = 200M
server = /usr/sbin/vsftpd
only_from = 0.0.0.0 # предоставить доступ для всех IP
}
Перезапустить xinetd:
# systemctl restart xinetd
Изменить настройку прав доступа в файле
/etc/vsftpd/conf
:
local_enable=YES
Создать каталог
/var/ftp/mirror
:
# mkdir -p /var/ftp/mirror
Примонтировать каталог
/srv/public/mirror
в
/var/ftp/mirror
с опцией
--bind
:
# mount --bind /srv/public/mirror /var/ftp/mirror
Для автоматического монтирования каталога
/srv/public/mirror
при загрузке системы необходимо добавить следующую строку в файл
/etc/fstab
:
/srv/public/mirror /var/ftp/mirror none defaults,bind 0 0
На клиентских машинах необходимо настроить репозитории:
# apt-repo rm all
# apt-repo add ftp://<ip сервера>/mirror/p10/branch
# apt-repo
rpm ftp://192.168.0.185/mirror p10/branch/x86_64 classic
rpm ftp://192.168.0.185/mirror p10/branch/noarch classic
42.6. Локальные учётные записи
Модуль (пакет alterator-users) из раздела предназначен для администрирования системных пользователей.
Для создания новой учётной записи необходимо ввести имя новой учётной записи и нажать кнопку Создать, после чего имя отобразится в списке слева.
Для дополнительных настроек необходимо выделить добавленное имя, либо, если необходимо изменить существующую учётную запись, выбрать её из списка.
42.7. Администратор системы
В модуле (пакет alterator-root) из раздела можно изменить пароль суперпользователя (root), заданный при начальной настройке системы.
В данном модуле (только в веб-интерфейсе) можно добавить публичную часть ключа RSA или DSA для доступа к серверу по протоколу SSH.
В модуле (пакет alterator-datetime) из раздела можно изменить дату и время на сервере, сменить часовой пояс, а также настроить автоматическую синхронизацию часов на самом сервере по протоколу NTP и предоставление точного времени по этому протоколу для рабочих станций локальной сети.
Системное время зависит от следующих факторов:
часы в BIOS — часы, встроенные в компьютер. Они работают, даже если он выключен;
системное время — часы в ядре операционной системы. Во время работы системы все процессы пользуются именно этими часами;
часовые пояса — регионы Земли, в каждом из которых принято единое местное время.
При запуске системы происходит активация системных часов и их синхронизация с аппаратными, кроме того, в определённых случаях учитывается значение часового пояса. При завершении работы системы происходит обратный процесс.
Если настроена синхронизация времени с NTP-сервером, то сервер сможет сам работать как сервер точного времени. Для этого достаточно отметить соответствующий пункт Работать как NTP-сервер.
Выбор источника сигналов времени (источника тактовой частоты) доступен в режиме эксперта.
Модуль (пакет alterator-zabbix-agent) из раздела позволяет настроить клиентскую часть системы мониторинга Zabbix.
На странице модуля можно задать следующие параметры:
Слушать по адресу — IP-адрес, который агент должен прослушивать;
Адрес сервера наблюдения — адрес сервера Zabbix, которому разрешено обращаться к агенту;
Имя узла — при выборе пункта Системное, узел будет добавлен на сервер Zabbix под системным именем, при выборе пункта Пользовательское, имя узла можно указать в поле Пользовательское имя узла;
Пользовательское имя узла — имя узла мониторинга, которое будет указано на сервере Zabbix.
Параметр Разрешить выполнение команд использовать не рекомендуется.
Чтобы применить настройки и запустить Zabbix-агент, следует отметить пункт Включить службу агента мониторинга и нажать кнопку Применить.
42.10. Ограничение использования диска
Модуль (пакет alterator-quota) в разделе позволяет ограничить использование дискового пространства пользователями, заведёнными на сервере в модуле .
Модуль позволяет задать ограничения (квоты) для пользователя при использовании определённого раздела диска. Ограничить можно как суммарное количество килобайт, занятых файлами пользователя, так и количество этих файлов.
Для управления квотами файловая система должна быть подключена с параметрами
usrquota
,
grpquota
. Для этого следует выбрать нужный раздел в списке
Файловая система и установить отметку в поле
Включено:
Для того чтобы задать ограничения для пользователя, необходимо выбрать пользователя в списке Пользователь, установить ограничения и нажать кнопку Применить.
При задании ограничений различают жёсткие и мягкие ограничения:
Мягкое ограничение: нижняя граница ограничения, которая может быть временно превышена. Временное ограничение — одна неделя.
Жёсткое ограничение: использование диска, которое не может быть превышено ни при каких условиях.
Значение 0 при задании ограничений означает отсутствие ограничений.
42.11. Выключение и перезагрузка компьютера
Иногда, в целях обслуживания или по организационным причинам необходимо корректно выключить или перезагрузить сервер. Для этого можно воспользоваться модулем ЦУС в разделе .
Возможна настройка ежедневного применения данных действий в заданное время.
Так как выключение и перезагрузка — критичные для функционирования компьютера операции, то по умолчанию настройка выставлена в значение Продолжить работу. Для выключения, перезагрузки или перехода в энергосберегающие режимы нужно отметить соответствующий пункт и нажать Применить.
Для ежедневного автоматического выключения компьютера, перезагрузки, а также перехода в энергосберегающие режимы необходимо отметить соответствующий пункт и задать желаемое время. Например, для выключения компьютера следует отметить пункт Выключать компьютер каждый день в, задать время выключения в поле ввода слева от этого флажка и нажать кнопку Применить.
Для возможности настройки оповещений на e-mail, должен быть установлен пакет
state-change-notify-postfix:
# apt-get install state-change-notify-postfix
Для настройки оповещений необходимо отметить пункт При изменении состояния системы отправлять электронное письмо по адресу, ввести e-mail адрес и нажать кнопку Применить:
По указанному адресу, при изменении состоянии системы будут приходить электронные письма. Например, при включении компьютера, содержание письма будет следующее:
Thu Sep 14 11:46:59 EET 2023: The server.test.alt is about to start.
При выключении:
Thu Sep 14 12:27:02 EET 2023: The server.test.alt is about to shutdown.
Кнопка Сбросить возвращает сделанный выбор к безопасному значению по умолчанию: Продолжить работу, перечитывает расписания и выставляет отметки для ежедневного автоматического действия в соответствие с прочитанным.
Глава 43. Прочие возможности ЦУС
Возможности Альт Сервер не ограничиваются только теми, что были описаны выше. Вы всегда можете поискать другие модули, предоставляющие прочие возможности для настройки системы в веб-интерфейсе.
Установленные пакеты, которые относятся к ЦУС, можно посмотреть, выполнив команду:
rpm -qa | grep alterator*
Прочие пакеты для ЦУС можно найти, выполнив команду:
apt-cache search alterator*
Модули можно дополнительно загружать и удалять как обычные программы:
# apt-get install alterator-net-openvpn
# apt-get remove alterator-net-openvpn
После установки модуля, у которого есть веб-интерфейс, для того чтобы он отобразился в веб-интерфейсе необходимо перезапустить службу ahttpd:
# systemctl restart ahttpd
Глава 44. Права доступа к модулям
Администратор системы (root) имеет доступ ко всем модулям, установленным в системе, и может назначать права доступа для пользователей к определенным модулям.
Для разрешения доступа пользователю к конкретному модулю, администратору в веб-интерфейсе ЦУС необходимо выбрать нужный модуль и нажать ссылку Параметры доступа к модулю, расположенную в нижней части окна модуля:
В открывшемся окне, в списке Новый пользователь необходимо выбрать пользователя, который получит доступ к данному модулю, и нажать кнопку Добавить.
Для сохранения настроек необходимо перезапустить HTTP-сервер, для этого достаточно нажать кнопку Перезапустить HTTP-сервер.
Для удаления доступа пользователя к определенному модулю, администратору, в окне этого модуля необходимо нажать ссылку Параметры доступа к модулю, в открывшемся окне в списке пользователей которым разрешен доступ, должен выбрать пользователя, нажать кнопку Удалить и перезапустить HTTP-сервер.
Системный пользователь, пройдя процедуру аутентификации, может просматривать и вызывать модули, к которым он имеет доступ.
Часть VIII. Корпоративная инфраструктура
Глава 45. Samba 4
в роли контроллера домена Active Directory
Использование Samba 4
в роли контроллера домена Active Directory позволяет вводить Windows 7/8
в домен без манипуляций с реестром.
Поддерживаются следующие базовые возможности
Active Directory:
аутентификация рабочих станций Windows и Linux и служб;
авторизация и предоставление ресурсов;
групповые политики (
GPO);
перемещаемые профили (Roaming Profiles);
поддержка инструментов Microsoft для управления серверами (Remote Server Administration Tools) с компьютеров под управлением Windows;
поддержка протоколов
SMB2 и
SMB3 (в том числе с поддержкой шифрования).
Samba AD DC конфликтует с OpenLDAP и MIT Kerberos, поскольку эти приложения запускают одни и те же службы на одних тех же, по умолчанию, портах для протоколов LDAP и Kerberos.
Samba AD DC функционирует на уровне контроллера доменов Windows 2008 R2
. Можно ввести его в домен Windows 2012
как клиента, но не как контроллер домена.
Для установки
Samba AD DC выполняются следующие шаги:
Установить пакет
task-samba-dc, который установит все необходимое:
# apt-get install task-samba-dc
Так как
Samba в режиме контроллера домена (Domain Controller,
DC) использует как свой
LDAP, так и свой сервер Kerberos, несовместимый с
MIT Kerberos, перед установкой необходимо остановить конфликтующие службы
krb5kdc и
slapd, а также
bind:
# for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done
45.2. Создание нового домена
45.2.1. Восстановление к начальному состоянию Samba
Необходимо очистить базы и конфигурацию
Samba (домен, если он создавался до этого, будет удалён):
# rm -f /etc/samba/smb.conf
# rm -rf /var/lib/samba
# rm -rf /var/cache/samba
# mkdir -p /var/lib/samba/sysvol
Обязательно удаляйте /etc/samba/smb.conf
перед созданием домена: rm -f
/etc/samba/smb.conf
45.2.2. Выбор имени домена
Имя домена, для разворачиваемого
DC, должно состоять минимум из двух компонентов, разделённых точкой. При этом должно быть установлено правильное имя узла и домена для сервера:
После изменения имени компьютера могут перестать запускаться приложения. Для решения этой проблемы необходимо перезагрузить систему.
При указании домена, имеющего суффикс .local, на сервере и подключаемых компьютерах под управлением Linux потребуется отключить службу avahi-daemon.
45.2.3. Создание домена в ЦУС
При инициализации домена в
веб-интерфейсе ЦУС следует выполнить следующие действия:
В модуле
Домен указать имя домена, отметить пункт
Active Directory, указать IP-адреса внешних DNS-серверов, задать пароль администратора домена и нажать кнопку
Применить:
Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов. Пароль, не полностью соответствующий требованиям, это одна из причин завершения развертывания домена ошибкой.
После успешного создания домена, будет выведена информация о домене:
Перезагрузить сервер.
45.2.4. Создание домена одной командой
Создание контроллера домена test.alt:
# samba-tool domain provision --realm=test.alt --domain=test --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --option="dns forwarder=8.8.8.8" --server-role=dc
где
--realm — задает область Kerberos (
LDAP), и
DNS имя домена;
--domain — задает имя домена (имя рабочей группы);
--adminpass — пароль основного администратора домена;
dns forwarder — внешний DNS-сервер;
--server-role — тип серверной роли.
Параметр
--use-rfc2307
позволяет поддерживать расширенные атрибуты типа
UID и
GID в схеме
LDAP и
ACL на файловой системе Linux.
45.2.5. Интерактивное создание домена
У Samba свой собственный DNS-сервер. В DNS forwarder IP address нужно указать внешний DNS-сервер, чтобы DC мог разрешать внешние доменные имена.
Для интерактивного развертывания запустите
samba-tool domain provision, это запустит утилиту развертывания, которая будет задавать различные вопросы о требованиях к установке. В примере показано создание домена test.alt:
# samba-tool domain provision
Realm [TEST.ALT]:
Domain [TEST]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: 8.8.8.8
Administrator password:
Retype password:
Looking up IPv4 addresses
More than one IPv4 address found. Using 192.168.0.122
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=test,DC=alt
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=test,DC=alt
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink!
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: dc1
NetBIOS Domain: TEST
DNS Domain: test.alt
DOMAIN SID: S-1-5-21-80639820-2350372464-3293631772
При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»).
Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов. Пароль, не полностью соответствующий требованиям, это одна из причин завершения развертывания домена ошибкой.
В файл
/etc/resolvconf.conf
добавить строку:
name_servers=127.0.0.1
Обновить DNS адреса:
# resolvconf -u
Установить службу по умолчанию и запустите её:
# systemctl enable --now samba
45.4. Настройка Kerberos
Внести изменения в файл
/etc/krb5.conf
. Следует раскомментировать строку
default_realm и содержимое разделов
realms и
domain_realm и указать название домена (обратите внимание на регистр символов), в строке
dns_lookup_realm должно быть установлено значение false:
includedir /etc/krb5.conf.d/
[logging]
# default = FILE:/var/log/krb5libs.log
# kdc = FILE:/var/log/krb5kdc.log
# admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_kdc = true
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_realm = TEST.ALT
# default_ccache_name = KEYRING:persistent:%{uid}
[realms]
TEST.ALT = {
default_domain = test.alt
}
[domain_realm]
dc1 = TEST.ALT
В момент создания домена Samba конфигурирует шаблон файла
krb5.conf
для домена в каталоге
/var/lib/samba/private/
. Можно просто заменить этим файлом файл, находящийся в каталоге
/etc/
:
# cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
45.5. Проверка работоспособности
Просмотр общей информации о домене:
# samba-tool domain info 127.0.0.1
Forest : test.alt
Domain : test.alt
Netbios domain : TEST
DC name : dc1.test.alt
DC netbios name : DC
Server site : Default-First-Site-Name
Client site : Default-First-Site-Name
Просмотр предоставляемых служб:
# smbclient -L localhost -Uadministrator
Password for [TEST\administrator]:
Sharename Type Comment
--------- ---- -------
sysvol Disk
netlogon Disk
IPC$ IPC IPC Service (Samba 4.19.4)
SMB1 disabled -- no workgroup available
Общие ресурсы netlogon и sysvol создаваемые по умолчанию нужны для функционирования сервера AD и создаются в
smb.conf
в процессе развертывания/модернизации.
Проверка конфигурации
DNS:
Убедитесь в наличии nameserver 127.0.0.1 в
/etc/resolv.conf
:
# cat /etc/resolv.conf
# Generated by resolvconf
# Do not edit manually, use
# /etc/net/ifaces/<interface>/resolv.conf instead.
search test.alt
nameserver 127.0.0.1
# host test.alt
test.alt has address 192.168.0.122
Проверьте имена хостов:
# host -t SRV _kerberos._udp.test.alt.
_kerberos._udp.test.alt has SRV record 0 100 88 dc1.test.alt.
# host -t SRV _ldap._tcp.test.alt.
_ldap._tcp.test.alt has SRV record 0 100 389 dc1.test.alt.
# host -t A dc1.test.alt.
dc1.test.alt has address 192.168.0.122
Если имена не находятся, проверьте выключение службы
named.
Проверка Kerberos (имя домена должно быть в верхнем регистре):
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
Просмотр полученного билета:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@TEST.ALT
Valid starting Expires Service principal
01.03.2024 11:50:39 01.03.2024 21:50:39 krbtgt/TEST.ALT@TEST.ALT
renew until 02.03.2024 11:50:34
45.6. Управление пользователями
Создать пользователя с паролем:
samba-tool user create имя пользователя
samba-tool user setexpiry имя пользователя
Удалить пользователя:
samba-tool user delete имя пользователя
Отключить пользователя:
samba-tool user disable имя пользователя
Включить пользователя:
samba-tool user enable имя пользователя
Изменить пароль пользователя:
samba-tool user setpassword имя пользователя
Просмотреть доступных пользователей:
# samba-tool user list
Например, создать и разблокировать пользователя ivanov:
# samba-tool user create ivanov --given-name='Иван Иванов' --mail-address='ivanov@test.alt'
# samba-tool user setexpiry ivanov --noexpiry
Не допускайте одинаковых имён для пользователя и компьютера, это может привести к коллизиям (например, такого пользователя нельзя добавить в группу). Если компьютер с таким именем заведён, удалить его можно командой: pdbedit -x -m имя
45.7. Заведение вторичного DC
Присоединение дополнительного Samba DC к существующему AD отличается от инициализации первого DC в лесу AD.
Все действия выполняются на узле dc2.test.alt (192.168.0.106), если не указано иное.
Установить пакет
task-samba-dc, который установит все необходимое:
# apt-get install task-samba-dc
Остановить конфликтующие службы
krb5kdc и
slapd, а также
bind:
# for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done
Очистить базы и конфигурацию
Samba (домен, если он создавался до этого, будет удалён):
# rm -f /etc/samba/smb.conf
# rm -rf /var/lib/samba
# rm -rf /var/cache/samba
# mkdir -p /var/lib/samba/sysvol
На Primary Domain Controller (PDC) проверить состояние службы
bind:
# systemctl status bind
И, если она была включена, выключить службу
bind и перезапустить службу
samba:
# systemctl stop bind
# systemctl restart samba
На PDC завести IP-адрес для dc2:
Указание аутентифицирующей информации (имени пользователя и пароля) обязательно!
# samba-tool dns add 192.168.0.122 test.alt DC2 A 192.168.0.106 -Uadministrator
Password for [TEST\administrator]:
Record added successfully
На вторичном DC установить следующие параметры в файле конфигурации клиента Kerberos
/etc/krb5.conf
):
[libdefaults]
default_realm = TEST.ALT
dns_lookup_realm = false
dns_lookup_kdc = true
На вторичном DC в
/etc/resolv.conf
обязательно должен быть добавлен PDC как nameserver:
# echo "name_servers=192.168.0.122" >> /etc/resolvconf.conf
# echo "search_domains=test.alt" >> /etc/resolvconf.conf
# resolvconf -u
# cat /etc/resolv.conf
search test.alt
nameserver 192.168.0.122
nameserver 8.8.8.8
Для проверки настройки запросить билет Kerberos для администратора домена:
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
Имя домена должно быть указано в верхнем регистре
Убедиться, что билет получен:
# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: administrator@TEST.ALT
Valid starting Expires Service principal
01.03.2024 12:43:28 01.03.2024 22:43:28 krbtgt/TEST.ALT@TEST.ALT
renew until 08.03.2024 12:43:24
Ввести вторичный DC в домен test.alt в качестве контроллера домена (DC):
# samba-tool domain join test.alt DC -Uadministrator --realm=test.alt --option="dns forwarder=8.8.8.8"
Если всё нормально, в конце будет выведена информация о присоединении к домену:
Joined domain TEST (SID S-1-5-21-80639820-2350372464-3293631772) as a DC
Для получения дополнительной информации можно воспользоваться командой:
# samba-tool domain join --help
Сделать службу
samba запускаемой по умолчанию и запустить её:
# systemctl enable --now samba
Без успешной двунаправленной репликации в течение 14 дней DC исключается из Active Directory
Указание аутентифицирующей информации (имени пользователя и пароля) обязательно!
Реплицируем на вторичном DC (с первичного):
# samba-tool drs replicate dc2.test.alt dc1.test.alt dc=test,dc=alt -Uadministrator
Сначала указывается приемник, затем источник, после этого реплицируемая ветка в
LDAP.
Реплицируем на вторичном DC (на первичный):
# samba-tool drs replicate dc1.test.alt dc2.test.alt dc=test,dc=alt -Uadministrator
Сначала указывается приемник, затем источник, после этого реплицируемая ветка в
LDAP.
Имя домена в именах серверов можно опустить (если они одинаковые).
Для просмотра статуса репликации на PDC, запустите на Samba DC:
# samba-tool drs showrepl
Если репликация на Windows не работает, добавьте в Active Directory Sites and Services новое соединение Active Directory. Реплицируйте на DC, подождите минут 5 и пробуйте реплицировать с Samba на Windows.
45.9. Подключение к домену на рабочей станции
Для ввода компьютера в Active Directory потребуется установить пакет
task-auth-ad-sssd и все его зависимости (если он еще не установлен):
# apt-get install task-auth-ad-sssd
Синхронизация времени с контроллером домена производится автоматически.
Для ввода компьютера в домен, на нём должен быть доступен сервер DNS, имеющий записи про контроллер домена Active Directory. Ниже приведен пример настройки сетевого интерфейса со статическим IP-адресом. При получении IP-адреса по DHCP данные о сервере DNS также должны быть получены от сервера DHCP.
Настройку сети можно выполнить как в графическом интерфейсе, так и в консоли:
В
Центре управления системой в разделе → задать имя компьютера, указать в поле
DNS-серверы DNS-сервер домена и в поле
Домены поиска — домен для поиска:
В консоли:
задать имя компьютера:
# hostnamectl set-hostname host-15.test.alt
в качестве первичного DNS должен быть указан DNS-сервер домена. Для этого необходимо создать файл
/etc/net/ifaces/enp0s3/resolv.conf
со следующим содержимым:
nameserver 192.168.0.122
где 192.168.0.122 — IP-адрес DNS-сервера домена.
указать службе resolvconf использовать DNS контроллера домена и домен для поиска. Для этого в файле
/etc/resolvconf.conf
добавить/отредактировать следующие параметры:
interface_order='lo lo[0-9]* lo.* enp0s3'
search_domains=test.alt
где enp0s3 — интерфейс на котором доступен контроллер домена, test.alt — домен.
обновить DNS адреса:
# resolvconf -u
После изменения имени компьютера могут перестать запускаться приложения. Для решения этой проблемы необходимо перезагрузить систему.
В результате выполненных действий в файле
/etc/resolv.conf
должны появиться строки:
search test.alt
nameserver 192.168.0.122
Ввод в домен можно осуществить следующими способами:
В командной строке:
# system-auth write ad test.alt host-15 test 'administrator' 'Pa$$word'
Joined 'HOST-15' to dns domain 'test.alt'
В открывшемся окне следует выбрать пункт Домен Active Directory, заполнить поля и нажать кнопку Применить:
В открывшемся окне необходимо ввести имя пользователя, имеющего право вводить машины в домен, и его пароль и нажать кнопку ОК:
При успешном подключении к домену, отобразится соответствующая информация:
Перезагрузить рабочую станцию.
Глава 46. Групповые политики
Групповые политики — это набор правил и настроек для серверов и рабочих станций, реализуемых в корпоративных решениях. В соответствии с групповыми политиками производится настройка рабочей среды относительно локальных политик, действующих по умолчанию. В данном разделе рассмотрена реализация поддержки групповых политик Active Directory в решениях на базе дистрибутивов ALT.
В дистрибутивах ALT для применения групповых политик, на данный момент, предлагается использовать инструмент gpupdate. Инструмент рассчитан на работу на машине, введённой в домен Samba.
Интеграция в инфраструктуру LDAP-объектов Active Directory позволяет осуществлять привязку настроек управляемых конфигураций объектам в дереве каталогов. Кроме глобальных настроек в рамках домена, возможна привязка к следующим группам объектов:
подразделения (OU) — пользователи и компьютеры, хранящиеся в соответствующей части дерева объектов;
сайты — группы компьютеров в заданной подсети в рамках одного и того же домена;
конкретные пользователи и компьютеры.
Кроме того, в самих объектах групповых политик могут быть заданы дополнительные условия, фильтры и ограничения, на основании которых принимается решение о том, как применять данную групповую политику.
Политики подразделяются на политики для компьютеров (Machine) и политики для пользователей (User). Политики для компьютеров применяются на хосте в момент загрузки, а также в момент явного или регулярного запроса планировщиком (раз в час). Пользовательские политики применяются в момент входа в систему.
Групповые политики можно использовать для разных целей, например:
управления интернет-браузерами Firefox/Chromium/Yandex. Возможно установить при использовании ADMX-файлов Mozilla Firefox (пакет admx-firefox), Google Chrome (пакет admx-chromium) и Yandex (пакет admx-yandex-browser) соответственно;
установки запрета на подключение внешних носителей;
управления политиками control (реализован широкий набор настроек). Возможно установить при использовании ADMX-файлов ALT;
включения или выключения различных служб (сервисов systemd). Возможно установить при использовании ADMX-файлов ALT;
настройки удаленного доступа к рабочему столу (VNC) и настройки графической среды MATE. Возможно установить при использовании ADMX-файлов ALT;
настройки среды рабочего стола KDE (экспериментальная политика). Возможно установить при использовании ADMX-файлов ALT;
подключения сетевых дисков (экспериментальная политика);
управления общими каталогами (экспериментальная политика);
генерирования (удаления/замены) ярлыков для запуска программ;
создания каталогов;
управления файлами (экспериментальная политика);
управления сценариями запуска и завершения работы компьютера, входа и выхода пользо-вателя из системы (экспериментальная политика);
установки и удаления пакетов (экспериментальная политика).
Модули (настройки), помеченные как экспериментальные, необходимо включать вручную через ADMX-файлы ALT в разделе Групповые политики.
46.1. Развертывание групповых политик
Процесс развёртывание групповых политик:
Установить административные шаблоны. Для этого:
установить пакеты политик
admx-basealt,
admx-chromium,
admx-firefox,
admx-yandex-browser и утилиту
admx-msi-setup:
# apt-get install admx-basealt admx-chromium admx-firefox admx-yandex-browser admx-msi-setup
скачать и установить ADMX-файлы от Microsoft:
# admx-msi-setup
По умолчанию,
admx-msi-setup
устанавливает последнюю версию ADMX от Microsoft (сейчас это Microsoft Group Policy — Windows 10 October 2020 Update (20H2)). С помощью параметров, можно указать другой источник:
# admx-msi-setup -h
admx-msi-setup - download msi files and extract them in <destination-directory> default value is /usr/share/PolicyDefinitions/.
Usage: admx-msi-setup [-d <destination-directory>] [-s <admx-msi-source>]
Removing admx-msi-setup temporary files...
после установки политики будут находиться в каталоге
/usr/share/PolicyDefinitions
. Необходимо скопировать локальные ADMX-файлы в сетевой каталог sysvol (
/var/lib/samba/sysvol/<DOMAIN>/Policies/
):
# samba-tool gpo admxload -U Administrator
Должен быть установлен пакет
alterator-gpupdate:
# apt-get install alterator-gpupdate
Для автоматического включения групповых политик, при вводе в домен, в окне ввода имени и пароля пользователя, имеющего право вводить машины в домен, отметить пункт Включить групповые политики:
Политики будут включены сразу после ввода в домен (после перезагрузки системы).
Если машина уже находится в домене, можно вручную включить групповые политики с помощью модуля alterator-gpupdate. Для этого в
Центре управления системой в разделе → следует выбрать шаблон локальной политики (
Сервер,
Рабочая станция или
Контроллер домена) и установить отметку в пункте
Управление групповыми политиками:
На рабочей станции, введённой в домен, установить административные инструменты (модуль удаленного управления базой данных конфигурации (ADMC) и модуль редактирования настроек клиентской конфигурации (GPUI)):
# apt-get install admc gpui
В настоящее время GPUI не умеет читать файлы ADMX с контроллера домена. Для корректной работы необходимо установить пакеты admx и файлы ADMX от Microsoft:
# apt-get install admx-basealt admx-chromium admx-firefox admx-yandex-browser admx-msi-setup
# admx-msi-setup
Настроить, если это необходимо, RSAT на машине с ОС Windows:
ввести машину с ОС Windows в домен (управление сервером Samba с помощью RSAT поддерживается из среды до Windows 2012R2 включительно);
включить компоненты удаленного администрирования (этот шаг можно пропустить, если административные шаблоны были установлены на контроллере домена). Для задания конфигурации с помощью RSAT необходимо установить административные шаблоны (файлы ADMX) и зависящие от языка файлы ADML из репозитория
http://git.altlinux.org/gears/a/admx-basealt.git (
https://github.com/altlinux/admx-basealt) и разместить их в каталоге
\\<DOMAIN>\SYSVOL\<DOMAIN>\Policies\PolicyDefinitions
.
корректно установленные административные шаблоны будут отображены на машине Windows в оснастке в разделе → → → :
46.2. Пример создания групповой политики
Для создания групповой политики на машине, введённой в домен, необходимо выполнить следующие шаги:
Добавить доменные устройства (компьютеры/пользователи) в подразделение (OU) (инструмент ADMC или оснастка AD «Пользователи и компьютеры»);
Создать политику и назначить её на OU (инструмент ADMC или оснастка AD «Управление групповой политикой»);
Отредактировать параметры политики (инструмент GPUI или оснастка AD «Редактор управления групповыми политиками»).
В качестве примера, создадим политику, разрешающую запускать команду ping
только суперпользователю (root).
Для использования
ADMC следует сначала получить билет Kerberos для администратора домена:
$ kinit administrator
Password for administrator@TEST.ALT:
Запустить ADMC можно из меню ( → → → ) или командой
admc
:
$ admc
Добавление доменных устройств в группу членства GPO:
Создать новое подразделение:
в контекстном меню домена выбрать пункт → :
в открывшемся окне ввести название подразделения (например, OU) и нажать кнопку ОК:
Переместить компьютеры и пользователей домена в созданное подразделение:
в контекстном меню пользователя/компьютера выбрать пункт ;
в открывшемся диалоговом окне Выбор контейнера – ADMC выбрать контейнер, в который следует переместить учетную запись пользователя.
Создание политики для подразделения:
В контекстном меню подразделения (в папке Объекты групповой политики) выбрать пункт :
В открывшемся окне ввести название политики и нажать кнопку ОК:
Редактирование настроек групповой политики:
В контекстном меню политики выбрать пункт :
Откроется окно редактирования групповых политик (GPUI):
Перейти в → → . Здесь есть несколько разделов, соответствующих категориям control. Выбрать раздел Сетевые приложения, в правом окне редактора отобразится список политик:
Щёлкнуть левой кнопкой мыши на политике Разрешения для /usr/bin/ping. Откроется диалоговое окно настройки политики. Выбрать параметр Включено, в выпадающем списке Кому разрешено выполнять выбрать пункт и нажать кнопку ОК:
После обновления политики на клиенте, выполнять команду
ping
сможет только администратор:
$ ping localhost
bash: ping: команда не найдена
$ /usr/bin/ping localhost
bash: /usr/bin/ping: Отказано в доступе
# control ping
restricted
Пример создания групповой политики на машине с ОС Windows:
На машине с установленным RSAT открыть оснастку (gpmc.msc).
Создать новый объект групповой политики (GPO) и связать его с подразделением (OU), в который входят машины или учетные записи пользователей.
В контекстном меню GPO, выбрать пункт . Откроется редактор GPO.
Перейти в → → → . Здесь есть несколько разделов, соответствующих категориям control. Выбрать раздел Сетевые приложения, в правом окне редактора отобразится список политик:
Дважды щелкнуть левой кнопкой мыши на политике Разрешения для /usr/bin/ping. Откроется диалоговое окно настройки политики. Выбрать параметр Включить, в выпадающем списке Кому разрешено выполнять выбрать пункт и нажать кнопку Применить:
Для диагностики механизмов применения групповых политик на клиенте можно выполнить команду:
# gpoa --loglevel 0
В выводе команды будут фигурировать полученные групповые объекты. В частности, соответствующий уникальный код (GUID) объекта.
Глава 47. Samba
в режиме файлового сервера
Samba — пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части.
47.1. Настройка smb.conf
После редактирования файла
/etc/samba/smb.conf
, следует запустить команду
testparm
для проверки файла на синтаксические ошибки:
# testparm /etc/samba/smb.conf
И, в случае отсутствия ошибок, перезапустить службы smb и nmb, чтобы изменения вступили в силу:
# systemctl restart smb
# systemctl restart nmb
Каждый раздел в файле конфигурации (кроме раздела [global]) описывает общий ресурс. Название раздела — это имя общего ресурса. Параметры в разделе определяют свойства общего ресурса.
Общий ресурс состоит из каталога, к которому предоставляется доступ, а также описания прав доступа, которые предоставляются пользователю.
Разделы — это либо общие файловые ресурсы, либо службы печати. Разделам может быть назначен гостевой доступ, в этом случае для доступа к ним не требуется пароль (для определения прав доступа используется специальная гостевая учетная запись). Для доступа к разделам, к которым запрещен гостевой доступ, потребуется пароль.
Samba использует отдельную от системной базу данных пользователей. Для возможности доступа пользователя к папке (если запрещен гостевой доступ) необходимо внести его в базу данных Samba и установить пароль для доступа к общим ресурсам (он может совпадать с основным паролем пользователя). Следует учитывать, что в базу данных Samba можно добавлять только тех пользователей, которые уже есть в системе.
Добавить пользователя в базу данных Samba можно, выполнив команду (должен быть установлен пакет
samba-common-client):
# smbpasswd -a <имя_пользователя>
В файле конфигурации есть три специальных раздела: [global], [homes] и [printers]:
Раздел [global]
Параметры в этом разделе применяются к серверу в целом или являются значениями по умолчанию для разделов, и могут быть переопределены в разделе.
Раздел [homes]
Используется для подключения домашних каталогов пользователей. При каждом обращении Samba сначала ищет имя запрошенного ресурса в списке общих ресурсов, и если имя не найдено проверяет наличие в конфигурации секции [homes]. Если такая секция есть, то имя трактуется как имя пользователя, и проверяется по базе данных пользователей сервера Samba. Если имя найдено в базе данных пользователей, то Samba предоставляет в качестве общего ресурса домашний каталог этого пользователя. Аналогичный процесс происходит, если имя запрошенного ресурса — «homes», за исключением того, что имя общего ресурса меняется на имя запрашивающего пользователя.
Раздел [printers]
Если в файле конфигурации имеется раздел [printers], пользователи могут подключаться к любому принтеру, указанному в файле printcap локального хоста.
В одноранговой сети (т.е. если
Samba используется исключительно как файловый сервер, а не как контроллер домена) для возможности использования файлового ресурса [homes], необходимо добавить каждого локального пользователя в список пользователей Samba, например:
# smbpasswd -a user
New SMB password:
Retype new SMB password:
Added user user.
Если в разделе [homes] указан гостевой доступ (guest ok = yes), все домашние каталоги будут видны всем клиентам без пароля. Если это действительно нужно (хотя маловероятно), разумно также указать доступ только для чтения (read only = yes).
Флаг browseable
для домашних каталогов будет унаследован от глобального флага browseable
, а не флага browseable
раздела [homes]. Таким образом, установка browseable = no в разделе [homes] скроет общий ресурс [homes], но сделает видимыми все автоматические домашние каталоги.
Описание некоторых параметров:
browseable
— определяет, отображается ли этот общий ресурс в списке доступных общих ресурсов в сетевом окружении и в списке просмотра (по умолчанию: browseable = yes);
path
— указывает каталог, к которому должен быть предоставлен доступ;
read only
— если для этого параметра задано значение «yes», то пользователи службы не могут создавать или изменять файлы в каталоге (по умолчанию: read only = yes);
writable
— инвертированный синоним для read only
(по умолчанию: writeable = no);
write list
— список пользователей, которым будет предоставлен доступ для чтения и записи. Если пользователь находится в этом списке, ему будет предоставлен доступ для записи, независимо от того, какой параметр установлен для параметра read only
. Список может включать имена групп с использованием синтаксиса @group;
read list
— список пользователей, которым будет предоставлен доступ только для чтения. Если пользователь находится в этом списке, ему не будет предоставлен доступ для записи, независимо от того, какой параметр установлен для параметра read only
. Список может включать имена групп;
guest ok
— если этот параметр имеет значение «yes», то для подключения к ресурсу не требуется пароль (по умолчанию: guest ok = no);
guest only
— разрешить только гостевые соединения к общему ресурсу (по умолчанию: guest only = no);
printable
— если этот параметр имеет значение «yes», то клиенты могут открывать, писать и ставить задания в очередь печати (по умолчанию: printable = no);
map to guest
— определяет что делать с запросами, которые не удалось аутентифицировать («Never» — запросы с неправильными паролями будут отклонены; «Bad user» — запросы с неправильными паролями будут отклонены, если такое имя пользователя существует;) (по умолчанию: map to guest = Never).
Пример настройки
/etc/samba/smb.conf
для работы
Samba в режиме файлового сервера с двумя открытыми для общего доступа ресурсами, домашними каталогами пользователей и принтером (закомментированные параметры действуют по умолчанию):
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
security = user
log file = /var/log/samba/log.%m
max log size = 50
guest ok = yes
cups options = raw
map to guest = Bad User
; idmap config * : backend = tdb
[homes]
comment = Home Directory for '%u'
browseable = no
writable = yes
guest ok = no
[share]
comment = Commonplace
path = /srv/share
read only = No
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
; guest ok = no
; writable = no
printable = yes
# Каталог доступный только для чтения, за исключением пользователей
# входящих в группу "staff"
[public]
comment = Public Stuff
path = /home/samba
public = yes
writable = yes
write list = +staff
; browseable = yes
[Free]
path = /mnt/win/Free
read only = no
; browseable = yes
guest ok = yes
Просмотр ресурсов, доступных пользователю user:
# smbclient -L 192.168.0.157 -Uuser
Password for [WORKGROUP\user]:
Sharename Type Comment
--------- ---- -------
share Disk Commonplace
public Disk Public Stuff
Free Disk
IPC$ IPC IPC Service (Samba Server Version 4.19.4)
user Disk Home Directory for 'user'
Обращение к домашней папке пользователя выполняется по имени пользователя (например, smb://192.168.0.157/user).
Для ознакомления с прочими возможностями, читайте руководство по smb.conf. Для этого используйте команду man smb.conf
.
47.2. Монтирование ресурса Samba
через /etc/fstab
Создать файл
/etc/samba/sambacreds
(например, командой
mcedit /etc/samba/sambacreds
), с содержимым:
username=имя_пользователя
password=пароль
Для монтирования ресурса Samba в
/etc/fstab
необходимо прописать:
//server/public /mnt/server_public cifs users,credentials=/etc/samba/sambacreds 0 0
Для защиты информации, права на файл
/etc/samba/sambacreds
, надо установить так, чтобы файл был доступен только владельцу:
# chmod 600 /etc/samba/sambacreds
и принадлежать root:
# chown root: /etc/samba/sambacreds
SOGo — сервер групповой работы, аналогичный
Microsoft Exchange, с веб-интерфейсом и доступом по
MAPI для
Microsoft Outlook.
SOGo обеспечивает веб-интерфейс на основе
AJAX и поддерживает различные нативные клиенты с помощью стандартных протоколов.
Возможности
SOGo:
общие почтовые папки, календари и адресные книги;
веб-интерфейс, аналогичный Outlook Web Access;
поддержка протоколов
CalDAV,
CardDAV,
GroupDAV, Microsoft ActiveSync,
IMAP и
SMTP;
доступ по
MAPI для
Microsoft Outlook, не требующий внешних модулей;
делегирование, уведомления, резервирование, поддержка категорий и почтовых фильтров;
поддержка нескольких почтовых ящиков в веб-интерфейсе;
Single sign-on с помощью
CAS, WebAuth или Kerberos.
MAPI over
HTTPS не поддерживается.
Для установки стабильной версии
SOGo необходимо выполнить команду (драйвер к
PostgreSQL будет установлен автоматически):
# apt-get install task-sogo
Подготовить к запуску и настроить службы
PostgreSQL:
создать системные базы данных:
# /etc/init.d/postgresql initdb
запустить службу:
# systemctl start postgresql
создать пользователя sogo и базу данных sogo (под правами root):
# su - postgres -s /bin/sh -c 'createuser --no-superuser --no-createdb --no-createrole sogo'
# su - postgres -s /bin/sh -c 'createdb -O sogo sogo'
# systemctl restart postgresql
Настройка
Samba DC:
создать в домене пользователя sogo с паролем Pa$$word (при запросе дважды ввести пароль):
# samba-tool user create sogo
# samba-tool user setexpiry --noexpiry sogo
Настройка
SOGo (настраивается на домен test.alt):
заполнить файл конфигурации
/etc/sogo/sogo.conf
:
{
SOGoProfileURL = "postgresql://sogo@/sogo/sogo_user_profile";
OCSFolderInfoURL = "postgresql://sogo@/sogo/sogo_folder_info";
OCSSessionsFolderURL = "postgresql://sogo@/sogo/sogo_sessions_folder";
OCSEMailAlarmsFolderURL = "postgresql://sogo@/sogo/sogo_alarms_folder";
SOGoEnableEMailAlarms = YES;
SOGoDraftsFolderName = Drafts;
SOGoSentFolderName = Sent;
SOGoTrashFolderName = Trash;
SOGoIMAPServer = "imaps://localhost:993/?tlsVerifyMode=allowInsecureLocalhost";
SOGoMailingMechanism = sendmail;
SOGoForceExternalLoginWithEmail = NO;
NGImap4ConnectionStringSeparator = "/";
SOGoUserSources = (
{
id = sambaLogin;
displayName = "SambaLogin";
canAuthenticate = YES;
type = ldap;
CNFieldName = cn;
IDFieldName = cn;
UIDFieldName = sAMAccountName;
hostname = "ldaps://127.0.0.1";
baseDN = "CN=Users,DC=test,DC=alt";
bindDN = "CN=sogo,CN=Users,DC=test,DC=alt";
bindPassword = "Pa$$word";
bindFields = (sAMAccountName);
},
{
id = sambaShared;
displayName = "Shared Addressbook";
canAuthenticate = NO;
isAddressBook = YES;
type = ldap;
CNFieldName = cn;
IDFieldName = mail;
UIDFieldName = mail;
hostname = "ldaps://127.0.0.1";
baseDN = "CN=Users,DC=test,DC=alt";
bindDN = "CN=sogo,CN=Users,DC=test,DC=alt";
bindPassword = "Pa$$word";
filter = "((NOT isCriticalSystemObject='TRUE') AND (mail='*') AND (NOT objectClass=contact))";
},
{
id = sambaContacts;
displayName = "Shared Contacts";
canAuthenticate = NO;
isAddressBook = YES;
type = ldap;
CNFieldName = cn;
IDFieldName = mail;
UIDFieldName = mail;
hostname = "ldaps://127.0.0.1";
baseDN = "CN=Users,DC=test,DC=alt";
bindDN = "CN=sogo,CN=Users,DC=test,DC=alt";
bindPassword = "Pa$$word";
filter = "((((objectClass=person) AND (objectClass=contact) AND ((uidNumber>=2000) OR (mail='*')))
AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE') AND (NOT uid=Guest))
OR (((objectClass=group) AND (gidNumber>=2000)) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE')))";
mapping = {
displayname = ("cn");
};
}
);
SOGoSieveScriptsEnabled = YES;
SOGoLanguage = Russian;
SOGoTimeZone = Europe/Moscow;
SOGoFirstDayOfWeek = 1;
}
включить службы по умолчанию и перезапустить их:
# for service in samba postgresql memcached sogo httpd2; do systemctl enable $service; systemctl restart $service; done
Возможные ошибки будут записаны в файл журнала /var/log/sogo/sogo.log
48.3. Включение веб-интерфейса
Для включения веб-интерфейса необходимо выполнить команды:
# for mod in proxy proxy_http authn_core authn_file auth_basic authz_user env dav headers rewrite version setenvif; do a2enmod $mod; done
# a2ensite SOGo
# systemctl restart httpd2 sogo
Теперь можно войти по адресу:
http://<адрес_сервера>/SOGo/
Если при входе в веб-интерфейс возникает ошибка «Неправильный логин или пароль» и в логах
/var/log/sogo/sogo.log
есть ошибки вида:
Jul 06 16:14:51 sogod [12257]: [ERROR] <0x0x5578db070b40[LDAPSource]>
Could not bind to the LDAP server ldaps://127.0.0.1 (389) using the
bind DN: CN=sogo,CN=Users,DC=test,DC=alt
Следует в файл
/etc/openldap/ldap.conf
добавить опцию
TLS_REQCERT allow
и перезапустить службы samba и sogo:
# systemctl restart samba sogo
48.4. Настройка электронной почты
Для использования электронной почты в SOGo необходимо настроить аутентификацию в Active Directory для Postfix и Dovecot.
В примере используется следующая конфигурация:
имя домена: test.alt;
размещение почты: /var/mail/<имя_домена>/<имя_пользователя>
(формат maildir);
доступ на чтение почты: IMAP (порт 993), SSL;
доступ на отправку почты: SMTP (порт 465), SSL/STARTTLS;
данные аутентификации: email с доменом (например, petrov@test.alt) или имя пользователя.
У пользователей SambaDC должен быть указан атрибут
mail-address
. Указать атрибут
mail-address
можно, например, при создании учётной записи:
# samba-tool user create petrov --mail-address='petrov@test.alt'
Доступ к серверу LDAP осуществляется по протоколу ldap без шифрования. На контроллере домена SambaDC необходимо отключить ldaps в
/etc/samba/smb.conf
в секции [global]:
ldap server require strong auth = no
и перезапустить samba:
# systemctl restart samba
Предварительно необходимо создать пользователя vmail (пароль Pa$$word) с не истекающей учётной записью:
# samba-tool user create -W Users vmail
# samba-tool user setexpiry vmail --noexpiry
48.4.1. Настройка Postfix
Установить пакет
postfix-ldap:
# apt-get install postfix-ldap
В каталоге
/etc/postfix
изменить файлы для домена test.alt:
Проверка конфигурации Postfix (в выводе не должно быть никаких сообщений):
# postconf >/dev/null
Проверка пользователя почты petrov:
# postmap -q petrov@test.alt ldap:/etc/postfix/ad_local_recipients.cf
petrov@test.alt
Проверка входа:
# postmap -q petrov@test.alt ldap:/etc/postfix/ad_sender_login.cf
petrov@test.alt
Проверка общего адреса e-mail:
# samba-tool group add --mail-address=sales@test.alt Sales
Added group Sales
# samba-tool group addmembers Sales ivanov,petrov
Added members to group Sales
# postmap -q sales@test.alt ldap:/etc/postfix/ad_mail_groups.cf
sales@test.alt,ivanov@test.alt,petrov@test.alt
48.4.2. Настройка Dovecot
Установить Dovecot:
# apt-get install dovecot
Изменить файлы для домена test.alt:
создать файл
/etc/dovecot/dovecot-ldap.conf.ext
:
hosts = test.alt:3268
ldap_version = 3
auth_bind = yes
dn = cn=vmail,cn=Users,dc=test,dc=alt
dnpass = Pa$$word
base = cn=Users,dc=test,dc=alt
scope = subtree
deref = never
user_filter = (&(objectClass=user)(|(mail=%Lu)(sAMAccountName=%Lu)))
user_attrs = =uid=8,gid=12,mail=user
pass_filter = (&(objectClass=user)(|(mail=%Lu)(sAMAccountName=%Lu)))
pass_attrs = mail=user
привести файл
/etc/dovecot/conf.d/10-auth.conf
к виду:
auth_mechanisms = plain
!include auth-ldap.conf.ext
изменить файл
/etc/dovecot/conf.d/10-mail.conf
:
mail_location = maildir:/var/mail/%d/%n:UTF-8:INBOX=/var/mail/%d/%n/Inbox
mail_uid = mail
mail_gid = mail
first_valid_uid = 5
first_valid_gid = 5
изменить файл
/etc/dovecot/conf.d/10-master.conf
:
service imap-login {
inet_listener imap {
port = 0
}
inet_listener imaps {
}
}
service pop3-login {
inet_listener pop3 {
port = 0
}
inet_listener pop3s {
port = 0
}
}
service lmtp {
unix_listener lmtp {
}
}
service imap {
}
service pop3 {
}
service auth {
unix_listener auth-userdb {
}
unix_listener /var/spool/postfix/private/auth {
mode = 0600
user = postfix
group = postfix
}
}
service auth-worker {
}
service dict {
unix_listener dict {
}
}
изменить файл
/etc/dovecot/conf.d/15-lda.conf
:
protocol lda {
hostname = test.alt
postmaster_address = administrator@test.alt
}
изменить файл
/etc/dovecot/conf.d/15-mailboxes.conf
:
namespace inbox {
inbox = yes
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
auto = subscribe
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
}
создать файл
/etc/dovecot/conf.d/10-stats.conf
:
service stats {
unix_listener stats-reader {
user = mail
group = mail
mode = 0660
}
unix_listener stats-writer {
user = mail
group = mail
mode = 0660
}
}
перезапустить службу dovecot:
# systemctl restart dovecot
Проверка конфигурации Dovecot (в выводе не должно быть никаких сообщений):
# doveconf >/dev/null
Так как конфигурационные файлы содержат пароль пользователя LDAP, их необходимо сделать недоступным для чтения прочим пользователям:
# chown dovecot:root /etc/dovecot/dovecot-ldap.conf.ext
# chmod 0640 /etc/dovecot/dovecot-ldap.conf.ext
# chown root:postfix /etc/postfix/ad_local_recipients.cf /etc/postfix/ad_mail_groups.cf /etc/postfix/ad_sender_login.cf
# chmod 0640 /etc/postfix/ad_local_recipients.cf /etc/postfix/ad_mail_groups.cf /etc/postfix/ad_sender_login.cf
Перезапустить службы:
# systemctl restart dovecot postfix
48.4.4. Проверка конфигурации
Проверка SMTP:
# date | mail -s test petrov@test.alt
# mailq
Mail queue is empty
Проверка IMAP (выход по
Ctrl+
D):
# openssl s_client -crlf -connect dc1.test.alt:993
...
tag login petrov@test.alt Pa$$word
tag OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT
MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS
LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES
WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE] Logged in
где dc1.test.alt — имя узла сервера SOGo.
48.5. Настройка автоответчика, переадресации и фильтрации
В данном разделе рассмотрен процесс конфигурирования Dovecot с плагином Sieve, для возможности фильтрации и переадресации писем.
Настройка Dovecot:
в файле
/etc/dovecot/conf.d/dovecot.conf
указать используемые протоколы:
protocols = imap lmtp submission sieve
в файл
/etc/dovecot/conf.d/10-mail.conf
добавить опцию
mail_home
с указанием пути до каталогов с почтой:
mail_location = maildir:/var/mail/%d/%n:UTF-8:INBOX=/var/mail/%d/%n/Inbox
mail_uid = mail
mail_gid = mail
first_valid_uid = 5
first_valid_gid = 5
mail_home = /var/mail/%d/%n
Переменные
%d
и
%u
указывают на имя домена и имя учетной записи.
в файле
/etc/dovecot/conf.d/15-lda.conf
в раздел
protocol lda добавить плагин sieve:
mail_plugins = $mail_plugins sieve
в файле
/etc/dovecot/conf.d/20-lmtp.conf
в разделе
protocol lmtp также указать плагин sieve:
mail_plugins = $mail_plugins sieve
в файле
/etc/dovecot/conf.d/20-managesieve.conf
раскомментировать строку:
protocols = $protocols sieve
в файлe
/etc/dovecot/conf.d/90-sieve.conf
закомментировать строку
sieve = file:~/sieve;active=~/.dovecot.sieve и добавить новое её значение:
#sieve = file:~/sieve;active=~/.dovecot.sieve
sieve = file:/var/mail/%Ld/%n/sieve;active=/var/mail/%Ld/%n/active.sieve
В этом же файле раскомментировать опцию
sieve_extensions
и привести её к виду:
sieve_extensions = +notify +imapflags +vacation-seconds +vacation +date +relational
в файле
/etc/dovecot/conf.d/10-auth.conf
подключить master-users:
!include auth-master.conf.ext
в файле
/etc/dovecot/master-users
создать запись:
my_master_user@non-exist.com:{PLAIN}password::::::
Должно быть обязательно указано несуществующее имя домена. В реальных условиях необходимо использовать хэш пароля (например,
doveadm pw -s SSHA512
).
в файле
/etc/sogo/sieve.creds
указать эти данные в виде:
my_master_user@non-exist.com:password
в начало файла
/etc/cron.d/sogo
дописать:
MAILTO=""
и раскомментировать строку:
*/5 * * * * _sogo /usr/sbin/sogo-tool update-autoreply -p /etc/sogo/sieve.creds
В
SOGo необходимо активировать окно настроек почтовых фильтров (параметр
SOGoSieveScriptsEnabled
), окно настроек сообщений об отпуске (параметр
SOGoVacationEnabled
), а также окно настроек адресов электронной почты для пересылки (параметр
SOGoForwardEnabled
). Для этого в файл конфигурации
/etc/sogo/sogo.conf
добавить строки:
SOGoSieveScriptsEnabled = YES;
SOGoVacationEnabled = YES;
SOGoForwardEnabled = YES;
SOGoSieveFolderEncoding = UTF-8;
Перезапустить службы:
# systemctl restart postfix dovecot sogo
В результате в веб-интерфейсе SOGo в настройках почты появятся три дополнительные вкладки:
На вкладке Фильтры можно создавать фильтры и устанавливать критерии, по которым они должны работать:
На вкладке Отпуск можно настроить автоответ на время отпуска:
На вкладке Пересылка настраивается переадресация электронной почты:
FreeIPA — это комплексное решение по управлению безопасностью Linux-систем,
389 Directory Server,
MIT Kerberos,
NTP,
DNS,
Dogtag, состоит из веб-интерфейса и интерфейса командной строки.
FreeIPA является интегрированной системой проверки подлинности и авторизации в сетевой среде Linux, FreeIPA сервер обеспечивает централизованную проверку подлинности, авторизацию и контроль за аккаунтами пользователей сохраняя сведения о пользователе, группах, узлах и других объектах необходимых для обеспечения сетевой безопасности.
49.1. Установка сервера FreeIPA
В качестве примера показана установка сервера
FreeIPA со встроенным
DNS сервером и доменом EXAMPLE.TEST в локальной сети 192.168.0.0/24. В примере для установки сервера используется узел: ipa.example.test (192.168.0.113).
Во избежание конфликтов с разворачиваемым tomcat необходимо отключить ahttpd, работающий на порту 8080, а также отключить HTTPS в Apache2:
# systemctl stop ahttpd
# a2dissite 000-default_https
# a2disport https
# systemctl condreload httpd2
Установить необходимые пакеты (если во время установки сервера не был выбран пункт сервер FreeIPA):
# apt-get install freeipa-server freeipa-server-dns
Задать имя сервера:
# hostnamectl set-hostname ipa.example.test
После изменения имени компьютера могут перестать запускаться приложения. Для решения этой проблемы необходимо перезагрузить систему.
Команда установки сервера FreeIPA в пакетном режиме:
# ipa-server-install -U --hostname=$(hostname) -r EXAMPLE.TEST -n example.test -p 12345678 -a 12345678 --setup-dns --forwarder 8.8.8.8 --auto-reverse
Для пакетной установки необходимо указать следующие параметры:
-r REALM_NAME
— имя области Kerberos для сервера FreeIPA;
-n DOMAIN_NAME
— доменное имя;
-p DM_PASSWORD
— пароль, который будет использоваться сервером каталогов для менеджера каталогов (DM);
-a ADMIN_PASSWORD
— пароль пользователя admin, администратора FreeIPA;
-U
— позволить процессу установки выбрать параметры по умолчанию, не запрашивая у пользователя информацию;
--hostname=HOST_NAME
— полное DNS-имя этого сервера.
Чтобы установить сервер со встроенным DNS, должны также быть добавлены следующие параметры:
--setup-dns
— создать зону DNS, если она еще не существует, и настроить DNS-сервер;
--forwarder
или --no-forwarders
— в зависимости от того, нужно ли настроить серверы пересылки DNS или нет;
--auto-reverse
или --no-reverse
— в зависимости от того, нужно ли настроить автоматическое обнаружение обратных зон DNS, которые должны быть созданы в FreeIPA DNS, или отключить автоматическое определение обратных зон.
Если в дальнейшем на данной машине будет настраиваться
Fleet Commander Admin, необходимо устанавливать и настраивать FreeIPA сервер, с созданием домашнего каталога (опция
--mkhomedir
):
# ipa-server-install -U --hostname=$(hostname) -r EXAMPLE.TEST -n example.test -p 12345678 -a 12345678 --setup-dns --forwarder 8.8.8.8 --auto-reverse --mkhomedir
Для запуска интерактивной установки следует выполнить команду:
# ipa-server-install
Обратите внимание на ответ на вопрос, не совпадающий с предложенным:
Do you want to configure integrated DNS (BIND)? [no]: yes
Остальные вопросы необходимо выбрать по умолчанию (можно просто нажать
Enter). Так же при установке необходимо ввести пароль администратора системы и пароль администратора каталогов (пароли должны быть не менее 8 символов).
После завершения процесса конфигурации будет выведена подсказка со следующими шагами.
Для возможности управлять
FreeIPA сервером из командной строки необходимо получить билет Kerberos:
# kinit admin
Добавить в
DNS запись о сервере времени:
# ipa dnsrecord-add example.test _ntp._udp --srv-priority=0 --srv-weight=100 --srv-port=123 --srv-target=ipa.example.test
Проверить работу ntp сервера можно командой:
# ntpdate -q localhost
server 127.0.0.1, stratum 3, offset 0.000018, delay 0.02568
27 Nov 10:27:00 ntpdate[29854]: adjust time server 127.0.0.1 offset 0.000018 sec
Веб-интерфейс доступен по адресу https://ipa.example.test/ipa/ui/
.
В случае сбоя установки сервера FreeIPA некоторые файлы конфигурации могут быть уже сконфигурированы. В этом случае дополнительные попытки установить сервер FreeIPA завершатся неудачно. Чтобы решить эту проблему, перед повторной попыткой запуска процесса установки, следует удалить частичную конфигурацию сервера FreeIPA:
# ipa-server-install --uninstall
Если ошибки при установке сервера FreeIPA остаются, следует переустановить ОС. Одним из требований для установки сервера FreeIPA является чистая система без каких-либо настроек.
49.2. Добавление новых пользователей домена
Для добавления новых пользователей можно воспользоваться веб-интерфейсом FreeIPA. Для этого необходимо открыть в веб-браузере адрес https://ipa.example.test
и ввести данные администратора для входа в систему.
После успешной авторизации можно создать нового пользователя домена. Для этого на странице → → необходимо нажать кнопку Добавить:
В открывшемся окне необходимо ввести данные пользователя и нажать кнопку Добавить:
Созданный пользователь появится в списке пользователей:
49.3. Установка FreeIPA клиента и подключение к серверу
49.3.1. Установка FreeIPA клиента
Установить необходимые пакеты:
# apt-get install freeipa-client libsss_sudo krb5-kinit bind-utils libbind zip task-auth-freeipa
Клиентские компьютеры должны быть настроены на использование DNS-сервера, который был сконфигурирован на сервере FreeIPA во время его установки. При получении IP-адреса по DHCP данные о сервере DNS также должны быть получены от сервера DHCP. Ниже приведен пример настройки сетевого интерфейса со статическим IP-адресом.
В сетевых настройках необходимо указать использовать сервер FreeIPA для разрешения имен. Эти настройки можно выполнить как в графическом интерфейсе, так и в консоли:
В
Центре управления системой в разделе → задать имя компьютера, IP-адрес FreeIPA сервера и в поле
Домены поиска — домен для поиска:
В консоли:
задать имя компьютера:
# hostnamectl set-hostname comp01.example.test
добавить DNS сервер, для этого необходимо создать файл
/etc/net/ifaces/eth0/resolv.conf
со следующим содержимым:
nameserver 192.168.0.113
где 192.168.0.113 — IP-адрес FreeIPA сервера.
указать службе resolvconf использовать DNS FreeIPA и домен для поиска. Для этого в файле
/etc/resolvconf.conf
добавить/отредактировать следующие параметры:
interface_order='lo lo[0-9]* lo.* eth0'
search_domains=example.test
где eth0 — интерфейс на котором доступен FreeIPA сервер, example.test — домен.
обновить DNS адреса:
# resolvconf -u
После изменения имени компьютера могут перестать запускаться приложения. Для решения этой проблемы необходимо перезагрузить систему.
В результате выполненных действий в файле
/etc/resolv.conf
должны появиться строки:
search example.test
nameserver 192.168.0.113
49.3.2. Подключение к серверу в ЦУС
В открывшемся окне следует выбрать пункт Домен FreeIPA, заполнить поля Домен и Имя компьютера, затем нажать кнопку Применить.
В открывшемся окне необходимо ввести имя пользователя, имеющего право вводить машины в домен, и его пароль и нажать кнопку ОК.
В случае успешного подключения, будет выведено соответствующее сообщение.
Перезагрузить рабочую станцию.
49.3.3. Подключение к серверу в консоли
Запустить скрипт настройки клиента в пакетном режиме:
# ipa-client-install -U -p admin -w 12345678
или интерактивно:
# ipa-client-install
Если все настроено, верно, скрипт должен выдать такое сообщение:
'''Discovery was successful!'''
Client hostname: comp01.example.test
Realm: EXAMPLE.TEST
DNS Domain: example.test
IPA Server: ipa.example.test
BaseDN: dc=example,dc=test
Continue to configure the system with these values? [no]:
Необходимо ответить
yes
, ввести имя пользователя, имеющего право вводить машины в домен, и его пароль.
Если при входе в домен возникает такая ошибка:
Hostname (comp01.example.test) does not have A/AAAA record.
Failed to update DNS records.
Необходимо проверить IP-адрес доменного DNS сервера в файле
/etc/resolv.conf
.
В случае возникновения ошибки, необходимо перед повторной установкой запустить процедуру удаления:
# ipa-client-install -U --uninstall
Для работы sudo-политик для доменных пользователей на клиентской машине необходимо разрешить доступ к sudo:
# control sudo public
49.3.4. Вход пользователя
При первом входе пользователя будет запрошен текущий (установленный администратором) пароль и затем у пользователя запрашивается новый пароль и его подтверждение.
Если машина до этого была в других доменах или есть проблемы со входом пользователей рекомендуется очистить кэш sssd:
# systemctl stop sssd
# rm -f /var/lib/sss/db/*
# rm -f /var/lib/sss/mc/*
# systemctl start sssd
49.4. Удаление клиента FreeIPA
При удалении, клиент удаляется из домена FreeIPA вместе с конфигурацией системных служб FreeIPA.
Для удаления клиента FreeIPA необходимо:
На клиенте ввести команду:
# ipa-client-install --uninstall
…
Client uninstall complete.
The original nsswitch.conf configuration has been restored.
You may need to restart services or reboot the machine.
Do you want to reboot the machine? [no]: yes
The ipa-client-install command was successful
На клиенте удалить, если они есть, старые принципалы Kerberos (кроме
/etc/krb5.keytab
):
# ipa-rmkeytab -k /path/to/keytab -r EXAMPLE.TEST
На сервере FreeIPA удалить все записи DNS для клиентского узла:
# ipa dnsrecord-del
Имя записи: comp01
Имя зоны: example.test
Возможность удаления определённой записи не предусмотрена.
Удалить все? Yes/No (default No): yes
-----------------------
Удалена запись "comp01"
-----------------------
На сервере FreeIPA удалить запись узла с сервера LDAP FreeIPA (при этом будут удалены все службы и отозваны все сертификаты, выданные для этого узла):
# ipa host-del comp01.example.test
---------------------------------
Удалён узел "comp01.example.test"
---------------------------------
49.5. Настройка репликации
В примере для настройки репликации используется узел: replica.example.test (192.168.0.145).
Перед настройкой репликации необходимо настроить систему на использование DNS-сервера, который был сконфигурирован на сервере FreeIPA во время его установки (см. пример настройки в разделе
Установка FreeIPA клиента).
При установке реплики в системе, которая еще не зарегистрирована в домене FreeIPA, утилита ipa-replica-install
сначала регистрирует систему в качестве клиента, а затем устанавливает компоненты реплики. В примере, описанном ниже, для авторизации регистрации используется случайный пароль, действительный только для одной регистрации этого клиента.
Установка реплики с использованием случайного пароля:
На сервере FreeIPA получить билет Kerberos:
$ kinit admin
На сервере FreeIPA добавить внешнюю систему в качестве узла FreeIPA:
$ ipa host-add replica.example.test --random --ip-address=192.168.0.145
----------------------------------
Добавлен узел "replica.example.test"
----------------------------------
Имя узла: replica.example.test
Случайный пароль: 2AaT0Ix8itDsYugdDGoRtBt
Пароль: True
Таблица ключей: False
Managed by: replica.example.test
На сервере FreeIPA добавить систему replica.example.test в группу узлов ipaservers:
$ ipa hostgroup-add-member ipaservers --hosts replica.example.test
Группа узлов: ipaservers
Описание: IPA server hosts
Узлы-участники: ipa.example.test, replica.example.test
-----------------------------------
Количество добавленных участников 1
-----------------------------------
На машине, где будет установлена реплика, установить необходимые пакеты:
# apt-get install freeipa-server freeipa-server-dns
На машине, где будет установлена реплика, запустить утилиту
ipa-replica-install
, указав сгенерированный пароль в параметре
--password
(т.к. пароль часто содержит специальные символы, следует заключить его в одинарные кавычки):
# ipa-replica-install --password='2AaT0Ix8itDsYugdDGoRtBt' --setup-ca --setup-dns --forwarder 192.168.0.113 --forwarder 8.8.8.8
Configuring client side components
This program will set up IPA client.
Version 4.9.11
Discovery was successful!
Client hostname: replica.example.test
Realm: EXAMPLE.TEST
DNS Domain: example.test
IPA Server: ipa.example.test
BaseDN: dc=example,dc=test
…
The ipa-client-install command was successful
…
The ipa-replica-install command was successful
После создания реплики можно проверить, реплицирует ли реплика данные должным образом:
Создать пользователя на новой реплике:
$ kinit admin
$ ipa user-add test_user
Убедиться, что пользователь виден на другой реплике:
$ kinit admin
$ ipa user-show test_user
После настройки и репликации контроллеров можно посмотреть топологию в веб-интерфейсе FreeIPA ( → → ):
Глава 50. Fleet Commander
Fleet Commander — это инструмент для управления и развертывания профилей в большой сети пользователей и рабочих станций.
Fleet Commander состоит из трех компонентов:
плагин FreeIPA, который позволяет хранить политики на контроллере домена;
плагин Cockpit, предоставляющий веб-интерфейс для администрирования;
служба на стороне клиента, применяющая политики.
Fleet Commander использует libvirt и KVM для запуска сеанса виртуального рабочего стола, где пользователь в реальном времени может редактировать конфигурацию приложений в системе шаблонов. Данная конфигурация затем будет применена на клиентах.
50.1. Установка и настройка Fleet Commander
50.1.1. Настройка libvirt-хоста
В качестве libvirt-хоста может выступать как отдельная машина, так и машина с Fleet Commander Admin.
Установить libvirt:
# apt-get install libvirt-kvm virt-install
Добавить службу libvirtd в автозапуск и запустить её:
# systemctl enable --now libvirtd.service
Проверить, что default сеть определена, запущена и автозапускаемая:
# virsh net-list --all
Имя Статус Автозапуск Persistent
----------------------------------------------
default активен yes yes
Определить сеть default, если она не определена:
# virsh net-define /etc/libvirt/qemu/networks/default.xml
Отметить default сеть как автозапускаемую:
# virsh net-autostart default
Запустить default сеть:
# virsh net-start default
В Альт Сервер по умолчанию отключена парольная аутентификация для root в sshd, поэтому если есть необходимость использовать привилегированного пользователя libvirt-хоста, то следует разрешить root-доступ по ssh. Включить парольную аутентификацию для root можно с помощью control (должен быть установлен пакет
control-sshd-permit-root-login):
# control sshd-permit-root-login enabled
и перезагрузить ssh-сервер:
# systemctl restart sshd.service
После того как ключ будет скопирован, рекомендуется отключить парольную аутентификацию:
# control sshd-permit-root-login disabled
# systemctl restart sshd.service
Шаблон это виртуальная машина с запущенным на ней Fleet Commander Logger. Шаблон запускается на «админ» машине в live-сессии. Регистратор (логгер) отслеживает сделанные изменения в шаблоне и сохраняет их.
Для настройки новой виртуальной машины шаблонов, достаточно создать виртуальную машину (ВМ) внутри гипервизора libvirt/KVM, запустить её и установить на этой template-машине Fleet Commander Logger. Регистратор будет автоматически запускаться после входа в систему.
Установка ОС на libvirt домен:
Запустить домен, например:
# virt-install
--name alt \
--ram 4096 --cpu kvm64 --vcpus 2 \
--disk pool=default,size=20,bus=virtio,format=qcow2 \
--network network=default --graphics spice,listen=127.0.0.1,password=test \
--cdrom /var/lib/libvirt/images/alt-workstation-10.0-x86_64.iso --os-variant=alt10.0
Подключиться к ВМ и произвести установку ОС (на хосте, с которого происходит подключение, должен быть установлен пакет
virt-viewer):
$ virt-viewer --connect qemu+ssh://user@192.168.0.190/system
После окончания установки ОС, установить на ВМ Fleet Commander Logger:
# apt-get install fleet-commander-logger
ВМ, которую планируется использовать как шаблон, должна быть выключена, иначе Fleet Commander не позволит запустить live-сессию на этой машине.
50.1.2. Установка и настройка Fleet Commander Admin
Установить пакет
freeipa-desktop-profile:
# apt-get install freeipa-desktop-profile
...
Perform the IPA upgrade. This may take a while.
The IPA upgrade was successful.
Завершено.
Пакет
freeipa-desktop-profile не входит в состав ISO-образа дистрибутива, его можно установить из репозитория p10. О добавлении репозиториев с использованием графических приложений вы можете почитать в разделе
Управление репозиториями.
Проверить, что плагин работает:
# kinit admin
Password for admin@EXAMPLE.TEST:
# ipa deskprofileconfig-show
Priority of profile application: 1
Если на выходе команды
ipa deskprofileconfig-show
появляется ошибка:
ipa: ERROR: неизвестная команда "deskprofileconfig-show"
необходимо почистить кэш текущему пользователю и повторить команду:
# rm -rf ~/.cache/ipa
# ipa deskprofileconfig-show
Priority of profile application: 1
Установить Fleet Commander плагин для Cockpit (из репозитория):
# apt-get install fleet-commander-admin
Пакет
fleet-commander-admin не входит в состав ISO-образа дистрибутива, его можно установить из репозитория p10. О добавлении репозиториев с использованием графических приложений вы можете почитать в разделе
Управление репозиториями.
Добавить сервис Cockpit в автозапуск и запустить его:
# systemctl enable --now cockpit.socket
Веб-интерфейс Cockpit будет доступен по адресу
https://адрес-сервера:9090/
:
Вход осуществляется по логину указанному при установке FreeIPA сервера.
Для доступа к настройке Fleet Commander следует выбрать соответствующую кнопку на левой панели веб-интерфейса.
При первом запуске Fleet Commander необходимо настроить глобальную политику и информацию о хосте libvirt.
Открыть окно настроек можно, нажав кнопку Settings на вкладке Fleet Commander.
Fleet Commander позволяет установить глобальную политику для определения того, как применять несколько профилей: к конкретному пользователю, к группе, к хосту, к группе хостов. По умолчанию это User-Group-Host-Hostgroup
.
Для запуска live-сессии необходимо работающее ssh-соединение с libvirt-хостом. В форму настройки необходимо ввести следующие данные:
Fleet Commander virtual environment host — адрес libvirt-хоста (если в качестве libvirt-хоста используется FreeIPA сервер, то здесь необходимо указать адрес текущей машины или localhost);
Username for connection — имя пользователя libvirt-хоста (пользователь должен быть включён в группу vmusers);
Libvirt mode — если пользователь не является привилегированным, то следует переключить данную настройку в режим сеанса.
Fleet Commander генерирует свой собственный открытый ключ, который необходимо добавить в
.ssh/authorized_keys
для соответствующего пользователя на libvirt-хосте. Это можно сделать, нажав кнопку
Install public key (
Установить открытый ключ), при этом будет необходимо ввести пароль пользователя. Пароль используется только для установки ключа и нигде не хранится.
На хосте libvirt, должен быть запущен SSH-сервер (служба sshd).
50.1.2.1. Работа с профилями
После настройки Fleet Commander Admin необходимо создать и настроить профиль. Для создания профиля нажать кнопку
Add Profile на вкладке
Fleet Commander. Появится форма настройки профиля:
Форма настройки профиля содержит следующие поля:
Name — имя профиля;
Description — описание профиля;
Priority — приоритет профиля;
Users — пользователи, к которым будет применен профиль;
Groups — группы, к которым будет применен профиль;
Hosts — хосты, к которым будет применен профиль;
Host groups — группы хостов, к которым будет применен профиль.
Если не указан ни один хост или группа хостов, то профиль будет применен к каждому хосту состоящему в домене.
50.1.3. Настройка шаблона
Для настройки шаблона в веб-интерфейсе Cockpit необходимо нажать кнопку
Edit напротив нужного профиля:
и в открывшемся окне нажать кнопку
Live session:
В появившейся форме будет выведен список доступных шаблонов. При выборе шаблона, он начнет загружаться.
50.1.4. Установка и настройка Fleet Commander Client
Установить необходимый пакет (из репозитория):
# apt-get install fleet-commander-client
Клиент будет запускаться автоматически, при входе в домен с поддержкой Fleet Commander, и будет настраивать конфигурацию, которая применима к данному пользователю.
50.2. Использование Fleet Commander
Fleet Commander работает со следующими приложениями:
GSettings
LibreOffice
Chromium
Chrome
Firefox
NetworkManager
Администрирование происходит через веб-интерфейс Cockpit.
Порядок работы с Fleet Commander:
Открыть https://адрес-сервера:9090/fleet-commander-admin
и запустить live-сессию ( → ). Появится окно со списком доступных ВМ, которые можно использовать в качестве шаблона для загрузки в live-сессии:
Выбрать машину, на которой установлен Fleet Commander Logger, и запустить ее:
Загруженная машина является шаблоном, все сделанные на ней изменения будут отловлены регистратором, сохранены и применены на клиентских системах.
На загруженной машине внести необходимые изменения в настройки.
В веб-интерфейсе Cockpit нажать кнопку Review and submit. Появится окно со списком сделанных изменений:
В списке изменений можно выбрать как все изменения, так и частичные, установив отметку напротив нужного. После выбора нажать кнопку Save, для сохранения изменений.
Загрузить клиентскую машину, войти в систему под доменным пользователем. Убедиться, что сделанные изменения успешно применились.
При закрытии вкладки браузера с Cockpit, live-сессия прервется и изменения, внесенные за время ее существования, будут потеряны.
50.3. Устранение неполадок Fleet Commander
Для отлавливания любых ошибок возникших во время работы Fleet Commander Admin необходимо добавить log_level = debug
в /etc/xdg/fleet-commander-admin.conf
. Возникшие ошибки можно отследить, используя journalctl
.
Глава 51. Система мониторинга Zabbix
Zabbix — система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования.
Для управления системой мониторинга и чтения данных используется веб-интерфейс.
51.1. Установка сервера PostgreSQL
Перед установкой Zabbix должен быть установлен и запущен сервер PostgreSQL, с созданным пользователем zabbix и созданной базой zabbix.
Установить PostgreSQL, Zabbix-сервер и дополнительную утилиту
fping
:
# apt-get install postgresql14-server zabbix-server-pgsql fping
Подготовить к запуску и настроить службы
PostgreSQL, для этого необходимо выполнить следующие действия:
создать системные базы данных:
# /etc/init.d/postgresql initdb
включить по умолчанию и запустить службу:
# systemctl enable --now postgresql
создать пользователя zabbix и базу данных zabbix (под правами root):
# su - postgres -s /bin/sh -c 'createuser --no-superuser --no-createdb --no-createrole --encrypted --pwprompt zabbix'
# su - postgres -s /bin/sh -c 'createdb -O zabbix zabbix'
# systemctl restart postgresql
добавить в базу данные для веб-интерфейса (последовательность команд важна, в разных версиях Zabbix путь будет отличаться, версия помечена звёздочкой):
# su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-common-database-pgsql-*/schema.sql zabbix'
# su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-common-database-pgsql-*/images.sql zabbix'
# su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-common-database-pgsql-*/data.sql zabbix'
Установить пакеты apache2:
# apt-get install apache2 apache2-mod_php8.2
Добавить в автозапуск и запустить apache2:
# systemctl enable --now httpd2
Начиная с версии php8.0, пакеты модулей именуются следующим образом:
php<мажорная>.<минорная версии>-<имя модуля>
Из репозитория можно установить и эксплуатировать в одной системе одновременно разные версии php. В данном руководстве в качестве примера используется php8.2.
Установить необходимые пакеты:
# apt-get install php8.2 php8.2-mbstring php8.2-sockets php8.2-gd php8.2-xmlreader php8.2-pgsql php8.2-ldap php8.2-openssl
Изменить некоторые опции php в файле
/etc/php/8.2/apache2-mod_php/php.ini
:
memory_limit = 256M
post_max_size = 32M
max_execution_time = 600
max_input_time = 600
date.timezone = Europe/Moscow
always_populate_raw_post_data = -1
Перезапустить apache2:
# systemctl restart httpd2
51.4. Настройка и запуск Zabbix-сервера
Внести изменения в конфигурационный файл
/etc/zabbix/zabbix_server.conf
:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Пароль от базы
Добавить Zabbix-сервер в автозапуск и запустить его:
# systemctl enable --now zabbix_pgsql
51.5. Установка веб-интерфейса Zabbix
Установить метапакеты (из репозитория):
# apt-get install zabbix-phpfrontend-apache2 zabbix-phpfrontend-php8.2
Включить аддоны в apache2:
# ln -s /etc/httpd2/conf/addon.d/A.zabbix.conf /etc/httpd2/conf/extra-enabled/
Перезапустить apache2:
# systemctl restart httpd2
Изменить права доступа к конфигурационному каталогу веб-интерфейса, чтобы веб-установщик мог записать конфигурационный файл:
# chown apache2:apache2 /var/www/webapps/zabbix/ui/conf
В браузере перейти на страницу установки Zabbix сервера:
http://<ip-сервера>/zabbix
При первом заходе на страницу запустится мастер, который шаг за шагом проверит возможности веб-сервера, интерпретатора PHP и сконфигурирует подключение к базе данных.
На странице также можно выбрать язык установки Zabbix.
Если при входе на страницу http://<ip-сервера>/zabbix появляется ошибка: доступ запрещен, следует в файле
/etc/httpd2/conf/sites-available/default.conf
в секцию <Directory> добавить запись:
Require all granted
и перезапустить apache2:
# systemctl restart httpd2
Для начала установки необходимо нажать кнопку Далее, что осуществит переход на страницу проверки предварительных условий.
Необходимо доустановить то, что требуется и перейти на следующую страницу.
Здесь необходимо ввести параметры подключения к базе данных (параметры подключения нужно указывать такие же, как у сервера Zabbix). По умолчанию в качестве Database schema необходимо указать public.
Если выбрана опция TLS шифрование базы данных, то в форме появятся дополнительные поля для настройки TLS-соединения с базой данных.
Далее необходимо задать имя сервера и выбрать настройки веб-интерфейса:
На следующей странице следует проверить параметры конфигурации:
Окончание установки:
После окончания установки на экране будет отображаться форма входа в интерфейс управления системой мониторинга. Параметры доступа по умолчанию:
Логин: Admin
Пароль: zabbix
Войдя в систему, нужно сменить пароль пользователя, завести других пользователей и можно начать настраивать Zabbix.
В профиле пользователя можно настроить некоторые функции веб-интерфейса Zabbix, такие как язык интерфейса, цветовая тема, количество отображаемых строк в списках и т.п. Сделанные в профиле изменения будут применены только к пользователю, в профиле которого были сделаны эти изменения.
Чтобы собирать информацию с узлов, сервер Zabbix использует информацию, получаемую от агентов. Чтобы добавить новый узел, следует установить на узел, который необходимо мониторить, Zabbix-агент и добавить новый хост на Zabbix-сервере.
51.6. Установка клиента Zabbix
Установить необходимый пакет
zabbix-agent (из репозитория):
# apt-get install zabbix-agent
Если Zabbix-агент устанавливается не на сам сервер мониторинга, то в файле конфигурации агента
/etc/zabbix/zabbix_agentd.conf
нужно задать следующие параметры:
Server=<ip-сервера>
ServerActive=<ip-сервера>
Hostname=comp01.example.test
comp01.example.test — имя узла мониторинга, которое будет указано на сервере Zabbix.
Если параметр Hostname будет пустой или закомментирован, то узел добавится под системным именем.
Добавить Zabbix-агент в автозапуск и запустить его:
# systemctl enable --now zabbix_agentd.service
51.7. Добавление нового хоста на сервер Zabbix
Каждый хост необходимо зарегистрировать на сервере Zabbix.
Информация о настроенных узлах сети в Zabbix доступна в разделе → . Для добавления нового узла сети следует нажать кнопку Создать узел сети:
В открывшемся окне необходимо заполнить поля Имя узла сети и IP адрес согласно данным добавляемого хоста, выбрать шаблон Linux by Zabbix agent, добавить хост в определенную группу (выбрав одну из них из списка, либо создав новую группу) и нажать кнопку Добавить:
В поле Имя узла сети ставится значение, которое указано в настройках агента (/etc/zabbix/zabbix_agentd.conf
) в поле Hostname.
Все права доступа назначаются на группы узлов сети, не индивидуально узлам сети. Поэтому узел сети должен принадлежать хотя бы одной группе.
Получение первых данных может занять до 60 секунд. Для того чтобы просмотреть собранные данные необходимо перейти в → , выбрать в фильтре нужный узел сети и нажать кнопку Применить:
51.8. Авторегистрация узлов
В Zabbix существует механизм, который позволяет Zabbix-серверу начинать мониторинг нового оборудования автоматически, если на этом оборудовании имеется установленный Zabbix-агент. Такой подход позволяет добавлять новые узлы сети на мониторинг без какой-либо настройки Zabbix-сервера вручную по каждому отдельному узлу сети.
Для настройки авторегистрации необходимо перейти в → → и нажать кнопку Создать действие:
На открывшейся странице, на вкладке заполнить поле Имя и добавить условия. В поле Условия следует задать правила, по которым будут идентифицироваться регистрируемые хосты:
На вкладке в поле Операции следует добавить правила, которые необходимо применить при регистрации хоста. Пример правил для регистрации узла, добавления его к группе Discovered hosts с присоединением к шаблону Linux by Zabbix agent:
В конфигурационном файле агента указать следующие значения:
в параметре Hostname
— уникальное имя;
в параметре ServerActive
— IP-адрес сервера;
в параметре HostMetadata
— значение, которое было указано в настройках сервера (HostMetadata=alt.autoreg).
Перезапустить агент.
Глава 52. Nextcloud — хранение документов в «облаке»
Nextcloud — веб-приложение для синхронизации данных, общего доступа к файлам и удалённого хранения документов в «облаке».
Файлы Nextcloud хранятся в обычных структурах каталогов и могут быть доступны через WebDAV, если это необходимо.
Развернуть Nextcloud можно, используя пакет
deploy:
# apt-get install deploy
# deploy nextcloud
Nextcloud можно установить при установке системы, выбрав для установки пункт
Сервер Nextcloud (подробнее описано в главе
Установка системы).
Если при установке системы доступ к сети отсутствует, то
Nextcloud не будет развёрнут. В этом случае развернуть
Nextcloud можно, выполнив команду:
# deploy nextcloud
Для доступа к административным функциям
Nextcloud через веб-интерфейс необходимо установить пароль пользователю ncadmin (пароль должен быть достаточно сложным и содержать не менее 10 символов):
# deploy nextcloud password=5Z4SAq2U28rWyVz
Веб-приложение
Nextcloud будет доступно по адресу
https://<сервер>/nextcloud/
. Где «сервер» — localhost или имя, заданное компьютеру при установке системы на этапе
Настройка сети.
Просмотреть имя компьютера можно, выполнив команду:
$ hostname
По умолчанию непоследовательное обновление мажорных версий запрещено (например, с версии 20 сразу до 22), и при попытке доступа к веб-интерфейсу после обновления пакета будет возникать ошибка
Exception: Updates between multiple major versions and downgrades are unsupported. Для того чтобы обойти эту ошибку, продолжить обновление и получить доступ к веб-интерфейсу, необходимо:
52.2. Настройка Nextcloud
/var/www/webapps/nextcloud/config/config.php
— файл конфигурации Nextcloud.
После внесения изменений в файл конфигурации Nextcloud необходимо перезапустить веб-сервер:
# systemctl restart httpd2
Настроить кэширование можно, добавив следующие строки в файл конфигурации Nextcloud:
'memcache.local' => '\OC\Memcache\Memcached',
'memcache.distributed' => '\OC\Memcache\Memcached',
'memcached_servers' => array(
array('localhost', 11211),
),
Для возможности настройки кэширования, должны быть установлены пакеты
memcached,
php8.2-memcached:
# apt-get install memcached php8.2-memcached
Служба memcached должна быть добавлена в автозагрузку:
# systemctl enable --now memcached
После установки Nextcloud отвечает на запросы, сделанные только из localhost. Поэтому необходимо изменить настройки для того, чтобы получить доступ к Nextcloud при использовании доменного имени или IP-адреса сервера. Для этого следует добавить в файл конфигурации в раздел trusted_domains необходимые имена сервера:
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'host-15',
2 => 'nextcloud.test.alt',
),
52.3. Работа с Nextcloud
Nextcloud доступен через веб-интерфейс по адресу https://localhost/nextcloud/
или по имени сервера https://nextcloud.test.alt/nextcloud/
.
Если используется самоподписанный сертификат, то на клиентских машинах потребуется добавлять его в список доверенных.
После авторизации открывается панель управления Nextcloud, которую можно настроить (с помощью виджетов) так, как хочет пользователь:
52.3.1. Администрирование
Основные настройки Nextcloud доступны на странице Параметры сервера. Открыть которую можно, щелкнув левой кнопкой мыши по логину администратора в правом верхнем углу и выбрав в выпадающем меню строку Параметры сервера:
На странице
Активные пользователи можно:
просматривать текущих пользователей;
создавать новых пользователей;
изменять имена и пароли пользователей;
просматривать и устанавливать квоты;
фильтровать пользователей по группам;
удалять пользователей.
Для создания пользователя, следует нажать кнопку Новый пользователь, ввести Имя пользователя, Пароль, при необходимости указать группу и нажать кнопку Создать пользователя:
52.3.2. Работа с файлами
Меню выбора доступных сервисов расположено в левом верхнем углу веб-интерфейса Nextcloud:
При выборе раздела Файлы отображается структура каталогов пользователя:
Для того чтобы поделиться файлом или папкой с другими пользователями, необходимо нажать на треугольный значок рядом с названием файла и в открывшемся окне настроить параметры общего доступа:
Поделиться ссылкой может понадобиться в том случае, если необходимо предоставить доступ к файлу или папке людям, которые не входят в число пользователей Nextcloud.
Глава 53. Сервер видеоконференций на базе Jitsi Meet
Jitsi Meet — веб-приложение с открытым исходным кодом на базе WebRTC, предназначенное для проведения видеоконференций. Сервер Jitsi Meet создает виртуальные залы для видеоконференций на несколько человек, для доступа к которым требуется только браузер. Преимущество конференции Jitsi заключается в том, что все данные передаются только через ваш сервер, а комплексное шифрование TLS обеспечивает защиту от перехвата и несанкционированного прослушивания.
Jicofo — XMPP-компонент, модератор видеоконференций. Клиенты договариваются о связи, заходя в общую XMPP-комнату, и обмениваются там XMPP-сообщениями. Имеет HTTP API /about/health для опроса о состоянии сервиса.
Jitsi Videobridge — механизм медиасервера, который поддерживает все многосторонние видеоконференции Jitsi. Он передаёт видео и аудио между участниками, осуществляя роль посредника, терминирует RTP/RTCP, определяет доступные рамки битрейта в обе стороны на конкретного клиента. Имеет свой внутренний HTTP API для мониторинга (/colibri/debug).
Jigasi — шлюз для участия в Jitsi-конференциях через SIP-телефонию.
Jibri — вещатель и рекордер, используемые для сохранения записей видеозвонков и потоковой передачи на YouTube Live.
Ниже приведена инструкция по настройке сервера Jitsi Meet в Альт Сервер.
Jitsi Meet нельзя развернуть на архитектуре aarch64.
53.1. Требования к системе
Для размещения нужны:
jitsi-videobridge: хост с доступными портами 10000/udp, 4443/tcp и хорошей пропускной способностью (рекомендуется минимум 100Mbps симметрично);
веб-сервер: хост с доступным портом 443/tcp. Веб-сервер должен поддерживать HTTPS;
xmpp-сервер: хост с доступным портом 5280/tcp для работы XMPP-over-HTTP (BOSH).
Теоретически компоненты могут размещаться на разных машинах; на практике не рекомендуется устанавливать prosody и jicofo на разные машины — это может привести к низкой производительности сервиса и большим колебаниям задержки связи.
Установить пакеты:
# apt-get install prosody jitsi-meet-prosody jitsi-meet-web jitsi-meet-web-config jicofo jitsi-videobridge
Компоненты
Jitsi Meet можно установить при установке системы, выбрав для установки пункт «Сервер видеоконференций Jitsi Meet» (см.
Установка системы).
В примере ниже указан DNS адрес сервера jitsi2.test.alt, следует заменить его на свой.
53.3.1. Настройка имени хоста системы
Установить имя хоста системы на доменное имя, которое будет использоваться для Jitsi:
# hostnamectl set-hostname jitsi2
Установить локальное сопоставление имени хоста сервера с IP-адресом 127.0.0.1, для этого дописать в файл
/etc/hosts
строку:
127.0.0.1 jitsi2.test.alt jitsi2
После изменения имени компьютера могут перестать запускаться приложения. Для решения этой проблемы необходимо перезагрузить систему.
Проверить правильность установленного имени можно, выполнив команды:
# hostname
jitsi2
# hostname -f
jitsi2.test.alt
$ ping "$(hostname)"
PING jitsi2.test.alt (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.053 ms
[...]
53.3.2. Настройка XMPP-сервера (prosody)
Создать каталог
/etc/prosody/conf.d
для хранения пользовательских конфигураций:
# mkdir -p /etc/prosody/conf.d
В конец файла
/etc/prosody/prosody.cfg.lua
дописать строку:
Include "conf.d/*.cfg.lua"
Создать конфигурационный файл prosody для вашего домена (например,
/etc/prosody/conf.d/jitsi2.test.alt.cfg.lua
) со следующим содержимым:
plugin_paths = { "/usr/share/jitsi-meet/prosody-plugins/" }
-- domain mapper options, must at least have domain base set to use the mapper
muc_mapper_domain_base = "jitsi2.test.alt";
cross_domain_bosh = false;
consider_bosh_secure = true;
----------- Virtual hosts -----------
VirtualHost "jitsi2.test.alt"
authentication = "anonymous"
ssl = {
key = "/var/lib/prosody/jitsi2.test.alt.key";
certificate = "/var/lib/prosody/jitsi2.test.alt.crt";
}
speakerstats_component = "speakerstats.jitsi2.test.alt"
conference_duration_component = "conferenceduration.jitsi2.test.alt"
-- we need bosh
modules_enabled = {
"bosh";
"pubsub";
"ping"; -- Enable mod_ping
"speakerstats";
"turncredentials";
"conference_duration";
}
c2s_require_encryption = false
Component "conference.jitsi2.test.alt" "muc"
storage = "memory"
modules_enabled = {
"muc_meeting_id";
"muc_domain_mapper";
-- "token_verification";
}
admins = { "focus@auth.jitsi2.test.alt" }
muc_room_locking = false
muc_room_default_public_jids = true
VirtualHost "auth.jitsi2.test.alt"
ssl = {
key = "/var/lib/prosody/auth.jitsi2.test.alt.key";
certificate = "/var/lib/prosody/auth.jitsi2.test.alt.crt";
}
authentication = "internal_plain"
-- internal muc component, meant to enable pools of jibri and jigasi clients
Component "internal.auth.jitsi2.test.alt" "muc"
storage = "memory"
modules_enabled = {
"ping";
}
admins = { "focus@auth.jitsi2.test.alt", "jvb@auth.jitsi2.test.alt" }
muc_room_locking = false
muc_room_default_public_jids = true
Component "focus.jitsi2.test.alt"
component_secret = "secret1" -- достаточно длинный пароль, он же JICOFO_SECRET
Component "speakerstats.jitsi2.test.alt" "speakerstats_component"
muc_component = "conference.jitsi2.test.alt"
Component "conferenceduration.jitsi2.test.alt" "conference_duration_component"
muc_component = "conference.jitsi2.test.alt"
Сгенерировать сертификаты для виртуальных хостов jitsi2.test.alt и auth.jitsi2.test.alt:
# prosodyctl cert generate jitsi2.test.alt
Choose key size (2048):
countryName (GB): RU
localityName (The Internet):
organizationName (Your Organisation):
organizationalUnitName (XMPP Department):
commonName (jitsi2.test.alt):
emailAddress (xmpp@jitsi2.test.alt):
Config written to /var/lib/prosody/jitsi2.test.alt.cnf
Certificate written to /var/lib/prosody/jitsi2.test.alt.crt
# prosodyctl cert generate auth.jitsi2.test.alt
Choose key size (2048):
countryName (GB): RU
localityName (The Internet):
organizationName (Your Organisation):
organizationalUnitName (XMPP Department):
commonName (auth.jitsi2.test.alt):
emailAddress (xmpp@auth.jitsi2.test.alt):
Config written to /var/lib/prosody/auth.jitsi2.test.alt.cnf
Certificate written to /var/lib/prosody/auth.jitsi2.test.alt.crt
В ответах можно принять значения по умолчанию (можно просто нажать
Enter) или ввести свои ответы. Важно в ответе на запрос
commonName (jitsi2.test.alt): указать доменное имя сервера Prosody.
Зарегистрировать сертификаты в системе, как доверенные (сертификаты нужно регистрировать там, где устанавливается Jicofo):
# ln -s /var/lib/prosody/jitsi2.test.alt.crt /etc/pki/ca-trust/source/anchors/
# ln -s /var/lib/prosody/auth.jitsi2.test.alt.crt /etc/pki/ca-trust/source/anchors/
# update-ca-trust
Зарегистрировать пользователя focus (аккаунт focus@auth.jitsi2.test.alt):
# prosodyctl register focus auth.jitsi2.test.alt secret2
где secret2 — достаточно длинный пароль.
Запустить prosody:
# prosodyctl start
53.3.3. Настройка jicofo
Jicofo подключается к XMPP-серверу и как внешний XMPP-компонент, и как пользовательский аккаунт с JID focus@auth.jitsi2.test.alt.
В файле
/etc/jitsi/jicofo/config
следует указать:
# Jitsi Conference Focus settings
# sets the host name of the XMPP server
JICOFO_HOST=localhost
# sets the XMPP domain (default: none)
JICOFO_HOSTNAME=jitsi2.test.alt
# sets the secret used to authenticate as an XMPP component
JICOFO_SECRET=secret1
# overrides the prefix for the XMPP component domain. Default: "focus"
#JICOFO_FOCUS_SUBDOMAIN=focus
# sets the port to use for the XMPP component connection
JICOFO_PORT=5347
# sets the XMPP domain name to use for XMPP user logins
JICOFO_AUTH_DOMAIN=auth.jitsi2.test.alt
# sets the username to use for XMPP user logins
JICOFO_AUTH_USER=focus
# sets the password to use for XMPP user logins
JICOFO_AUTH_PASSWORD=secret2
# extra options to pass to the jicofo daemon
JICOFO_OPTS="${JICOFO_FOCUS_SUBDOMAIN:+ --subdomain=$JICOFO_FOCUS_SUBDOMAIN}"
# adds java system props that are passed to jicofo (default are for home and logging config file)
JAVA_SYS_PROPS="-Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi
-Dnet.java.sip.communicator.SC_HOME_DIR_NAME=jicofo
-Dnet.java.sip.communicator.SC_LOG_DIR_LOCATION=/var/log/jitsi
-Djava.util.logging.config.file=/etc/jitsi/jicofo/logging.properties"
В строке
JICOFO_SECRET=secret1
должен быть указан пароль, установленный в файле
/etc/prosody/conf.d/jitsi2.test.alt.cfg.lua
.
В строке
JICOFO_AUTH_PASSWORD=secret2
должен быть указан пароль пользователя focus.
В файле
/etc/jitsi/jicofo/sip-communicator.properties
следует указать:
org.jitsi.jicofo.health.ENABLE_HEALTH_CHECKS=true
org.jitsi.jicofo.BRIDGE_MUC=JvbBrewery@internal.auth.jitsi2.test.alt
Запустите jicofo:
# systemctl start jicofo
Убедитесь, что jicofo подключается к XMPP-серверу:
# curl -i localhost:8888/about/health
HTTP/1.1 500 Internal Server Error
Date: Wed, 27 Sep 2023 09:32:05 GMT
Content-Type: application/json
Content-Length: 56
Server: Jetty(9.4.15.v20190215)
No operational bridges available (total bridge count: 0)
Так как пока ни одного Jitsi Videobridge к серверу не подключено, jicofo ответит кодом ответа 500 и сообщением
No operational bridges available. Если в ответе сообщение об ошибке иного рода — следует проверить настройки и связь между prosody и jicofo.
53.3.4. Настройка jitsi-videobridge
Завести на XMPP-сервере аккаунт jvb@auth.jitsi2.test.alt:
# prosodyctl register jvb auth.jitsi2.test.alt secret3
Заменить содержимое файла
/etc/jitsi/videobridge/config
на следующее:
# Jitsi Videobridge settings
# extra options to pass to the JVB daemon
JVB_OPTS="--apis=,"
# adds java system props that are passed to jvb (default are for home and logging config file)
JAVA_SYS_PROPS="-Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi
-Dnet.java.sip.communicator.SC_HOME_DIR_NAME=videobridge
-Dnet.java.sip.communicator.SC_LOG_DIR_LOCATION=/var/log/jitsi
-Djava.util.logging.config.file=/etc/jitsi/videobridge/logging.properties
-Dconfig.file=/etc/jitsi/videobridge/application.conf"
В качестве файлов конфигурации jitsi-videobridge используются файлы /etc/jitsi/videobridge/application.conf
и /etc/jitsi/videobridge/sip-communicator.properties
.
В файле
/etc/jitsi/videobridge/application.conf
необходимо указать:
videobridge {
stats {
enabled = true
transports = [
{ type = "muc" }
]
}
apis {
xmpp-client {
configs {
shard {
hostname = "localhost"
domain = "auth.jitsi2.test.alt"
username = "jvb"
password = "secret3"
muc_jids = "JvbBrewery@internal.auth.jitsi2.test.alt"
# The muc_nickname must be unique across all instances
muc_nickname = "jvb-mid-123"
}
}
}
}
}
В строке
password = "secret3"
должен быть указан пароль пользователя jvb.
Вместо слова shard можно использовать любой идентификатор (оно идентифицирует подключение к xmpp-серверу и jicofo).
Измените содержимое файла
/etc/jitsi/videobridge/sip-communicator.properties
:
org.ice4j.ice.harvest.DISABLE_AWS_HARVESTER=true
org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_TRANSPORT=muc
org.jitsi.videobridge.xmpp.user.shard.HOSTNAME=localhost
org.jitsi.videobridge.xmpp.user.shard.DOMAIN=auth.jitsi2.test.alt
org.jitsi.videobridge.xmpp.user.shard.USERNAME=jvb
org.jitsi.videobridge.xmpp.user.shard.PASSWORD=secret3
org.jitsi.videobridge.xmpp.user.shard.MUC_JIDS=JvbBrewery@internal.auth.jitsi2.test.alt
org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=6d8b40cb-fe32-49f5-a5f6-13d2c3f95bba
Если JVB-машина отделена от клиентов при помощи NAT, то потребуется донастройка.
Запустите JVB:
# systemctl start jitsi-videobridge
Убедитесь, что между JVB и jicofo есть связь:
# curl -i localhost:8888/about/health
HTTP/1.1 200 OK
Date: Wed, 27 Sep 2023 09:39:28 GMT
Content-Length: 0
Server: Jetty(9.4.15.v20190215)
Если всё сделано правильно, jicofo на healthcheck-запрос будет отдавать HTTP-код 200.
53.3.5. Настройка веб-приложения Jitsi Meet
Получить SSL/TLS-сертификат для домена.
Можно создать сертификат без обращения к УЦ. При использовании такого сертификата в браузере будут выводиться предупреждения.
Для создания самоподписанного сертификата следует:
создать корневой ключ:
# openssl genrsa -out rootCA.key 2048
создать корневой сертификат:
# openssl req -x509 -new -key rootCA.key -days 10000 -out rootCA.crt -subj "/C=RU/ST=Russia/L=Moscow/CN=SuperPlat CA Root"
сгенерировать ключ:
# openssl genrsa -out jitsi2.test.alt.key 2048
создать запрос на сертификат (тут важно указать имя сервера: домен или IP):
# openssl req -new -key jitsi2.test.alt.key -out jitsi2.test.alt.csr -subj "/C=RU/L=Moscow/CN=jitsi2.test.alt"
подписать запрос на сертификат корневым сертификатом:
# openssl x509 -req -in jitsi2.test.alt.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out jitsi2.test.alt.crt -days 5000
Signature ok
subject=C = RU, CN = jitsi2.test.alt
Getting CA Private Key
Положить ключ и сертификат в папку
/etc/jitsi/meet/
:
# cp jitsi2.test.alt.crt /etc/jitsi/meet/
# cp jitsi2.test.alt.key /etc/jitsi/meet/
В пакете jitsi-meet-web-config есть примеры конфигурации для веб-клиента (*-config.js) и веб-сервера (*.example.apache, *.example).
Создать файл
/etc/jitsi/meet/jitsi2.test.alt-config.js
на основе
/usr/share/jitsi-meet-web-config/config.js
:
# cp /usr/share/jitsi-meet-web-config/config.js /etc/jitsi/meet/jitsi2.test.alt-config.js
Внести изменения в файл
/etc/jitsi/meet/jitsi2.test.alt-config.js
в соответствии с настройками серверной части:
var config = {
// Connection
//
hosts: {
// XMPP domain.
domain: 'jitsi2.test.alt',
muc: 'conference.jitsi2.test.alt'
},
// BOSH URL. FIXME: use XEP-0156 to discover it.
bosh: '//jitsi2.test.alt/http-bind',
// Websocket URL
// websocket: 'wss://jitsi-meet.example.com/xmpp-websocket',
// The name of client node advertised in XEP-0115 'c' stanza
clientNode: 'http://jitsi.org/jitsimeet',
[...]
}
Так как в Альт Сервер по умолчанию установлен веб-сервер apache, то ниже рассмотрена настройка именно этого веб-сервера. Пример конфигурации можно взять в файле /usr/share/doc/jitsi-meet-web-config-4109/jitsi-meet/jitsi-meet.example-apache
Создать файл
/etc/httpd2/conf/sites-available/jitsi2.test.alt.conf
на основе
/usr/share/doc/jitsi-meet-web-config-4109/jitsi-meet/jitsi-meet.example-apache
:
# cp /usr/share/doc/jitsi-meet-web-config-4109/jitsi-meet/jitsi-meet.example-apache /etc/httpd2/conf/sites-available/jitsi2.test.alt.conf
Внести изменения в файл
/etc/httpd2/conf/sites-available/jitsi2.test.alt.conf
(изменить имя, указать сертификат):
<VirtualHost *:80>
ServerName jitsi2.test.alt
Redirect permanent / https://jitsi2.test.alt/
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost *:443>
ServerName jitsi2.test.alt
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/jitsi/meet/jitsi2.test.alt.crt
SSLCertificateKeyFile /etc/jitsi/meet/jitsi2.test.alt.key
SSLCipherSuite "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED"
SSLHonorCipherOrder on
Header set Strict-Transport-Security "max-age=31536000"
DocumentRoot "/usr/share/jitsi-meet"
<Directory "/usr/share/jitsi-meet">
Options Indexes MultiViews Includes FollowSymLinks
AddOutputFilter Includes html
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorDocument 404 /static/404.html
Alias "/config.js" "/etc/jitsi/meet/jitsi2.test.alt-config.js"
<Location /config.js>
Require all granted
</Location>
Alias "/external_api.js" "/usr/share/jitsi-meet/libs/external_api.min.js"
<Location /external_api.js>
Require all granted
</Location>
ProxyPreserveHost on
ProxyPass /http-bind http://localhost:5280/http-bind/
ProxyPassReverse /http-bind http://localhost:5280/http-bind/
RewriteEngine on
RewriteRule ^/([a-zA-Z0-9]+)$ /index.html
</VirtualHost>
Установить пакет
apache2-mod_ssl, если он еще не установлен:
# apt-get install apache2-mod_ssl
Выполнить команды:
# for mod in rewrite ssl headers proxy proxy_http; do a2enmod $mod; done
# a2enport https
# a2dissite 000-default
# a2dissite 000-default_https
Включить конфигурацию Apache:
# a2ensite jitsi2.test.alt
Запустить веб-сервер Apache2 и добавить его в автозагрузку:
# systemctl enable --now httpd2
Для общения достаточно запустить веб-браузер и перейти на сайт. В нашем примере сервис доступен по адресу: https://jitsi2.test.alt
:
Для того чтобы начать новую конференцию, достаточно придумать и ввести название будущей конференции (в имени можно использовать буквы на любом языке и пробелы). Чуть ниже будет отображаться список прошлых созданных конференций.
Зная URL конференции, в неё может зайти любой желающий. Конференция создаётся, когда в неё заходит первый участник, и существует до выхода последнего. Предотвратить случайных посетителей можно выбрав достаточно длинный URL на главной странице веб-портала, генератор по умолчанию с этим справляется.
Ввести название конференции и нажать кнопку ОК. Будет создана конференция:
После создания конференции браузер попросит дать ему разрешение на использование веб-камеры и микрофона:
После создания конференции её администратором становится только тот, кто её создал. Администратор может удалять пользователей из конференции, выключать их микрофоны, давать пользователю слово. В случае если администратор покинул конференцию, то её администратором становится тот, кто подключился следующий после него.
Конференция существует до тех пор, пока в ней есть хотя бы один человек.
Внизу окна конференции находится панель управления:
Первая кнопка на панели управления кнопка
Показать экран. Если нажать на эту кнопку, откроется окно, в котором можно выбрать, что будет демонстрироваться другим участникам конференции. Доступны следующие опции:
Нажатие на кнопку Хочу говорить сигнализирует организатору, что участник хочет говорить. В окне, соответствующем персонажу (справа), появится такой же значок ладони.
Кнопка Чат запускает чат в данной конференции:
Следующие кнопки на панели управления и их назначение:
Микрофон — позволяет включать и отключать микрофон;
Завершить — выход из конференции;
Камера — включение и выключение веб-камеры;
Вкл/Выкл плитку — вывести окна собеседников в центр чата;
Информация о чате — всплывающее окно, в котором приведена ссылка на конференцию. Здесь же администратор конференции может установить пароль для доступа к конференции:
Больше — настройка дополнительных функций Jitsi Meet:
53.5. Отключение возможности неавторизованного создания новых конференций
Можно разрешить создавать новые конференции только авторизованным пользователям. При этом каждый раз, при попытке создать новую конференцию, Jitsi Meet запросит имя пользователя и пароль. После создания конференции другие пользователи смогут присоединиться к ней анонимно.
Для отключения возможности неавторизованного создания новых конференций, необходимо выполнить следующие действия:
отредактировать файл
/etc/prosody/conf.d/jitsi2.test.alt.cfg.lua
, изменив в нем запись:
VirtualHost "jitsi2.test.alt"
authentication = "anonymous"
на:
VirtualHost "jitsi2.test.alt"
authentication = "internal_hashed"
добавить в конец файла
/etc/prosody/conf.d/jitsi2.test.alt.cfg.lua
строки:
VirtualHost "guest.jitsi2.test.alt"
authentication = "anonymous"
c2s_require_encryption = false
Эти настройки позволят анонимным пользователям присоединяться к конференциям, созданным пользователем, прошедшим аутентификацию. При этом у гостя должен иметься уникальный адрес и пароль конференции (если этот пароль задан);
в файле
/etc/jitsi/meet/jitsi2.test.alt-config.js
указать параметры анонимного домена:
domain: 'jitsi2.test.alt',
anonymousdomain: 'guest.jitsi2.test.alt',
в файл
/etc/jitsi/jicofo/sip-communicator.properties
добавить строку:
org.jitsi.jicofo.auth.URL=XMPP:jitsi2.test.alt
перезапустить процессы Jitsi Meet для загрузки новой конфигурации:
# prosodyctl restart
# systemctl restart jicofo
# systemctl restart jitsi-videobridge
Команда для регистрации пользователей:
prosodyctl register <ПОЛЬЗОВАТЕЛЬ> jitsi2.test.alt <ПАРОЛЬ>
Изменить пароль пользователя:
prosodyctl passwd <ПОЛЬЗОВАТЕЛЬ>
Удалить пользователя:
prosodyctl deluser <ПОЛЬЗОВАТЕЛЬ>
Например, создадим пользователя admin:
# prosodyctl register admin jitsi2.test.alt secret4
Теперь при создании конференции сервер Jitsi Meet будет требовать ввести имя пользователя и пароль:
Глава 54. Отказоустойчивый кластер (High Availability) на основе Pacemaker
Pacemaker — менеджер ресурсов кластера (Cluster Resource Manager), задачей которого является достижение максимальной доступности управляемых им ресурсов и защита их от сбоев как на уровне самих ресурсов, так и на уровне целых узлов кластера. Ключевые особенности Pacemaker:
обнаружение и восстановление сбоев на уровне узлов и сервисов;
возможность гарантировать целостность данных путем ограждения неисправных узлов;
поддержка одного или нескольких узлов на кластер;
поддержка нескольких стандартов интерфейса ресурсов (все, что может быть написано сценарием, может быть кластеризовано);
независимость от подсистемы хранения — общий диск не требуется;
поддержка и кворумных и ресурсозависимых кластеров;
автоматически реплицируемая конфигурация, которую можно обновлять с любого узла;
возможность задания порядка запуска ресурсов, а также их совместимости на одном узле;
поддерживает расширенные типы ресурсов: клоны (когда ресурс запущен на множестве узлов) и дополнительные состояния (master/slave и подобное);
единые инструменты управления кластером с поддержкой сценариев.
Архитектура Pacemaker представляет собой три уровня:
кластеронезависимый уровень — на этом уровне располагаются ресурсы и их скрипты, которыми они управляются и локальный демон, который скрывает от других уровней различия в стандартах, использованных в скриптах;
менеджер ресурсов (Pacemaker) — реагирует на события, происходящие в кластере: отказ или присоединение узлов, ресурсов, переход узлов в сервисный режим и другие административные действия. Pacemaker, исходя из сложившейся ситуации, делает расчет наиболее оптимального состояния кластера и дает команды на выполнение действий для достижения этого состояния (остановка/перенос ресурсов или узлов);
информационный уровень (Corosync) — на этом уровне осуществляется сетевое взаимодействие узлов, т.е. передача сервисных команд (запуск/остановка ресурсов, узлов и т.д.), обмен информацией о полноте состава кластера (quorum) и т.д.
Узел (node) кластера представляет собой физический сервер или виртуальную машину с установленным Pacemaker. Узлы, предназначенные для предоставления одинаковых сервисов, должны иметь одинаковую конфигурацию.
Ресурсы, с точки зрения кластера, это все используемые сущности — сервисы, службы, точки монтирования, тома и разделы. При создании ресурса потребуется задать его класс, тип, провайдера и собственно имя с дополнительными параметрами. Ресурсы поддерживают множество дополнительных параметров: привязку к узлу (resource-stickiness), роли по умолчанию (started, stoped, master) и т.д. Есть возможности по созданию групп ресурсов, клонов (работающих на нескольких узлах) и т.п.
Связи определяют привязку ресурсов к узлу (location), порядок запуска ресурсов (ordering) и совместное их проживание на узле (colocation).
Ниже приведена инструкция по установке и настройке кластера в Альт Сервер.
54.1. Настройка узлов кластера
Для функционирования отказоустойчивого кластера необходимо, чтобы выполнялись следующие требования:
дата и время между узлами в кластере должны быть синхронизированы;
должно быть обеспечено разрешение имён узлов в кластере;
сетевые подключения должны быть стабильными;
у узлов кластера для организации изоляции узла (fencing) должны присутствовать функции управления питанием/перезагрузкой с помощью IPMI(ILO);
следующие порты могут использоваться различными компонентами кластеризации: TCP-порты 2224, 3121 и 21064 и UDP-порт 5405 и должны быть открыты/доступны.
В примере используется следующая конфигурация:
node01 — первый узел кластера (IP 192.168.0.113/24);
node02 — второй узел кластера (IP 192.168.0.145/24);
node03 — третий узел кластера (IP 192.168.0.132/24);
192.168.0.251 — виртуальный IP по которому будет отвечать один из узлов.
Дальнейшие действия следует выполнить на всех узлах кластера.
Рекомендуется использовать короткие имена узлов. Для изменения имени хоста без перезагрузки, можно воспользоваться утилитой
hostnamctl
:
# hostnamectl set-hostname node01
54.1.1. Настройка разрешений имён узлов
Следует обеспечить взаимно-однозначное прямое и обратное преобразование имён для всех узлов кластера. Желательно использовать DNS, в крайнем случае, можно обойтись соответствующими записями в локальных файлах
/etc/hosts
на каждом узле:
# echo "192.168.0.113 node01" >> /etc/hosts
# echo "192.168.0.145 node02" >> /etc/hosts
# echo "192.168.0.132 node03" >> /etc/hosts
Проверка правильности разрешения имён:
# ping node01
PING node01 (192.168.0.113) 56(84) bytes of data.
64 bytes from node01 (192.168.0.113): icmp_seq=1 ttl=64 time=0.352 ms
# ping node02
PING node02 (192.168.0.145) 56(84) bytes of data.
64 bytes from node02 (192.168.0.145): icmp_seq=1 ttl=64 time=0.635 ms
54.1.2. Настройка ssh-подключения между узлами
При настройке ssh-подключения для root по ключу необходимо убрать комментарии в файле
/etc/openssh/sshd_config
для строк:
PermitRootLogin without-password
PubkeyAuthentication yes
AuthorizedKeysFile /etc/openssh/authorized_keys/%u /etc/openssh/authorized_keys2/%u .ssh/authorized_keys .ssh/authorized_keys2
PasswordAuthentication yes
Кроме того, полезно добавить в
/etc/openssh/sshd_config
директиву:
AllowGroups sshusers
создать группу sshusers:
# groupadd sshusers
и добавить туда пользователей, которым разрешено подключаться по ssh:
# gpasswd -a <username> sshusers
После редактирования файла
/etc/openssh/sshd_config
следует перезапустить службу sshd:
# systemctl restart sshd
Создать новый ключ SSH без пароля (параметр
-N
):
# ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""
Незащищенные ключи SSH (без пароля) не рекомендуются для серверов, открытых для внешнего мира.
Скопировать публичную часть SSH-ключа на другие узелы кластера:
# ssh-copy-id -i ~/.ssh/id_ed25519.pub user@node02
# ssh-copy-id -i ~/.ssh/id_ed25519.pub user@node03
В результате получаем возможность работы с домашними каталогами пользователя user удалённого узла — копировать к себе и от себя, удалять, редактировать и т.д.
Скопировать публичную часть SSH-ключа на все узлы кластера для администратора. Для этого подключиться к каждому узлу и под root скопировать публичную часть ключа:
# ssh user@node02
user@node02 $ su -
node02 # cat /home/user/.ssh/authorized_keys >> /root/.ssh/authorized_keys
node02 # exit
user@node02 $ exit
Каталог /root/.ssh
при этом должен существовать.
Убедиться, что теперь можно запускать команды удалённо, без пароля:
# ssh node02 -- uname -n
node02
54.2. Установка кластерного ПО и создание кластера
Для управления кластером Pacemaker можно использовать утилиты pcs
или crm
(пакет crmsh).
Установить на всех узлах необходимые пакеты:
# apt-get install corosync resource-agents pacemaker pcs
Данные пакеты не входят в состав ISO-образа дистрибутива, их можно установить из репозитория p10. О добавлении репозиториев с использованием графических приложений вы можете почитать в разделе
Управление репозиториями.
Пакет
resource-agent — содержит агенты ресурсов (набор скриптов) кластера, соответствующие спецификации Open Cluster Framework (OCF), используемые для взаимодействия с различными службами в среде высокой доступности, управляемой менеджером ресурсов Pacemaker. Если есть необходимость управлять дополнительными ресурсами, следует установить недостающий пакет
resource-agents-*:
$ apt-cache search resource-agents*
Пакет pcs (pacemaker/corosync configuration system) — утилита для управления, настройки и мониторинга кластера. Управляется как через командную строку, так и через веб-интерфейс.
При установке Pacemaker автоматически будет создан пользователь hacluster. Для использования
pcs
, а также для доступа в веб-интерфейс нужно задать пароль пользователю hacluster (одинаковый на всех узлах):
# passwd hacluster
Запустить и добавить в автозагрузку службу pcsd:
# systemctl enable --now pcsd
Настроить аутентификацию (на одном узле):
# pcs host auth node01 node02 node03 -u hacluster
Password:
node02: Authorized
node01: Authorized
node03: Authorized
После этого кластером можно управлять с одного узла.
Создать кластер:
# pcs cluster setup newcluster node01 node02 node03
Destroying cluster on hosts: 'node01', 'node02', 'node03'...
node03: Successfully destroyed cluster
node01: Successfully destroyed cluster
node02: Successfully destroyed cluster
Requesting remove 'pcsd settings' from 'node01', 'node02', 'node03'
node01: successful removal of the file 'pcsd settings'
node03: successful removal of the file 'pcsd settings'
node02: successful removal of the file 'pcsd settings'
Sending 'corosync authkey', 'pacemaker authkey' to 'node01', 'node02', 'node03'
node01: successful distribution of the file 'corosync authkey'
node01: successful distribution of the file 'pacemaker authkey'
node03: successful distribution of the file 'corosync authkey'
node03: successful distribution of the file 'pacemaker authkey'
node02: successful distribution of the file 'corosync authkey'
node02: successful distribution of the file 'pacemaker authkey'
Sending 'corosync.conf' to 'node01', 'node02', 'node03'
node01: successful distribution of the file 'corosync.conf'
node02: successful distribution of the file 'corosync.conf'
node03: successful distribution of the file 'corosync.conf'
Cluster has been successfully set up.
Запустить кластер:
# pcs cluster start --all
node02: Starting Cluster...
node03: Starting Cluster...
node01: Starting Cluster...
Настройка автоматического включения кластера при загрузке:
# pcs cluster enable --all
node01: Cluster Enabled
node02: Cluster Enabled
node03: Cluster Enabled
Проверка состояния кластера:
# pcs status cluster
Cluster Status:
Status of pacemakerd: 'Pacemaker is running' (last updated 2023-09-27 16:59:12 +02:00)
Cluster Summary:
* Stack: corosync
* Current DC: node01 (version 2.1.5-alt1-a3f44794f) - partition with quorum
* Last updated: Wed Sep 27 16:59:13 2023
* Last change: Wed Sep 27 16:59:09 2023 by hacluster via crmd on node01
* 3 nodes configured
* 0 resource instances configured
Node List:
* Online: [ node01 node02 node03 ]
PCSD Status:
node02: Online
node01: Online
node03: Online
Проверка синхронизации узлов кластера:
# corosync-cmapctl | grep members
runtime.members.1.config_version (u64) = 0
runtime.members.1.ip (str) = r(0) ip(192.168.0.113)
runtime.members.1.join_count (u32) = 1
runtime.members.1.status (str) = joined
runtime.members.2.config_version (u64) = 0
runtime.members.2.ip (str) = r(0) ip(192.168.0.145)
runtime.members.2.join_count (u32) = 1
runtime.members.2.status (str) = joined
runtime.members.3.config_version (u64) = 0
runtime.members.3.ip (str) = r(0) ip(192.168.0.132)
runtime.members.3.join_count (u32) = 1
runtime.members.3.status (str) = joined
54.3. Настройка параметров кластера
Настройки кластера можно просмотреть, выполнив команду:
# pcs property
Cluster Properties:
cluster-infrastructure: corosync
cluster-name: newcluster
dc-version: 2.1.5-alt1-a3f44794f
have-watchdog: false
Кворум определяет минимальное число работающих узлов в кластере, при котором кластер считается работоспособным. По умолчанию, кворум считается неработоспособным, если число работающих узлов меньше половины от общего числа узлов.
Кластер, состоящий из двух узлов, будет иметь кворум только тогда, когда оба узла работают. По умолчанию, если нет кворума, Pacemaker останавливает ресурсы. Чтобы этого избежать, можно при настройке Pacemaker указать, чтобы наличие или отсутствие кворума не учитывалось:
# pcs property set no-quorum-policy=ignore
54.3.2. Настройка STONITH
Для корректной работы узлов с общим хранилищем, необходимо настроить механизм STONITH. Этот механизм позволяет кластеру физически отключить не отвечающий на запросы узел, чтобы не повредить данные на общем хранилище.
Пока STONITH не настроен, его можно отключить, выполнив команду:
# pcs property set stonith-enabled=false
В реальной системе нельзя использовать конфигурацию с отключенным STONITH. Отключенный параметр на самом деле не отключает функцию, а только лишь эмулирует ее срабатывание при определенных обстоятельствах.
54.4. Настройка ресурсов
Настроим ресурс, который будет управлять виртуальным IP-адресом. Этот адрес будет мигрировать между узлами, предоставляя одну точку входа к ресурсам, заставляя работать несколько узлов как одно целое устройство для сервисов.
Команда создания ресурса виртуального IP-адреса с именем ClusterIP с использованием алгоритма ресурсов ocf (каждые 20 секунд производить мониторинг работы, в случае выхода из строя узла необходимо виртуальный IP переключить на другой узел):
# pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=192.168.0.251 cidr_netmask=24 op monitor interval=20s
Список доступных стандартов ресурсов:
# pcs resource standards
lsb
ocf
service
systemd
Список доступных поставщиков сценариев ресурсов OCF:
# pcs resource providers
heartbeat
pacemaker
redhat
Список всех агентов ресурсов, доступных для определённого поставщика OCF:
# pcs resource agents ocf:heartbeat
aliyun-vpc-move-ip
anything
AoEtarget
apache
asterisk
…
Xinetd
zabbixserver
ZFS
Статус кластера с добавленным ресурсом:
# pcs status
Cluster name: newcluster
Status of pacemakerd: 'Pacemaker is running' (last updated 2023-09-27 17:14:58 +02:00)
Cluster Summary:
* Stack: corosync
* Current DC: node01 (version 2.1.5-alt1-a3f44794f) - partition with quorum
* Last updated: Wed Sep 27 17:14:58 2023
* Last change: Wed Sep 27 17:14:46 2023 by root via cibadmin on node01
* 3 nodes configured
* 1 resource instance configured
Node List:
* Online: [ node01 node02 node03 ]
Full List of Resources:
* ClusterIP (ocf:heartbeat:IPaddr2): Started node01
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
Если остановить кластер на узле node01:
# pcs cluster stop node01
node01: Stopping Cluster (pacemaker)...
node01: Stopping Cluster (corosync)...
ClusterIP начнёт работать на node02 (переключение произойдёт автоматически). Проверка статуса на узле node02:
# pcs status
Cluster name: newcluster
Status of pacemakerd: 'Pacemaker is running' (last updated 2023-09-27 17:16:30 +02:00)
Cluster Summary:
* Stack: corosync
* Current DC: node02 (version 2.1.5-alt1-a3f44794f) - partition with quorum
* Last updated: Wed Sep 27 17:16:30 2023
* Last change: Wed Sep 27 17:14:46 2023 by root via cibadmin on node01
* 3 nodes configured
* 1 resource instance configured
Node List:
* Online: [ node02 node03 ]
* OFFLINE: [ node01 ]
Full List of Resources:
* ClusterIP (ocf:heartbeat:IPaddr2): Started node02
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
OpenUDS это многоплатформенный брокер подключений для создания и управления виртуальными рабочими местами и приложениями.
Основные компоненты решения VDI на базе
OpenUDS:
OpenUDS Server (openuds-server) — брокер подключений пользователей, а так же интерфейс администратора для настройки;
SQL Server. Для работы django-приложения, которым является openuds-server, необходим SQL сервер, например, mysql или mariadb. SQL Server может быть установлен как на отдельном сервере, так и совместно с openuds-server;
Платформа для запуска клиентских окружений и приложений. OpenUDS совместима со множеством систем виртуализации: PVE, OpenNebula, oVirt, OpenStack. Так же возможно использование с отдельным сервером без виртуализации (аналог терминального решения);
OpenUDS Client (openuds-client) — клиентское приложение для подключения к брокеру соединений и дальнейшего получения доступа к виртуальному рабочему окружению;
OpenUDS Tunnel (openuds-tunnel) — решение для туннелирования обращений от клиента к виртуальному рабочему окружению. OpenUDS Tunnel предназначен для предоставления доступа из недоверенных сегментов сети, например, из сети Интернет. Устанавливается на отдельный сервер;
OpenUDS Actor (openuds-actor) — ПО для гостевых виртуальных машин, реализует связку виртуальной машины и брокера соединений.
Таблица 55.1. Системные требования
Компонент
|
ОЗУ
|
ЦП
|
Диск
|
OpenUDS Server
|
2 ГБ
|
2 vCPUs
|
8 ГБ
|
SQL Server
|
1 ГБ
|
2 vCPUs
|
10 ГБ
|
OpenUDS Tunnel
|
2 ГБ
|
2 vCPUs
|
13 ГБ
|
Если сервер с базой данных установлен на той же машине, где и OpenUDS Server, требуемое количество памяти нужно просуммировать.
55.1.1. Установка MySQL (MariaDB)
Установить MySQL (MariaDB):
# apt-get install mariadb
Запустить сервер mariadb и добавить его в автозагрузку:
# systemctl enable --now mariadb.service
Задать пароль root для mysql и настройки безопасности:
# mysql_secure_installation
Создать базу данных dbuds, пользователя базы данных dbuds с паролем password и предоставить ему привилегии в базе данных dbuds:
$ mysql -u root -p
Enter password:
MariaDB> CREATE DATABASE dbuds CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB> CREATE USER 'dbuds'@'%' IDENTIFIED BY 'password';
MariaDB> GRANT ALL PRIVILEGES ON dbuds.* TO 'dbuds'@'%';
MariaDB> FLUSH PRIVILEGES;
MariaDB> exit;
55.1.2. Установка OpenUDS Server
OpenUDS Server можно установить при установке системы, выбрав для установки пункт
Сервер виртуальных рабочих столов OpenUDS (подробнее описано в главе
Установка системы).
При этом будут установлены:
openuds-server — django приложение;
gunicorn — сервер приложений (обеспечивает запуск django как стандартного WSGI приложения);
nginx — http-сервер, используется в качестве reverse-proxy для доступа к django приложению, запущенному с помощью gunicorn.
В уже установленной системе можно установить пакет
openuds-server-nginx:
# apt-get install openuds-server-nginx
Настройка OpenUDS Server:
отредактировать файл
/etc/openuds/settings.py
, указав корректные данные для подключения к SQL серверу:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'isolation_level': 'read committed',
},
'NAME': 'dbuds',
'USER': 'dbuds',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
}
}
заполнить базу данных начальными данными:
# su -s /bin/bash - openuds
$ cd /usr/share/openuds
$ python3 manage.py migrate
$ exit
запустить gunicorn:
# systemctl enable --now openuds-web.service
запустить nginx:
# ln -s ../sites-available.d/openuds.conf /etc/nginx/sites-enabled.d/openuds.conf
# systemctl enable --now nginx.service
запустить менеджер задач OpenUDS:
# systemctl enable --now openuds-taskmanager.service
Перед запуском nginx, необходимо остановить, если она запущена, службу apache2:
# systemctl disable --now httpd2
Веб-интерфейс OpenUDS будет доступен по адресу https://адрес-сервера/:
Имя/пароль по умолчанию: root/udsmam0
Для получения доступа к панели администрирования OpenUDS, следует в меню пользователя выбрать пункт :
55.1.3.1. Установка OpenUDS Tunnel
Установка OpenUDS Tunnel должна выполняться на отдельной от OpenUDS Server системе.
OpenUDS Tunnel можно установить при установке системы, выбрав для установки пункт
Сервер туннелирования виртуальных рабочих столов OpenUDS (подробнее описано в главе
Установка системы).
В уже установленной системе можно установить пакет
openuds-tunnel:
# apt-get install openuds-tunnel
При установке openuds-tunnel в /etc/openuds-tunnel/ssl
генерируются сертификаты. Их можно заменить на свои, выпущенные внутри организации или Удостоверяющим Центром.
55.1.3.2. Настройка OpenUDS Tunnel
На OpenUDS Tunnel:
указать адрес сервера OpenUDS (брокера) в файле
/etc/openuds-tunnel/udstunnel.conf
:
uds_server = http://192.168.0.53/uds/rest/tunnel/ticket
uds_token = 5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b
где 192.168.0.53 — адрес OpenUDS сервера (брокера);
запустить и добавить в автозагрузку сервис OpenUDS Tunnel:
# systemctl enable --now openuds-tunnel.service
На сервере OpenUDS зарегистрировать туннельный сервер, выполнив команду:
# openuds_tunnel_register.py -H 192.168.0.88 -n Tunnel -t 5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b
Tunnel token register success. (With token: 5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b)
где:
-H
— задаёт IP-адрес туннельного сервера;
-n
— задаёт название туннеля;
-t
— позволяет указать токен туннельного сервера (из файла udstunnel.conf
).
При создании туннельного транспорта, на вкладке Туннель указать IP-адрес и порт туннельного-сервера: 192.168.0.88:7777
55.1.3.3. Настройка HTML5
На OpenUDS Tunnel:
В файле
/etc/guacamole/guacamole.properties
привести значение параметра
uds-base-url
к виду:
http://<IP openuds сервера>/uds/guacamole/auth/<Токен из файла udstunnel.conf>/
Например:
uds-base-url=http://192.168.0.53/uds/guacamole/auth/5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b
Настроить tomcat:
для подключения по http: так как tomcat по умолчанию работает на порту 8080, то перед запуском tomcat необходимо, либо остановить службу ahttpd:
# systemctl disable --now ahttpd
либо изменить в файле
/etc/tomcat/server.xml
порт 8080 на другой допустимый номер порта, например, 8081:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
для подключения по https: в файл
/etc/tomcat/server.xml
добавить новый Connector, в котором указать порт (в примере 10443), сертификат (файл .crt, .pem и т.д.), закрытый ключ (.key, .pem и т.д.):
<Connector port="10443" protocol="org.apache.coyote.http11.Http11AprProtocol" SSLEnabled="true"
ciphers="A-CHACHA20-POLY1305,ECDHE-RSA-CHACHA20-POLY1305,
ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,
ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384,
DHE-RSA-AES128-GCM-SHA256,DHE-RSA-AES256-GCM-SHA384,
ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA256,
ECDHE-ECDSA-AES128-SHA,ECDHE-RSA-AES256-SHA384,
ECDHE-RSA-AES128-SHA,ECDHE-ECDSA-AES256-SHA384,
ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES256-SHA,
DHE-RSA-AES128-SHA256,DHE-RSA-AES128-SHA,
DHE-RSA-AES256-SHA256,DHE-RSA-AES256-SHA,
ECDHE-ECDSA-DES-CBC3-SHA,ECDHE-RSA-DES-CBC3-SHA,
EDH-RSA-DES-CBC3-SHA,AES128-GCM-SHA256,AES256-GCM-SHA384,
AES128-SHA256,AES256-SHA256,AES128-SHA,AES256-SHA,DES-CBC3-SHA"
maxThreads="500" scheme="https" secure="true"
SSLCertificateFile="/etc/openuds-tunnel/ssl/certs/openuds-tunnel.pem"
SSLCertificateKeyFile="/etc/openuds-tunnel/ssl/private/openuds-tunnel.key"
maxKeepAliveRequests="1000"
clientAuth="false" sslProtocol="TLSv1+TLSv1.1+TLSv1.2" />
Запустить сервисы guacd и tomcat:
# systemctl enable --now guacd tomcat
На сервере OpenUDS при создании нового туннельного транспорта HTML5RDP на вкладке
Туннель указать IP-адрес и порт туннельного-сервера:
55.2. Обновление OpenUDS
После обновления
openuds-server до новой версии необходимо выполнить следующие действия:
Перенести изменения, если они есть, из нового конфигурационного файла
/etc/openuds/settings.py.rpmnew
в файл
/etc/openuds/settings.py
. Проверить, что изменилось можно, выполнив команду:
# diff -u --color /etc/openuds/settings.py /etc/openuds/settings.py.rpmnew
Выполнить миграцию базы данных:
# su -s /bin/bash - openuds -c "cd /usr/share/openuds; python3 manage.py migrate"
Перезагрузить систему, так как при обновлении не создаётся файл /run/openuds/socket
.
55.3.1. Поставщики услуг
В разделе подключить один из поставщиков («Service providers»):
Минимальные параметры для настройки :
Вкладка
Основной:
Имя — название поставщика;
Хост — IP-адрес сервера OpenNebula;
Порт — порт подключения;
Имя пользователя — имя пользователя OpenNebula (с правами администратора);
Пароль — пароль пользователя.
Вкладка
Расширенный:
Одновременное создание — максимальное количество одновременно создаваемых ВМ;
Одновременное удаление — максимальное количество одновременно удаляемых ВМ;
Таймаут — таймаут подключения к OpenNebula в секундах.
Используя кнопку Проверить, можно убедиться, что соединение установлено правильно.
После интеграции платформы OpenNebula в OpenUDS необходимо создать базовую службу типа . Для этого дважды щелкнуть мышью по строке созданного поставщика услуг или в контекстном меню поставщика выбрать пункт :
Выбрав пункт , можно приостановить все операции, выполняемые сервером OpenUDS для данного поставщика услуг. Поставщик услуг рекомендуется переводить в режим обслуживания в случаях, когда связь с этим поставщиком была потеряна или запланирован перерыв в обслуживании.
В открывшемся окне, на вкладке Поставщики услуг нажать кнопку → :
Заполнить минимальные параметры конфигурации:
Вкладка
Машина:
Имена машин — базовое название для клонов с этой машины (например, Desk-work-);
Длина имени — количество цифр счетчика, прикрепленного к базовому имени рабочих столов (например, если Длина имени = 3, названия сгенерированных рабочих столов будут: Desk-work-000, Desk-work-001 ... Desk-work-999).
Минимальные параметры для настройки :
Вкладка
Основной:
Имя — название поставщика;
Хост — IP-адрес/имя сервера или кластера;
Порт — порт подключения;
Имя пользователя — имя пользователя с достаточными привилегиями в PVE (в формате пользователь@аутентификатор);
Пароль — пароль пользователя.
Вкладка
Расширенный:
Одновременное создание — максимальное количество одновременно создаваемых ВМ;
Одновременное удаление — максимальное количество одновременно удаляемых ВМ;
Таймаут — таймаут подключения к PVE в секундах;
Начальный VmId — идентификатор ВМ, с которым OpenUDS начнет генерировать ВМ на PVE (>=10000);
Диапазон MAC-адресов — диапазон MAC-адресов, которые будут использоваться рабочими столами.
Используя кнопку Проверить, можно убедиться, что соединение установлено правильно.
После интеграции платформы PVE в OpenUDS необходимо создать базовую службу типа . Для этого дважды щелкнуть мышью по строке созданного поставщика услуг или в контекстном меню поставщика выбрать пункт :
Выбрав пункт , можно приостановить все операции, выполняемые сервером OpenUDS для данного поставщика услуг. Поставщик услуг рекомендуется переводить в режим обслуживания в случаях, когда связь с этим поставщиком была потеряна или запланирован перерыв в обслуживании.
В открывшемся окне, на вкладке Поставщики услуг нажать кнопку → :
Заполнить минимальные параметры конфигурации:
Вкладка
Основной:
Имя — название службы;
Пул — пул, в котором будут находиться ВМ, созданные OpenUDS;
Высокая доступность — включать созданные ВМ в группу HA PVE;
Сначала попробовать SOFT Shutdown — если активно, OpenUDS попытается, перед уничтожением автоматически сгенерированного виртуального рабочего стола, выполнить контролируемое отключение машины.
Вкладка
Машина:
Хранилище — место, где будут храниться сгенерированные виртуальные рабочие столы (поддерживаются хранилища, позволяющие создавать «Снимки»);
Имена машин — базовое название для клонов с этой машины (например, Desk-SL-);
Длина имени — количество цифр счетчика, прикрепленного к базовому имени рабочих столов (например, если Длина имени = 3, названия сгенерированных рабочих столов будут: Desk-SL-000, Desk-SL-001 ... Desk-SL-999).
После того, как среда OpenUDS будет настроена и будет создан первый «пул услуг», в среде PVE можно будет наблюдать, как разворачиваются рабочие столы. Сначала будет создан шаблон («UDS-Publication-pool_name-publishing-number») — клон ВМ, выбранной при регистрации службы. После завершения процесса создания клона будут созданы рабочие столы («Machine_Name-Name_Length»):
55.3.1.3. Удалённый доступ к отдельному серверу
В OpenUDS есть возможность предоставить доступ к постоянным устройствам (физическим или виртуальным). Доступ к отдельному серверу осуществляется путем назначения IP-адресов пользователям.
Для регистрации поставщика данного типа следует в разделе нажать кнопку Новый и выбрать пункт .
Для настройки достаточно задать название поставщика:
Для создания базовых услуг следует дважды щелкнуть мышью по строке созданного поставщика или в контекстном меню поставщика выбрать пункт :
OpenUDS позволяет создавать два типа услуг :
Статический множественный IP-адрес — используется для подключения одного пользователя к одному компьютеру. Поддерживается неограниченное количество IP-адресов (можно включить в список все устройства, которые должны быть доступны удалённо). По умолчанию система будет предоставлять доступ к устройствам в порядке очереди (первый пользователь получивший доступ к этому пулу, получает доступ к машине с первым IP-адресом из списка). Можно также настроить выборочное распределение, чтобы определённому пользователю назначался определенный компьютер (IP-адрес).
Для настройки привязки конкретного пользователя к конкретному IP необходимо в разделе
Пулы услуг (см. раздел
Пулы услуг) для созданной услуги на вкладке нажать кнопку
Назначить услугу и задать привязку пользователя устройству:
Статический одиночный IP-адрес — используется для подключения нескольких пользователей к одному компьютеру. При обращении каждого нового пользователя будет запускаться новый сеанс.
Для создания новой услуги типа , на вкладке Поставщики услуг следует нажать кнопку → или → :
Параметры конфигурации для услуги :
Вкладка
Основной:
Имя — название службы;
Ключ услуги — токен, который будет использоваться клиентами для связи с сервисом. Если в этом поле не указан токен (пусто), система не будет контролировать сеансы пользователей на компьютерах. Таким образом, когда компьютер назначается пользователю, это назначение будет сохраняться до тех пор, пока администратор не удалит его вручную. При наличии токена сеансы пользователей будут контролироваться (при выходе из сеанса, компьютеры снова становятся доступными для доступа других пользователей). Если токен указан, необходимо, чтобы на компьютерах (IP-адрес, которых указан в поле Список серверов) был установлен Unmanaged UDS Actor.
Вкладка
Расширенный:
Проверьте порт — порт, по которому система может проверить, доступен ли компьютер. Если компьютер не доступен, система автоматически предоставит следующее устройство в списке. 0 — не проверять доступность компьютера;
Пропустить время — период, в течение которого не будет проверяться доступность недоступной машины;
Максимальное количество сеансов на машину — максимальная продолжительность сеанса (в часах), прежде чем OpenUDS решит, что эта машина заблокирована и освободит её (0 означает «никогда»).
Назначение IP-адресов будет осуществляться в порядке доступа, то есть первому пользователю, который обращается к службе, будет назначен первый IP-адрес в списке. IP-адрес будет привязан пользователю, даже после выхода пользователя из системы (пока администратор не удалит привязку вручную).
Просмотреть/изменить привязанные сеансы можно в разделе
Пулы услуг (см. раздел
Пулы услуг) на вкладке :
Параметры конфигурации для услуги :
55.3.2. Настройка аутентификации пользователей
Аутентификатор проверяет подлинность пользователей и предоставляет пользователям и группам пользователей разрешения на подключение к различным виртуальным рабочим столам.
Аутентификатор не является обязательным компонентом для создания «пула услуг», но если не создан хотя бы один аутентификатор, не будет пользователей, которые смогут подключаться к службам на платформе OpenUDS.
Если в системе зарегистрировано более одного аутентификатора, и они не отключены, на экран входа будет добавлено поле Аутентификатор с раскрывающимся списком. В этом списке можно выбрать аутентификатор, который система будет использовать для проверки пользователя:
При создании любого аутентификатора заполняется поле Метка. Пользователь может пройти проверку подлинности с помощью указанного аутентификатора, даже если в среде OpenUDS настроено несколько аутентификаторов. Для этого нужно получить доступ к экрану входа OpenUDS в формате: OpenUDS-server/uds/page/login/метка (например, https://192.168.0.53/uds/page/login/AD
).
Для настройки аутентификации в разделе необходимо выбрать тип аутентификации пользователей. Можно выбрать как внешние источники (Active Directory, OpenLDAP и т.д.), так и внутренние (внутренняя база данных, IP-аутентификация):
При аутентификации данные пользователей и групп хранятся в базе данных, к которой подключен сервер OpenUDS.
Для создания аутентификации типа в разделе следует нажать кнопку: → .
Минимальные параметры конфигурации (вкладка Основной): имя аутентификатора, приоритет и метка.
После того, как аутентификатор типа создан, нужно зарегистрировать пользователей и группы пользователей. Для этого следует выбрать созданный аутентификатор, затем во вкладке Группы создать группы пользователей, во вкладке Пользователи создать пользователей.
55.3.2.2. Аутентификатор Regex LDAP
Этот аутентификатор позволяет пользователям и группам пользователей, принадлежащих практически любому аутентификатору на основе LDAP, получать доступ к виртуальным рабочим столам и приложениям.
На сервере LDAP должна быть настроена отдельная учётная запись с правами чтения LDAP. От данной учетной записи будет выполняться подключение к серверу каталогов.
Настройка интеграции с FreeIPA (сервер ipa.example.test):
В разделе нажать кнопку: → .
Заполнить поля первых трёх вкладок.
Вкладка Основной: имя аутентификатора, приоритет, метка, IP-адрес FreeIPA-сервера, порт (обычно 389 без ssl, 636 с ssl):
Вкладка Учётные данные: имя пользователя (в формате uid=user_freeipa,cn=users,cn=accounts,dc=example,dc=test) и пароль:
Вкладка LDAP информация: общая база пользователей, класс пользователей LDAP, идентификатор атрибута пользователя, атрибут имени пользователя, атрибут имени группы:
Используя кнопку Проверить, можно проверить соединение с FreeIPA-сервером.
Добавить группу LDAP, в которую входят пользователи. Для этого следует выбрать созданный аутентификатор, затем в открывшемся окне на вкладке Группы нажать → .
Заполнить dn существующей группы (для FreeIPA по умолчанию это группа cn=ipausers,cn=groups,cn=accounts,dc=ipa,dc=example,dc=test), можно также указать разрешённые пулы:
55.3.2.2.2. Active Directory
Настройка аутентификации в Active Directory (домен test.alt):
В разделе нажать кнопку: → .
Заполнить поля первых трёх вкладок.
Вкладка Основной: имя аутентификатора, приоритет, метка, IP-адрес сервера AD, порт (обычно 389 без ssl, 636 с ssl):
Вкладка Учётные данные: имя пользователя (можно указать в виде имя@домен) и пароль:
Вкладка LDAP информация: общая база пользователей, класс пользователей LDAP, идентификатор атрибута пользователя, атрибут имени пользователя, атрибут имени группы:
Если в поле Идентификатор атрибута пользователя указано userPrincipalName
, то пользователь при входе должен указать логин в формате имя_пользователя@домен, если указано sAMAccountName
, то в качестве логина используется имя_пользователя без указания домена.
Используя кнопку Проверить, можно проверить соединение с Active Directory.
Добавить группу LDAP, в которую входят пользователи. Для этого следует выбрать созданный аутентификатор, затем в открывшемся окне на вкладке Группы нажать → .
Заполнить dn существующей группы (например, cn=UDS,cn=Users,dc=test,dc=alt), можно также указать разрешённые пулы:
На вкладке Пользователи аутентификатора пользователи будут добавляться автоматически после первого входа в систему OpenUDS (пользователи должны входить в группы, указанные в аутентификаторе на вкладке Группа):
Пользователя, чтобы назначить ему специальные права перед первым подключением, можно зарегистрировать вручную. Для этого на вкладке Пользователи необходимо нажать кнопку Новый и указать имя пользователя, его статус (включен или отключен) и уровень доступа (поле Роль). Не рекомендуется заполнять поле Группы, так как система должна автоматически добавить пользователя в группу участников:
55.3.2.3. IP аутентификатор
Этот тип аутентификации обеспечивает доступ клиентов к рабочим столам и виртуальным приложениям по IP-адресу.
Для создания аутентификации типа в разделе следует нажать кнопку: → .
Минимальные параметры конфигурации (вкладка Основной): имя аутентификатора, приоритет и метка.
После того, как аутентификатор типа «IP аутентификатор» создан, следует создать группы пользователей. Группа может представлять собой диапазон IP-адресов (192.168.0.1-192.168.0.55), подсеть (192.168.0.0/24) или отдельные IP-адреса (192.168.0.33,192.168.0.110):
55.3.3. Настройка менеджера ОС
OpenUDS Actor, размещенный на виртуальном рабочем столе, отвечает за взаимодействие между ОС и OpenUDS Server на основе конфигурации или выбранного типа Менеджера ОС.
Для каждой службы, развернутой в OpenUDS, потребуется Менеджер ОС, за исключением случаев, когда используется .
Менеджер ОС запускает ранее настроенные службы:
используется для виртуальных рабочих столов на базе Linux, которые являются членами домена AD;
используется для виртуальных рабочих столов на базе Linux, которые являются членами домена FreeIPA;
используется для виртуальных рабочих столов на базе Linux, которые не являются частью домена. Он выполняет задачи переименования и управления сеансами виртуальных рабочих столов;
используется для виртуальных рабочих столов на базе Windows, которые не являются частью домена AD;
используется для виртуальных рабочих столов на базе Windows, которые являются членами домена AD.
55.3.3.1. Linux ОС менеджер/Windows Basic ОС менеджер
Минимальные настройки для и :
вкладка
Основной:
Имя — название менеджера;
Действие при выходе из системы — действие, которое OpenUDS будет выполнять на виртуальном рабочем столе при закрытии сеанса пользователя. — постоянный пул, при выходе пользователя (выключении ВМ), ВМ запускается заново, при повторном входе пользователю будет назначен тот же рабочий стол. — непостоянный пул, при выходе пользователя из системы, ВМ удаляется и создается заново. — сохранение назначенной службы даже при создании новой публикации;
Максимальное время простоя — время простоя виртуального рабочего стола (в секундах). По истечении этого времени OpenUDS Actor автоматически закроет сеанс. Отрицательные значения и значения менее 300 секунд отключают эту опцию.
вкладка
Расширенный:
Выход по календарю — если этот параметр установлен, OpenUDS попытается завершить сессию пользователя, когда для текущего соединения истечет время доступа (если параметр не установлен, пользователю будет разрешено продолжить работу).
55.3.3.2. Linux OS Active Directory Manager
Для возможности ввода компьютера в домен, на нём должен быть доступен сервер DNS, имеющий записи про контроллер домена Active Directory.
Минимальные настройки для :
вкладка
Основной:
Имя — название менеджера;
Домен — домен, к которому будут присоединены виртуальные рабочие столы. Необходимо использовать формат FQDN (например, test.alt);
Аккаунт — пользователь с правами на добавление машин в домен;
Пароль — пароль пользователя указанного в поле Аккаунт;
OU — организационная единица, в которую будут добавлены виртуальные хосты (если не указано, хосты будут зарегистрированы в подразделении по умолчанию — Computers). Формат поддерживаемых OU: OU = name_OU_last_level, … OU = name_OU_first_level, DC = name_domain, DC = extension_domain
. Во избежание ошибок, рекомендуется сверяться с полем distinguishedName
в свойствах атрибута OU;
Действие при выходе из системы — действие, которое OpenUDS будет выполнять на виртуальном рабочем столе при закрытии сеанса пользователя. — постоянный пул, при выходе пользователя (выключении ВМ), ВМ запускается заново, при повторном входе пользователю будет назначен тот же рабочий стол. — непостоянный пул, при выходе пользователя из системы, ВМ удаляется и создается заново. — сохранение назначенной службы даже при создании новой публикации;
Максимальное время простоя — время простоя виртуального рабочего стола (в секундах). По истечении этого времени OpenUDS Actor автоматически закроет сеанс. Отрицательные значения и значения менее 300 секунд отключают эту опцию.
вкладка
Расширенный:
Client software — позволяет указать, если это необходимо, способ подключения (SSSD или Winbind);
Membership software — позволяет указать, если это необходимо, утилиту, используемую для подключения к домену (Samba или adcli);
Убрать машину — если этот параметр установлен, OpenUDS удалит запись о виртуальном рабочем столе в указанном подразделении после удаления рабочего стола (пользователь, указанный в поле Аккаунт, должен иметь права на выполнение данного действия в OU);
Использовать SSL — если этот параметр установлен, будет использоваться SSL-соединение;
Automatic ID mapping — автоматический маппинг ID;
Выход по календарю — если этот параметр установлен, OpenUDS попытается завершить сессию пользователя, когда для текущего соединения истечет время доступа (если параметр не установлен, пользователю будет разрешено продолжить работу).
55.3.3.3. Linux OS FreeIPA Manager
Для возможности ввода компьютера в домен, на нём должен быть доступен сервер DNS, имеющий записи про сервер FreeIPA.
Минимальные настройки для :
вкладка
Основной:
Имя — название менеджера;
Домен — домен, к которому будут присоединены виртуальные рабочие столы. Необходимо использовать формат FQDN (например, example.test);
Аккаунт — пользователь с правами на добавление машин в домен;
Пароль — пароль пользователя указанного в поле Аккаунт;
Действие при выходе из системы — действие, которое OpenUDS будет выполнять на виртуальном рабочем столе при закрытии сеанса пользователя. — постоянный пул, при выходе пользователя (выключении ВМ), ВМ запускается заново, при повторном входе пользователю будет назначен тот же рабочий стол. — непостоянный пул, при выходе пользователя из системы, ВМ удаляется и создается заново. — сохранение назначенной службы даже при создании новой публикации;
Максимальное время простоя — время простоя виртуального рабочего стола (в секундах). По истечении этого времени OpenUDS Actor автоматически закроет сеанс. Отрицательные значения и значения менее 300 секунд отключают эту опцию.
вкладка
Расширенный:
Client software — позволяет указать, если это необходимо, способ подключения (SSSD или Winbind);
Membership software — позволяет указать, если это необходимо, утилиту, используемую для подключения к домену (Samba или adcli);
Убрать машину — если этот параметр установлен, OpenUDS удалит запись о виртуальном рабочем столе в указанном подразделении после удаления рабочего стола (пользователь, указанный в поле Аккаунт, должен иметь права на выполнение данного действия в OU);
Использовать SSL — если этот параметр установлен, будет использоваться SSL-соединение;
Automatic ID mapping — автоматический маппинг ID;
Выход по календарю — если этот параметр установлен, OpenUDS попытается завершить сессию пользователя, когда для текущего соединения истечет время доступа (если параметр не установлен, пользователю будет разрешено продолжить работу).
55.3.3.4. Windows Domain ОС менеджер
Минимальные настройки для :
вкладка
Основной:
Имя — название менеджера;
Домен — домен, к которому будут присоединены виртуальные рабочие столы. Необходимо использовать формат FQDN (например, test.alt);
Аккаунт — пользователь с правами на добавление машин в домен;
Пароль — пароль пользователя указанного в поле Аккаунт;
OU — организационная единица, в которую будут добавлены виртуальные хосты (если не указано, хосты будут зарегистрированы в подразделении по умолчанию — Computers). Формат поддерживаемых OU: OU = name_OU_last_level, … OU = name_OU_first_level, DC = name_domain, DC = extension_domain
. Во избежание ошибок, рекомендуется сверяться с полем distinguishedName
в свойствах атрибута OU;
Действие при выходе из системы — действие, которое OpenUDS будет выполнять на виртуальном рабочем столе при закрытии сеанса пользователя. () — постоянный пул, при выходе пользователя (выключении ВМ), ВМ запускается заново, при повторном входе пользователю будет назначен тот же рабочий стол. () — непостоянный пул, при выходе пользователя из системы, ВМ удаляется и создается заново. () — сохранение назначенной службы даже при создании новой публикации;
Максимальное время простоя — время простоя виртуального рабочего стола (в секундах). По истечении этого времени OpenUDS Actor автоматически закроет сеанс. Отрицательные значения и значения менее 300 секунд отключают эту опцию.
вкладка
Расширенный:
Группа машин — указывает, к какой группе машин AD будут добавлены виртуальные рабочие столы, созданные UDS;
Убрать машину — если этот параметр установлен, OpenUDS удалит запись о виртуальном рабочем столе в указанном подразделении после удаления рабочего стола (необходимо, чтобы пользователь, указанный в поле Аккаунт, имел права на выполнение данного действия в OU);
Предпочитаемый сервер — если серверов AD несколько, можно указать, какой из них использовать предпочтительнее;
Использовать SSL — если этот параметр установлен, будет использоваться SSL-соединение;
Выход по календарю — если этот параметр установлен, OpenUDS попытается завершить сессию пользователя, когда для текущего соединения истечет время доступа (если параметр не установлен, пользователю будет разрешено продолжить работу).
Для подключения к виртуальным рабочим столам необходимо создать транспорт. Транспорт — это приложение, которое выполняется на клиенте и отвечает за предоставление доступа к реализованной службе.
Можно создать один транспорт для различных «пулов» или установить по одному транспорту для каждого «пула».
При создании транспорта необходимо выбрать его тип:
— используется, если пользователь имеет доступ к виртуальным рабочим столам из внутренней сети (например, LAN, VPN и т.д.);
— используется, если у пользователя нет прямого подключения к рабочему столу.
Данный транспорт позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux. И на клиентах подключения, и на виртуальных рабочих столах должен быть установлен и включен протокол RDP (для виртуальных рабочих столов Linux необходимо использовать XRDP).
Параметры конфигурации для настройки транспорта RDP:
Вкладка
Основной:
Имя — название транспорта;
Приоритет — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных транспортов для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
Сетевой доступ — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
Сети — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется вместе с параметром Сетевой доступ;
Разрешенные устройства — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
Сервис-пулы — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
Вкладка
Учётные данные:
Пропустить данные аккаунта — если установлено значение Да, учётные данные для доступа к виртуальному рабочему столу будут запрашиваться при подключении к серверу. Если установлено значение Нет, будут использоваться данные OpenUDS (см. ниже);
Имя пользователя — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя;
Пароль — пароль пользователя, указанного в поле Имя пользователя;
Без домена — указывает, перенаправляется ли доменное имя вместе с пользователем. Значение Да равносильно пустому полю Домен;
Домен — домен. Если поле не пустое, то учётные данные будут использоваться в виде DOMAIN\user.
На вкладке Параметры можно разрешить/запретить перенаправления дисков, принтеров и других устройств:
На вкладке Экран/Дисплей настраиваются параметры окна рабочего стола:
Вкладка
Linux Client:
Мультимедийная синхронизация — включает параметр мультимедиа на клиенте FreeRDP;
Использовать Alsa — использовать звук через Alsa;
Строка принтера — принтер, используемый клиентом FreeRDP (если включено перенаправление принтера). Пример: «HP_LaserJet_M1536dnf_MFP» (названия подключенных принтеров можно вывести командой lpstat -a
);
Строка Smartcard — токен, используемый клиентом FreeRDP (если включено перенаправление смарт-карт). Пример: «Aktiv Rutoken ECP 00 00»;
Пользовательские параметры — здесь можно указать любой параметр, поддерживаемый клиентом FreeRDP.
55.3.4.2. RDP (туннельный)
Все настройки аналогичны настройке RDP, за исключением настроек на вкладке Туннель.
Вкладка
Туннель:
Туннельный сервер — IP-адрес/имя OpenUDS Tunnel. Если доступ к рабочему столу осуществляется через глобальную сеть, необходимо ввести общедоступный IP-адрес сервера OpenUDS Tunnel. Формат: IP_Tunneler:Port;
Время ожидания туннеля — максимальное время ожидания туннеля;
Принудительная проверка SSL-сертификата — принудительная проверка сертификата туннельного сервера.
X2Go позволяет пользователям получать доступ к виртуальным рабочим столам Linux. На клиентах подключения должен быть установлен клиент X2Go, и на виртуальных рабочих столах (сервере) должен быть установлен и включен сервер X2Go.
Параметры конфигурации для настройки транспорта X2Go:
Вкладка
Основной:
Имя — название транспорта;
Приоритет — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных транспортов для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
Сетевой доступ — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
Сети — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется вместе с параметром Сетевой доступ;
Разрешенные устройства — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
Сервис-пулы — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
Вкладка
Учётные данные:
Имя пользователя — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя.
Вкладка
Параметры:
Размер экрана — размер окна рабочего стола;
Экран — менеджер рабочего стола (Xfce, Mate и др.) или виртуализация приложений Linux (UDS vAPP);
vAPP — полный путь до приложения (если в поле Экран выбрано значение UDS vAPP);
Включить звук — включить звук;
Перенаправить домашнюю папку — перенаправить домашнюю папку клиента подключения на виртуальный рабочий стол (на Linux также перенаправлять /media
);
Скорость — скорость подключения.
Вкладка
Расширенный:
Звук — тип звукового сервера;
Клавиатура — раскладка клавиатуры;
Метка — метка транспорта метапула (используется для того чтобы назначить несколько транспортов метапулу).
55.3.4.4. X2Go (туннельный)
Все настройки аналогичны настройке X2Go, за исключением настроек на вкладке Туннель.
Вкладка
Туннель:
Туннельный сервер — IP-адрес/имя OpenUDS Tunnel. Если доступ к рабочему столу осуществляется через глобальную сеть, необходимо ввести общедоступный IP-адрес сервера OpenUDS Tunnel. Формат: IP_Tunneler:Port;
Время ожидания туннеля — максимальное время ожидания туннеля;
Принудительная проверка SSL-сертификата — принудительная проверка сертификата туннельного сервера.
55.3.4.5. SPICE (прямой)
Транспортный протокол SPICE может использоваться только с oVirt/RHEV, OpenNebula и PVE.
SPICE позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux. На клиентах подключения должен быть установлен клиент SPICE (virt-manager).
Для работы прямого подключения по протоколу SPICE на сервере OpenUDS и клиентах OpenUDS, откуда осуществляется подключение, имена узлов платформы виртуализации должны корректно разрешаться в IP-адреса этих узлов.
Параметры конфигурации для настройки транспорта SPICE:
Вкладка
Основной:
Имя — название транспорта;
Приоритет — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных транспортов для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
Сертификат — сертификат, сгенерированный в ovirt-engine/RHV-manager или в OpenNebula. Требуется для подключения к виртуальным рабочим столам;
Сетевой доступ — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
Сети — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется вместе с параметром Сетевой доступ;
Разрешенные устройства — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
Сервис-пулы — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
Вкладка
Расширенный:
Полноэкранный режим — включает полноэкранный режим виртуального рабочего стола;
Перенаправление смарткарты — включает перенаправление смарт-карт;
Включить USB — разрешает перенаправление устройств, подключенных к USB-порту;
Новый USB автообмен — позволяет перенаправлять PnP-устройства, подключенные к USB-порту;
SSL Connection — использовать SSL-соединение;
Метка — метка транспорта метапула (используется для того чтобы назначить несколько транспортов метапулу).
55.3.4.6. HTML5 RDP (туннельный)
HTML5 RDP позволяет пользователям получать доступ к виртуальным рабочим столам Windows/Linux через протокол RDP с использованием браузера, поддерживающего HTML5. На виртуальных рабочих столах должен быть установлен и включен протокол RDP (для виртуальных рабочих столов Linux необходимо использовать XRDP).
Параметры конфигурации для настройки транспорта HTML5 RDP:
Вкладка
Основной:
Имя — название транспорта;
Приоритет — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных транспортов для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
Сетевой доступ — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
Сети — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется вместе с параметром Сетевой доступ;
Разрешенные устройства — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
Сервис-пулы — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
Вкладка
Учётные данные:
Пропустить данные аккаунта — если установлено значение Да, учётные данные для доступа к виртуальному рабочему столу будут запрашиваться при подключении к серверу. Если установлено значение Нет, будут использоваться данные OpenUDS (см. ниже);
Имя пользователя — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя;
Пароль — пароль пользователя, указанного в поле Имя пользователя;
Без домена — указывает, перенаправляется ли доменное имя вместе с пользователем. Значение Да равносильно пустому полю Домен;
Домен — домен. Если поле не пустое, то учётные данные будут использоваться в виде DOMAIN\user.
Вкладка
Параметры:
Показать обои — отображать обои рабочего стола;
Разрешить композицию рабочего стола — включить «Desktop Composition»;
Сглаживание шрифтов — активирует сглаживание шрифтов;
Включить аудио — перенаправлять звук с рабочего стола на клиент подключения;
Включить микрофон — включить микрофон на виртуальном рабочем столе;
Включить печать — включить печать на виртуальном рабочем столе;
Обмен файлами — политика обмена файлами между виртуальным рабочим столом и клиентом подключения. Позволяет создать временный каталог (расположенный на сервере OpenUDS Tunnel), для возможности обмена файлами между виртуальным рабочим столом и клиентом подключения;
Буфер обмена —настройка общего буфера обмена;
Раскладка — раскладка клавиатуры, которая будет включена на рабочем столе.
Вкладка
Расширенный:
Срок действия билета — допустимое время (в секундах) для клиента HTML5 для перезагрузки данных из OpenUDS Broker (рекомендуется использовать значение по умолчанию — 60);
Открывать HTML в новом окне — позволяет указать, открывать ли подключение в новом окне;
Безопасность — позволяет задать уровень безопасности соединения;
Порт RDP — порт RDP (по умолчанию — 3389);
Метка — метка транспорта метапула (используется для того чтобы назначить несколько транспортов метапулу).
55.3.4.7. HTML5 SSH (туннельный)
HTML5 SSH позволяет пользователям получать доступ к виртуальным рабочим столам Linux по протоколу SSH с использованием браузера, поддерживающего HTML5 (на машинах должен быть запущен сервер SSH). Используя данный транспорт можно подключаться к серверам Linux, на которых не установлен оконный менеджер или среда рабочего стола.
Параметры конфигурации для настройки транспорта HTML5 SSH:
Вкладка
Основной:
Имя — название транспорта;
Приоритет — приоритет, чем меньше значение приоритета, тем выше данный транспорт будет указан в списке доступных транспортов для сервиса. Транспорт с самым низким приоритетом, будет транспортом по умолчанию;
Сетевой доступ — разрешает или запрещает доступ пользователей к службе, в зависимости от сети из которой осуществляется доступ;
Сети — сетевые диапазоны, подсети или IP-адреса (настраиваются в разделе Сети). Пустое поле означает «все сети». Используется вместе с параметром Сетевой доступ;
Разрешенные устройства — разрешает доступ к службе только с выбранных устройств. Пустое поле означает «все устройства»;
Сервис-пулы — позволяет назначить транспорт одному или нескольким ранее созданным пулам услуг. Можно оставить это поле пустым и выбрать способы подключения при создании пула услуг.
Вкладка
Учётные данные:
Имя пользователя — имя пользователя, которое будет использоваться для доступа к рабочему столу (пользователь должен существовать на ВМ). Если данное поле пустое, будет использован логин авторизовавшегося в веб-интерфейсе OpenUDS пользователя;
Вкладка
Параметры:
SSH-команда — команда, которая будет выполнена на удалённом сервере. Если команда не указана, будет запущена интерактивная оболочка:
Обмен файлами — политика обмена файлами между удалённым сервером и клиентом подключения;
Корень общего доступа к файлам — корневой каталог для доступа к файлам. Если не указан, будет использоваться корневой каталог (/);
Порт SSH-сервера — порт SSH-сервера (по умолчанию — 22);
Ключ хоста SSH — ключ хоста SSH. Если ключ не указан, проверка подлинности хоста выполняться не будет;
Поддержка сервера в рабочем состоянии — время (в секундах) между сообщениями проверки активности, отправляемых на сервер. Если не указано, сообщения проверки активности не отправляются.
Вкладка
Расширенный:
Срок действия билета — допустимое время (в секундах) для клиента HTML5 для перезагрузки данных из OpenUDS Broker (рекомендуется использовать значение по умолчанию — 60);
Открывать HTML в новом окне — позволяет указать, открывать ли подключение в новом окне;
Метка — метка транспорта метапула (используется для того чтобы назначить несколько транспортов метапулу).
После входа на удалённый сервер, в зависимости от настроек политики обмена файлами, можно скачивать/загружать файлы.
Для загрузки файлов можно открыть окно настроек (Ctrl+Shift+Alt), выбрать устройство в поле Устройства, нажать кнопку Загрузка файлов и выбрать файл (ход передачи файла будет показан в левом нижнем углу окна):
В OpenUDS можно зарегистрировать различные сети для управления доступом клиентов к виртуальным рабочим столам или приложениям. Эти сети совместно с транспортом будут определять, какой тип доступа будет доступен пользователям для подключения к виртуальным рабочим столам.
Чтобы добавить сеть следует в разделе нажать кнопку Новый:
В открывшемся окне следует указать название сети и сетевой диапазон. В качестве сетевого диапазона можно указать:
одиночный IP-адрес: xxx.xxx.xxx.xxx (например, 192.168.0.33);
подсеть: xxx.xxx.xxx.xxx/x (например, 192.168.0.0/24);
диапазон IP-адресов: xxx.xxx.xxx.xxx-xxx.xxx.xxx.xxx (например, 192.168.0.1-192.168.0.50).
После создания сетей появится возможность указать их при создании/редактировании транспорта. Можно настроить, будет ли данный транспорт отображаться у клиента, в зависимости от сети, в которой находится клиент:
Если сети для транспорта не определены, доступ к службам рабочего стола и виртуальным приложениям будет возможен из любой сети.
После того, как был создан и настроен хотя бы один
поставщик услуг с соответствующей службой/услугой,
аутентификатор (с пользователем и группой),
менеджер ОС и
транспорт, можно создать пул услуг (Сервис-пул) для публикации виртуальных рабочих столов.
Для создания пула услуг необходимо в разделе нажать кнопку Новый:
Заполнить параметры конфигурации:
Вкладка
Основной:
Имя — название службы (это имя будет показано пользователю для доступа к рабочему столу или виртуальному приложению). В этом поле можно использовать переменные для отображения информации об услугах:
{use}
— указывает процент использования пула (рассчитывается на основе поля Максимальное количество предоставляемых сервисов и назначенных услуг);
{total}
— общее количество машин (данные извлечены из поля Максимальное количество предоставляемых сервисов);
{usec}
— количество машин, используемых пользователями в пуле;
{left}
— количество машин, доступных в пуле для подключения пользователей;
Базовый сервис — служба, созданная ранее в поставщике услуг (состоит из поставщика услуг и базовой услуги);
ОС Менеджер — ранее созданный менеджер ОС, конфигурация которого будет применяться к каждому из созданных виртуальных рабочих столов или приложений. Если выбрана услуга типа Статический IP, это поле не используется;
Публиковать при создании — если этот параметр включен, при сохранении пула услуг система автоматически запустит первую публикацию. Если установлено значение Нет, будет необходимо запустить публикацию сервиса вручную (из вкладки Публикации).
Вкладка
Экран/Дисплей:
Видимый — если этот параметр отключен, пул не будет отображаться у пользователей;
Привязанный образ — изображение, связанное с услугой. Изображение должно быть предварительно добавлено в репозиторий изображений (раздел → );
Пул-группа — позволяет группировать различные службы. Группа должна быть предварительно создана в разделе → ;
Доступ к календарю запрещён — позволяет указать сообщение, которое будет показано пользователю, если доступ к сервису ограничен правилами календаря.
Вкладка
Расширенный:
Разрешить удаление пользователями — если этот параметр включен, пользователи могут удалять назначенные им службы. Если сервис представляет собой виртуальный рабочий стол, автоматически сгенерированный OpenUDS, он будет удален, и при следующем подключении ему будет назначен новый. Если это другой тип сервиса (vAPP/статический IP), будет удалено только назначение, а новое будет назначено на следующее подключение;
Разрешить сброс пользователям — если этот параметр включен, пользователь сможет перезапускать или сбрасывать назначенные ему службы (относится только к виртуальным рабочим столам, автоматически созданным OpenUDS);
Игнорирует неиспользуемые — если этот параметр включен, непостоянные пользовательские службы, которые не используются, не будут удаляться;
Показать транспорты — если этот параметр включен, будут отображаться все транспорты, назначенные услуге. Если параметр не активирован, будет отображаться только транспорт по умолчанию (с наивысшим приоритетом);
Учётные записи — назначение услуги ранее созданным «Аккаунтам» ( → ).
Вкладка
Доступность:
Первоначально доступные сервисы — минимальное количество виртуальных рабочих столов, созданных, настроенных и назначенных/доступных для службы;
Сервисы для удержания в кэше — количество доступных виртуальных рабочих мест. Эти ВМ всегда будут настроены и готовы к назначению пользователю (они будут автоматически создаваться до тех пор, пока не будет достигнуто максимальное количество машин, указанное в поле Максимальное количество предоставляемых сервисов);
Сервисы, хранящиеся в L2 кэше — количество виртуальных рабочих столов в спящем или выключенном состоянии. Виртуальные рабочие столы, сгенерированные на уровне кэша L2, будут помещены в кэш, как только система потребует их (они никогда не будут напрямую назначены пользователям);
Максимальное количество предоставляемых сервисов — максимальное количество виртуальных рабочих столов, созданных системой в данном пуле (рабочие столы, созданные в кэше L2, не учитываются).
После нажатия кнопки Сохранить система начнет создавать виртуальные рабочие столы на основе настроенного кэша.
После создания пула, в настройках (дважды щелкнуть мышью по строке созданного пула или в контекстном меню пула выбрать пункт ) необходимо:
на вкладке
Группы назначить группы доступа (выбрать аутентификатор и группу, которая будет иметь доступ к этому пулу служб):
на вкладке
Транспорты выбрать способы подключения пользователей к рабочему столу:
Виртуальные рабочие столы можно сгруппировать в пулы рабочих столов («Мета-пулы»), что упрощает управление и организацию. Создание Мета-пула позволит получить доступ к виртуальным рабочим столам или приложениям из разных Пулов услуг. Эти пулы будут работать вместе, предоставляя различные услуги абсолютно прозрачным для пользователей способом.
Пулы услуг, образующие Мета-пул, будут работать в соответствии с политикой, которая позволит предоставлять услуги в соответствии с потребностями пула.
Чтобы создать Мета-пул необходимо в разделе нажать кнопку Новый:
Заполнить параметры конфигурации:
Вкладка
Основной:
Имя — название мета-пула (это будет видеть пользователь для доступа к службе):
Короткое имя — если указано, то это будет видеть пользователь для доступа к службе (при наведении на него указателя появится содержимое поля Имя);
Политика — политика, которая будет применяться при создании сервисов в пулах услуг, являющихся частью мета-пула:
Eventy distributed — услуги будут создаваться и использоваться равномерно во всех пулах услуг, составляющих мета-пул;
Priority — услуги будут создаваться и использоваться из пула услуг с наибольшим приоритетом (приоритет определяется значением поля Приоритет, чем ниже значение этого поля, тем выше приоритет у элемента). Когда будет достигнуто максимальное количество сервисов данного пула услуг, будут использоваться сервисы следующего;
Greater % available — службы будут создаваться и использоваться из пула услуг, который имеет самый высокий процент свободных услуг.
Вкладка
Экран/Дисплей:
Привязанный образ — изображение, связанное с мета-пулом. Изображение должно быть предварительно добавлено в репозиторий изображений (раздел → );
Пул-группа — позволяет группировать различные службы. Группа должна быть предварительно создана в разделе → ;
Видимый — если этот параметр отключен, пул не будет отображаться у пользователей;
Доступ к календарю запрещён — позволяет указать сообщение, которое будет показано пользователю, если доступ к сервису ограничен правилами календаря;
Выбор транспорта — указывает как на мета-пул будет назначен транспорт:
Automatic selection — будет доступен транспорт с самым низким приоритетом, назначенным пулу услуг. Выбор транспорта не допускается;
Use only common transports — в мета-пуле будет доступен транспорт, который является общим для всего пула услуг;
Group Transports by label — в мета-пуле будет доступен транспорт, которому назначены метки (это поле находится в настройках транспорта на вкладке Дополнительно).
После создания мета-пула, в настройках (дважды щелкнуть мышью по строке созданного пула или в контекстном меню пула выбрать пункт ) необходимо на вкладке Пулы услуг добавить пул услуг в мета-пул:
Для добавления пула услуг необходимо указать:
Приоритет — приоритет, который будет иметь данный пул услуг в мета-пуле (чем ниже значение, тем больше приоритет);
Пул услуг — пул услуг, который будет добавлен в мета-пул (пул услуг должен быть предварительно создан);
Включено — включает или отключает видимость пула услуг в мета-пуле.
Можно добавить столько пулов услуг, сколько необходимо, комбинируя службы, размещенные на разных платформах виртуализации (PVE, KVM, OpenNebula и т.д.), серверах приложений и статических устройствах.
Как и при создании пула услуг, здесь есть следующие вкладки с информацией и конфигурацией:
Назначенные сервисы — показывает службы, назначенные пользователям (можно вручную удалить назначение и переназначить другому пользователю);
Группы — указывает, какие группы пользователей будут иметь доступ к услуге;
Доступ к календарям — позволяет применить ранее созданный календарь доступа;
Журналы — журналы мета-пула.
55.3.8. Управление доступом по календарю
В OpenUDS можно настроить ограничение доступа пользователей к удаленным рабочим столам и виртуальным приложениям по дате и времени.
С помощью календаря также можно автоматизировать определенные задачи в , такие, как создание новых публикаций, настройка значений системного кэша, добавление/удаление групп и транспорта, изменение максимального количества услуг.
Для создания календаря необходимо в разделе нажать кнопку Новый:
В можно зарегистрировать правила, чтобы запланировать доступность услуги в определенное время. Для создания правила следует выбрать календарь (дважды щелкнуть мышью по строке созданного календаря или в контекстном меню календаря выбрать пункт ) и нажать кнопку Новый:
Минимальные параметры для настройки правила:
Имя — название правила;
Событие — настройка времени выполнения. Необходимо указать время начала и продолжительность события (в минутах/часах/днях/неделях);
Repetition (Периодичность) — настройка периодичности выполнения. Необходимо указать дату начала, частоту повторения правила (ежедневно/еженедельно/ежемесячно/ежегодно/по будням) и интервал повторения (в днях);
Панель — показывает сводные данные (резюме) всех ранее указанных настроек.
После нажатия кнопки Хорошо будет создано правило, которое будет назначено (виртуальному рабочему столу и/или приложению):
55.3.8.1. Разрешение/запрет доступа
После настройки правил в календарях их можно использовать для управления доступом пользователей к службам рабочего стола или приложениям. Для этого следует выбрать , перейти на вкладку и нажать кнопку Новый:
В открывшемся окне необходимо указать приоритет доступа, выбрать календарь и указать действие, которое будет применяться при доступе к сервису:
Правило по умолчанию () должно разрешать или запрещать доступ к сервису, когда календарь не применяется:
55.3.8.2. Запланированные действия
После настройки правил в календарях их можно использовать для планирования определенные задач в . Для этого следует выбрать , перейти на вкладку и нажать кнопку Новый:
В открывшемся окне необходимо указать календарь, время, в течение которого будет выполняться действие, выбрать действие:
Список возможных действий зависит от поставщика услуг данного пула:
Установить начальные сервисы — сбрасывает минимальное количество созданных и настроенных виртуальных рабочих столов;
Установить размер кеша — сбрасывает виртуальные рабочие столы, доступные в системном кеше. Эти рабочие столы будут настроены и готовы к назначению пользователю;
Установить максимальное количество сервисов — изменяет максимальное количество виртуальных рабочих столов в ;
Установить размер L2 кэша — сбрасывает виртуальные рабочие столы, доступные в кэше L2;
Публикация — создание новой публикации в ;
Добавить транспорт — добавляет существующий транспорт в ;
Удалить транспорт — удаляет транспорт из ;
Удалить все транспорты — удаляет весь транспорт из ;
Добавить группу — добавляет существующую группу в ;
Удалить группу — удаляет группу из ;
Удалить все группы — удаляет все группы из ;
Устанавливает игнорирование неиспользуемых — устанавливает параметр ;
Удалить ВСЕ назначенные пользовательские сервисы — удаляет все службы, назначенные пользователям;
Удалить СТАРЫЕ назначенные пользовательские сервисы — удаляет службы, назначенные пользователям, которые не использовались заданное время.
После сохранения появится запланированная задача, выполняющая конкретное действие в данном .
55.3.9. Настройка разрешений
В OpenUDS можно назначать пользователям и группам пользователей права доступа к различным элементам администрирования. Разрешения будут назначены непосредственно для каждого элемента, а также будут применяться к его подэлементам.
Чтобы пользователь мог получить доступ к администрированию, ему должна быть назначена роль :
Для предоставления разрешения к элементу администрирования следует выбрать элемент и нажать кнопку Разрешения:
В окне разрешений следует нажать ссылку Новое разрешение… для групп или пользователей, выбрать аутентификатор и группу/пользователя, к которым будет применяться разрешение. Нужно также указать, будет ли пользователь/группа иметь доступ для чтения к элементу () или полный доступ ():
После сохранения настроек, пользователи, которым назначена роль , смогут получить доступ к этому элементу администрирования с назначенными разрешениями.
Разрешения типа () могут применяться только к элементам второго уровня (, и т.д.).
55.3.10. Конфигурация OpenUDS
В разделе можно настроить ряд параметров, которые будут определять работу системы. Эти параметры отвечают за определение таких аспектов, как безопасность, режим работы, подключение и т.д. как самой системы OpenUDS, так и её связи с виртуальными платформами, зарегистрированными в OpenUDS.
В данном разделе описаны некоторые системные переменные для управления виртуальными рабочими столами. Не рекомендуется изменять значения других переменных, так как некоторые из них указывают системе, как она должна работать (количество одновременных задач, время выполнения задач, плановые проверки и т.д.). Изменение этих параметров может привести к неправильной работе или к полной остановке системы.
Для применения изменений, после редактирования значений любой из переменных конфигурации OpenUDS, необходимо перезапустить сервер OpenUDS.
Вкладка
UDS:
autorunService — выполнять прямой доступ к службе пользователя, если пользователю назначена только одна служба. Если этот параметр активирован, пользователи, которым назначен один сервис, будут подключаться к нему напрямую, минуя экран выбора сервиса и используя предварительно настроенный «Транспорт». По умолчанию: нет;
disallowGlobalLogin — если включено, на странице входа не будет отображаться список аутентификаторов. В этом случае будет использоваться аутентификатор по умолчанию. Для предоставления пользователю доступа к системе с помощью других аутентификаторов необходимо использовать Метку, определенную в аутентификаторе, в URL-адресе доступа. По умолчанию: нет;
keepinfoTime — время (в секундах), в течение которого завершенные события «пула услуг» остаются видимыми. По умолчанию: 14401 секунд (4 часа);
redirectToHttps — автоматически перенаправлять доступ к OpenUDS с http на https. По умолчанию: нет;
sessionExpireTime — максимальное время, в течение которого сеанс пользователя будет открыт после создания новой публикации. По истечении этого времени система закроет сеанс пользователя и продолжит удаление службы. Если у службы есть Менеджер ОС с параметром Держать сервис привязанным даже в новой публикации, этот параметр не будет применяться. По умолчанию: 24 часа;
statsDuration — время, в течение которого система хранит статистику. По умолчанию: 365 дней.
Вкладка
Security:
allowRootWebAccess — разрешить суперпользователю (пользователю, созданному при разворачивании OpenUDS-сервера) входить в панель управления OpenUDS. По умолчанию: да;
Behind a proxy — указывает системе, что серверы OpenUDS находятся «за» прокси-сервером (например, среда OpenUDS с HA Proxy). По умолчанию: нет;
Block ip on login failure — заблокировать пользователя при неправильном вводе пароля (также блокируется IP-адрес). Количество попыток указывается в переменной maxLoginTries. По умолчанию: нет;
Enforce Zero-Trust Mode — включение режима нулевого доверия (запретить системе хранить пароли). По умолчанию: нет;
loginBlockTime — время (в секундах), в течение которого после неправильного ввода пароля пользователь будет заблокирован. Количество попыток указывается в переменной maxLoginTries. По умолчанию: 300 секунд (5 минут);
maxLoginTries — количество попыток, за которые пользователь должен ввести свой пароль, прежде чем система заблокирует его;
Session timeout for Admin — время бездействия (в секундах) для администраторов платформы. По умолчанию: 14400 секунд (4 часа);
Session timeout for User — время бездействия (в секундах) для пользователей. По умолчанию: 14400 секунд (4 часа);
Trusted Hosts — узлы, которые OpenUDS считает безопасными. Эти узлы могут делать «sensitive» запросы к OpenUDS. Допустимые значения: подсеть, диапазон IP-адресов, конкретные IP-адреса. По умолчанию: "*" (всё разрешено).
Вкладка
Admin:
Trusted Hosts for Admin — узлы, с которых можно управлять OpenUDS (как с помощью веб-доступа, так и администрирование с помощью API). Допустимые значения: подсеть, диапазон IP-адресов, конкретные IP-адреса. По умолчанию: "*" (всё разрешено).
Вкладка
Custom (параметры, связанные с графической настройкой OpenUDS):
CSS — CSS код для изменения стиля страниц OpenUDS;
Logo name — текст, который отображается рядом с логотипом;
Min. Services to show filter — минимальное количество служб, которые должны существовать у пользователя (в режиме пользователя), чтобы отображался фильтр;
Show Filter on Top — расположение панели поиска на странице пользовательских служб;
Site copyright info — текст копирайт;
Site copyright link — веб-адрес, на который будет вести ссылка с копирайта;
Site information — HTML-код для частичной настройки страницы входа в OpenUDS. Введенный код появится под полем входа пользователя;
Site name — текст, который будет отображаться в верхней части поля входа пользователя на странице входа OpenUDS.
55.4. Подготовка шаблона виртуальной машины
Для возможности использования ВМ в качестве шаблона OpenUDS, на машине необходимо включить и настроить удаленный рабочий стол, установить OpenUDS Actor и зарегистрировать его на сервере OpenUDS.
55.4.1. Шаблон ВМ с ОС Альт
Подготовить шаблон ВМ (все действия выполняются на ВМ):
Установить openuds-actor:
# apt-get install openuds-actor
Включить автозапуск сервиса udsactor.service:
# systemctl enable udsactor.service
Зарегистрировать OpenUDS Actor на сервере OpenUDS:
запустить OpenUDS Actor из меню → или командой:
$ /usr/sbin/UDSActorConfig-pkexec
Потребуется ввести пароль пользователя, входящего в группу wheel.
на вкладке UDS Server указать имя или IP-адрес сервера OpenUDS, аутентификатор (значение Administration соответствует суперпользователю), имя и пароль пользователя, имеющего права администратора в среде OpenUDS и нажать кнопку Register with UDS (Зарегистрироваться в UDS):
на вкладке Advanced можно указать дополнительные параметры, в том числе уровень журналирования. Для применения настроек указанных на этой вкладке необходимо выполнить перерегистрацию UDSActor.
Настроить один из вариантов удаленного доступа:
XRDP:
установить пакет
xrdp:
# apt-get install xrdp
включить сервисы xrdp и xrdp-sesman:
# systemctl enable --now xrdp
# systemctl enable --now xrdp-sesman
для доступа к терминальному сеансу включить пользователя в группу tsusers:
# gpasswd -a user tsusers
X2Go:
установить пакет
x2goserver:
# apt-get install x2goserver
включить сервис x2goserver:
# systemctl enable --now x2goserver
55.4.2. Шаблон ВМ с ОС Windows
В данном разделе рассмотрен процесс настройки ВМ с ОС Windows x64 10 Pro для использования в качестве шаблона OpenUDS.
Требования к шаблону ВМ с ОС Windows:
рекомендуется отключить автоматические обновления, чтобы предотвратить выполнение этого процесса на создаваемых виртуальных рабочих столах;
машина должна получать IP-адрес по DHCP;
шаблон не нужно добавлять в домен Active Directory. Если нужны виртуальные рабочие столы, включенные в домен AD, настройка должна быть выполнена в панели управления OpenUDS;
автоматический вход пользователя должен быть отключён (учетные данные всегда должны запрашиваться у пользователя).
Для возможности ввода ВМ в домен, в шаблоне ВМ должен быть доступен сервер DNS, имеющий записи про контроллер домена Active Directory.
Для настройки удаленного рабочего стола, необходимо выполнить следующие действия в шаблоне ВМ:
Открыть окно Параметры (Win+I).
Выбрать раздел Система, а затем слева в списке — Удаленный рабочий стол.
Ползунок Включить удаленный рабочий стол установить в положение Вкл.:
Выбрать учетные записи, которым разрешено удаленное подключение. Для этого нажать ссылку Выберите пользователей, которые могут получить доступ к этому компьютеру и добавить пользователей:
Проверить возможность подключения к машине удаленно.
Для возможности подключения клиентов Linux может потребоваться снять отметку с пункта Требовать использование компьютерами аутентификации на уровне сети для подключения в дополнительных параметрах:
Необходимо убедиться, что межсетевой экран не блокирует соединения по 3389 порту.
Настройка OpenUDS Actor:
Загрузить OpenUDS Actor. Для этого в панели управления OpenUDS Server выбрать пункт (пункт доступен пользователям с правами администратора):
На открывшейся странице выбрать нужный UDS Actor:
Для машин с ОС Windows есть два вида OpenUDS Actor:
Установить OpenUDS Actor (установка OpenUDS Actor ничем не отличается от инсталляции большинства других программ в ОС Windows).
Запустить UDSActorConfig от имени администратора. Для этого в контекстном меню пункта UDSActorConfig выбрать → :
Регистрация OpenUDS Actor на сервере:
для регистрации Managed OpenUDS Actor на вкладке UDS Server необходимо указать имя или IP-адрес сервера OpenUDS, аутентификатор (значение Administration соответствует суперпользователю), имя и пароль пользователя, имеющего права администратора в среде OpenUDS и нажать кнопку Register with UDS (Зарегистрироваться в UDS):
для регистрации Unmanaged OpenUDS Actor необходимо указать имя или IP-адрес сервера OpenUDS, тот же ключ, который был указан при настройке услуги и нажать кнопку Save Configuration (Сохранить конфигурацию):
Unmanaged OpenUDS Actor уведомляет OpenUDS, когда пользователь входит в систему и выходит из нее. Благодаря этой функции система может освободить компьютер, при выходе пользователя из системы. Для использования этой функции при регистрации услуги кроме названия услуги следует указать один или несколько IP-адресов машин, к которым будет осуществляться доступ и ключ в поле Ключ услуги:
Если оставить поле Ключ услуги пустым, сеанс останется назначенным пользователю, пока администратор не удалит его вручную.
55.5. Настройка клиента OpenUDS
Для возможности подключения к брокеру соединений и дальнейшего получения доступа к виртуальному рабочему окружению на клиентской машине должны быть установлены OpenUDS Client и клиенты каждого используемого протокола удаленного доступа.
55.5.1. Клиент с ОС Альт
На клиенте должен быть установлен пакет
openuds-client:
# apt-get install openuds-client
Для возможности подключения к виртуальному рабочему столу, должны быть установлены клиенты протоколов удаленного доступа:
xfreerdp — для подключения по протоколу RDP;
x2goclient — для подключения к серверу X2Go;
remote-viewer из пакета virt-viewer — для подключения по протоколу SPICE.
55.5.2. Клиент с ОС Windows
Установка клиента OpenUDS:
Скачать OpenUDS Client для компьютеров с ОС Windows. Для этого в панели управления OpenUDS Server выбрать пункт и на открывшейся странице выбрать клиент Windows:
Установить OpenUDS Client (установка ничем не отличается от инсталляции большинства других программ в ОС Windows).
Чтобы иметь возможность подключаться к виртуальному рабочему столу, должны быть установлены клиенты каждого используемого протокола удаленного доступа: RDP (стандартный клиент RDP установлен в Windows по умолчанию), X2Go, SPICE.
Для установки клиента X2Go на ОС Windows достаточно загрузить клиент
X2Go и установить его.
Для установки клиента SPICE на ОС Windows необходимо установить
virt-viewer.
55.6. Подключение пользователя к виртуальному рабочему месту
Подключиться к серверу OpenUDS с помощью браузера http://openuds_address, ввести имя пользователя и пароль, выбрать средство проверки подлинности, если доступно несколько:
На панели управления будут отображены все ВМ (или шаблоны), к которым у пользователя есть доступ:
После выбора пула, автоматически стартует OpenUDS Client, который обрабатывает URL, получает необходимые настройки протокола удаленного доступа для предоставленной (свободной) ВМ, формирует файл описания сессии и передает его приложению-клиенту удалённого доступа, которое и устанавливает соединение с указанной ВМ. Как только соединение будет установлено, виртуальный рабочий стол будет доступен для использования.
Если для подключения к ВМ настроено более одного типа транспорта, то в правом верхнем углу службы будет отображена кнопка. Если выбрать непосредственно ВМ, будет вызван транспорт по умолчанию (транспорт с меньшим значением в поле приоритет). Для того чтобы использовать другой транспорт, нужно выбрать его в раскрывающемся списке.
По завершении сеанса пользователь ВМ выходит из нее, что приводит к остановке OpenUDS Actor. Брокер OpenUDS считает, что ВМ стала недоступной и, если пул постоянный, то он запускает ВМ, а если пул временный, то происходит удаление файлов ВМ в хранилище и создается новая ВМ из мастер-образа.
При подключении пользователя к виртуальному рабочему месту OpenUDS фиксирует доступ и отображает информацию о привязанном сервисе на вкладке соответствующего пула.
55.7. Отказоустойчивое решение
Компоненты OpenUDS можно настроить в режиме высокой доступности (HA).
Для обеспечения высокой доступности OpenUDS, кроме настройки нескольких OpenUDS Server и Tunnel, необходимо настроить репликацию базы данных. Следует также настроить балансировщик нагрузки, который будет распределять подключения к компонентам OpenUDS Server и Tunnel.
Основные компоненты отказоустойчивого решения
OpenUDS:
Сервер MySQL — база данных (БД) является одним из наиболее существенных компонентов OpenUDS. Поэтому настоятельно рекомендуется иметь резервную копию этого компонента, либо посредством полной резервной копии машины, либо посредством конфигурации активной/пассивной реплики. В данном руководстве описана настройка двух серверов MySQL в режиме активной/пассивной репликации;
HAProxy-сервер — сервер, отвечающий за распределение подключений к OpenUDS Server и Tunnel. Через него осуществляется доступ пользователей к OpenUDS, и выполняются подключения к различным сервисам. На серверах HAProxy также следует настроить виртуальный IP-адрес, который будет активен только на основном сервере. В случае отказа основного сервера виртуальный IP-адрес будет автоматически активирован на другом сервере HAProxy;
OpenUDS Server — наличие нескольких машин OpenUDS Server обеспечит непрерывный доступ пользователей к OpenUDS, даже при отказе одного из OpenUDS Server;
OpenUDS Tunnel — наличие нескольких машин OpenUDS Tunnel позволит получить доступ к службам (рабочим столам или приложениям) через туннелированные соединения и HTML5, даже при отказе одного из OpenUDS Tunnel.
Если пользователь подключается к сервису (рабочему столу или приложению) и сервер OpenUDS Tunnel, через который он подключен, падает, соединение будет потеряно. Но при повторном подключении доступ будет автоматически восстановлен через другой активный сервер OpenUDS Tunnel.
Таблица 55.2. Системные требования
Компонент
|
Количество
|
ОЗУ
|
ЦП
|
Диск
|
SQL Server
|
2
|
1 ГБ
|
2 vCPUs
|
10 ГБ
|
HAProxy
|
2
|
1 ГБ
|
2 vCPUs
|
10 ГБ
|
OpenUDS Server
|
2
|
2 ГБ
|
2 vCPUs
|
8 ГБ
|
OpenUDS Tunnel
|
2
|
2 ГБ
|
2 vCPUs
|
13 ГБ
|
Для HAProxy необходимо 3 IP-адреса, по одному для каждого сервера (Master-Slave) и общий виртуальный IP-адрес, который будет использоваться для балансировки.
55.7.1. Конфигурация серверов MySQL
На обоих серверах установить MySQL (MariaDB):
# apt-get install mariadb
Запустить сервер MySQL и добавить его в автозагрузку:
# systemctl enable --now mariadb.service
Задать пароль root и настройки безопасности для MySQL:
# mysql_secure_installation
55.7.1.1. Настройка репликации между серверами
55.7.1.1.1. Главный узел (Master)
В файле
/etc/my.cnf.d/server.cnf
:
закомментировать параметр skip-networking
;
раскомментировать параметры server-id
и log-bin
;
убедиться, что для параметра server-id
установлено значение 1;
раскомментировать параметр
bind-address
и указать IP-адрес сервера (главного):
bind-address 192.168.0.128
Перезагрузить службу MySQL:
# systemctl restart mariadb
Создать нового пользователя, c правами которого будет производиться репликация:
Войти в консоль MySQL с правами root:
$ mysql -p
Создать пользователя (в примере пользователь «replica» с паролем «uds»):
MariaDB [(none)]> CREATE USER 'replica'@'%' IDENTIFIED BY 'uds';
Query OK, 0 rows affected (0.009 sec)
Предоставить права
replication slave
пользователю:
MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%' IDENTIFIED BY 'uds';
Query OK, 0 rows affected (0.002 sec)
Получить информацию об имени двоичного файла и его позиции:
MariaDB [(none)]> SHOW MASTER STATUS\G
*************************** 1. row ***************************
File: mysql-bin.000002
Position: 328
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.001 sec)
В данном примере:
Эти данные будут необходимы для настройки Slave-сервера.
55.7.1.1.2. Вторичный узел (Slave)
В файле
/etc/my.cnf.d/server.cnf
:
закомментировать параметр skip-networking
;
раскомментировать параметры server-id
и log-bin
;
в параметре server-id
установить значение 2;
раскомментировать параметр
bind-address
и указать IP-адрес сервера (вторичного):
bind-address 192.168.0.129
Перезагрузить службу MySQL:
# systemctl restart mariadb
Настроить параметры, которые вторичный сервер (Slave) будет использовать для подключения к основному серверу (Master):
Войти в консоль MySQL с правами root:
$ mysql -p
Остановить репликацию:
MariaDB [(none)]> STOP SLAVE;
Query OK, 0 rows affected, 1 warning (0.001 sec)
Настроить репликацию между основным сервером и вторичным сервером:
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.0.128', MASTER_USER='replica', MASTER_PASSWORD='uds', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=328;
Query OK, 0 rows affected (0.020 sec)
где:
192.168.0.128 — IP-адрес основного сервера;
replica — пользователь, с правами которого будет производиться репликация;
uds — пароль пользователя replica;
mysql-bin.000002 — имя файла, полученного на предыдущем шаге;
328 — позиция двоичного файла.
Запустить репликацию:
MariaDB [(none)]> START SLAVE;
Query OK, 0 rows affected (0.001 sec)
Убедиться, что конфигурация верна:
MariaDB [(none)]> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.128
Master_User: replica
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 328
Relay_Log_File: mysqld-relay-bin.000006
Relay_Log_Pos: 555
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
…
IP-адрес основного сервера должен быть указан корректно, параметры Slave_IO_Running
и Slave_SQL_Running
должны быть установлены в значение «Yes».
55.7.1.2. Проверка репликации
Для проверки репликации можно создать БД на главном сервере и убедиться, что она автоматически реплицируется на вторичном сервере:
Получить доступ к консоли MySQL главного сервера и создать новую тестовую БД «replicatest»:
MariaDB [(none)]> CREATE DATABASE replicatest;
Query OK, 1 row affected (0.001 sec)
Убедиться, что БД создана:
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| replicatest |
+--------------------+
4 rows in set (0.001 sec)
Получить доступ к консоли MySQL вторичного сервера и убедиться, что БД, созданная на основном сервере, успешно реплицировалась на этот сервер:
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| replicatest |
+--------------------+
4 rows in set (0.002 sec)
После проверки работы репликации можно удалить БД «replicatest», выполнив команду на основном сервере:
MariaDB [(none)]> DROP DATABASE replicatest;
Создать на основном сервере БД:
$ mysql -p
Enter password:
MariaDB [(none)]> CREATE DATABASE dbuds CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB [(none)]> CREATE USER 'dbuds'@'%' IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON dbuds.* TO 'dbuds'@'%';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit;
Подключить серверы OpenUDS к БД основного сервера.
При недоступности одного из серверов БД необходимо выполнить ряд задач. Задачи, которые следует выполнить, зависят от того к какому серверу (Master или Slave) нет доступа.
55.7.1.4.1. Главный узел (Master)
Если недоступен основной сервер БД (Master), то будет потерян доступ к среде VDI. В этом случае необходимо вручную подключить OpenUDS Server к вторичной БД (Slave), в которой находится вся информация среды VDI до момента падения основной БД. Чтобы настроить новое подключение к БД на OpenUDS Server следует в конфигурационном файле /var/server/server/settings.py
указать параметры новой БД (это необходимо сделать на всех серверах OpenUDS-Server).
После изменения IP-адреса БД необходимо перезапустить сервер OpenUDS (это необходимо сделать на всех серверах OpenUDS Server). После перезапуска сервера доступ к среде VDI будет восстановлен
Затем необходимо настроить новый сервер для репликации БД. Это можно сделать разными способами, например:
Настроить текущий сервер БД как главный и создать новый сервер-реплику, который нужно настроить и восстановить БД из резервной копии с существующими данными (поскольку реплицируются только новые данные).
Напрямую сделать резервную копию текущего сервера БД (предварительно остановив все машины OpenUDS Server). Создать новый сервер БД Master, восстановить туда резервную копию БД и перенастроить репликацию.
Чтобы не потерять данные, перед применением любого метода перестроения репликации, рекомендуется сделать резервную копию БД. Для получения резервной копии можно использовать следующую команду:
# mysqldump -u dbuds -ppassword --databases dbuds > dbuds_dump.sql
При создании резервной копии все машины OpenUDS Server должны быть выключены. Таким образом, обеспечивается согласованность данных и отсутствие различий в данных между главным и подчиненным серверами перед настройкой реплики.
55.7.1.4.2. Вторичный узел (Slave)
Если недоступен вторичный сервер БД (Slave), доступ к среде VDI сохранится, но будет необходимо перенастроить вторичный сервер-реплику. Перед выполнением данной настройки необходимо восстановить резервную копию с текущим состоянием основной БД, так как будут синхронизированы только новые данные реплики (существующие данные не будут реплицированы в базе данных).
Важно, чтобы во время всего этого процесса машины OpenUDS Server были выключены, чтобы не возникало различий между БД Master и Slave серверов.
55.7.2. Настройка серверов HAProxy
В данной конфигурации используется служба Keepalived и виртуальный IP-адрес, общий для главного (Master) и резервного (Slave) узлов. Служба Keepalived связывает виртуальный IP-адрес с главным узлом и отслеживает доступность HAProxy. Если служба обнаруживает, что HAProxy не отвечает, то она связывает виртуальный адрес с вспомогательным узлом, что минимизирует время недоступности сервера. Пользователи при обращении к OpenUDS должны использовать этот виртуальный IP-адрес. Этот же виртуальный IP-адрес следует использовать при регистрации OpenUDS Actor (см.
Подготовка шаблона виртуальной машины).
На основном узле сгенерировать сертификат:
# openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /root/ssl.key -out /root/ssl.crt
Создать файл .pem, выполнив команду (предварительно может понадобиться создать каталог
/etc/openssl/private
):
# cat /root/ssl.crt /root/ssl.key > /etc/openssl/private/haproxy.pem
Сертификат, созданный на первичном сервере HAProxy, необходимо скопировать в каталог /etc/openssl/private
на вторичном сервере. Если используется собственный сертификат, его необходимо скопировать на оба сервера (основной и дополнительный).
Порты, используемые HAProxy (в примере 80, 443, 1443, 10443), должны быть свободны.
На обоих узлах:
Установить пакеты
haproxy и
keepalived:
# apt-get install haproxy keepalived
Заменить содержимое файла
/etc/haproxy/haproxy.cfg
следующим:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /var/lib/haproxy/admin.sock mode 660 level admin
stats timeout 30s
maxconn 2048
user _haproxy
group _haproxy
daemon
# Default SSL material locations
# ca-base /etc/openssl/certs
# crt-base /etc/openssl/private
# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL). This list is from:
# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
ssl-default-bind-options ssl-min-ver TLSv1.2 prefer-client-ciphers
# ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA267:TLS_AES_267_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA267
ssl-default-bind-ciphers ECDH+AESGCM:ECDH+CHACHA20:ECDH+AES267:ECDH+AES128:!aNULL:!SHA1:!AESCCM
# ssl-default-server-options ssl-min-ver TLSv1.2
# ssl-default-server-ciphersuites TLS_AES_128_GCM_SHA267:TLS_AES_267_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA267
# ssl-default-server-ciphers ECDH+AESGCM:ECDH+CHACHA20:ECDH+AES267:ECDH+AES128:!aNULL:!SHA1:!AESCCM
tune.ssl.default-dh-param 2048
defaults
log global
mode http
option httplog
option dontlognull
option forwardfor
retries 3
option redispatch
stats enable
stats uri /haproxystats
stats realm Strictly\ Private
stats auth stats:haproxystats
timeout connect 5000
timeout client 50000
timeout server 50000
frontend http-in
bind *:80
mode http
http-request set-header X-Forwarded-Proto http
default_backend openuds-backend
frontend https-in
bind *:443 ssl crt /etc/openssl/private/haproxy.pem
mode http
http-request set-header X-Forwarded-Proto https
default_backend openuds-backend
frontend tunnel-in
bind *:1443
mode tcp
option tcplog
default_backend tunnel-backend-ssl
frontend tunnel-in-guacamole # HTML5
bind *:10443
mode tcp
option tcplog
default_backend tunnel-backend-guacamole
backend openuds-backend
option http-keep-alive
balance roundrobin
server udss1 192.168.0.85:80 check inter 2000 rise 2 fall 5
server udss2 192.168.0.86:80 check inter 2000 rise 2 fall 5
backend tunnel-backend-ssl
mode tcp
option tcplog
balance roundrobin
server udst1 192.168.0.87:7777 check inter 2000 rise 2 fall 5
server udst2 192.168.0.88:7777 check inter 2000 rise 2 fall 5
backend tunnel-backend-guacamole
mode tcp
option tcplog
balance source
server udstg1 192.168.0.87:10443 check inter 2000 rise 2 fall 5
server udstg2 192.168.0.88:10443 check inter 2000 rise 2 fall 5
Включить в ядре поддержку двух IP-адресов:
# echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf
# sysctl -p
Настроить службу Keepalived. Для этого создать файл
/etc/keepalived/keepalived.conf
. Содержимое файла зависит от узла, который настраивается:
на главном узле:
global_defs {
# Keepalived process identifier
lvs_id haproxy_DH
}
# Script used to check if HAProxy is running
vrrp_script check_haproxy {
script "killall -0 haproxy"
interval 2
weight 2
}
# Виртуальный интерфейс
# The priority specifies the order in which the assigned interface to take over in a failover
vrrp_instance VI_01 {
state MASTER
interface enp0s3
virtual_router_id 51
priority 101
# Виртуальный IP-адрес
virtual_ipaddress {
192.168.0.49
}
track_script {
check_haproxy
}
}
где enp0s3 — интерфейс, для виртуального IP (узнать имя сетевого интерфейса можно, выполнив команду
ip a
).
на вспомогательном узле:
global_defs {
# Keepalived process identifier
lvs_id haproxy_DH_passive
}
# Script used to check if HAProxy is running
vrrp_script check_haproxy {
script "killall -0 haproxy"
interval 2
weight 2
}
# Виртуальный интерфейс
# The priority specifies the order in which the assigned interface to take over in a failover
vrrp_instance VI_01 {
state SLAVE
interface eth0
virtual_router_id 51
priority 100
# Виртуальный IP-адрес
virtual_ipaddress {
192.168.0.49
}
track_script {
check_haproxy
}
}
где eth0 — интерфейс, для виртуального IP (узнать имя сетевого интерфейса можно, выполнив команду
ip a
).
Запустить службы haproxy и keepalived:
# systemctl enable --now haproxy
# systemctl enable --now keepalived
Убедиться, что виртуальный IP активен на основном сервере:
$ ip a |grep enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 192.168.0.52/24 brd 192.168.0.255 scope global noprefixroute enp0s3
inet 192.168.0.49/32 scope global enp0s3
55.7.3. Настройка OpenUDS
После настройки серверов MySQL и HAProxy можно приступить к установке и настройке компонентов OpenUDS Server и Tunnel.
55.7.3.1. Настройка OpenUDS Server
На обоих узлах OpenUDS Server:
Установить OpenUDS Server:
# apt-get install openuds-server-nginx
Отредактировать содержимое файла
/etc/openuds/settings.py
, указав корректные данные для подключения к главному MySQL-серверу:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'isolation_level': 'read committed',
},
'NAME': 'dbuds', # Or path to database file if using sqlite3.
'USER': 'dbuds', # Not used with sqlite3.
'PASSWORD': 'password', # Not used with sqlite3.
'HOST': '192.168.0.128', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '3306', # Set to empty string for default. Not used with sqlite3.
}
}
Заполнить базу данных начальными данными (этот пункт следует выполнить только на одном узле!):
# su -s /bin/bash - openuds
$ cd /usr/share/openuds
$ python3 manage.py migrate
$ exit
Запустить gunicorn:
# systemctl enable --now openuds-web.service
Запустить nginx:
# ln -s ../sites-available.d/openuds.conf /etc/nginx/sites-enabled.d/openuds.conf
# systemctl enable --now nginx.service
Запустить менеджер задач OpenUDS:
# systemctl enable --now openuds-taskmanager.service
Подключиться к серверу OpenUDS (http://Виртуальный_IP-адрес).
55.7.3.2. Настройка OpenUDS Tunnel
На каждом узле OpenUDS Tunnel:
Установить OpenUDS Tunnel:
# apt-get install openuds-tunnel
Настроить туннель:
указать виртуальный IP-адрес в файле
/etc/openuds-tunnel/udstunnel.conf
:
uds_server = http://192.168.0.49/uds/rest/tunnel/ticket
uds_token = 5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b
запустить и добавить в автозагрузку сервис OpenUDS Tunnel:
# systemctl enable --now openuds-tunnel.service
Настроить HTML5:
в файле
/etc/guacamole/guacamole.properties
привести значение параметра
uds-base-url
к виду:
uds-base-url=http://192.168.0.49/uds/guacamole/auth/5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b
где 192.168.0.49 — виртуальный IP-адрес;
настроить tomcat, для этого в файл
/etc/tomcat/server.xml
добавить новый Connector, в котором указать порт (в примере 10443), сертификат (файл .crt, .pem и т.д.), закрытый ключ (.key, .pem и т.д.):
<Connector port="10443" protocol="org.apache.coyote.http11.Http11AprProtocol" SSLEnabled="true"
ciphers="A-CHACHA20-POLY1305,ECDHE-RSA-CHACHA20-POLY1305,
ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,
DHE-RSA-AES128-GCM-SHA256,DHE-RSA-AES256-GCM-SHA384,
ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA256,
ECDHE-ECDSA-AES128-SHA,ECDHE-RSA-AES256-SHA384,
ECDHE-RSA-AES128-SHA,ECDHE-ECDSA-AES256-SHA384,
ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES256-SHA,
DHE-RSA-AES128-SHA256,DHE-RSA-AES128-SHA,
DHE-RSA-AES256-SHA256,DHE-RSA-AES256-SHA,
ECDHE-ECDSA-DES-CBC3-SHA,ECDHE-RSA-DES-CBC3-SHA,
EDH-RSA-DES-CBC3-SHA,AES128-GCM-SHA256,AES256-GCM-SHA384,
AES128-SHA256,AES256-SHA256,AES128-SHA,AES256-SHA,DES-CBC3-SHA"
maxThreads="500" scheme="https" secure="true"
SSLCertificateFile="/etc/openuds-tunnel/ssl/certs/openuds-tunnel.pem"
SSLCertificateKeyFile="/etc/openuds-tunnel/ssl/private/openuds-tunnel.key"
maxKeepAliveRequests="1000"
clientAuth="false" sslProtocol="TLSv1+TLSv1.1+TLSv1.2" />
запустить сервисы guacd и tomcat:
# systemctl enable --now guacd tomcat
На главном узле (Master) MySQL добавить в БД информацию о каждом OpenUDS Tunnel:
INSERT INTO `uds_tunneltoken` VALUES (ID,'автор добавления','IP-адрес туннеля','IP-адрес туннеля'
'название туннеля','Токен из файла udstunnel.conf','дата добавления');
Например:
# mysql -u root -p
MariaDB> USE dbuds;
MariaDB> INSERT INTO `uds_tunneltoken` VALUES (ID,'admin','192.168.0.87','192.168.0.87','Tunnel','5ba9d52bb381196c2a22e495ff1c9ba4bdc03440b726aa8b','2022-11-15');
MariaDB> INSERT INTO `uds_tunneltoken` VALUES (ID,'admin','192.168.0.88','192.168.0.88','Tunnel','9ba4bdc03440b726aa8b5ba9d52bb381196c2a22e495ff1c','2022-11-15');
MariaDB> exit;
Оба сервера OpenUDS-Tunnel будут работать в активном режиме. Пользователи, использующие подключение через туннель, будут подключаться к этим серверам случайным образом. При падении одного из серверов, соединения пользователей, которые используют этот сервер, будут прерваны, но при повторном установлении соединения они автоматически получат доступ через другой активный туннельный сервер.
При создании туннельного транспорта (X2Go, RDP) в поле Туннельный сервер (вкладка Туннель) следует указывать виртуальный IP-адрес и порт, указанный в разделе frontend tunnel-in
файла /etc/haproxy/haproxy.cfg
(в данном примере: 1443):
При создании транспорта «HTML5 RDP (туннельный)» в поле Туннельный сервер (вкладка Туннель) следует указывать виртуальный IP-адрес и порт, указанный в разделе frontend tunnel-in-guacamole
файла /etc/haproxy/haproxy.cfg
(в данном примере: 10443):
Пример подключения с использованием HTML5:
Глава 56. Система резервного копирования Proxmox Backup Server
Proxmox Backup Server (PBS) — клиент-серверное решение для резервного копирования и восстановления виртуальных машин, контейнеров и данных с физических узлов. Решение оптимизировано для проекта Proxmox VE (PVE). PBS поддерживает инкрементное резервное копирование с полной дедупликацией, что значительно снижает нагрузку на сеть и экономит пространство для хранения.
Все взаимодействия между клиентом и сервером шифруются, с использованием TLS, кроме того данные могут быть зашифрованы на стороне клиента перед отправкой на сервер. Это позволяет сделать резервное копирование более безопасным.
Сервер резервного копирования хранит данные резервного копирования и предоставляет API для создания хранилищ данных и управления ими. С помощью API также можно управлять дисками и другими ресурсами на стороне сервера.
Клиент резервного копирования использует API для доступа к резервным копиям. С помощью инструмента командной строки proxmox-backup-client
можно создавать резервные копии и восстанавливать данные (в PVE клиент встроен).
Для управления настройкой резервного копирования и резервными копиями используется веб-интерфейс. Все административные задачи можно выполнять в веб-браузере. Веб-интерфейс также предоставляет встроенную консоль.
56.1.1. Установка сервера PBS
Установить сервер PBS:
# apt-get install proxmox-backup-server
Сервер PBS можно установить при установке системы, выбрав для установки пункт
Сервер резервного копирования от проекта Proxmox (подробнее описано в главе
Установка системы).
Запустить и добавить в автозагрузку Proxmox Backup API Proxy Server:
# systemctl enable --now proxmox-backup-proxy.service
Служба proxmox-backup-proxy предоставляет API управления PBS по адресу 127.0.0.1:82
. Она имеет разрешение на выполнение всех привилегированных операций.
Для работы с локальным ZFS хранилищем должен быть установлен модуль ядра с поддержкой ZFS (например, kernel-modules-zfs-std-def).
Включить модуль:
# modprobe zfs
Чтобы не вводить эту команду каждый раз после перезагрузки, следует раскомментировать строку:
#zfs
в файле
/etc/modules-load.d/zfs.conf
.
56.1.2. Установка клиента PBS
Установить клиент PBS:
# apt-get install proxmox-backup-client
Веб-интерфейс PBS доступен по адресу https://<имя-компьютера|IP-адрес>:8007
. Потребуется пройти аутентификацию (логин по умолчанию: root, пароль указывается в процессе установки ОС):
Веб-интерфейс PBS:
56.3. Настройка хранилища данных
56.3.1. Управление дисками
В веб-интерфейсе на вкладке → можно увидеть диски, подключённые к системе:
Просмотр списка дисков в командной строке:
# proxmox-backup-manager disk list
Создание файловой системы ext4 или xfs на диске в веб-интерфейсе:
Пример создания файловой системы в командной строке (будет создана файловая система ext4 и хранилище данных на диске nvme0n3, хранилище данных будет создано