https://www.altlinux.org/api.php?action=feedcontributions&user=%D0%9A%D0%BE%D1%80%D0%BD%D0%B5%D0%B5%D1%87%D0%B5%D0%B2+%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D0%B8%D0%B9&feedformat=atomALT Linux Wiki - Вклад [ru]2024-03-28T17:42:19ZВкладMediaWiki 1.38.2https://www.altlinux.org/index.php?title=1C/MultiClient&diff=711951C/MultiClient2023-07-20T13:24:56Z<p>Корнеечев Евгений: Отмена правки 66861, сделанной Pauli (обсуждение). Не протухло, рабочая для старых платформ.</p>
<hr />
<div>{{note|С версии 8.3.18.1208 данная инструкция не требуется - 1С наконец реализовал установку различных версий платформ в различные папки!}}<br />
= Установка и настройка нескольких версий клиентов 1С 8.3 =<br />
Необходимость в использовании нескольких версий платформ 1С на клиентских машинах актуальна, когда в организации несколько серверов 1С, и на каждом из них, установлена своя версия 1С-платформы. <br />
<br />
Для примера имеются: сервер vm-db2 (192.168.0.10) - c версией платформы 1C 8.3.5-1460 и vm-pg9 (192.168.0.11) - c версией платформы 1C 8.3.9-2033.<br />
В данном случае для подключения к базам на одном ПК необходимо установить обе версии. В Windows проблем нет - каждая платформа ставится как отдельная программа. Например, после установки данных платформа - структура папок такова:<br />
C:\Program Files (x86)\1cv8\8.3.5.1460<br />
C:\Program Files (x86)\1cv8\8.3.9.2033<br />
C:\Program Files (x86)\1cv8\common<br />
В последней папке лежит файл 1cestart.exe, который выбирает при запуске базы из списка (он единый, хранится в Users\AppData) платформу, соответствующую установленной на сервере хранения этой базы.<br />
<br />
Однако под Linux разработчики 1С не потрудились организовать такую же установку, при установке второй версии - 1С просто обновляется...<br />
<br />
Идеальной была бы реализация, как у пакетов ядра kernel-image-*... Но пока справляемся своими силами.<br />
<br />
== Первичная установка одной из версий ==<br />
Одну из необходимых версий нужно установить обычным способом, см. [[1C/Quick]]. <br />
<br />
В нашем случае выбрана 8.3.9-2033 (так как на данном сервере 1С - vm-pg9 - платформа обновляется намного чаще, чем на vm-db2). <br />
<br />
ОС - BaseAlt Рабочая Станция 8.1, x86_64 (установлен {{pkg|1c-preinstall-full}} и четыре необходимых RPM-пакета)<br />
<br />
== Создание архива клиента 1С ==<br />
Другую версию 1С нужно распаковать в папку /opt/1C/v8.3.x-xxxx. Для удобства был написан [[1C/MultiClient#1ctarball.sh|скрипт (см.ниже)]], который намного упростит это действие.<br />
* Скрипт (можно скачать [https://yadi.sk/d/Sx3TXYQY3DoGaZ здесь]) положите в папку вместе с распакованными [[1C/Quick#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2|RPM-пакетами]]<br />
* Если у архитектура требуемого клиента x86_64 - скрипт менять не нужно. Если же нет - откройте его и измените значение переменной ''arch'' на i386.<br />
* Сделайте его исполняемым ({{cmd|chmod +x 1ctarball.sh}})<br />
* Запустите его в таком формате: {{cmd|./1ctarball.sh <номер версии 1с в формате 8.3.x-xxxx>}} (в нашем случае {{cmd|./1ctarball.sh 8.3.5-1460}})<br />
* Результатом будет архив c именем 1С_8.3.5-1460.tgz<br />
{{note|Данное действие можно производить на любом компьютере (понадобятся пакеты {{pkg|rpm}} и {{pkg|tar}}), не обязательно на котором необходимо установить клиент 1С}}<br />
== Установка дополнительной версии клиента 1С==<br />
На клиентской машине (с уже установленной другой версией платформы!) выполняем от рута следующие команды:<br />
tar -xzvf 1С_8.3.5-1460.tgz -C /<br />
chown -R root:root /opt/1C/v8.3.5-1460<br />
Теперь рядом с директорией {{path|/opt/1C/v8.3}} (в которой установлена версия 8.3.9-2033) есть с другой версией: {{path|/opt/1C/v8.3.5-1460}}. Все, на вашем Линуксе установлено две версии клиента 1С (можно сделать и больше)<br />
<br />
== Настройка доступа к базам 1С ==<br />
Затем необходимо настроить подключение к базам 1С. Из одного меню запуска, как в Windows, подключение к базам с разными версиями сделать не получится (так как исполняемый файл 1cestart для каждой из платформ свой), хотя список баз и будет общий - хранится в {{path|~/.1C/1cestart}}.<br />
<br />
Для подключения к серверу БД с версией 1С, которая установлена обычным способом (apt-get install), используется команда: {{cmd|/opt/1C/v8.3/x86_64/1cestart}}.<br />
Для подключения с помощью других имеющихся версий: {{cmd|/opt/1C/v8.3.x-xxxx/x86_64/1cestart}}<br />
<br />
Остается только настроить ярлыки для каждой из версий (самое простое - скопировать из меню существующий и изменить в нем команду)<br />
<br />
= 1ctarball.sh =<br />
<source lang="bash"><br />
#!/bin/bash<br />
arch=x86_64<br />
if [ -z $1 ]; then<br />
echo "Введите номер версии 1С в формате 8.3.x-xxxx"<br />
exit 1<br />
else<br />
name="1C_Enterprise83"<br />
if ! [ -f $name-client-$1.$arch.rpm ]; then<br />
echo "В текущей директории не найдены необходимые пакеты для указанной версии 1С. <br />
Убедитесь в наличие всех следующих пакетов:<br />
* $name-client-$1.$arch.rpm<br />
* $name-client-nls-$1.$arch.rpm<br />
* $name-server-$1.$arch.rpm<br />
* $name-common-$1.$arch.rpm"<br />
exit 1 <br />
else<br />
echo -n "Подождите, операция выполняется..."<br />
rpm2cpio $name-client-$1.$arch.rpm | cpio -idmv 2> /dev/null<br />
rpm2cpio $name-client-nls-$1.$arch.rpm | cpio -idmv 2> /dev/null<br />
rpm2cpio $name-server-$1.$arch.rpm | cpio -idmv 2> /dev/null<br />
rpm2cpio $name-common-$1.$arch.rpm | cpio -idmv 2> /dev/null<br />
mv opt/1C/v8.3 opt/1C/v$1<br />
tar -cpzf 1С_$1.tgz opt<br />
rm -rf opt/ etc/ usr/<br />
echo; echo "Выполнено, установите сгенерированный архив в систему командой (c правами root):<br />
# tar -xzvf 1С_$1.tgz -C /"<br />
exit 0<br />
fi<br />
fi<br />
</source><br />
<br />
{{Category navigation|title=1C|category=1C|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0&diff=54110Настройка принтера2021-05-04T14:55:49Z<p>Корнеечев Евгений: /* Brother */</p>
<hr />
<div>Существует два способа настройки принтера на машине с Альтом:<br />
* утилита 'Настройка принтера' ([http://cyberelk.net/tim/software/system-config-printer/ URL]) - {{pkg|system-config-printer}}<br />
* веб-интерфейс CUPS (Common UNIX Printing System) - {{pkg|cups}}<br />
<br />
== Настройка через {{pkg|system-config-printer}} ==<br />
=== Установка и запуск ===<br />
Запуск утилиты либо через меню {{path|Menu -> Администрирование -> Настройки принтера}}, либо в консоли команда {{cmd|system-config-printer}}.<br />
<br />
Если в меню данного ярлыка не нашли и команда в консоли не найдена, то необходимо доустановить данный пакет:<br />
$ su -<br />
# apt-get update<br />
# apt-get install system-config-printer<br />
<br />
=== Настройка локального принтера ===<br />
# Запустите утилиту и нажмите кнопку "Добавить", потребуется ввести имя текущего пользователя и пароль.<br />
# Далее в открывшемся окне в списке устройств слева выберите подключенный по USB принтер.<br />
# Нажмите кнопку "Далее" - утилита начнет поиск подходящего драйвера. Если таковой найдется Вам остается только нажать кнопку "Готово". Если же нет - будет предложен список всех имеющихся драйверов, и Вам необходимо выбрать нужный. Также утилита может предложить рекомендуемый (ею) драйвер - можно попробовать с ним, однако не факт, что печать будет исправна.<br />
# Если же возникнут проблемы, то Вам необходимо [[#Установка драйверов (популярные марки устройств)|установить требуемый драйвер]], а уже затем повторить все действия по добавлению принтера заново.<br />
<br />
=== Настройка сетевого принтера ===<br />
* См. п.1 настройки локального принтера.<br />
* Далее в списке устройств слева разверните закладку "Сетевой принтер".<br />
* Через несколько секунд отобразятся все найденные сетевые принтеры, выбирайте нужный и нажимайте кнопку "Далее".<br />
* Если же в данном списке необходимого принтера нет - выберите пункт "Поиск сетевого принтера" и введите в поле "Сервер" справа IP-адрес устройства. Затем - кнопка "Найти"<br />
* Далее с п.3 настройки локального принтера.<br />
{{note|После настройки сетевого принтера могут возникнуть проблемы с печатью - иногда это вызвано неверным автосгенерированным URI устройства.<br />
<br />
Чаще всего помогает его смена (через свойства принтера) на один из следующих:<br />
<br />
{{path|http://<printer's IP>}}<br />
<br />
{{path|socket://<printer's IP>:9100}}<br />
<br />
{{path|ipp://<printer's IP>:631}}}}<br />
=== Настройка принтера, расшаренного через CUPS ===<br />
На машине с Линуксом возможно открыть доступ к печати по сети на локальный принтер. Для этого необходимо в данной утилите открыть пункт меню {{path|"Сервер" -> "Параметры"}}. И установить флажок "Показывать общие принтеры, подключенные к этой системе". Или - на http://localhost:631/admin - "Разрешить совместный доступ к принтерам, подключенным к этой системе". После этого необходимый принтер будет иметь следующий URI: {{path|http://<PC's IP>/printers/<printer's name>}}<br />
* См. п.1 настройки локального принтера.<br />
* В строку адреса введите URI устройства (закладка "Введите адрес") в формате указанном выше.<br />
* Далее с п.3 настройки локального принтера.<br />
<br />
=== Настройка принтера, работающего через принт-сервер ===<br />
* См. п.1 настройки локального принтера.<br />
* Далее в списке устройств слева разверните закладку "Сетевой принтер".<br />
* Внизу открывшегося списка выберите "Хост или принтер LPD/LPR".<br />
* Введите адрес принт-сервер в поле "Сервер" и имя принтера в поле "Очередь".<br />
* Далее с п.3 настройки локального принтера.<br />
{{note|Можно сразу ввести URI данного устройства в формате {{path|lpd://<сервер>/<принтер/очередь>}}<br />
Также для удобства лучше установить данный принтер с универсальным драйвером ''Generic PCL 6/PCL XL'', дабы при смене принтера на сервере - не сломалась печать на ПК (так как будет нужен другой драйвер). Однако с данным драйвером все-таки могут быть проблемы и полностью на него пологаться не нужно"}}<br />
== Настройка через веб-интерфейс CUPS ==<br />
Запуск утилиты либо через меню {{path|Menu -> Системные -> Настройка печати}}, либо в браузере http://localhost:631.<br />
<br />
Если в меню данного ярлыка не нашли и страница в браузере не открывается, то необходимо доустановить пакет {{pkg|cups}}.<br />
<br />
{{note|{{altbug|34113}}<br />
Если необходимо производить настройку от обычного пользователя, а не от рута, необходимо либо добавить пользователя в группу ''sys'' ({{cmd|gpasswd -a user sys}}), либо в файле {{path|/etc/cups/cups-files.conf}} в раздел SystemGroup добавить группу ''wheel'' (соответственно, пользователь должен входить в данную группу - Администраторы системы). Во втором случае будет необходим перезапуск сервиса ''cups''.}}<br />
Чтобы добавить принтер, необходимо перейти на вкладку "Администрирование" и нажать кнопку "Добавить принтер". В открывшемся списке в разделе "Установленные принтеры" представлен список всех доступных для подключения локальных и "программных" устройств печати; ниже раздел "Найденные сетевые принтеры" - для автоматической настройки имеющихся в сети устройств и раздел "Другие сетевые принтеры", в котором необходимо вручную выбрать тип искомого принтера (подробнее смотрите [[%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D1.81.D0.B5.D1.82.D0.B5.D0.B2.D0.BE.D0.B3.D0.BE_.D0.BF.D1.80.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D0.B0|выше]]).<br />
== Настройка WiFi-принтера ==<br />
Ничем не отличается от настройки сетевого принтера, за исключением того, что принтер не знает, к какому WiFi подключаться, а заставить его это сделать без специального приложения под Android или Windows сложно.<br />
<br />
Однако многие принтеры поддерживают [https://ru.wikipedia.org/wiki/Wi-Fi_Direct WiFi Direct]. Для принтера это значит, что он сам раздаст тебе какой-то вайфай (только к себе), после чего надо к нему подключиться и настроить ''настоящий'' вайфай.<br />
<br />
Нам потребуется:<br />
* SSID сети, которую раздаёт принтер по WiFi Direct<br />
* Ключ (пароль) этой сети<br />
* (возможно) IP-адрес, который принтер получит после настройки<br />
=== Настройка WiFi-печати на принтере Samsung Xpress 2020w через WiFi Direct ===<br />
* Нажать на кнопку WPS 10 сек (не больше и не меньше).<br />
* **Не** включать WPS.<br />
* Приедет распечатка настроек. Если приехало что-то иное, значит, держали кнопку дольше или меньше.<br />
* В сетевых настройках в разделе Wi-Fi Direct:<br />
** IP Address: адрес принтера (у меня '''192.168.3.1''')<br />
** SSID: это принтер сам раздаёт сеть, у меня '''DIRECT-GDM2020 Series'''<br />
** Network key: пароль от принтерного вайфая<br />
* Подключаетмся к этому вайфаю, используя этот пароль<br />
* Заходим '''http://192.168.3.1''', жмём, внезапно, «Войти в систему» (это место. над которым я думал дольше всего, реально)<br />
* ИД (здравствуй, Фрейд!): '''admin'''<br />
* Пароль: '''sec00000''' (сек от слова «секретно», ооок)<br />
* Всё, мы в Хопр^Wинтерфейсе управления принтером, где можно<br />
* - поменять логин/пароль на более (или менее) секретный<br />
* - если вдруг DHCP не включён, включить его (у меня был включён)<br />
* - включить WiFi в разделе Wifi (принтер будет цепляться за вашу точку)<br />
* Комп надо не забыть подключить обратно к тому же WiFi )<br />
<br />
Теперь можно снова распечатать странички с настройками (10 секунд кнопки WPS), там будет полученный по DHCP адрес принтера<br />
<br />
В принципе, принтер себя по avahi анонсирует, CUPS его увидит<br />
$ avahi-browse -lt _ipp._tcp <br />
+ wlan0 IPv4 Samsung M2020 Series (SEC12345678902334) Принтер IPP local<br />
Но можно и ''avahi-browse -ltr _ipp._tcp'', там будет адрес<br />
<br />
== Установка драйверов (популярные марки устройств) ==<br />
=== Hewlett Packard ===<br />
Установите следующие пакеты:<br />
# apt-get install hplip hplip-PPDs<br />
Запустите {{cmd|hp-plugin}} с ключом i:<br />
$ hp-plugin -i<br />
Следуйте инструкциям. Будьте готовы ввести пароль суперпользователя.<br />
<br />
{{cmd|hp-plugin}} скачивает актуальный плагин с сервера HP и устанавливает его в систему (см. также [[Hplip]]).<br />
<br />
=== Xerox ===<br />
* Скачиваем с официального сайта драйвера для необходимого устройства - http://www.support.xerox.com/<br />
* Распаковываем архив с драйверами {{cmd|tar xzf *.tar.gz}}<br />
* Переходим в полученную папку {{cmd|cd media/XEROX_MFP/Linux}}<br />
* От рута запустите установку:<br />
$ su -<br />
# ./install.sh<br />
<br />
=== Brother ===<br />
Самым простым и действенным способом установки драйверов и настройки принтера (а также и сканера, если это МФУ) - является официальная утилита "Driver Install Tool", которую можно скачать по ссылке - https://download.brother.com/welcome/dlf006893/linux-brprinter-installer-2.2.2-2.gz<br />
<br />
Скачайте данный архив, распакуйте его командой {{cmd|gunzip linux-brprinter-installer-2.2.2-2.gz}} и запустите скрипт от рута, через пробел укажите модель принтера:<br />
$ su -<br />
# bash linux-brprinter-installer-2.2.2-2 MFC-7860DW<br />
Далее следуйте инструкциям на экране, на предпоследнем этапе необходимо будет указать, есть ли у Вас URI устройства, и если укажите, что есть, предложит выбрать из найденных или ввести вручную. На последнем этапе (если это МФУ) - будет настроена возможность сканирования.<br />
<br />
=== Kyocera ===<br />
* Скачиваем с официального сайта драйвера для необходимого устройства - [https://www.kyoceradocumentsolutions.ru/index/search_results.html https://www.kyoceradocumentsolutions.ru]<br />
* Если в списке ОС не находим Linux - указываем язык драйвера Английский.<br />
* В скачанном архиве Вы найдете необходимый PPD файл, который необходимо указать при выборе драйвера (пункт 3 настройки локального принтера, доступно при нажатии кнопки "Предоставить PPD-файл").<br />
<br />
=== Canon ===<br />
Ознакомьтесь с данными статьями:<br />
* [[Принтеры_Canon]]<br />
* [[Совет_по_установке_принтеров_Canon]]<br />
<br />
[[Категория:HOWTO]][[Категория:использование оборудования]]<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0&diff=54109Настройка принтера2021-05-04T14:55:33Z<p>Корнеечев Евгений: /* Brother */ fix url</p>
<hr />
<div>Существует два способа настройки принтера на машине с Альтом:<br />
* утилита 'Настройка принтера' ([http://cyberelk.net/tim/software/system-config-printer/ URL]) - {{pkg|system-config-printer}}<br />
* веб-интерфейс CUPS (Common UNIX Printing System) - {{pkg|cups}}<br />
<br />
== Настройка через {{pkg|system-config-printer}} ==<br />
=== Установка и запуск ===<br />
Запуск утилиты либо через меню {{path|Menu -> Администрирование -> Настройки принтера}}, либо в консоли команда {{cmd|system-config-printer}}.<br />
<br />
Если в меню данного ярлыка не нашли и команда в консоли не найдена, то необходимо доустановить данный пакет:<br />
$ su -<br />
# apt-get update<br />
# apt-get install system-config-printer<br />
<br />
=== Настройка локального принтера ===<br />
# Запустите утилиту и нажмите кнопку "Добавить", потребуется ввести имя текущего пользователя и пароль.<br />
# Далее в открывшемся окне в списке устройств слева выберите подключенный по USB принтер.<br />
# Нажмите кнопку "Далее" - утилита начнет поиск подходящего драйвера. Если таковой найдется Вам остается только нажать кнопку "Готово". Если же нет - будет предложен список всех имеющихся драйверов, и Вам необходимо выбрать нужный. Также утилита может предложить рекомендуемый (ею) драйвер - можно попробовать с ним, однако не факт, что печать будет исправна.<br />
# Если же возникнут проблемы, то Вам необходимо [[#Установка драйверов (популярные марки устройств)|установить требуемый драйвер]], а уже затем повторить все действия по добавлению принтера заново.<br />
<br />
=== Настройка сетевого принтера ===<br />
* См. п.1 настройки локального принтера.<br />
* Далее в списке устройств слева разверните закладку "Сетевой принтер".<br />
* Через несколько секунд отобразятся все найденные сетевые принтеры, выбирайте нужный и нажимайте кнопку "Далее".<br />
* Если же в данном списке необходимого принтера нет - выберите пункт "Поиск сетевого принтера" и введите в поле "Сервер" справа IP-адрес устройства. Затем - кнопка "Найти"<br />
* Далее с п.3 настройки локального принтера.<br />
{{note|После настройки сетевого принтера могут возникнуть проблемы с печатью - иногда это вызвано неверным автосгенерированным URI устройства.<br />
<br />
Чаще всего помогает его смена (через свойства принтера) на один из следующих:<br />
<br />
{{path|http://<printer's IP>}}<br />
<br />
{{path|socket://<printer's IP>:9100}}<br />
<br />
{{path|ipp://<printer's IP>:631}}}}<br />
=== Настройка принтера, расшаренного через CUPS ===<br />
На машине с Линуксом возможно открыть доступ к печати по сети на локальный принтер. Для этого необходимо в данной утилите открыть пункт меню {{path|"Сервер" -> "Параметры"}}. И установить флажок "Показывать общие принтеры, подключенные к этой системе". Или - на http://localhost:631/admin - "Разрешить совместный доступ к принтерам, подключенным к этой системе". После этого необходимый принтер будет иметь следующий URI: {{path|http://<PC's IP>/printers/<printer's name>}}<br />
* См. п.1 настройки локального принтера.<br />
* В строку адреса введите URI устройства (закладка "Введите адрес") в формате указанном выше.<br />
* Далее с п.3 настройки локального принтера.<br />
<br />
=== Настройка принтера, работающего через принт-сервер ===<br />
* См. п.1 настройки локального принтера.<br />
* Далее в списке устройств слева разверните закладку "Сетевой принтер".<br />
* Внизу открывшегося списка выберите "Хост или принтер LPD/LPR".<br />
* Введите адрес принт-сервер в поле "Сервер" и имя принтера в поле "Очередь".<br />
* Далее с п.3 настройки локального принтера.<br />
{{note|Можно сразу ввести URI данного устройства в формате {{path|lpd://<сервер>/<принтер/очередь>}}<br />
Также для удобства лучше установить данный принтер с универсальным драйвером ''Generic PCL 6/PCL XL'', дабы при смене принтера на сервере - не сломалась печать на ПК (так как будет нужен другой драйвер). Однако с данным драйвером все-таки могут быть проблемы и полностью на него пологаться не нужно"}}<br />
== Настройка через веб-интерфейс CUPS ==<br />
Запуск утилиты либо через меню {{path|Menu -> Системные -> Настройка печати}}, либо в браузере http://localhost:631.<br />
<br />
Если в меню данного ярлыка не нашли и страница в браузере не открывается, то необходимо доустановить пакет {{pkg|cups}}.<br />
<br />
{{note|{{altbug|34113}}<br />
Если необходимо производить настройку от обычного пользователя, а не от рута, необходимо либо добавить пользователя в группу ''sys'' ({{cmd|gpasswd -a user sys}}), либо в файле {{path|/etc/cups/cups-files.conf}} в раздел SystemGroup добавить группу ''wheel'' (соответственно, пользователь должен входить в данную группу - Администраторы системы). Во втором случае будет необходим перезапуск сервиса ''cups''.}}<br />
Чтобы добавить принтер, необходимо перейти на вкладку "Администрирование" и нажать кнопку "Добавить принтер". В открывшемся списке в разделе "Установленные принтеры" представлен список всех доступных для подключения локальных и "программных" устройств печати; ниже раздел "Найденные сетевые принтеры" - для автоматической настройки имеющихся в сети устройств и раздел "Другие сетевые принтеры", в котором необходимо вручную выбрать тип искомого принтера (подробнее смотрите [[%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D1.81.D0.B5.D1.82.D0.B5.D0.B2.D0.BE.D0.B3.D0.BE_.D0.BF.D1.80.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D0.B0|выше]]).<br />
== Настройка WiFi-принтера ==<br />
Ничем не отличается от настройки сетевого принтера, за исключением того, что принтер не знает, к какому WiFi подключаться, а заставить его это сделать без специального приложения под Android или Windows сложно.<br />
<br />
Однако многие принтеры поддерживают [https://ru.wikipedia.org/wiki/Wi-Fi_Direct WiFi Direct]. Для принтера это значит, что он сам раздаст тебе какой-то вайфай (только к себе), после чего надо к нему подключиться и настроить ''настоящий'' вайфай.<br />
<br />
Нам потребуется:<br />
* SSID сети, которую раздаёт принтер по WiFi Direct<br />
* Ключ (пароль) этой сети<br />
* (возможно) IP-адрес, который принтер получит после настройки<br />
=== Настройка WiFi-печати на принтере Samsung Xpress 2020w через WiFi Direct ===<br />
* Нажать на кнопку WPS 10 сек (не больше и не меньше).<br />
* **Не** включать WPS.<br />
* Приедет распечатка настроек. Если приехало что-то иное, значит, держали кнопку дольше или меньше.<br />
* В сетевых настройках в разделе Wi-Fi Direct:<br />
** IP Address: адрес принтера (у меня '''192.168.3.1''')<br />
** SSID: это принтер сам раздаёт сеть, у меня '''DIRECT-GDM2020 Series'''<br />
** Network key: пароль от принтерного вайфая<br />
* Подключаетмся к этому вайфаю, используя этот пароль<br />
* Заходим '''http://192.168.3.1''', жмём, внезапно, «Войти в систему» (это место. над которым я думал дольше всего, реально)<br />
* ИД (здравствуй, Фрейд!): '''admin'''<br />
* Пароль: '''sec00000''' (сек от слова «секретно», ооок)<br />
* Всё, мы в Хопр^Wинтерфейсе управления принтером, где можно<br />
* - поменять логин/пароль на более (или менее) секретный<br />
* - если вдруг DHCP не включён, включить его (у меня был включён)<br />
* - включить WiFi в разделе Wifi (принтер будет цепляться за вашу точку)<br />
* Комп надо не забыть подключить обратно к тому же WiFi )<br />
<br />
Теперь можно снова распечатать странички с настройками (10 секунд кнопки WPS), там будет полученный по DHCP адрес принтера<br />
<br />
В принципе, принтер себя по avahi анонсирует, CUPS его увидит<br />
$ avahi-browse -lt _ipp._tcp <br />
+ wlan0 IPv4 Samsung M2020 Series (SEC12345678902334) Принтер IPP local<br />
Но можно и ''avahi-browse -ltr _ipp._tcp'', там будет адрес<br />
<br />
== Установка драйверов (популярные марки устройств) ==<br />
=== Hewlett Packard ===<br />
Установите следующие пакеты:<br />
# apt-get install hplip hplip-PPDs<br />
Запустите {{cmd|hp-plugin}} с ключом i:<br />
$ hp-plugin -i<br />
Следуйте инструкциям. Будьте готовы ввести пароль суперпользователя.<br />
<br />
{{cmd|hp-plugin}} скачивает актуальный плагин с сервера HP и устанавливает его в систему (см. также [[Hplip]]).<br />
<br />
=== Xerox ===<br />
* Скачиваем с официального сайта драйвера для необходимого устройства - http://www.support.xerox.com/<br />
* Распаковываем архив с драйверами {{cmd|tar xzf *.tar.gz}}<br />
* Переходим в полученную папку {{cmd|cd media/XEROX_MFP/Linux}}<br />
* От рута запустите установку:<br />
$ su -<br />
# ./install.sh<br />
<br />
=== Brother ===<br />
Самым простым и действенным способом установки драйверов и настройки принтера (а также и сканера, если это МФУ) - является официальная утилита "Driver Install Tool", которую можно скачать по ссылке - https://download.brother.com/welcome/dlf006893/linux-brprinter-installer-2.2.2-2.gz<br />
<br />
Скачайте данный архив, распакуйте его командой {{cmd|gunzip linux-brprinter-installer-2.2.2-2.gz}} и запустите скрипт от рута, через пробел укажите модель принтера:<br />
$ su -<br />
# bash linux-brprinter-installer-2.1.1-1 MFC-7860DW<br />
Далее следуйте инструкциям на экране, на предпоследнем этапе необходимо будет указать, есть ли у Вас URI устройства, и если укажите, что есть, предложит выбрать из найденных или ввести вручную. На последнем этапе (если это МФУ) - будет настроена возможность сканирования.<br />
<br />
=== Kyocera ===<br />
* Скачиваем с официального сайта драйвера для необходимого устройства - [https://www.kyoceradocumentsolutions.ru/index/search_results.html https://www.kyoceradocumentsolutions.ru]<br />
* Если в списке ОС не находим Linux - указываем язык драйвера Английский.<br />
* В скачанном архиве Вы найдете необходимый PPD файл, который необходимо указать при выборе драйвера (пункт 3 настройки локального принтера, доступно при нажатии кнопки "Предоставить PPD-файл").<br />
<br />
=== Canon ===<br />
Ознакомьтесь с данными статьями:<br />
* [[Принтеры_Canon]]<br />
* [[Совет_по_установке_принтеров_Canon]]<br />
<br />
[[Категория:HOWTO]][[Категория:использование оборудования]]<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=VNC&diff=52220VNC2021-02-10T12:12:11Z<p>Корнеечев Евгений: /* С помощью xorg-extension-vnc */</p>
<hr />
<div>= Работа с дистрибутивами Альт Линукс по протоколу [https://ru.wikipedia.org/wiki/Virtual_Network_Computing VNC] =<br />
<br />
Данная инструкция проверена на 8-й версии дистрибутивов ALT.<br />
<br />
См. тж. [[Установка по vnc]].<br />
<br />
== С помощью xorg-extension-vnc ==<br />
<br />
1. Установите пакет {{pkg|xorg-extension-vnc}}:<br />
apt-get install xorg-extension-vnc<br />
<br />
2. Раскомментируйте строки в файле {{path|/etc/X11/xorg.conf.d/vnc.conf}}:<br />
subst 's/^#//' /etc/X11/xorg.conf.d/vnc.conf<br />
{{note|При использовании SSH-туннеля для шифрования трафика (как описано для многопользовательского режима ниже) в файле конфигурации {{path|/etc/X11/xorg.conf.d/vnc.conf}} в секцию "Screen" необходимо добавить строку<br />
<source lang="text"><br />
Option "rfbport" "5902"<br />
</source>}}<br />
<br />
3. Укажите пароль для доступа к экрану:<br />
<source lang="text"># vncpasswd <br />
Password:<br />
Verify:</source><br />
и укажите пароль дважды. Пароль должен быть длиной не менее 6 символов и, по соображениям безопасности, при наборе не показывается. <br />
<br />
По умолчанию, необходимо записать пароль в файл /root/.vnc/passwd<br />
<br />
4. Выйдите из сеанса и запустите его снова<br />
{{note|Данный вариант настройки доступа к машине по VNC предпочтительный, так как по умолчанию есть возможность подключения не только к дефолтному :0, но и к другим экранам - например при переключении пользователя окно авторизации будет на :1, при входе под другой УЗ - его десктоп будет :2 и так далее.}}<br />
<br />
== С помощью Vino ==<br />
Данный способ протестирован на [[Workstation|Рабочей станции 8 и 9]] и в [[Starterkits]]/[[Regular]] на основе MATE. Пакет включен в Альт Рабочая станция.<br />
<br />
1. Установите пакет {{pkg|vino-mate}}:<br />
apt-get install vino-mate<br />
<br />
2. В главном меню откройте ''Параметры -> Общий доступ к рабочему столу'' или запустите от обычного пользователя:<br />
vino-preferences<br />
<br />
3. Настройте необходимые Вам параметры подключения:<br />
<br />
[[Файл:Vino-preferences.png]]<br />
<br />
4. Для первичного применения параметров необходимо перезапустить сеанс (в дальнейшем изменение настроек будет происходить мгновенно). Если пакет включен в дистрибутив - данное действие не требуется.<br />
<br />
PS: По умолчанию включено шифрование, если оно не нужно, либо Ваш VNC-клиент не поддерживает его, отключается он следующей командой:<br />
gsettings set org.gnome.Vino require-encryption false<br />
<br />
{{note|Пакет {{pkg|vino-mate}} представляет собой "форк" пакета {{pkg|vino}}, на данный момент в p8 и Sisyphus актуальная версия которого - 3.22.0, однако в ней нет удобной пользовательской настройки доступа (vino-preferences). Данный функционал был убран разработчиками, подробнее об этом [https://bugzilla.gnome.org/700070 тут]. Поэтому для DE MATE было решено вернуть последнюю версию с GUI, а именно 3.8.1 (например в Ubuntu, с ее Unity, во всех репозиториях также эта версия).}}<br />
<br />
== С помощью x11vnc ==<br />
1. Установите пакет {{pkg|x11vnc-service}} (предназначен для популярных дистрибутивов с SystemD):<br />
apt-get install x11vnc-service<br />
<br />
2. Добавьте сервис в автозапуск и запустите его:<br />
chkconfig x11vnc on<br />
service x11vnc start<br />
<br />
3. Укажите пароль для удаленного доступа (необходимо записать его в /root/.vnc/passwd):<br />
# x11vnc --storepasswd <br />
Enter VNC password: <br />
Verify password: <br />
Write password to /root/.vnc/passwd? [y]/n<br />
<br />
4. Параметры запускаемого сервисом сервера {{pkg|x11vnc}} указаны в скрипте запуска: {{path|/usr/sbin/x11vnc-start-daemon}} ({{pkg|x11vnc-service}} >= 0.2). Для внесения изменений - просто отредактируйте в нем последнюю строчку.<br />
{{todo|Данный файл не является ''%config(noreplace)'', поэтому будет перезаписан при обновлении пакета!<br />
В планах (когда потребуется внести какое-либо изменение в пакет) переместить параметры в отдельный конфигурационный файл.}}<br />
<br />
5. Примеры настройки файла {{path|/lib/systemd/system/x11vnc.service}} для запуска {{pkg|x11vnc}} при старте дисплей менеджера (до авторизации пользователей):<br />
<br />
Для дисплей менеджера {{pkg|lightdm}}:<br />
<br />
[Unit]<br />
Description=X11VNC Server<br />
After=prefdm.service<br />
<br />
[Service]<br />
User=root<br />
Restart=on-failure<br />
ExecStart=/usr/bin/x11vnc -auth /var/run/lightdm/root/:0 -dontdisconnect -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg /var/log/x11.log -rfbauth /root/.vnc/passwd<br />
<br />
[Install]<br />
WantedBy=graphical.target<br />
<br />
Для дисплей менеджера {{pkg|sddm}}:<br />
[Unit]<br />
Description=X11VNC Server<br />
After=graphical.target<br />
<br />
[Service]<br />
Restart=always<br />
RestartSec=30<br />
Type=simple<br />
ExecStart=-/bin/bash -c "/usr/bin/x11vnc -display :0 -shared -dontdisconnect -many \<br />
-auth $(ls /var/run/sddm/{*}) -rfbauth /root/.vnc/passwd -o /var/log/x11.log"<br />
<br />
[Install]<br />
WantedBy=graphical.target<br />
<br />
== Многопользовательский режим (tigervnc-server) ==<br />
{{note|К имеющемуся дисплею :0 подключиться этим способом не получится. VNC-сервер запускает новые дисплеи.}}<br />
Устанавливаем пакет {{pkg|tigervnc-server}}:<br />
apt-get install tigervnc-server<br />
Есть две реализации разворачивания дополнительных X-серверов:<br />
* централизованный сервис ''vncserver'', отвечающий за работу всех виртуальных дисплеев;<br />
* несколько сервисов ''vncserver@:<номер дисплея>''<br />
Рассмотрим оба этих способа, у каждого есть свои плюсы и недостатки<br />
<br />
=== "Всё в одном сервисе" ===<br />
1. Добавьте в автозагрузку:<br />
chkconfig vncserver on<br />
<br />
2. Далее необходимо настроить виртуальные дисплеи, их количество и параметры запуска. Для это необходимо отредактировать файл /etc/sysconfig/vncservers. Пример содержимого файла:<br />
VNCSERVERS="1:user1 2:user2"<br />
VNCSERVERARGS[1]="-geometry 800x600 -depth 16"<br />
VNCSERVERARGS[2]="-geometry 800x600 -localhost"<br />
<br />
Переменные ''VNCSERVERARGS'' изменяет параметры по умолчанию для определенного дисплея (в квадратных скобках).<br />
Заданные пользователи - user1 и user2 - должны существовать в системе. Также для успешного старта VNC-сервера необходимо обязательно задать пароли (ничего общего с системными они не имеют) для этих пользователей (запишутся в ~/.vnc/passwd):<br />
# su - user1<br />
$ vncpasswd<br />
<br />
3. Запускаем сервис:<br />
service vncserver start<br />
После этого можете проверить прослушиваемые порты:<br />
# netstat -ntlp | grep vnc<br />
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 12414/Xvnc <br />
tcp 0 0 127.0.0.1:5902 0.0.0.0:* LISTEN 12522/Xvnc <br />
tcp 0 0 :::5901 :::* LISTEN 12414/Xvnc <br />
tcp 0 0 ::1:5902 :::* LISTEN 12522/Xvnc <br />
<br />
4. При подключении указываем номер дисплея (или номер порта), который соответствует необходимому пользователю:<br />
vncviewer localhost:1<br />
vncviewer localhost:5901<br />
<br />
{{note|Недостатком данного способа является то, что если у какого-либо пользователя зависнет сеанс или возникнет любая другая проблема, то починить это вы сможете только рестартом всего сервиса (в этом случае все сеансы завершаться, данные могут быть утеряны), перезапустить отдельный дисплей не получится.<br />
Плюсом же является удобство администрирования с помощью единого файла настройки /etc/sysconfig/vncservers<br />
Для небольшого количества (до 3-5) пользователей данный вариант является вполне "конкурентоспособным". Если же пользователей планируется большое количество, либо просто нужна возможность перезапуска отдельного дисплея, то воспользуйтесь вторым способом}}<br />
=== "Каждый дисплей - отдельный сервис" ===<br />
<br />
1. Скопируйте необходимое количество (= кол-во юзеров VNC) юнитов vncserver@.service (после @ подставьте требуемый номер дисплея):<br />
cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service<br />
cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:2.service<br />
<br />
2. Приведите их к следующему виду (укажите имя пользователя и его домашнюю папку):<br />
[Unit]<br />
Description=Remote desktop service (VNC)<br />
After=syslog.target network.target<br />
<br />
[Service]<br />
Type=forking<br />
User='''user1'''<br />
<br />
# Clean any existing files in /tmp/.X11-unix environment<br />
ExecStartPre=-/usr/bin/vncserver -kill %i<br />
ExecStart=/usr/bin/vncserver %i<br />
PIDFile=/home/'''user1'''/.vnc/%H%i.pid<br />
ExecStop=-/usr/bin/vncserver -kill %i<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
Для изменения дефолтных параметров подключения допишите необходимые в команде ExecStart.<br />
<br />
3. Обновите конфигурацию сервисов и добавьте в автозагрузку необходимые из созданных:<br />
systemctl daemon-reload<br />
chkconfig vncserver@:1 on<br />
chkconfig vncserver@:2 on<br />
<br />
4. Задайте пароль для всех пользователей (см. [[VNC#.22.D0.92.D1.81.D1.91_.D0.B2_.D0.BE.D0.B4.D0.BD.D0.BE.D0.BC_.D1.81.D0.B5.D1.80.D0.B2.D0.B8.D1.81.D0.B5.22|1.3.1.2]])<br />
<br />
5. Теперь каждым пользовательским сеансом/дисплеем можно управлять отдельно:<br />
service vncserver@:2 restart<br />
<br />
{{note|Используйте SSH-туннель для шифрации трафика:<br />
* добавьте в параметры запуска VNC-сервера ключ -localhost (запрещает подключение удаленным пользователям, не используя SSH туннель)<br />
* запустите на сервере сервис sshd<br />
* на клиентской машине создайте туннель: {{cmd|ssh <server's IP-address> -p <SSH-port> -L 5902:localhost:5902}}<br />
* подключайтесь с клиентской машины (в другой консоли): {{cmd|vncviewer localhost:5902}}}}<br />
<br />
[[Категория:HOWTO]]<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Etcnet/openvswitch&diff=52051Etcnet/openvswitch2021-01-28T14:15:11Z<p>Корнеечев Евгений: /* Примеры */ VID fixed</p>
<hr />
<div>== Настройка openvswitch из etcnet ==<br />
<br />
Что такое OVS (openvswitch) и зачем его использовать лучше прочитать на официальном сайте http://openvswitch.org/support/<br />
<br />
OVS сложная система. Имеет собственную базу данных, где хранит настройки. И не все эти порты и бриджи могут отражаться в системе как сетевые интерфейсы. В связи с чем создавать интерфейс (папку в /etc/net/ifaces) для такого типа порта нет смысла, т.к. etcnet оперирует реальными интерфейсами. Поэтому управлять будем только теми ресурсами которые реально отражаются в системе как сетевые интерфейсы.<br />
Это 3 типа интерфейсов: бридж реальный и фейковый (ovsbr), порт типа internal (ovsport) и специальный тип порта - бондинг (ovsbond).<br />
Реальный и фейковый бридж по сути имеют один тип ovsbr и отличаются только наличием родительского бриджа и влана.<br />
Порт типа не internal это или существующий реальный интерфейс (eth0) или не отраженные в операционной системе интерфейсы (нпример gre, veth). Поэтому я не выделяю их для etcnet. Все это должно настраиваться через OVS_EXTRA.<br />
<br />
=== Бридж ===<br />
Для создания этого типа в options должно быть:<br />
<pre>TYPE=ovsbr </pre><br />
Также как опция может быть указан список сетевых интерфейсов, которые должны быть добавлены в данный бридж. Они будут запущены и добавлены в бридж.<br />
<pre>HOST='eth2' </pre><br />
NB! Нельзя сюда писать порты OVS (тип ovsport или ovsbond). Они должны быть описаны отдельно, т.к. для их добавления требуется уже существующий бридж.<br />
В результате будет создан бридж. Проверить можно командой <pre>#ovs-vsctl show</pre><br />
<br />
=== Фейковый бридж ===<br />
Данный вид бриджа можно использовать в ситуации, когда нет возможности задать влан на порту или когда вы его не знаете. Например подобная ситуация описана в http://blog.scottlowe.org/2012/10/19/vlans-with-open-vswitch-fake-bridges/ . Для создания такого бриджа нужно указывать родительский бридж и влан.<br />
Для этого дополнительно к тем переменным что используются для реального бриджа, указываем:<br />
<pre><br />
BRIDGE=br0<br />
VID=105<br />
</pre><br />
И тогда будет создаваться фейковый бридж<br />
<br />
=== Порт типа internal ===<br />
Для его создания в options должно быть:<br />
<pre> TYPE=ovsport </pre><br />
Бридж в который должен этот порт добавиться:<br />
<pre> BRIDGE=br0 </pre><br />
В результате получится сетевой интерфейс который может управляться через утилиту ip и др.<br />
<br />
=== Порт бондинг ===<br />
Специальный тип порта для объединения 2х физических сетевых интерфейса в один.<br />
Для его создания в options должно быть<br />
<pre> TYPE=ovsbond </pre><br />
Бридж в который должен этот порт добавиться:<br />
<pre> BRIDGE=br0 </pre><br />
Также должны быть указаны не меньше 2х сетевых интерфейсов, которые должны быть добавлены в данный порт.<br />
<pre> HOST='eth1 eth2' </pre><br />
<br />
=== Общие настройки для всех типов ===<br />
Для задания всех остальных всевозможных настроек, должны использоваться переменные:<br />
'''OVS_REMOVE''' Если установлено в yes, то при отключении интерфейса, данный порт будет удален из базы данных OVS. Осторожно, т.к. некоторые параметры, например MAC будет сгенерирован заново.<br />
'''OVS_OPTIONS''' параметры которые должны быть переданы для настройки данного бриджа или порта. Возможные поля для бриджа можно посмотреть командой: <br />
<pre><br />
# ovs-vsctl list bridge<br />
_uuid : 6aac9201-4272-41cc-a7be-1a36e00f6748<br />
controller : []<br />
datapath_id : "000078e7d17fcf13"<br />
datapath_type : ""<br />
external_ids : {}<br />
fail_mode : []<br />
flood_vlans : []<br />
flow_tables : {}<br />
ipfix : []<br />
mirrors : []<br />
name : "ovsbr0"<br />
netflow : []<br />
other_config : {}<br />
ports : [1de75723-f51e-441b-8d69-e6536d9dcfad, 47988e8e-23bd-494b-bbd0-49b7fa79e23c, 58a10ab2-f344-46f9-a313-104c23ba2a8b]<br />
protocols : []<br />
sflow : []<br />
status : {}<br />
stp_enable : false<br />
</pre><br />
Тогда если мы хотим включить STP, нужно написать:<br />
<pre>OVS_OPTIONS='stp_enable=yes'</pre><br />
Для порта можно посмотреть командой:<br />
<pre><br />
# ovs-vsctl list port<br />
_uuid : 58a10ab2-f344-46f9-a313-104c23ba2a8b<br />
bond_downdelay : 0<br />
bond_fake_iface : false<br />
bond_mode : []<br />
bond_updelay : 0<br />
external_ids : {}<br />
fake_bridge : false<br />
interfaces : [987b7dfe-34b4-4d55-b9ae-dedfa05d9779]<br />
lacp : []<br />
mac : []<br />
name : "ovsport0"<br />
other_config : {}<br />
qos : []<br />
statistics : {}<br />
status : {}<br />
tag : []<br />
trunks : []<br />
vlan_mode : []<br />
</pre><br />
<br />
Если нужно настраивать дополнительно другие интерфейсы или параметры, то это делать нужно через Database Commands (см. соответствующую секцию в ovs-vsctl(8)) Это все указывается в OVS_EXTRA<br />
Например влан, тип и т.д.<br />
<pre> OVS_EXTRA='set port eth0 tag=10 -- set port eth1 trunk="1,2,15" ' </pre><br />
<br />
Данные переменные действуют для всех типов сетевых интерфейсов ovs*.<br />
<br />
== Примеры ==<br />
Простая настройка:<br />
<pre><br />
$ cat ens18/options <br />
TYPE=eth<br />
CONFIG_WIRELESS=no<br />
BOOTPROTO=static<br />
CONFIG_IPV4=yes<br />
<br />
$ cat vmbr0/options<br />
TYPE=ovsbr<br />
CONFIG_WIRELESS=no<br />
BOOTPROTO=static<br />
CONFIG_IPV4=yes<br />
ON_BOOT=yes<br />
HOST="ens18"<br />
<br />
# ovs-vsctl show<br />
6669027e-d2a5-4f23-8d36-bf279d39355c<br />
Bridge "vmbr0"<br />
Port "vmbr0"<br />
Interface "vmbr0"<br />
type: internal<br />
Port "ens18"<br />
Interface "ens18"<br />
ovs_version: "2.11.1"<br />
<br />
</pre><br />
Настройка VLAN (добавляется к предыдущим):<br />
<pre><br />
# cat vlan495/options <br />
TYPE=ovsport<br />
CONFIG_WIRELESS=no<br />
BOOTPROTO=static<br />
CONFIG_IPV4=yes<br />
BRIDGE=vmbr0<br />
VID=495<br />
<br />
# cat vlan666/options <br />
TYPE=ovsport<br />
CONFIG_WIRELESS=no<br />
BOOTPROTO=static<br />
CONFIG_IPV4=yes<br />
BRIDGE=vmbr0<br />
VID=666<br />
<br />
# ovs-vsctl show<br />
6669027e-d2a5-4f23-8d36-bf279d39355c<br />
Bridge "vmbr0"<br />
Port "vmbr0"<br />
Interface "vmbr0"<br />
type: internal<br />
Port "ens18"<br />
Interface "ens18"<br />
Port "vlan495"<br />
tag : 495<br />
Interface "vlan495"<br />
type: internal<br />
Port "vlan666"<br />
tag : 666<br />
Interface "vlan666"<br />
type: internal<br />
ovs_version: "2.11.1"<br />
</pre><br />
<!--<br />
Обратите внимание на OVS_EXTRA, в них указан тэги VLAN (VID=495 etcnet не может преобразовать в тэг {{altbug|38578}}).<br />
Если их не указать (или указать VID), то единожды необходимо средствами OVS назначить портам тэги:<br />
<pre><br />
# ovs-vsctl set port vlan495 tag=495<br />
# ovs-vsctl set port vlan666 tag=666<br />
</pre>--></div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=1C/MultiClient&diff=513691C/MultiClient2021-01-11T13:53:46Z<p>Корнеечев Евгений: </p>
<hr />
<div>{{note|С версии 8.3.18.1208 данная инструкция не требуется - 1С наконец реализовал установку различных версий платформ в различные папки!}}<br />
= Установка и настройка нескольких версий клиентов 1С 8.3 =<br />
Необходимость в использовании нескольких версий платформ 1С на клиентских машинах актуальна, когда в организации несколько серверов 1С, и на каждом из них, установлена своя версия 1С-платформы. <br />
<br />
Для примера имеются: сервер vm-db2 (192.168.0.10) - c версией платформы 1C 8.3.5-1460 и vm-pg9 (192.168.0.11) - c версией платформы 1C 8.3.9-2033.<br />
В данном случае для подключения к базам на одном ПК необходимо установить обе версии. В Windows проблем нет - каждая платформа ставится как отдельная программа. Например, после установки данных платформа - структура папок такова:<br />
C:\Program Files (x86)\1cv8\8.3.5.1460<br />
C:\Program Files (x86)\1cv8\8.3.9.2033<br />
C:\Program Files (x86)\1cv8\common<br />
В последней папке лежит файл 1cestart.exe, который выбирает при запуске базы из списка (он единый, хранится в Users\AppData) платформу, соответствующую установленной на сервере хранения этой базы.<br />
<br />
Однако под Linux разработчики 1С не потрудились организовать такую же установку, при установке второй версии - 1С просто обновляется...<br />
<br />
Идеальной была бы реализация, как у пакетов ядра kernel-image-*... Но пока справляемся своими силами.<br />
<br />
== Первичная установка одной из версий ==<br />
Одну из необходимых версий нужно установить обычным способом, см. [[1C/Quick]]. <br />
<br />
В нашем случае выбрана 8.3.9-2033 (так как на данном сервере 1С - vm-pg9 - платформа обновляется намного чаще, чем на vm-db2). <br />
<br />
ОС - BaseAlt Рабочая Станция 8.1, x86_64 (установлен {{pkg|1c-preinstall-full}} и четыре необходимых RPM-пакета)<br />
<br />
== Создание архива клиента 1С ==<br />
Другую версию 1С нужно распаковать в папку /opt/1C/v8.3.x-xxxx. Для удобства был написан [[1C/MultiClient#1ctarball.sh|скрипт (см.ниже)]], который намного упростит это действие.<br />
* Скрипт (можно скачать [https://yadi.sk/d/Sx3TXYQY3DoGaZ здесь]) положите в папку вместе с распакованными [[1C/Quick#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2|RPM-пакетами]]<br />
* Если у архитектура требуемого клиента x86_64 - скрипт менять не нужно. Если же нет - откройте его и измените значение переменной ''arch'' на i386.<br />
* Сделайте его исполняемым ({{cmd|chmod +x 1ctarball.sh}})<br />
* Запустите его в таком формате: {{cmd|./1ctarball.sh <номер версии 1с в формате 8.3.x-xxxx>}} (в нашем случае {{cmd|./1ctarball.sh 8.3.5-1460}})<br />
* Результатом будет архив c именем 1С_8.3.5-1460.tgz<br />
{{note|Данное действие можно производить на любом компьютере (понадобятся пакеты {{pkg|rpm}} и {{pkg|tar}}), не обязательно на котором необходимо установить клиент 1С}}<br />
== Установка дополнительной версии клиента 1С==<br />
На клиентской машине (с уже установленной другой версией платформы!) выполняем от рута следующие команды:<br />
tar -xzvf 1С_8.3.5-1460.tgz -C /<br />
chown -R root:root /opt/1C/v8.3.5-1460<br />
Теперь рядом с директорией {{path|/opt/1C/v8.3}} (в которой установлена версия 8.3.9-2033) есть с другой версией: {{path|/opt/1C/v8.3.5-1460}}. Все, на вашем Линуксе установлено две версии клиента 1С (можно сделать и больше)<br />
<br />
== Настройка доступа к базам 1С ==<br />
Затем необходимо настроить подключение к базам 1С. Из одного меню запуска, как в Windows, подключение к базам с разными версиями сделать не получится (так как исполняемый файл 1cestart для каждой из платформ свой), хотя список баз и будет общий - хранится в {{path|~/.1C/1cestart}}.<br />
<br />
Для подключения к серверу БД с версией 1С, которая установлена обычным способом (apt-get install), используется команда: {{cmd|/opt/1C/v8.3/x86_64/1cestart}}.<br />
Для подключения с помощью других имеющихся версий: {{cmd|/opt/1C/v8.3.x-xxxx/x86_64/1cestart}}<br />
<br />
Остается только настроить ярлыки для каждой из версий (самое простое - скопировать из меню существующий и изменить в нем команду)<br />
<br />
= 1сtarball.sh =<br />
<source lang="bash"><br />
#!/bin/bash<br />
arch=x86_64<br />
if [ -z $1 ]; then<br />
echo "Введите номер версии 1С в формате 8.3.x-xxxx"<br />
exit 1<br />
else<br />
name="1C_Enterprise83"<br />
if ! [ -f $name-client-$1.$arch.rpm ]; then<br />
echo "В текущей директории не найдены необходимые пакеты для указанной версии 1С. <br />
Убедитесь в наличие всех следующих пакетов:<br />
* $name-client-$1.$arch.rpm<br />
* $name-client-nls-$1.$arch.rpm<br />
* $name-server-$1.$arch.rpm<br />
* $name-common-$1.$arch.rpm"<br />
exit 1 <br />
else<br />
echo -n "Подождите, операция выполняется..."<br />
rpm2cpio $name-client-$1.$arch.rpm | cpio -idmv 2> /dev/null<br />
rpm2cpio $name-client-nls-$1.$arch.rpm | cpio -idmv 2> /dev/null<br />
rpm2cpio $name-server-$1.$arch.rpm | cpio -idmv 2> /dev/null<br />
rpm2cpio $name-common-$1.$arch.rpm | cpio -idmv 2> /dev/null<br />
mv opt/1C/v8.3 opt/1C/v$1<br />
tar -cpzf 1С_$1.tgz opt<br />
rm -rf opt/ etc/ usr/<br />
echo; echo "Выполнено, установите сгенерированный архив в систему командой (c правами root):<br />
# tar -xzvf 1С_$1.tgz -C /"<br />
exit 0<br />
fi<br />
fi<br />
</source><br />
<br />
{{Category navigation|title=1C|category=1C|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0&diff=50891Настройка принтера2020-12-04T12:40:04Z<p>Корнеечев Евгений: /* Canon */</p>
<hr />
<div>Существует два способа настройки принтера на машине с Альтом:<br />
* утилита 'Настройка принтера' ([http://cyberelk.net/tim/software/system-config-printer/ URL]) - {{pkg|system-config-printer}}<br />
* веб-интерфейс CUPS (Common UNIX Printing System) - {{pkg|cups}}<br />
<br />
== Настройка через {{pkg|system-config-printer}} ==<br />
=== Установка и запуск ===<br />
Запуск утилиты либо через меню {{path|Menu -> Администрирование -> Настройки принтера}}, либо в консоли команда {{cmd|system-config-printer}}.<br />
<br />
Если в меню данного ярлыка не нашли и команда в консоли не найдена, то необходимо доустановить данный пакет:<br />
$ su -<br />
# apt-get update<br />
# apt-get install system-config-printer<br />
<br />
=== Настройка локального принтера ===<br />
# Запустите утилиту и нажмите кнопку "Добавить", потребуется ввести имя текущего пользователя и пароль.<br />
# Далее в открывшемся окне в списке устройств слева выберите подключенный по USB принтер.<br />
# Нажмите кнопку "Далее" - утилита начнет поиск подходящего драйвера. Если таковой найдется Вам остается только нажать кнопку "Готово". Если же нет - будет предложен список всех имеющихся драйверов, и Вам необходимо выбрать нужный. Также утилита может предложить рекомендуемый (ею) драйвер - можно попробовать с ним, однако не факт, что печать будет исправна.<br />
# Если же возникнут проблемы, то Вам необходимо [[#Установка драйверов (популярные марки устройств)|установить требуемый драйвер]], а уже затем повторить все действия по добавлению принтера заново.<br />
<br />
=== Настройка сетевого принтера ===<br />
* См. п.1 настройки локального принтера.<br />
* Далее в списке устройств слева разверните закладку "Сетевой принтер".<br />
* Через несколько секунд отобразятся все найденные сетевые принтеры, выбирайте нужный и нажимайте кнопку "Далее".<br />
* Если же в данном списке необходимого принтера нет - выберите пункт "Поиск сетевого принтера" и введите в поле "Сервер" справа IP-адрес устройства. Затем - кнопка "Найти"<br />
* Далее с п.3 настройки локального принтера.<br />
{{note|После настройки сетевого принтера могут возникнуть проблемы с печатью - иногда это вызвано неверным автосгенерированным URI устройства.<br />
<br />
Чаще всего помогает его смена (через свойства принтера) на один из следующих:<br />
<br />
{{path|http://<printer's IP>}}<br />
<br />
{{path|socket://<printer's IP>:9100}}<br />
<br />
{{path|ipp://<printer's IP>:631}}}}<br />
=== Настройка принтера, расшаренного через CUPS ===<br />
На машине с Линуксом возможно открыть доступ к печати по сети на локальный принтер. Для этого необходимо в данной утилите открыть пункт меню {{path|"Сервер" -> "Параметры"}}. И установить флажок "Показывать общие принтеры, подключенные к этой системе". Или - на http://localhost:631/admin - "Разрешить совместный доступ к принтерам, подключенным к этой системе". После этого необходимый принтер будет иметь следующий URI: {{path|http://<PC's IP>/printers/<printer's name>}}<br />
* См. п.1 настройки локального принтера.<br />
* В строку адреса введите URI устройства (закладка "Введите адрес") в формате указанном выше.<br />
* Далее с п.3 настройки локального принтера.<br />
<br />
=== Настройка принтера, работающего через принт-сервер ===<br />
* См. п.1 настройки локального принтера.<br />
* Далее в списке устройств слева разверните закладку "Сетевой принтер".<br />
* Внизу открывшегося списка выберите "Хост или принтер LPD/LPR".<br />
* Введите адрес принт-сервер в поле "Сервер" и имя принтера в поле "Очередь".<br />
* Далее с п.3 настройки локального принтера.<br />
{{note|Можно сразу ввести URI данного устройства в формате {{path|lpd://<сервер>/<принтер/очередь>}}<br />
Также для удобства лучше установить данный принтер с универсальным драйвером ''Generic PCL 6/PCL XL'', дабы при смене принтера на сервере - не сломалась печать на ПК (так как будет нужен другой драйвер). Однако с данным драйвером все-таки могут быть проблемы и полностью на него пологаться не нужно"}}<br />
== Настройка через веб-интерфейс CUPS ==<br />
Запуск утилиты либо через меню {{path|Menu -> Системные -> Настройка печати}}, либо в браузере http://localhost:631.<br />
<br />
Если в меню данного ярлыка не нашли и страница в браузере не открывается, то необходимо доустановить пакет {{pkg|cups}}.<br />
<br />
{{note|{{altbug|34113}}<br />
Если необходимо производить настройку от обычного пользователя, а не от рута, необходимо либо добавить пользователя в группу ''sys'' ({{cmd|gpasswd -a user sys}}), либо в файле {{path|/etc/cups/cups-files.conf}} в раздел SystemGroup добавить группу ''wheel'' (соответственно, пользователь должен входить в данную группу - Администраторы системы). Во втором случае будет необходим перезапуск сервиса ''cups''.}}<br />
Чтобы добавить принтер, необходимо перейти на вкладку "Администрирование" и нажать кнопку "Добавить принтер". В открывшемся списке в разделе "Установленные принтеры" представлен список всех доступных для подключения локальных и "программных" устройств печати; ниже раздел "Найденные сетевые принтеры" - для автоматической настройки имеющихся в сети устройств и раздел "Другие сетевые принтеры", в котором необходимо вручную выбрать тип искомого принтера (подробнее смотрите [[%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D1.81.D0.B5.D1.82.D0.B5.D0.B2.D0.BE.D0.B3.D0.BE_.D0.BF.D1.80.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D0.B0|выше]]).<br />
== Настройка WiFi-принтера ==<br />
Ничем не отличается от настройки сетевого принтера, за исключением того, что принтер не знает, к какому WiFi подключаться, а заставить его это сделать без специального приложения под Android или Windows сложно.<br />
<br />
Однако многие принтеры поддерживают [https://ru.wikipedia.org/wiki/Wi-Fi_Direct WiFi Direct]. Для принтера это значит, что он сам раздаст тебе какой-то вайфай (только к себе), после чего надо к нему подключиться и настроить ''настоящий'' вайфай.<br />
<br />
Нам потребуется:<br />
* SSID сети, которую раздаёт принтер по WiFi Direct<br />
* Ключ (пароль) этой сети<br />
* (возможно) IP-адрес, который принтер получит после настройки<br />
=== Настройка WiFi-печати на принтере Samsung Xpress 2020w через WiFi Direct ===<br />
* Нажать на кнопку WPS 10 сек (не больше и не меньше).<br />
* **Не** включать WPS.<br />
* Приедет распечатка настроек. Если приехало что-то иное, значит, держали кнопку дольше или меньше.<br />
* В сетевых настройках в разделе Wi-Fi Direct:<br />
** IP Address: адрес принтера (у меня '''192.168.3.1''')<br />
** SSID: это принтер сам раздаёт сеть, у меня '''DIRECT-GDM2020 Series'''<br />
** Network key: пароль от принтерного вайфая<br />
* Подключаетмся к этому вайфаю, используя этот пароль<br />
* Заходим '''http://192.168.3.1''', жмём, внезапно, «Войти в систему» (это место. над которым я думал дольше всего, реально)<br />
* ИД (здравствуй, Фрейд!): '''admin'''<br />
* Пароль: '''sec00000''' (сек от слова «секретно», ооок)<br />
* Всё, мы в Хопр^Wинтерфейсе управления принтером, где можно<br />
* - поменять логин/пароль на более (или менее) секретный<br />
* - если вдруг DHCP не включён, включить его (у меня был включён)<br />
* - включить WiFi в разделе Wifi (принтер будет цепляться за вашу точку)<br />
* Комп надо не забыть подключить обратно к тому же WiFi )<br />
<br />
Теперь можно снова распечатать странички с настройками (10 секунд кнопки WPS), там будет полученный по DHCP адрес принтера<br />
<br />
В принципе, принтер себя по avahi анонсирует, CUPS его увидит<br />
$ avahi-browse -lt _ipp._tcp <br />
+ wlan0 IPv4 Samsung M2020 Series (SEC12345678902334) Принтер IPP local<br />
Но можно и ''avahi-browse -ltr _ipp._tcp'', там будет адрес<br />
<br />
== Установка драйверов (популярные марки устройств) ==<br />
=== Hewlett Packard ===<br />
Все актуальные драйвера находятся в пакете {{pkg|hplip}}, установите/обновите его при необходимости (если необходимого драйвера нет в списке).<br />
<br />
=== Xerox ===<br />
* Скачиваем с официального сайта драйвера для необходимого устройства - http://www.support.xerox.com/<br />
* Распаковываем архив с драйверами {{cmd|tar xzf *.tar.gz}}<br />
* Переходим в полученную папку {{cmd|cd media/XEROX_MFP/Linux}}<br />
* От рута запустите установку:<br />
$ su -<br />
# ./install.sh<br />
<br />
=== Brother ===<br />
Самым простым и действенным способом установки драйверов и настройки принтера (а также и сканера, если это МФУ) - является официальная утилита "Driver Install Tool", которую можно скачать по ссылке - http://download.brother.com/welcome/dlf006893/linux-brprinter-installer-2.1.1-1.gz<br />
<br />
Скачайте данный архив, распакуйте его командой {{cmd|gunzip linux-brprinter-installer-2.1.1-1.gz}} и запустите скрипт от рута, через пробел укажите модель принтера:<br />
$ su -<br />
# bash linux-brprinter-installer-2.1.1-1 MFC-7860DW<br />
Далее следуйте инструкциям на экране, на предпоследнем этапе необходимо будет указать, есть ли у Вас URI устройства, и если укажите, что есть, предложит выбрать из найденных или ввести вручную. На последнем этапе (если это МФУ) - будет настроена возможность сканирования.<br />
<br />
=== Kyocera ===<br />
* Скачиваем с официального сайта драйвера для необходимого устройства - [https://www.kyoceradocumentsolutions.ru/index/search_results.html https://www.kyoceradocumentsolutions.ru]<br />
* Если в списке ОС не находим Linux - указываем язык драйвера Английский.<br />
* В скачанном архиве Вы найдете необходимый PPD файл, который необходимо указать при выборе драйвера (пункт 3 настройки локального принтера, доступно при нажатии кнопки "Предоставить PPD-файл").<br />
<br />
=== Canon ===<br />
Ознакомьтесь с данными статьями:<br />
* [[Принтеры_Canon]]<br />
* [[Совет_по_установке_принтеров_Canon]]<br />
<br />
[[Категория:HOWTO]][[Категория:использование оборудования]]<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=ActiveDirectory/Login&diff=50018ActiveDirectory/Login2020-10-09T06:26:27Z<p>Корнеечев Евгений: /* Через pam_mount */ про задваивание ресурсов</p>
<hr />
<div><br />
Инструкция по вводу рабочей станции под управлением ALT Linux в домен Active Directory (работающий под Windows или под [[SambaAD|Samba в режиме AD DC]]).<br />
Устаревшая инструкция: [[Ввод в домен на базе Windows 2003]]<br />
{{Attention|Если Ваш домен имеет суффикс .local - необходимо отключить avahi-daemon (подробнее [[ActiveDirectory/Login#Примечания|ниже, пункт 2 примечаний]]).}}<br />
<br />
'''Параметры домена'''<br />
{|class="standard"<br />
!Параметр<br />
!Значение<br />
|-<br />
|Имя домена||SCHOOL.ALT<br />
|-<br />
|Рабочая группа||SCHOOL<br />
|-<br />
|Имя компьютера в Netbios||WS<br />
|-<br />
|Имя пользователя-администратора||Administrator<br />
|-<br />
|Пароль администратора||Pa$$word<br />
|}<br />
<br />
<br />
<div id="prep"></div><br />
<br />
= Подготовка =<br />
<br />
== Установка пакетов ==<br />
<br />
{{Attention|Аутентификация через winbind в новых сборках Samba не работает, используйте аутентификацию через {{pkg|task-auth-ad-sssd}}.}}<br />
<br />
С версии {{prg|alterator-auth-0.31-alt1}}<br />
<br />
apt-get install task-auth-ad-sssd<br />
<br />
{{note|Для старых версий: <source lang="text">apt-get install alterator-auth sssd-ad samba-common-tools</source>}}<br />
<br />
Требуемые версии:<br />
* {{pkg|pam-config}} >= 1.7.0-alt1<br />
* {{pkg|alterator-auth}} >= 0.26-alt1<br />
<br />
Возможно, следует [[Обновление ОС#В пределах версии|обновить]] установленный дистрибутив из репозитория.<br />
<br />
== Синхронизация времени ==<br />
<br />
С версии alterator-auth 0.28 синхронизация времени производится автоматически с контроллером домена.<br />
<br />
Для более ранних версий:<br />
<br />
===== Способ 1: Через {{cmd|net time}} =====<br />
<br />
net time set -S <имя домена><br />
<br />
===== Способ 2: По протоколу [https://tools.ietf.org/html/rfc867 RFC 867] =====<br />
<br />
На сервере включается через xinetd daytime-tcp <ref>Cм получение прав root: </ref>:<br />
<br />
# chkconfig --list | grep daytime-tcp<br />
daytime-tcp: вкл<br />
<br />
А на клиенте — служба {{cmd|settime-rfc867}}:<br />
<br />
chkconfig settime-rfc867 on<br />
service settime-rfc867 start<br />
<br />
===== Способ 3: Через Центр управления системой → Дата и время =====<br />
<br />
Включите флажок «Получать точное время с NTP-сервера» и укажите в поле справа {{cmd|pool.ntp.org}}. После этого нажмите кнопку «Применить».<br />
<br />
===== Способ 4: Через {{cmd|ntpdate}} =====<br />
<br />
ntpdate pool.ntp.org<br />
<div id="setup"></div><br />
<br />
= Ввод в домен в Центре управления системой = <br />
<br />
Предварительная настройка - [[PreliminaryActions]]<br />
<br />
В Центре управления системой перейдите в раздел {{path|Пользователи → Аутентификация}}<br />
<br />
Для ввода компьютера в Active Directory потребуется установить пакет {{pkg|task-auth-ad-sssd}} и все его зависимости.<br />
[[Файл:Qwe.png|мини|слева|x400px|Clear|]] <br />
<div style="clear:{{{1|both}}};"></div><br />
<br />
Выберите пункт «Домен Active Directory» и заполните поля. Нажмите кнопку «Применить».<br />
<br />
= Ввод в домен в командной строке =<br />
<br />
<pre># system-auth write ad school.alt host-15 school 'administrator' 'Pa$$word'<br />
Joined 'HOST-15' to dns domain 'school.alt'</pre><br />
<div id="check"></div><br />
= Настройка SSSD =<br />
См. статью [[SSSD/AD]]<br />
<br />
= Проверка работы =<br />
<br />
<pre># getent passwd ivan<br />
ivan:*:10005:10002:ivan:/home/SCHOOL/ivan:/bin/bash<br />
<br />
# net ads info<br />
LDAP server: 192.168.1.1<br />
LDAP server name: c228.school.alt<br />
Realm: SCHOOL.ALT<br />
Bind Path: dc=SCHOOL,dc=ALT<br />
LDAP port: 389<br />
Server time: Ср, 22 апр 2015 16:22:47 MSK<br />
KDC server: 192.168.1.1<br />
Server time offset: -1<br />
<br />
# net ads testjoin<br />
Join is OK</pre><br />
<br />
{{Note| Вы не увидите пользователей из AD с помощью команды <code># getent passwd </code> на клиентской машине. Этот функционал отключен по-умолчанию для того чтобы сократить нагрузку на серверы. Поэтому для проверки необходимо точно указать имя пользователя <code># getent passwd имя_пользователя </code>. Список пользователей можно посмотреть на сервере командой <code># samba-tool user list</code>}}<br />
<br />
= Примечания =<br />
# Ограничение: имя домена должно указывать на DC. Если это не так, поправляйте /etc/krb5.conf и вводите вручную, либо в файл /etc/hosts добавьте строку с контроллером домена (кдц) ДОМЕН.local и перезапустите сеть. После этого проверьте из командной строки ping ДОМЕН.local и вводите в домен<br />
# При указании домена, имеющего суффикс '''.local''', потребуется на сервере и подключаемых компьютерах под управлением Linux <u>'''отключить''' службу {{cmd|avahi-daemon}}</u> - <code># chkconfig avahi-daemon off; reboot </code> (доменная зона "local." используется в технологии zeroconf).<br />
# Следите за синхронизацией времени на клиенте и сервере.<br />
# Для предотвращения кэширования имён пользователя отключите службу {{cmd|nscd}}.<br />
# В новых версиях Samba до запуска службы {{cmd|winbind}} должна запускаться служба {{cmd|smb}}.<br />
# Если возникает проблема просмотра билетов Kerberos под доменным пользователем, скопируйте правильный krb5.conf из samba: <source lang="bash">rm -f /etc/krb5.conf<br />
cp /var/lib/samba/smb_krb5/krb5.conf* /etc/krb5.conf</source><br />
# Если у вас домен Windows 2003 (не R2), то в директивы default_tgs_enctypes, default_tkt_enctypes и preferred_enctypes файла /etc/krb5.conf добавьте ещё DES3-CBC-SHA1.<br />
# Для возможности входа в ОС под доменным пользователем при его недоступности можно включить опцию кэширования учетных данных в конфиге SSSD (подробнее [https://www.altlinux.org/SSSD/AD#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_sssd-.D0.BC.D0.BE.D0.B4.D1.83.D0.BB.D1.8F тут], опция '''cache_credentials''')<br />
<br />
= Настройка окна входа =<br />
<br />
== Настройка LightDM ==<br />
<br />
В {{path|/etc/lightdm/lightdm.conf}} раскомментируйте строку в группе {{cmd|[SeatDefaults]}}:<br />
greeter-hide-users=true<br />
<br />
Это позволит вводить имя пользователя вручную, а не прокручивать огромный список доступных доменныx пользователей.<br />
<br />
Также полезно выключить выбор языка. В файле {{path|/etc/lightdm/lightdm-gtk-greeter.conf}} в группе {{cmd|[greeter]}} укажите<br />
show-language-selector=false<br />
<br />
В новых версиях lightdm-gtk-greeter можно указать кнопки явно:<br />
show-indicators=~a11y;~power<br />
<br />
Полный перечень доступных кнопок:<br />
show-indicators=~a11y;~power;~session;~language<br />
<br />
= Отображение глобальных групп на локальные =<br />
{{note|Первые два пункта данного раздела выполняются автоматически, если АРМ вводится в домен с помощью {{pkg|task-auth-ad-sssd}}}}<br />
== Установка модуля ролей ==<br />
apt-get install libnss-role<br />
<br />
== Настройка ролей и привилегий ==<br />
Добавляем роль локальных администраторов:<br />
# groupadd -r localadmins<br />
<br />
{{Note|Лучше использовать группу localadmins (вместо admins) по избежание конфликта с группой admins во FreeIPA}}<br />
<br />
Создаём привилегию на право удалённого доступа (по протоколу ssh):<br />
# groupadd -r remote<br />
<br />
Включаем удалённый доступ только для группы remote:<br />
# control sshd-allow-groups enabled<br />
# sed -i 's/AllowGroups.*/AllowGroups = remote/' /etc/openssh/sshd_config<br />
<br />
Настраиваем список привилегий для пользователей (для роли users):<br />
# roleadd users cdwriter cdrom audio proc radio camera floppy xgrp scanner uucp fuse<br />
<br />
Настраиваем список привилегий для администраторов (для роли admins):<br />
# roleadd localadmins wheel remote vboxusers<br />
<br />
Настраиваем отображение локальных привилегий, назначенных локальным ролям, на глобальные группы безопасности:<br />
# roleadd 'Domain Users' users<br />
или<br />
# roleadd 'Пользователи домена' users<br />
Далее<br />
# roleadd 'Domain Admins' localadmins<br />
или<br />
# roleadd 'Администраторы домена' localadmins<br />
<br />
Просматриваем список назначенных ролей и привилегий:<br />
# rolelst<br />
# id ivan<br />
<br />
Данная настройка назначает заданный список локальных групп (привилегий) всем пользователям, входящим в заданные локальные группы (роли). А также назначает локальные роли для глобальных групп в домене.<br />
<br />
== Дополнительные роли ==<br />
Соответственно, если надо выдать права администраторов АРМ пользователям, которые не являются Domain Admins,<br />
то нужно завести новую группу в AD (например, PC Admins), добавить туда необходимых пользователей.<br />
Затем на АРМ добавить роль для данной группы:<br />
# roleadd 'PC Admins' localadmins<br />
# rolelst<br />
users: cdwriter cdrom audio video proc radio camera floppy xgrp scanner uucp vboxusers fuse tsusers<br />
localadmins: wheel<br />
domain users: users<br />
domain admins: localadmins<br />
pc admins: localadmins<br />
<br />
После этого (и после разрешения [[sudo]] для группы wheel) под пользователем входящим в группу PC Admins<br />
можно запускать команду повышения прав sudo.<br />
<pre>user@alt8 ~ $ su - petrov<br />
Password: <br />
petrov@alt8 ~ $ id<br />
uid=445010929(petrov) gid=445000513(domain users) группы=445000513(domain users),10(wheel),14(uucp),19(proc),<br />
22(cdrom),71(floppy),80(cdwriter),81(audio),83(radio),100(users),458(tsusers), 459(localadmins),466(fuse),468(video),<br />
480(camera),492(vboxusers),498(xgrp),499(scanner),445010930(pc admins)<br />
petrov@alt8 ~ $ sudo apt-get update<br />
Пароль:<br />
Получено: 1 http://ftp.altlinux.org p8/branch/x86_64 release [880B]<br />
Получено: 2 http://ftp.altlinux.org p8/branch/x86_64-i586 release [537B]<br />
Получено: 3 http://ftp.altlinux.org p8/branch/noarch release [673B]<br />
Получено 2090B за 0s (36,9kB/s).<br />
Найдено http://ftp.altlinux.org p8/branch/x86_64/classic pkglist<br />
Найдено http://ftp.altlinux.org p8/branch/x86_64/classic release<br />
Найдено http://ftp.altlinux.org p8/branch/x86_64-i586/classic pkglist<br />
Найдено http://ftp.altlinux.org p8/branch/x86_64-i586/classic release<br />
Найдено http://ftp.altlinux.org p8/branch/noarch/classic pkglist<br />
Найдено http://ftp.altlinux.org p8/branch/noarch/classic release<br />
Чтение списков пакетов... Завершено<br />
Построение дерева зависимостей... Завершено<br />
</pre><br />
<br />
= Подключение файловых ресурсов =<br />
<br />
Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).<br />
<br />
== Через gio ==<br />
<br />
{{note|Способ актуален для дистрибутивов, использующих gio (ранее — gvfs) (например, Кентавр, Simply Linux, Basealt Workstation, СПТ).}}<br />
<br />
Недостаток такого способа — необходимо открыть ресурс в файловом менеджере (Caja, Pcmanfm). Однако можно открывать любые ресурсы на любых серверах, входящие в домен Active Directory.<br />
<br />
1. Устанавливаем необходимые пакеты (с правами root):<br />
apt-get install fuse-gvfs gvfs-backend-smb libgio<br />
<br />
2. Включаем пользователя в группу ''fuse'' (с правами root):<br />
gpasswd -a <пользователь> fuse<br />
<br />
{{Attention|Начиная с p9 членства в группе fuse недостаточно, требуется разрешить для всех доступ к fuse под root:<br />
control fusermount public<br />
}}<br />
<br />
3. Входим доменным пользователем<br />
<br />
4. Открываем ресурс в файловом менеджере (например, по адресу {{path|smb://server/sysvol}}). Ресурс смонтирован по пути {{path|/var/run/<uid_пользователя>/gvfs}} или /var/run/user/<uid_пользователя>/gvfs/smb-share:server=сервер,share=ресурс<br />
<br />
Другой вариант (полезно для скриптов в автозапуске): <br />
gio mount smb://server/sysvol/<br />
<br />
{{note|Если необходимо открывать что-то с ресурса в WINE, в {{cmd|winecfg}} добавьте диск с путём {{path|/var/run/<uid_пользователя>/gvfs}}.}}<br />
<br />
== Через pam_mount ==<br />
<br />
В этом случае заданный ресурс подключается с заданного сервера <u>автоматически при каждом входе</u> доменным пользователем.<br />
<br />
1. Устанавливаем {{pkg|pam_mount}}:<br />
apt-get install pam_mount<br />
<br />
2. Прописываем pam_mount в схему {{path|/etc/pam.d/system-auth-sss}}:<br />
<br />
(перед {{term|auth required pam_sss.so}})<br />
auth optional pam_mount.so<br />
и в секцию session:<br />
session optional pam_mount.so<br />
<br />
{{Attention|Если у Вас ресурс монтируется дважды, то можно исправить это, добавив в session перед строкой с pam_mount:<br />
<pre>session [success=1 default=ignore] pam_succeed_if.so service = systemd-user quiet</pre><br />
}}<br />
<br />
3. Устанавливаем правило монтирования ресурса в файле {{path|/etc/security/pam_mount.conf.xml}} (перед тегом <cifsmount>):<br />
<source lang="xml"><volume uid="10000-2000200000" fstype="cifs" server="c228" path="sysvol" mountpoint="~/share" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /></source><br />
где<br />
* '''uid="10000-2000200000"''' — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD)<br />
* '''server="c228"''' — имя сервера с ресурсом<br />
* '''path="sysvol"''' — имя файлового ресурса<br />
* '''mountpoint="~/share"''' — путь монтирования в домашней папке пользователя<br />
<br />
{{Attention|Обязательно указывайте настоящее имя сервера в параметре {{term|server}}, а не имя домена}}<br />
<br />
{{Attention|По умолчанию для монтирования используется smb версии 1.0, если у вас он отключен, то укажите в параметрах версию 2 или 3. <br />
<source lang="xml"><volume uid="10000-2000200000" fstype="cifs" server="c228" path="sysvol" mountpoint="~/share" options="sec=krb5,vers=2.0,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /></source><br />
}}<br />
<br />
Для проверки можно попробовать смонтировать ресурс в сессии:<br />
<source> mount.cifs //server/share /mnt/ -o vers=2.0,user=altlinux</source><br />
Также можно проверить доступность ресурса с помощью smbclient, например:<br />
<source><br />
smbclient -L server -U altlinux -m SMB2<br />
</source><br />
<br />
== Через autofs ==<br />
<br />
В этом случае заданный ресурс подключается <u>автоматически при каждом обращении</u> пользователя. И отключается после определенного времени бездействия (определяется конфигуацией Autofs).<br />
==== Основная статья AutoFS ====<br />
https://www.altlinux.org/Autofs<br />
==== Для дистрибутивов c KDE ====<br />
1. Устанавливаем {{pkg|kde5-autofs-shares}}:<br />
apt-get install kde5-autofs-shares<br />
<br />
2. Следуем инструкции по подключению в разделе [[Альт_Рабочая_станция_К_8_советы]].<br />
<br />
= Групповые политики =<br />
<br />
Групповые политики (GPO) на Linux применяются только контроль входа через [[SSSD]] и средства Centrify.<br />
<br />
== SSSD ==<br />
<br />
SSSD имеет внутреннюю поддержку следующих групповых политик:<br />
<br />
{|class="standard"<br />
!Политика<br />
|-<br />
|{{term|Allow log on locally}}<br />
|-<br />
|{{term|Allow log on through Remote Desktop Services}}<br />
|-<br />
|{{term|Access this computer from the network}}<br />
|-<br />
|{{term|Allow log on as a batch job}}<br />
|-<br />
|{{term|Allow log on as a service}}<br />
|}<br />
<br />
<br />
{{Note|Планируется поддержка других групповых политик средствами подключаемых модулей}}<br />
<br />
{{примечания}}<br />
<br />
{{note| Получение прав root см. [[root]] }}<br />
<br />
== Ссылки по групповым политикам ==<br />
* https://fedoraproject.org/wiki/Changes/SssdGpoBasedAccessControl<br />
* http://wiki.eri.ucsb.edu/stadm/AD_Samba4<br />
* http://centrifying.blogspot.ru/2014/01/basics-using-group-policy-on-unixlinux.html<br />
* https://www.youtube.com/watch?v=2cJWnUZ8qLI<br />
<br />
= Ссылки =<br />
* https://wiki.archlinux.org/index.php/Active_Directory_Integration<br />
* [[Ввод в домен на базе Windows 2003]]<br />
* https://fedorahosted.org/sssd/wiki/Configuring_sssd_with_ad_server<br />
* https://wiki.samba.org/index.php/Setup_Samba_as_an_AD_Domain_Member<br />
<br />
<br />
{{Category navigation|title=Домен|category=Samba|sortkey={{SUBPAGENAME}}}}<br />
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}}<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}<br />
<br />
[[Категория:Active Directory]]</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8%D0%91%D0%9A&diff=49490СправкиБК2020-09-08T09:11:40Z<p>Корнеечев Евгений: /* Установка */</p>
<hr />
<div>Процедура установки программы Справки БК<br />
<br />
<br />
Сайт программы: https://spravki-bk.ru/<br />
<br />
{{Attention|Печать из СправкиБК под WINE пока не работает.}}<br />
<br />
= Установка =<br />
1. Подготовка среды<br />
<br />
Установите WINE (под правами root):<br />
<br />
<pre><br />
$ su-<br />
# apt-get install -y i586-wine winetricks wine-mono<br />
# exit<br />
</pre><br />
<br />
<br />
2 Установите в терминале с правами обычного пользователя MS .NET 3.5 SP1:<br />
<pre><br />
$ winetricks dotnet35sp1<br />
</pre><br />
{{Note|Придётся отвечать на много вопросов и нажимать кнопки. Рекомендуется после этого сделать резервную копию каталога {{path|~/wine}}.}}<br />
{{Note|Чтобы не скачивать дистрибутивы .NET заново на другом компьютере, скопируйте этому пользователю каталог {{path|~/.cache/winetricks}}.}}<br />
<br />
3. Загрузите с сайта программы и распакуйте SpravkiBKsetup_ver._2.4.1.msi<br />
<br />
Перейдите в каталог с распакованным файлом и установите под пользователем:<br />
<pre><br />
$ msiexec /i SpravkiBKsetup_ver._2.4.1.msi<br />
</pre><br />
Закройте терминал.<br />
<br />
(проверено на alt-workstation-9.0-x86_64 kernel 4.19.102-std)<br />
<br />
= Работа =<br />
<br />
[[Изображение:Spravkibk.png]]<br />
<br />
[[Категория:Enterprise Software]]</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%9A%D0%BE%D0%BD%D1%81%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D0%BD%D1%82%D0%9F%D0%BB%D1%8E%D1%81&diff=49489КонсультантПлюс2020-09-08T06:42:02Z<p>Корнеечев Евгений: /* Установка КонсультантПлюс */ +corefonts</p>
<hr />
<div>== Установка КонсультантПлюс ==<br />
Для запуска под ALT оболочке [http://ru.wikipedia.org/wiki/КонсультантПлюс КонсультантПлюс] необходимы установленная библиотека WINE + движок Gecko. На текущий момент (10.2017) для нормальной работы (особенно с сетевым комплектом) лучше использовать {{pkg|wine-vanilla}} ({{pkg|i586-wine-vanilla}} для 64-битных ОС):<br />
$ su -<br />
# apt-get update<br />
# apt-get install wine-vanilla-full wine-gecko winetricks<br />
<br />
Под пользователем установить шрифты:<br />
$ winetricks corefonts<br />
<br />
== Настройка клиент-серверной версии ==<br />
Для примера, директория Консультанта с базами данных и запускаемым файлом {{path|cons.exe}} уже размещена на сетевом ресурсе сервиса [[Samba]] в директории {{path|//server/public/consultant}}.<br />
<br />
Также пользователя необходимо добавить в группу ''users'':<br />
# gpasswd -a <USERNAME> users <br />
=== Настройка станции администратора ===<br />
==== Подключение сетевого диска ====<br />
Лучше всего для подключения ресурса использовать утилиту [[autofs]]. Настроить нужно по инструкции: [[Autofs#samba]], предварительно заведя на Самбе необходимого пользователя. Имя директории для монтирования указывается при настройке в файле /etc/auto.tab в начале строки. Пусть это будет consultant, следовательно ресурс смонтируется в папку {{path|/mnt/auto/consultant}}. После настройки autofs - не забудьте включить одноименный сервис.<br />
<br />
Далее от обычного пользователя запускаем команду {{cmd|winecfg}} и в открывшемся окне переходим на вкладку "Диски". Добавляем диск K: -> /mnt/auto/consultant, нажимаем кнопку "Дополнительно" и тип диска устанавливаем "Сетевой". Затем выполняем следующие команды:<br />
$ cd ~/.wine/dosdevices/k\:<br />
$ wine cons.exe /LINUX /YES<br />
после этого появится ярлык на рабочем столе пользователя (к команде в нем необходимо будет добавить /LINUX).<br />
<br />
==== Регистрация ====<br />
Главное, что потребуется - бинарник '''conslin''', собранный под соответствующую архитектуру, который согласно прилагаемой к нему инструкции помещают в /usr/local/bin и запускают с правами суперпользователя. Для успешных регистрации и обновления баз, данный бинарник должен быть запущен, проще всего настроить его на автостарт при каждом запуске через [[rc.local]]. На данный момент его можно найти в поставке Консультанта:<br />
$ su -<br />
# cp /mnt/auto/consultant/Conslin/conslin /usr/local/bin/<br />
# chown root:root /usr/local/bin/conslin<br />
Затем нужно выполнить запуск Консультанта с ключом /REG:<br />
$ cd ~/.wine/dosdevices/k\:<br />
$ wine cons.exe /LINUX /REG<br />
С помощью представителя Консультант регистрируем комплект, а после запускаем с ключом /ADM: чтобы произошло формирование словарей.<br />
==== Обновление БД ====<br />
Обновление баз производится вызовом команды:<br />
$ wine k:\\cons.exe /LINUX /ADM /RECEIVE_INET /BASE*<br />
если у Вас мало дискового пространства на станции администратора, также лучше указать временную папку на сетевом ресурсе, добавив соответствующий ключ: ''/TEMPINETDIR=K:\TEMP''<br />
==== Автообновление БД по расписанию ====<br />
Поставьте на расписание от пользователя команду<br />
xvfb-run -a wine k:\\cons.exe /LINUX /ADM /RECEIVE_INET /BASE* /YES /TEMPINETDIR=K:\TEMP<br />
{{pkg|xvfb-run}} придётся доустановить, он нужен поскольку cons.exe необходим десктоп для вывода сообщений о ходе обновления.<br />
В /etc/crontab команда на запуск по расписанию, скажем в 3:00 ежедневно, может выглядеть например так:<br />
0 8 * * * user /home/user/.consupdate.sh<br />
и не забудьте запустить сервис crond.<br />
<br />
=== Настройка клиентских станций ===<br />
Сводится к установке требуемых пакетов ({{pkg|wine-vanilla-full}} {{pkg|wine-gecko}} {{pkg|autofs}}) и настройке [[КонсультантПлюс#Подключение_сетевого_диска|сетевого диска]] (см. выше). <br />
<br />
Подключение каждого нового пользователя на машинах с Линуксом не требует регистрации новой рабочей станции в КонсультантПлюс через станцию администратора, в отличии от Windows (в этом случае нужно с ключом /ADM зайти в меню "Сервис" -> "Регистрация станций")<br />
<br />
== Настройка файловой версии ==<br />
Помимо установки требуемого ПО ({{pkg|wine-vanilla-full}} {{pkg|wine-gecko}}), потребуется заготовить непривилегированного пользователя - пусть это тоже будет пользователь '''consultant''' - и отдельный каталог для компонентов приложения и баз данных, например {{path|/opt/consultant}} <br />
$ su -<br />
# adduser consultant<br />
# passwd consultant<br />
# mkdir /opt/consultant<br />
# chown -R consultant:consultant /opt/consultant<br />
<br />
Требуется право записи в каталог для группы '''consultant''', в любом случае на подкаталог /ADM точно требуется. Весь комплект КонсультантПлюс следует записать в отведенный каталог, и делать это либо от пользователя '''consultant''', либо после копирования назначить его и группу владельцами.<br />
Всех локальных пользователей, которым нужно ПО, следует включить в группу '''consultant'''. Если этого не сделать, характерной ошибкой будет сообщение о недоступности файла CONS.ADM<br />
<br />
Чтобы WINE получил каталог, проще всего сделать символическую ссылку на {{path|/opt/consultant}} из домашнего каталога пользователя.<br />
$ su consultant<br />
$ ln -s /opt/consultant ~/consultant<br />
<br />
Если поместить ссылку в /etc/skel, каждый новый пользователь получит её автоматически. От обычного пользователя КонсультантПлюс будет запускаться так:<br />
$ wine d:\\consultant\\cons.exe /LINUX ''#диск D: в этом случае настроен на домашнюю папку пользователя''<br />
Нормально будет изготовить такой ярлык и раздать его на рабочие столы пользователей и в /etc/skel если необходимо.<br />
<br />
Регистрация станции администратора и обновление БД в этом случае необходимо делать под пользователем '''consultant'''. Процедуры аналогично описанным для сетевой версии.<br />
<br />
== Многопользовательский режим (для файловой версии) ==<br />
Можно подключить пользователей по протоколу NX через FreeNX и nxclient. Если изначально поставить сервер под КонсультантПлюс в режиме "Рабочая станция", при установленном туда freenx-server в распоряжении пользователей сразу окажется LibreOffice и (если настроено) печать на локальные принтеры. Работает также буфер обмена. Если же порт tcp/22 сервера пропустить в Интернет, то пользователи умеющие установить дома nxclient и помнящие пароль смогут воспользоваться базами Консультанта и во внеурочное время.<br />
<br />
Приятно, что при этом способе подключение каждого нового пользователя не требует регистрации новой рабочей станции в КонсультантПлюс, поскольку для него все пользователи считаются локальными. И вообще вмешательства администратора, если настроить /etc/skel.<br />
[[Категория:КонсультантПлюс]] [[Категория:HOWTO]]<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Java/OracleSDK&diff=48684Java/OracleSDK2020-06-25T06:29:02Z<p>Корнеечев Евгений: /* Лицензионные ограничения */</p>
<hr />
<div>[[Категория:Sisyphus]]<br />
== Установка Oracle Java 8 SDK в ALT Linux ==<br />
'''Обратите внимание: Java 7/6 доступны [http://www.oracle.com/technetwork/java/javase/documentation/eol-135779.html только по подписке], при наличии архива процедура аналогична'''<br />
<br />
__TOC__<br />
<br />
=== Лицензионные ограничения ===<br />
<br />
jdk-6u26-linux является последним фирменным JDK, распространяемым под лицензией<br />
[http://download.java.net/dlj/DLJ-v1.1.txt DLJ (Operating System Distributor License for Java version 1.1)].<br />
Эта лицензия явно разрешает распространять JDK в составе дистрибутива.<br />
Таким образом, java-1.6.0-sun-1.6.0.26 является последним JDK от Sun/Oracle, входящим в состав [[Sisyphus]].<br />
<br />
Последующие версии Oracle JDK теперь распространяются под лицензией Oracle Binary Code License,<br />
в которой есть явное разрешение распространять JDK вместе с java приложениями, например, в составе LiveCD,<br />
но нет явного разрешения распространять JDK в одиночку как отдельный пакет.<br />
Поэтому их нет в сизифе.<br />
<br />
Однако ничто не мешает установить данные пакеты самостоятельно.<br />
Для безболезненной установки Oracle JDK под ALT Linux доступны nosrc.rpm-пакеты.<br />
В них собственно Oracle JDK не входит, его нужно отдельно скачать,<br />
после чего их можно пересобрать по инструкции ниже и получить обычные rpm-пакеты,<br />
готовые к установке.<br />
<br />
C 19 апреля 2019 года лицензионная политика снова поменялась, теперь Oracle JDK платная, последний релиз,<br />
который можно собрать и пользоваться без ограничений это 8u202 (скачать после авторизации на сайте можно [https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html тут])<br />
<br />
=== NOSRC In a Nutshell ===<br />
<br />
{{attention|Все действия этой инструкции проводим под пользователем.}}<br />
<br />
Скачайте [http://ftp.altlinux.org/pub/people/mike/packages/java/ соответствующий пакет] {{path|*.nosrc.rpm}}; например: [http://ftp.altlinux.org/pub/people/mike/packages/java/java-1.8.0-oracle-1.8.0.102-alt1.nosrc.rpm java-1.8.0-oracle-1.8.0.102-alt1.nosrc.rpm].<br />
<br />
Установите его командой вида:<br />
<br />
$ rpm -Uhv java-1.8.0-oracle-1.8.0.102-alt1.nosrc.rpm<br />
<br />
После выполнения команды у вас появится новый каталог {{path|/home/''UserName''/RPM/}}, в нём будет еще два каталога: {{path|SOURCES}} и {{path|SPECS}}<br />
<br />
Скачайте в каталог {{path|SOURCES/}} недостающий исходник {{path|jdk*.tar.gz}} для вашей архитектуры с сайта Oracle ([http://www.oracle.com/technetwork/java/javase/downloads/index.html Java SE Downloads],<br />
[http://www.oracle.com/technetwork/java/javase/downloads/index.html download.oracle.com],<br />
если ссылки устареют, поищите новые в google).<br />
<br />
Например, для java-1.8.0-oracle-1.8.0.102 это будет файл:<br />
<br />
* (x86_64) http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-linux-x64.tar.gz<br />
* (i586) http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-linux-i586.tar.gz<br />
<br />
<!--<br />
* (i586) http://download.oracle.com/otn-pub/java/jdk/7u21-b11/jdk-7u21-linux-i586.tar.gz<br />
* (x86_64) http://download.oracle.com/otn-pub/java/jdk/7u21-b11/jdk-7u21-linux-x64.tar.gz<br />
<br />
Для java-1.7.0-oracle-1.7.0.21 это будут файлы {{pkg|jdk-7u21-linux-i586.tar.gz}} и {{pkg|jdk-7u21-linux-x64.tar.gz}} соответственно.<br />
--><br />
Публикация nosrc.rpm может отставать от выпуска новых релизов java. <br />
<br />
Если на сайте Oracle доступна более свежая версия,<br />
чем имеющиеся {{path|*.nosrc.rpm}}, необходимо внести поправки в файле {{path|java-1.8.0-oracle.spec}}<br />
и только после этого приступать к сборке {{path|*.src.rpm}}.<br />
<br />
К примеру: У вас в файле {{path|java-1.8.0-oracle.nosrc.rpm}} в строке <tt>%define buildver</tt> указана версия 60, а на оф.сайте уже доступна версия {{path|jdk-8u72-linux-**.tar.gz}};<br />
править нужно следующее: ( "-" - это строка для изменения, "+" - та же строка, но уже с внесенными изменениями)<br />
<br />
<source lang="diff"><br />
--- java-1.8.0-oracle.spec~ 2016-02-04 17:31:58.832448223 +0300<br />
+++ java-1.8.0-oracle.spec 2016-02-04 17:02:50.865717944 +0300<br />
@@ -38,7 +38,7 @@<br />
%define origin oracle<br />
%define priority 18040<br />
%define javaver %major.%minor<br />
-%define buildver 60<br />
+%define buildver 72<br />
<br />
%define jppname java-%{javaver}-%{origin}<br />
%define javaws_ver %{javaver}<br />
@@ -1107,6 +1107,9 @@<br />
<br />
<br />
%changelog<br />
+* Thu Feb 04 2016 Michael Shigorin <mike@altlinux.org> 0:1.8.0.72-alt1<br />
+- nosrc spec file for java sdk 8u72<br />
+<br />
* Fri Oct 09 2015 Igor Vlasenko <viy@altlinux.ru> 0:1.8.0.60-alt1<br />
- nosrc spec file for java sdk 8u60<br />
</source><br />
<br />
Обновить nosrc.rpm при желании можно подобным образом:<br />
<br />
rpmbuild -bs --nosource 0 --nosource 1 --nodeps java-1.8.0-oracle.spec<br />
<br />
Далее установите в host-систему пакеты {{pkg|rpm-build-java}} {{pkg|browser-plugins-npapi-devel}} и в каталоге {{path|SPECS/}} выполните команду (для Oracle JDK 8):<br />
<br />
$ rpmbuild -bs --nodeps java-1.8.0-oracle.spec<br />
<br />
Полученный в результате {{path|java-1.8.0-oracle-1.8.0.102-alt1.src.rpm}} [[Hasher/Краткое руководство|пересоберите в hasher]].<br />
<br />
=== Примечания ===<br />
<br />
; ключ " --nodeps " команды "rpmbuild -bs" позволяет выполнить ее без установки лишних зависимостей в хост-систему.<br />
При этом, если в хост-системе не будет некоторых дополнительных<br />
пакетов с макросами, именно, указанных в BuildRequires(pre): {{pkg|rpm-macros-alternatives browser-plugins-npapi-devel}},<br />
то rpmbuild будет выдавать предупреждения, связанные с отсутствием соответствующих макросов.<br />
На это можно не обращать внимания, если сборка src.rpm пакета состоялась.<br />
<br />
; Если вы не осилили сборку в hasher, то надо делать так:<br />
<br />
<source lang=text><br />
cd /home/user/RPM/SPEC<br />
rpmbuild -bs --nodeps java-1.8.0-oracle.spec<br />
<br />
cd /home/user/RPM/SRPMS<br />
apt-get build-dep путь_до_файла/java-1.8.0-oracle-1.8.0.31-alt1.src.rpm<br />
<br />
cd /home/user/RPM/SPEC<br />
rpmbuild -bs java-1.8.0-oracle.spec<br />
<br />
</source><br />
При этом в систему установятся пакеты, необходимые для сборки пакета. После сборки, их можно удалить из системы.<br />
<br />
; В последней версии java-1.8.0-oracle.spec для JDK 8u45 (arch type i586), надо запретить сборку moz_plugin_classiс для 32-битной архитектуры (как уже сделано для 64-бит)<br />
<br />
<br />
<source lang=diff><br />
@@ -84,7 +84,7 <br />
%else<br />
%def_enable javaws<br />
%def_enable moz_plugin<br />
-%def_enable moz_plugin_classic<br />
+%def_disable moz_plugin_classic<br />
%def_enable desktop<br />
%endif<br />
%def_with gcc32_abi<br />
</source><br />
<br />
=== Ссылки ===<br />
<br />
[[Сборка_пакета_с_нуля]]<br />
<br />
[[Hasher]]<br />
<br />
<br />
=== Переключение на Oracle JDK ===<br />
https://www.altlinux.org/Java/OracleSDK/Install<br />
<br />
'''TODO:''' использование alternatives<br />
<br />
Вопрос: как при выполнении rpmbuild -bs --nodeps java-1.8.0-oracle.spec на выходе получить упакованный пакет с сорцами i586 при сборке на платформе x86_64.<br />
Упаковывается всё x64.tar.gz</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:VNC&diff=48640Обсуждение:VNC2020-06-15T12:05:36Z<p>Корнеечев Евгений: </p>
<hr />
<div>Это <br />
С помощью xorg-extension-vnc<br />
1. Установите пакет xorg-extension-vnc:<br />
<br />
apt-get install xorg-extension-vnc<br />
2. Раскомментируйте строки в файле /etc/X11/xorg.conf.d/vnc.conf:<br />
<br />
subst 's/^#//' /etc/X11/xorg.conf.d/vnc.conf<br />
3. Укажите пароль для доступа к экрану:<br />
<br />
# vncpasswd <br />
Password:<br />
Verify:<br />
<br />
убило нашу систему <br />
вот скриншот<br />
https://ibb.co/m0sFQJw <br />
<br />
linux 4.19.84-un-def-alt0.M80P.1 #1 smp preempt wed nov 13 11 x86_64<br />
<br />
<br />
Вообще в p8 он просто не должен был отработать, так как там расхождение в API c Xorg.</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Kaspersky_Endpoint_Security&diff=48564Kaspersky Endpoint Security2020-06-05T07:50:07Z<p>Корнеечев Евгений: </p>
<hr />
<div>===Скачивание===<br />
Дистрибутивы (RPM-пакеты) самого антивируса и его агента всегда можно найти по ссылкам:<br />
====10 версия====<br />
https://support.kaspersky.ru/kes10linux#downloads<br />
====11 версия====<br />
https://support.kaspersky.ru/kes11linux#downloads<br />
<br />
===Установка===<br />
<br />
*копируем дистрибутивы<br />
<br />
*устанавливаем rpm <br />
<br />
*cd /opt/kaspersky/kesl/bin<br />
<br />
*./kesl-setup.pl<br />
<br />
===Известные проблемы===<br />
Если раздел /home примонтирован с параметром noexec, то от обычного пользователя (даже того, кому делегированы права администратора) GUI Касперского не запустится. Только через sudo или от рута.<br />
<br />
<br />
<br />
<br />
<br />
[[Категория:Enterprise Software]]<br />
[[Категория:Полезно]]<br />
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Etcnet/openvswitch&diff=48560Etcnet/openvswitch2020-06-04T13:43:29Z<p>Корнеечев Евгений: /* Примеры */</p>
<hr />
<div>== Настройка openvswitch из etcnet ==<br />
<br />
Что такое OVS (openvswitch) и зачем его использовать лучше прочитать на официальном сайте http://openvswitch.org/support/<br />
<br />
OVS сложная система. Имеет собственную базу данных, где хранит настройки. И не все эти порты и бриджи могут отражаться в системе как сетевые интерфейсы. В связи с чем создавать интерфейс (папку в /etc/net/ifaces) для такого типа порта нет смысла, т.к. etcnet оперирует реальными интерфейсами. Поэтому управлять будем только теми ресурсами которые реально отражаются в системе как сетевые интерфейсы.<br />
Это 3 типа интерфейсов: бридж реальный и фейковый (ovsbr), порт типа internal (ovsport) и специальный тип порта - бондинг (ovsbond).<br />
Реальный и фейковый бридж по сути имеют один тип ovsbr и отличаются только наличием родительского бриджа и влана.<br />
Порт типа не internal это или существующий реальный интерфейс (eth0) или не отраженные в операционной системе интерфейсы (нпример gre, veth). Поэтому я не выделяю их для etcnet. Все это должно настраиваться через OVS_EXTRA.<br />
<br />
=== Бридж ===<br />
Для создания этого типа в options должно быть:<br />
<pre>TYPE=ovsbr </pre><br />
Также как опция может быть указан список сетевых интерфейсов, которые должны быть добавлены в данный бридж. Они будут запущены и добавлены в бридж.<br />
<pre>HOST='eth2' </pre><br />
NB! Нельзя сюда писать порты OVS (тип ovsport или ovsbond). Они должны быть описаны отдельно, т.к. для их добавления требуется уже существующий бридж.<br />
В результате будет создан бридж. Проверить можно командой <pre>#ovs-vsctl show</pre><br />
<br />
=== Фейковый бридж ===<br />
Данный вид бриджа можно использовать в ситуации, когда нет возможности задать влан на порту или когда вы его не знаете. Например подобная ситуация описана в http://blog.scottlowe.org/2012/10/19/vlans-with-open-vswitch-fake-bridges/ . Для создания такого бриджа нужно указывать родительский бридж и влан.<br />
Для этого дополнительно к тем переменным что используются для реального бриджа, указываем:<br />
<pre><br />
BRIDGE=br0<br />
VID=105<br />
</pre><br />
И тогда будет создаваться фейковый бридж<br />
<br />
=== Порт типа internal ===<br />
Для его создания в options должно быть:<br />
<pre> TYPE=ovsport </pre><br />
Бридж в который должен этот порт добавиться:<br />
<pre> BRIDGE=br0 </pre><br />
В результате получится сетевой интерфейс который может управляться через утилиту ip и др.<br />
<br />
=== Порт бондинг ===<br />
Специальный тип порта для объединения 2х физических сетевых интерфейса в один.<br />
Для его создания в options должно быть<br />
<pre> TYPE=ovsbond </pre><br />
Бридж в который должен этот порт добавиться:<br />
<pre> BRIDGE=br0 </pre><br />
Также должны быть указаны не меньше 2х сетевых интерфейсов, которые должны быть добавлены в данный порт.<br />
<pre> HOST='eth1 eth2' </pre><br />
<br />
=== Общие настройки для всех типов ===<br />
Для задания всех остальных всевозможных настроек, должны использоваться переменные:<br />
'''OVS_REMOVE''' Если установлено в yes, то при отключении интерфейса, данный порт будет удален из базы данных OVS. Осторожно, т.к. некоторые параметры, например MAC будет сгенерирован заново.<br />
'''OVS_OPTIONS''' параметры которые должны быть переданы для настройки данного бриджа или порта. Возможные поля для бриджа можно посмотреть командой: <br />
<pre><br />
# ovs-vsctl list bridge<br />
_uuid : 6aac9201-4272-41cc-a7be-1a36e00f6748<br />
controller : []<br />
datapath_id : "000078e7d17fcf13"<br />
datapath_type : ""<br />
external_ids : {}<br />
fail_mode : []<br />
flood_vlans : []<br />
flow_tables : {}<br />
ipfix : []<br />
mirrors : []<br />
name : "ovsbr0"<br />
netflow : []<br />
other_config : {}<br />
ports : [1de75723-f51e-441b-8d69-e6536d9dcfad, 47988e8e-23bd-494b-bbd0-49b7fa79e23c, 58a10ab2-f344-46f9-a313-104c23ba2a8b]<br />
protocols : []<br />
sflow : []<br />
status : {}<br />
stp_enable : false<br />
</pre><br />
Тогда если мы хотим включить STP, нужно написать:<br />
<pre>OVS_OPTIONS='stp_enable=yes'</pre><br />
Для порта можно посмотреть командой:<br />
<pre><br />
# ovs-vsctl list port<br />
_uuid : 58a10ab2-f344-46f9-a313-104c23ba2a8b<br />
bond_downdelay : 0<br />
bond_fake_iface : false<br />
bond_mode : []<br />
bond_updelay : 0<br />
external_ids : {}<br />
fake_bridge : false<br />
interfaces : [987b7dfe-34b4-4d55-b9ae-dedfa05d9779]<br />
lacp : []<br />
mac : []<br />
name : "ovsport0"<br />
other_config : {}<br />
qos : []<br />
statistics : {}<br />
status : {}<br />
tag : []<br />
trunks : []<br />
vlan_mode : []<br />
</pre><br />
<br />
Если нужно настраивать дополнительно другие интерфейсы или параметры, то это делать нужно через Database Commands (см. соответствующую секцию в ovs-vsctl(8)) Это все указывается в OVS_EXTRA<br />
Например влан, тип и т.д.<br />
<pre> OVS_EXTRA='set port eth0 tag=10 -- set port eth1 trunk="1,2,15" ' </pre><br />
<br />
Данные переменные действуют для всех типов сетевых интерфейсов ovs*.<br />
<br />
== Примеры ==<br />
Простая настройка:<br />
<pre><br />
$ cat ens18/options <br />
TYPE=eth<br />
CONFIG_WIRELESS=no<br />
BOOTPROTO=static<br />
CONFIG_IPV4=yes<br />
<br />
$ cat vmbr0/options<br />
TYPE=ovsbr<br />
CONFIG_WIRELESS=no<br />
BOOTPROTO=static<br />
CONFIG_IPV4=yes<br />
ON_BOOT=yes<br />
HOST="ens18"<br />
<br />
# ovs-vsctl show<br />
6669027e-d2a5-4f23-8d36-bf279d39355c<br />
Bridge "vmbr0"<br />
Port "vmbr0"<br />
Interface "vmbr0"<br />
type: internal<br />
Port "ens18"<br />
Interface "ens18"<br />
ovs_version: "2.11.1"<br />
<br />
</pre><br />
Настройка VLAN (добавляется к предыдущим):<br />
<pre><br />
# cat vlan495/options <br />
TYPE=ovsport<br />
CONFIG_WIRELESS=no<br />
BOOTPROTO=static<br />
CONFIG_IPV4=yes<br />
BRIDGE=vmbr0<br />
OVS_EXTRA="set port vlan495 tag=495"<br />
<br />
# cat vlan666/options <br />
TYPE=ovsport<br />
CONFIG_WIRELESS=no<br />
BOOTPROTO=static<br />
CONFIG_IPV4=yes<br />
BRIDGE=vmbr0<br />
OVS_EXTRA="set port vlan666 tag=666"<br />
<br />
# ovs-vsctl show<br />
6669027e-d2a5-4f23-8d36-bf279d39355c<br />
Bridge "vmbr0"<br />
Port "vmbr0"<br />
Interface "vmbr0"<br />
type: internal<br />
Port "ens18"<br />
Interface "ens18"<br />
Port "vlan495"<br />
tag : 495<br />
Interface "vlan495"<br />
type: internal<br />
Port "vlan666"<br />
tag : 666<br />
Interface "vlan666"<br />
type: internal<br />
ovs_version: "2.11.1"<br />
</pre><br />
Обратите внимание на OVS_EXTRA, в них указан тэги VLAN (VID=495 etcnet не может преобразовать в тэг {{altbug|38578}}).<br />
Если их не указать (или указать VID), то единожды необходимо средствами OVS назначить портам тэги:<br />
<pre><br />
# ovs-vsctl set port vlan495 tag=495<br />
# ovs-vsctl set port vlan666 tag=666<br />
</pre></div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Etcnet/openvswitch&diff=48559Etcnet/openvswitch2020-06-04T12:45:11Z<p>Корнеечев Евгений: /* Примеры */ теперь есть</p>
<hr />
<div>== Настройка openvswitch из etcnet ==<br />
<br />
Что такое OVS (openvswitch) и зачем его использовать лучше прочитать на официальном сайте http://openvswitch.org/support/<br />
<br />
OVS сложная система. Имеет собственную базу данных, где хранит настройки. И не все эти порты и бриджи могут отражаться в системе как сетевые интерфейсы. В связи с чем создавать интерфейс (папку в /etc/net/ifaces) для такого типа порта нет смысла, т.к. etcnet оперирует реальными интерфейсами. Поэтому управлять будем только теми ресурсами которые реально отражаются в системе как сетевые интерфейсы.<br />
Это 3 типа интерфейсов: бридж реальный и фейковый (ovsbr), порт типа internal (ovsport) и специальный тип порта - бондинг (ovsbond).<br />
Реальный и фейковый бридж по сути имеют один тип ovsbr и отличаются только наличием родительского бриджа и влана.<br />
Порт типа не internal это или существующий реальный интерфейс (eth0) или не отраженные в операционной системе интерфейсы (нпример gre, veth). Поэтому я не выделяю их для etcnet. Все это должно настраиваться через OVS_EXTRA.<br />
<br />
=== Бридж ===<br />
Для создания этого типа в options должно быть:<br />
<pre>TYPE=ovsbr </pre><br />
Также как опция может быть указан список сетевых интерфейсов, которые должны быть добавлены в данный бридж. Они будут запущены и добавлены в бридж.<br />
<pre>HOST='eth2' </pre><br />
NB! Нельзя сюда писать порты OVS (тип ovsport или ovsbond). Они должны быть описаны отдельно, т.к. для их добавления требуется уже существующий бридж.<br />
В результате будет создан бридж. Проверить можно командой <pre>#ovs-vsctl show</pre><br />
<br />
=== Фейковый бридж ===<br />
Данный вид бриджа можно использовать в ситуации, когда нет возможности задать влан на порту или когда вы его не знаете. Например подобная ситуация описана в http://blog.scottlowe.org/2012/10/19/vlans-with-open-vswitch-fake-bridges/ . Для создания такого бриджа нужно указывать родительский бридж и влан.<br />
Для этого дополнительно к тем переменным что используются для реального бриджа, указываем:<br />
<pre><br />
BRIDGE=br0<br />
VID=105<br />
</pre><br />
И тогда будет создаваться фейковый бридж<br />
<br />
=== Порт типа internal ===<br />
Для его создания в options должно быть:<br />
<pre> TYPE=ovsport </pre><br />
Бридж в который должен этот порт добавиться:<br />
<pre> BRIDGE=br0 </pre><br />
В результате получится сетевой интерфейс который может управляться через утилиту ip и др.<br />
<br />
=== Порт бондинг ===<br />
Специальный тип порта для объединения 2х физических сетевых интерфейса в один.<br />
Для его создания в options должно быть<br />
<pre> TYPE=ovsbond </pre><br />
Бридж в который должен этот порт добавиться:<br />
<pre> BRIDGE=br0 </pre><br />
Также должны быть указаны не меньше 2х сетевых интерфейсов, которые должны быть добавлены в данный порт.<br />
<pre> HOST='eth1 eth2' </pre><br />
<br />
=== Общие настройки для всех типов ===<br />
Для задания всех остальных всевозможных настроек, должны использоваться переменные:<br />
'''OVS_REMOVE''' Если установлено в yes, то при отключении интерфейса, данный порт будет удален из базы данных OVS. Осторожно, т.к. некоторые параметры, например MAC будет сгенерирован заново.<br />
'''OVS_OPTIONS''' параметры которые должны быть переданы для настройки данного бриджа или порта. Возможные поля для бриджа можно посмотреть командой: <br />
<pre><br />
# ovs-vsctl list bridge<br />
_uuid : 6aac9201-4272-41cc-a7be-1a36e00f6748<br />
controller : []<br />
datapath_id : "000078e7d17fcf13"<br />
datapath_type : ""<br />
external_ids : {}<br />
fail_mode : []<br />
flood_vlans : []<br />
flow_tables : {}<br />
ipfix : []<br />
mirrors : []<br />
name : "ovsbr0"<br />
netflow : []<br />
other_config : {}<br />
ports : [1de75723-f51e-441b-8d69-e6536d9dcfad, 47988e8e-23bd-494b-bbd0-49b7fa79e23c, 58a10ab2-f344-46f9-a313-104c23ba2a8b]<br />
protocols : []<br />
sflow : []<br />
status : {}<br />
stp_enable : false<br />
</pre><br />
Тогда если мы хотим включить STP, нужно написать:<br />
<pre>OVS_OPTIONS='stp_enable=yes'</pre><br />
Для порта можно посмотреть командой:<br />
<pre><br />
# ovs-vsctl list port<br />
_uuid : 58a10ab2-f344-46f9-a313-104c23ba2a8b<br />
bond_downdelay : 0<br />
bond_fake_iface : false<br />
bond_mode : []<br />
bond_updelay : 0<br />
external_ids : {}<br />
fake_bridge : false<br />
interfaces : [987b7dfe-34b4-4d55-b9ae-dedfa05d9779]<br />
lacp : []<br />
mac : []<br />
name : "ovsport0"<br />
other_config : {}<br />
qos : []<br />
statistics : {}<br />
status : {}<br />
tag : []<br />
trunks : []<br />
vlan_mode : []<br />
</pre><br />
<br />
Если нужно настраивать дополнительно другие интерфейсы или параметры, то это делать нужно через Database Commands (см. соответствующую секцию в ovs-vsctl(8)) Это все указывается в OVS_EXTRA<br />
Например влан, тип и т.д.<br />
<pre> OVS_EXTRA='set port eth0 tag=10 -- set port eth1 trunk="1,2,15" ' </pre><br />
<br />
Данные переменные действуют для всех типов сетевых интерфейсов ovs*.<br />
<br />
== Примеры ==<br />
Простая настройка:<br />
<pre><br />
$ cat ens18/options <br />
TYPE=eth<br />
CONFIG_WIRELESS=no<br />
BOOTPROTO=static<br />
CONFIG_IPV4=yes<br />
<br />
$ cat vmbr0/options<br />
TYPE=ovsbr<br />
CONFIG_WIRELESS=no<br />
BOOTPROTO=static<br />
CONFIG_IPV4=yes<br />
ON_BOOT=yes<br />
HOST="ens18"<br />
<br />
# ovs-vsctl show<br />
6669027e-d2a5-4f23-8d36-bf279d39355c<br />
Bridge "vmbr0"<br />
Port "vmbr0"<br />
Interface "vmbr0"<br />
type: internal<br />
Port "ens18"<br />
Interface "ens18"<br />
ovs_version: "2.11.1"<br />
<br />
</pre><br />
Настройка VLAN (добавляется к предыдущим):<br />
<pre><br />
# cat vlan495/options <br />
TYPE=ovsport<br />
CONFIG_WIRELESS=no<br />
BOOTPROTO=static<br />
CONFIG_IPV4=yes<br />
BRIDGE=vmbr0<br />
VID=495<br />
<br />
# cat vlan666/options <br />
TYPE=ovsport<br />
CONFIG_WIRELESS=no<br />
BOOTPROTO=static<br />
CONFIG_IPV4=yes<br />
BRIDGE=vmbr0<br />
VID=666<br />
<br />
# ovs-vsctl show<br />
6669027e-d2a5-4f23-8d36-bf279d39355c<br />
Bridge "vmbr0"<br />
Port "vmbr0"<br />
Interface "vmbr0"<br />
type: internal<br />
Port "ens18"<br />
Interface "ens18"<br />
Port "vlan495"<br />
tag : 495<br />
Interface "vlan495"<br />
type: internal<br />
Port "vlan666"<br />
tag : 666<br />
Interface "vlan666"<br />
type: internal<br />
ovs_version: "2.11.1"<br />
</pre><br />
Однако, пока не решен {{altbug|38578}}, необходимо тэги проставить вручную:<br />
<pre><br />
# ovs-vsctl set port vlan495 tag=495<br />
# ovs-vsctl set port vlan666 tag=666<br />
</pre></div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=KESL&diff=48558KESL2020-06-04T12:21:18Z<p>Корнеечев Евгений: Перенаправление на Kaspersky Endpoint Security</p>
<hr />
<div>#REDIRECT [[Kaspersky_Endpoint_Security]]<br />
<br />
[[Категория:HOWTO]]</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Kaspersky_Endpoint_Security&diff=48557Kaspersky Endpoint Security2020-06-04T12:20:11Z<p>Корнеечев Евгений: </p>
<hr />
<div>==Kaspersky Endpoint Security for Linux==<br />
<br />
===Скачивание===<br />
Дистрибутивы (RPM-пакеты) самого антивируса и его агента всегда можно найти по ссылкам:<br />
====10 версия====<br />
https://support.kaspersky.ru/kes10linux#downloads<br />
====11 версия====<br />
https://support.kaspersky.ru/kes11linux#downloads<br />
<br />
===Установка===<br />
<br />
*копируем дистрибутивы<br />
<br />
*устанавливаем rpm <br />
<br />
*cd /opt/kaspersky/kesl/bin<br />
<br />
*./kesl-setup.pl<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Категория:Enterprise Software]]<br />
[[Категория:Полезно]]<br />
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=VNC&diff=48554VNC2020-06-04T09:10:34Z<p>Корнеечев Евгений: /* С помощью Vino */</p>
<hr />
<div>= Работа с дистрибутивами Альт Линукс по протоколу [https://ru.wikipedia.org/wiki/Virtual_Network_Computing VNC] =<br />
<br />
Данная инструкция проверена на 8-й версии дистрибутивов ALT.<br />
<br />
См. тж. [[Установка по vnc]].<br />
<br />
== С помощью xorg-extension-vnc ==<br />
<br />
1. Установите пакет {{pkg|xorg-extension-vnc}}:<br />
apt-get install xorg-extension-vnc<br />
<br />
2. Раскомментируйте строки в файле {{path|/etc/X11/xorg.conf.d/vnc.conf}}:<br />
subst 's/^#//' /etc/X11/xorg.conf.d/vnc.conf<br />
<br />
3. Укажите пароль для доступа к экрану:<br />
<source lang="text"># vncpasswd <br />
Password:<br />
Verify:</source><br />
и укажите пароль дважды. Пароль должен быть длиной не менее 6 символов и, по соображениям безопасности, при наборе не показывается. <br />
<br />
По умолчанию, необходимо записать пароль в файл /root/.vnc/passwd<br />
<br />
4. Выйдите из сеанса и запустите его снова<br />
{{note|Данный вариант настройки доступа к машине по VNC предпочтительный, так как по умолчанию есть возможность подключения не только к дефолтному :0, но и к другим экранам - например при переключении пользователя окно авторизации будет на :1, при входе под другой УЗ - его десктоп будет :2 и так далее.}}<br />
<br />
== С помощью Vino ==<br />
Данный способ протестирован на [[Workstation|Рабочей станции 8 и 9]] и в [[Starterkits]]/[[Regular]] на основе MATE. Пакет включен в Альт Рабочая станция.<br />
<br />
1. Установите пакет {{pkg|vino-mate}}:<br />
apt-get install vino-mate<br />
<br />
2. В главном меню откройте ''Параметры -> Общий доступ к рабочему столу'' или запустите от обычного пользователя:<br />
vino-preferences<br />
<br />
3. Настройте необходимые Вам параметры подключения:<br />
<br />
[[Файл:Vino-preferences.png]]<br />
<br />
4. Для первичного применения параметров необходимо перезапустить сеанс (в дальнейшем изменение настроек будет происходить мгновенно). Если пакет включен в дистрибутив - данное действие не требуется.<br />
<br />
PS: По умолчанию включено шифрование, если оно не нужно, либо Ваш VNC-клиент не поддерживает его, отключается он следующей командой:<br />
gsettings set org.gnome.Vino require-encryption false<br />
<br />
{{note|Пакет {{pkg|vino-mate}} представляет собой "форк" пакета {{pkg|vino}}, на данный момент в p8 и Sisyphus актуальная версия которого - 3.22.0, однако в ней нет удобной пользовательской настройки доступа (vino-preferences). Данный функционал был убран разработчиками, подробнее об этом [https://bugzilla.gnome.org/700070 тут]. Поэтому для DE MATE было решено вернуть последнюю версию с GUI, а именно 3.8.1 (например в Ubuntu, с ее Unity, во всех репозиториях также эта версия).}}<br />
<br />
== С помощью x11vnc ==<br />
1. Установите пакет {{pkg|x11vnc-service}} (предназначен для популярных дистрибутивов с SystemD):<br />
apt-get install x11vnc-service<br />
<br />
2. Добавьте сервис в автозапуск и запустите его:<br />
chkconfig x11vnc on<br />
service x11vnc start<br />
<br />
3. Укажите пароль для удаленного доступа (необходимо записать его в /root/.vnc/passwd):<br />
# x11vnc --storepasswd <br />
Enter VNC password: <br />
Verify password: <br />
Write password to /root/.vnc/passwd? [y]/n<br />
<br />
4. Параметры запускаемого сервисом сервера {{pkg|x11vnc}} указаны в скрипте запуска: {{path|/usr/sbin/x11vnc-start-daemon}} ({{pkg|x11vnc-service}} >= 0.2). Для внесения изменений - просто отредактируйте в нем последнюю строчку.<br />
{{todo|Данный файл не является ''%config(noreplace)'', поэтому будет перезаписан при обновлении пакета!<br />
В планах (когда потребуется внести какое-либо изменение в пакет) переместить параметры в отдельный конфигурационный файл.}}<br />
<br />
5. Примеры настройки файла {{path|/lib/systemd/system/x11vnc.service}} для запуска {{pkg|x11vnc}} при старте дисплей менеджера (до авторизации пользователей):<br />
<br />
Для дисплей менеджера {{pkg|lightdm}}:<br />
<br />
[Unit]<br />
Description=X11VNC Server<br />
After=prefdm.service<br />
<br />
[Service]<br />
User=root<br />
Restart=on-failure<br />
ExecStart=/usr/bin/x11vnc -auth /var/run/lightdm/root/:0 -dontdisconnect -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg /var/log/x11.log -rfbauth /root/.vnc/passwd<br />
<br />
[Install]<br />
WantedBy=graphical.target<br />
<br />
Для дисплей менеджера {{pkg|sddm}}:<br />
[unit]<br />
Description=X11VNC Server<br />
After=graphical.target<br />
<br />
[Service]<br />
Restart=always<br />
RestartSec=30<br />
Type=simple<br />
ExecStart=-/bin/bash -c "/usr/bin/x11vnc -display :0 -shared -dontdisconnect -many \<br />
-auth $(ls /var/run/sddm/{*}) -rfbauth /root/.vnc/passwd -o /var/log/x11.log"<br />
<br />
[Install]<br />
WantedBy=graphical.target<br />
<br />
== Многопользовательский режим (tigervnc-server) ==<br />
{{note|К имеющемуся дисплею :0 подключиться этим способом не получится. VNC-сервер запускает новые дисплеи.}}<br />
Устанавливаем пакет {{pkg|tigervnc-server}}:<br />
apt-get install tigervnc-server<br />
Есть две реализации разворачивания дополнительных X-серверов:<br />
* централизованный сервис ''vncserver'', отвечающий за работу всех виртуальных дисплеев;<br />
* несколько сервисов ''vncserver@:<номер дисплея>''<br />
Рассмотрим оба этих способа, у каждого есть свои плюсы и недостатки<br />
<br />
=== "Всё в одном сервисе" ===<br />
1. Добавьте в автозагрузку:<br />
chkconfig vncserver on<br />
<br />
2. Далее необходимо настроить виртуальные дисплеи, их количество и параметры запуска. Для это необходимо отредактировать файл /etc/sysconfig/vncservers. Пример содержимого файла:<br />
VNCSERVERS="1:user1 2:user2"<br />
VNCSERVERARGS[1]="-geometry 800x600 -depth 16"<br />
VNCSERVERARGS[2]="-geometry 800x600 -localhost"<br />
<br />
Переменные ''VNCSERVERARGS'' изменяет параметры по умолчанию для определенного дисплея (в квадратных скобках).<br />
Заданные пользователи - user1 и user2 - должны существовать в системе. Также для успешного старта VNC-сервера необходимо обязательно задать пароли (ничего общего с системными они не имеют) для этих пользователей (запишутся в ~/.vnc/passwd):<br />
# su - user1<br />
$ vncpasswd<br />
<br />
3. Запускаем сервис:<br />
service vncserver start<br />
После этого можете проверить прослушиваемые порты:<br />
# netstat -ntlp | grep vnc<br />
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 12414/Xvnc <br />
tcp 0 0 127.0.0.1:5902 0.0.0.0:* LISTEN 12522/Xvnc <br />
tcp 0 0 :::5901 :::* LISTEN 12414/Xvnc <br />
tcp 0 0 ::1:5902 :::* LISTEN 12522/Xvnc <br />
<br />
4. При подключении указываем номер дисплея (или номер порта), который соответствует необходимому пользователю:<br />
vncviewer localhost:1<br />
vncviewer localhost:5901<br />
<br />
{{note|Недостатком данного способа является то, что если у какого-либо пользователя зависнет сеанс или возникнет любая другая проблема, то починить это вы сможете только рестартом всего сервиса (в этом случае все сеансы завершаться, данные могут быть утеряны), перезапустить отдельный дисплей не получится.<br />
Плюсом же является удобство администрирования с помощью единого файла настройки /etc/sysconfig/vncservers<br />
Для небольшого количества (до 3-5) пользователей данный вариант является вполне "конкурентоспособным". Если же пользователей планируется большое количество, либо просто нужна возможность перезапуска отдельного дисплея, то воспользуйтесь вторым способом}}<br />
=== "Каждый дисплей - отдельный сервис" ===<br />
<br />
1. Скопируйте необходимое количество (= кол-во юзеров VNC) юнитов vncserver@.service (после @ подставьте требуемый номер дисплея):<br />
cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service<br />
cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:2.service<br />
<br />
2. Приведите их к следующему виду (укажите имя пользователя и его домашнюю папку):<br />
[Unit]<br />
Description=Remote desktop service (VNC)<br />
After=syslog.target network.target<br />
<br />
[Service]<br />
Type=forking<br />
User='''user1'''<br />
<br />
# Clean any existing files in /tmp/.X11-unix environment<br />
ExecStartPre=-/usr/bin/vncserver -kill %i<br />
ExecStart=/usr/bin/vncserver %i<br />
PIDFile=/home/'''user1'''/.vnc/%H%i.pid<br />
ExecStop=-/usr/bin/vncserver -kill %i<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
Для изменения дефолтных параметров подключения допишите необходимые в команде ExecStart.<br />
<br />
3. Обновите конфигурацию сервисов и добавьте в автозагрузку необходимые из созданных:<br />
systemctl daemon-reload<br />
chkconfig vncserver@:1 on<br />
chkconfig vncserver@:2 on<br />
<br />
4. Задайте пароль для всех пользователей (см. [[VNC#.22.D0.92.D1.81.D1.91_.D0.B2_.D0.BE.D0.B4.D0.BD.D0.BE.D0.BC_.D1.81.D0.B5.D1.80.D0.B2.D0.B8.D1.81.D0.B5.22|1.3.1.2]])<br />
<br />
5. Теперь каждым пользовательским сеансом/дисплеем можно управлять отдельно:<br />
service vncserver@:2 restart<br />
<br />
{{note|Используйте SSH-туннель для шифрации трафика:<br />
* добавьте в параметры запуска VNC-сервера ключ -localhost (запрещает подключение удаленным пользователям, не используя SSH туннель)<br />
* запустите на сервере сервис sshd<br />
* на клиентской машине создайте туннель: {{cmd|ssh <server's IP-address> -p <SSH-port> -L 5902:localhost:5902}}<br />
* подключайтесь с клиентской машины (в другой консоли): {{cmd|vncviewer localhost:5902}}}}<br />
<br />
[[Категория:HOWTO]]<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%9A%D0%B8%D0%BE%D1%81%D0%BA&diff=48527Киоск2020-05-29T14:59:14Z<p>Корнеечев Евгений: /* WEB-киоск */</p>
<hr />
<div>=Описание=<br />
Режим «киоск» служит для ограничения прав пользователей в системе.<br />
<br />
Профиль киоска – файл .desktop (обычно из {{path|/usr/share/applications}}), размещаемый в каталог {{path|/etc/kiosk}}. Задать профиль киоска для пользователя можно в модуль ЦУС [[Alterator-users|«Локальные учетные записи» alterator-users]] (только GUI).<br />
<br />
В качестве примера рассмотрим настройку режима «киоск» для пользователя kiosk. Пользователю kiosk будет разрешено использовать только веб-браузер firefox. <br />
<br />
Для настройки режима киоска для пользователя, необходимо выполнить следующие действия:<br />
#Создать каталог {{path|/etc/kiosk}} (если он еще не создан):<br />
#:<source lang="text" highlight="1"># mkdir /etc/kiosk</source><br />
#Скопировать файл firefox.desktop из /usr/share/applications, в каталог /etc/kiosk:<br />
#:<source lang="text" highlight="1"># cp /usr/share/applications/firefox.desktop /etc/kiosk/</source><br />
#Если необходимо чтобы при запуске веб-браузера открывалась определенная страница, необходимо внести изменения в файл /etc/kiosk/firefox.desktop:<br />
#:<source lang="text" highlight="1"># vim /etc/kiosk/firefox.desktop<br />
[Desktop Entry]<br />
Exec=firefox http://<адрес_сайта></source><br />
#Запустить ЦУС и в модуле «Локальные учетные записи», выбрав учетную запись kiosk (если учетной записи не существует, необходимо ее создать), в выпадающем списке «Режим киоска» выбрать пункт «Веб-браузер (firefox.desktop)» и нажать кнопку «Применить»:<br />
#:[[Изображение:Kiosk.png|Режим «киоск» для пользователя kiosk]]<br />
#Завершить сеанс текущего пользователя и войти в систему используя учетную запись пользователя kiosk. Пользователю kiosk будет доступен только веб-браузер firefox, по умолчанию будет загружена страница, адрес которой указан в параметре Exec в файле {{path|/etc/kiosk/firefox.desktop}}.<br />
<br />
Так можно запускать любое приложение.<br />
<br />
{{Note|Приложение в режиме киоска будет запускаться не на полном экране, поэтому используйте параметры запуска приложения в режиме киоска (например, {{cmd|chromium --kiosk}}) или разверните окно иными способами.}}<br />
=Примеры=<br />
Исходя из примечания выше, лучше всего сделать свой desktop-файл и скрипт, содержащий требуемое ПО, который будет запускаться.<br />
Ниже представлены примеры. {{cmd|marco --replace &}} в обоих случаях запускает менеджер окон, который позволит программе развернуться на весь экран.<br />
====WEB-киоск====<br />
Файл {{path|/etc/kiosk/webkiosk.desktop}}:<br />
<source lang="bash">#!/usr/bin/env xdg-open<br />
[Desktop Entry]<br />
Version=1.0<br />
Type=Application<br />
Terminal=false<br />
Exec=/usr/local/bin/webkiosk<br />
Name=WEB-kiosk<br />
Icon=start</source><br />
Файл {{path|/usr/local/bin/webkiosk}} (его необходимо сделать исполняемым: {{cmd|chmod +x /usr/local/bin/webkiosk}}):<br />
<source lang="bash"><br />
#!/bin/bash<br />
marco --replace &<br />
chromium --kiosk --incognito https://ya.ru</source><br />
<br />
====RDP-киоск====<br />
Файл {{path|/etc/kiosk/rdpkiosk.desktop}}:<br />
<source lang="bash">#!/usr/bin/env xdg-open<br />
[Desktop Entry]<br />
Version=1.0<br />
Type=Application<br />
Terminal=false<br />
Exec=/usr/local/bin/rdpkiosk<br />
Name=RDP-kiosk<br />
Icon=start</source><br />
Файл {{path|/usr/local/bin/rdpkiosk}}:<br />
<source lang="bash"><br />
#!/bin/bash<br />
marco --replace &<br />
xfreerdp /v:192.168.0.250 /t:'TS' /f +clipboard /drives /bpp:32 /gdi:sw /cert-ignore +auto-reconnect -sec-nla<br />
/sbin/poweroff #позволит выключать ПК при выходе из терминального сеанса</source><br />
<br />
[[Категория:HOWTO]]<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Kiosk&diff=48511Kiosk2020-05-28T13:50:48Z<p>Корнеечев Евгений: Перенаправление на Киоск</p>
<hr />
<div>#REDIRECT [[Киоск]]<br />
<br />
[[Категория:HOWTO]]</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Kaspersky_Endpoint_Security&diff=48472Kaspersky Endpoint Security2020-05-20T10:04:20Z<p>Корнеечев Евгений: /* Скачать */</p>
<hr />
<div>==Kaspersky Endpoint Security 10 для Linux==<br />
<br />
===Скачать===<br />
<br />
https://support.kaspersky.ru/kes10linux#downloads<br />
<br />
Дистрибутив: <br />
https://products.s.kaspersky-labs.com/endpoints/keslinux10/10.1.1.6421/multilanguage-10.1.1.6421/abbe6c05/kesl-10.1.1-6421.x86_64.rpm<br />
<br />
Агент администрирования:<br />
https://products.s.kaspersky-labs.com/endpoints/keslinux10/10.1.1.6421/multilanguage-10.1.1.6421/f558e9ec/klnagent64-11.0.0-29.x86_64.rpm<br />
<br />
Свежая версия на сайте:<br />
https://www.kaspersky.ru/small-to-medium-business-security/downloads/endpoint<br />
(для Red Hat Enterprise Linux)<br />
<br />
===Установка===<br />
<br />
*копируем дистрибутивы<br />
<br />
*устанавливаем rpm <br />
<br />
*cd /opt/kaspersky/kesl/bin<br />
<br />
*./kesl-setup.pl<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Категория:Enterprise Software]]<br />
[[Категория:Полезно]]<br />
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Java/OracleSDK/Install&diff=48459Java/OracleSDK/Install2020-05-18T14:36:35Z<p>Корнеечев Евгений: </p>
<hr />
<div>1. Нужны следующие пакеты (собранные по [[Java/OracleSDK|инструкции]]):<br />
java-1.8.0-oracle-*<br />
java-1.8.0-oracle-headless-*<br />
fonts-ttf-java-1.8.0-oracle-*<br />
Если необходимо использование Java в браузере (возможно только в {{pkg|firefox-gost}}, на момент написания статьи {{pkg|firefox-esr}} уже отказывался работать с java), еще необходим пакет:<br />
mozilla-plugin-java-1.8.0-*<br />
<br />
2. Переходим в папку со скачанными пакетами и запускаем установку:<br />
$ su -<br />
# cd /path/to/rpms<br />
# apt-get install *java*.rpm<br />
<br />
3. Проверка версии:<br />
$ java -version<br />
java version "1.8.0_161"<br />
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)<br />
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)<br />
<br />
Работу JavaPlugin в Firefox можно проверить на странице: https://java.com/en/download/installed8.jsp<br />
<br />
4. Если же при проверке версии, Вы обнаружили Java OpenJDK (из репозитория ALT), то нужно удалить пакеты:<br />
# apt-get remove java-1.8.0-openjdk-headless<br />
<br />
[[Категория:HOWTO]]</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=SAP_GUI_for_Java&diff=48458SAP GUI for Java2020-05-18T14:34:44Z<p>Корнеечев Евгений: </p>
<hr />
<div>Дистрибутив SAP GUI for Linux предоставляется только в виде Java приложения.<br />
<br />
Одним из требований является наличие в установленной java поддержки JavaFX. Для этого необходимо установить Oracle JDK, следующие пакеты:<br />
java-1.8.0-oracle-*<br />
java-1.8.0-oracle-headless-*<br />
fonts-ttf-java-1.8.0-oracle-*<br />
<br />
Их можно либо собрать по [[Java/OracleSDK|этой инструкции]]. Инструкция по переходу на Oracle JDK [[Java/OracleSDK/Install|здесь]]<br />
<br />
===Инструкция по установке SAP GUI for Java:===<br />
<br />
1. Установите необходимые java-пакеты:<br />
cd /path/to/rpms<br />
apt-get install java-1.8.0-oracle-* java-1.8.0-oracle-headless-* fonts-ttf-java-1.8.0-oracle-*<br />
<br />
2. После этого скачайте распакуйте архив с дистрибутивом программы (доступен только по логину/паролю на сайте SAP).<br />
<br />
3. Далее установка самого клиента (из-под локального пользователя):<br />
cd <path_to_distr>/PRES2/GUI/JAVA<br />
java -jar PlatinGUI740Linux_7.JAR install # имя jar-файла может и не совпадать<br />
<br />
4. В открывшемся окне далее-далее (по умолчанию устанавливается в ~/SAPClients)<br />
<br />
5. После установки в "Пуск" - "Все приложения" - "Офис" появится ярлык запуска - "SAP GUI 7.40 rev 7". <br />
<br />
Либо в директории с программой исполняемый файл ~/SAPClients/SAPGUI7.40rev7/bin/'''guilogon'''<br />
<br />
6. Быстрый вариант настройки соединения:<br />
* Нажимаем в программе Файл -> Новое соединение<br />
* В открывшемся окне переходим на вкладку "Расширенно"<br />
* Ставим чекбокс "Экспертный режим"<br />
* Вводим адрес и порт сервера в формате ''conn=/H/<адрес сервера>/S/<порт>''. Например:<br />
conn=/H/appserver.acme.com/S/3200<br />
* После сохранения в главном окне появится созданное соединение, останется только подключиться к нему.<br />
----<br />
TODO: настройка в обычном режиме через GUI<br />
<br />
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}<br />
[[Категория:HOWTO]]</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=PVE&diff=48031PVE2020-03-24T11:51:09Z<p>Корнеечев Евгений: /* Создание кластера PVE */ lxcfs</p>
<hr />
<div>= Что это такое =<br />
Proxmox Virtual Environment (PVE) — средство управления виртуальными окружениями на базе гипервизора [[ruwp:KVM|KVM]] и системы контейнерной изоляции [[ruwp:LXC|LXC]]. Строго говоря, PVE это не система виртуализации, а инструментарий управления средой, в которой выполняются виртуальные окружения KVM и LXC. Основными компонентами среды являются:<br />
<br />
* физические серверы, на которых выполняются процессы гипервизора KVM, и процессы, работающие в контейнерах LXC;<br />
* хранилища данных, в которых хранятся образы установочных дисков, образы дисков виртуальных машин KVM и файлы, доступные из контейнеров LXC;<br />
* виртуальные сетевые коммутаторы, к которым подключаются сетевые интерфейсы виртуальных окружений.<br />
<br />
= Как это устроено =<br />
Собственно PVE состоит из веб-интерфейса, распределённого хранилища данных конфигурации виртуальных окружений, а также утилит конфигурирования, работающих в командной строке. Все эти инструменты предназначены только для управления средой выполнения виртуальных окружений. За формирование среды отвечают компоненты системы, не входящие непосредственно в состав PVE. В первую очередь это сетевая и дисковая подсистемы, а также механизмы аутентификации.<br />
<br />
== Веб-интерфейс ==<br />
Веб-интерфейс пользователя PVE предназначен для решения следующих задач:<br />
<br />
* создание, удаление, настройка виртуальных окружений;<br />
* управление физическими серверами;<br />
* мониторинг активности виртуальных окружений и использования ресурсов среды;<br />
* фиксация состояний (snapshot-ы), создание резервных копий и шаблонов виртуальных окружений, восстановление виртуальных окружений из резервных копий.<br />
<br />
Кроме решения пользовательских задач, веб-интерфейс PVE можно использовать ещё и для встраивания в интегрированные системы управления — например, в панели управления хостингом. Для этого он имеет развитый RESTful API с JSON в качестве основного формата данных.<br />
<br />
Для аутентификации пользователей веб-интерфейса можно использовать как собственные механизмы PVE, так и PAM. Использование PAM даёт возможность, например, интегрировать PVE в домен аутентификации.<br />
<br />
== Хранилище данных ==<br />
В случае локальной установки PVE для размещения данных виртуальных окружений можно дополнительно ничего не настраивать и использовать локальную файловую систему сервера. Но в случае кластера из нескольких серверов имеет смысл настроить сетевую или распределённую сетевую файловую систему, обеспечивающую параллельный доступ к файлам со всех серверов, на которых выполняются процессы виртуальных окружений. В качестве таких файловых систем могут выступать, например, [[ruwp:NFS|NFS]] или [[ruwp:CEPH|CEPH]].<br />
==== Подключение общего хранилища iSCSI (Multipath) с использованием LVM ====<br />
Настройка iSCSI-target на базе ALT подробно описана в [[GFS2 на iSCSI с Multipath#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_iSCSI_target|этой статье]].<br><br />
{{Attention|iSCSI initiator настраивается средствами ALT PVE.<br> Сервис iscsid запускается средствами ALT PVE и не должен присутствовать в атозагрузке}}<br />
Исходные данные:<br><br />
* Настроенный кластер ALT PVE<br />
* Настроенный iSCSI target<br />
Для добавления iSCSI устройства надо зайти в web-интерфейс ALT PVE в раздел Datacenter -> Storage -> Add -> iSCSI:<br><br />
[[Файл:Add iSCSI.png|Добавление iSCSI-устройства]]<br />
*ID: Имя добавляемого устройства, может быть любым, но изменить его позже нельзя<br />
*Portal: Адрес iSCSI сервера<br />
*Target: Выпадающий список ресурсов, отдаваемых iSCSI сервером<br />
*Nodes: Каким нодам будет доступно данное хранилище<br />
*Enable: Вкл/Выкл хранилище<br />
*Use LUNs directly: Использование LUN напрямую, галочку надо снять<br />
Ту же процедуру надо проделать для второго адреса iSCSI сервера.<br><br />
После этого на всех нодах появятся два блочных устройства.<br><br />
Далее необходимо настроить Multipath по этой [[GFS2 на iSCSI с Multipath#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_Multipath|инструкции]]<br><br />
Далее переходим в консоль на любой ноде для настройки LVM.<br><br />
Для корректной работы LVM и Multipath говорим LVM не сканировать наши iSCSI-диски (sd*):<br><br />
В файл {{path|/etc/lvm/lvm.conf}} добавляем:<br />
<pre>devices {<br />
...<br />
filter = [ "r|/dev/sd|" ]<br />
...<br />
}</pre><br />
Инициализируем блочные устройства для использования в LVM:<br />
<pre># pvcreate /dev/mapper/mpatha</pre><br />
Создаём группу томов 'sharedsv':<br />
<pre># vgcreate sharedsv /dev/mapper/mpatha</pre><br />
Далее переходим в web-интерфейс ALT PVE в раздел Datacenter -> Storage -> Add -> LVM:<br><br />
[[Файл:ALT PVE add LVM.png]]<br />
*ID: Имя добавляемого устройства, может быть любым, но изменить его позже нельзя<br />
*Base Storage: Выбираем 'Existing volume groups'<br />
*Volume group: Выпадающий список LVM разделов, выбираем созданный нами 'sharedsv'<br />
*Content: Что разрешено хранить на данном хранилище<br />
*Nodes: Каким нодам будет доступно данное хранилище<br />
*Enable: Вкл/Выкл хранилище<br />
*Shared: Делает хранилище доступным для всех нод<br />
При таком подключении LVM хранилище общедоступно, виртуальные машины могут хранить на нем образы дисков и доступна Online-миграция виртуальных машин между нодами.<br />
<br />
== Сетевая подсистема ==<br />
В отличие от хранилища данных, сетевая подсистема требует специальной настройки даже в случае локальной установки PVE. Это обусловлено тем, что сетевые интерфейсы виртуальных окружений должны подключаться к какому-то виртуальному же устройству, обеспечивающему соединение с общей сетью передачи данных. Обычно в качестве такого устройства выступает Ethernet-мост.<br />
<br />
= Установка и настройка PVE на Альт Сервер Виртуализации 9 =<br />
<br />
В качестве сервера для развертывания PVE удобно использовать дистрибутив Альт Сервер Виртуализации (Сервер виртуализации). Он уже содержит все необходимые компоненты. <br />
<br />
{{Note| Компоненты PVE будут установлены в систему, если при установке дистрибутива выбрать профиль '''Виртуальное окружение Proxmox'''.}}<br />
<br />
==Настройка узлов кластера==<br />
<br />
PVE должен быть установлен на всех узлах. Следует убедиться, что каждый узел установлен с окончательным именем хоста и IP-конфигурацией. Изменение имени хоста и IP-адреса невозможно после создания кластера. <br />
<br />
{{Note|Локальная установка — частный случай кластера из одного узла. }}<br />
===Настройка преобразования имен===<br />
Необходимо обеспечить взаимно однозначное прямое и обратное преобразование имен для всех узлов кластера. Крайне желательно использовать DNS, в крайнем случае, можно обойтись соответствующими записями в локальных файлах {{path|/etc/hosts}}: <br />
<br />
<source lang="text" highlight="1-3"># echo "192.168.88.186 pve01.localdomain pve01" >> /etc/hosts<br />
# echo "192.168.88.90 pve02.localdomain pve02" >> /etc/hosts<br />
# echo "192.168.88.70 pve03.localdomain pve03" >> /etc/hosts<br />
</source><br />
{{Note| Имя машины не должно присутствовать в файле {{path|/etc/hosts}} разрешающимся в 127.0.0.1. }}<br />
===Настройка сетевой подсистемы===<br />
На всех узлах кластера необходимо настроить Ethernet-мост. <br />
<br />
{{Attention|Мосту должно быть назначено имя vmbr0 и оно должно быть одинаково на всех узлах.}}<br />
<br />
Для настройки Ethernet-моста с именем vmbr0, можно выполнить следующие команды:<br />
<br />
<source lang="text" highlight="1-4"># mkdir /etc/net/ifaces/vmbr0<br />
# cp /etc/net/ifaces/enp0s3/* /etc/net/ifaces/vmbr0/<br />
# rm -f /etc/net/ifaces/enp0s3/{i,r}* <br />
# cat <<EOF > /etc/net/ifaces/vmbr0/options BOOTPROTO=static CONFIG_WIRELESS=no CONFIG_IPV4=yes HOST='enp0s3' ONBOOT=yes TYPE=bri EOF<br />
</source><br />
Имя интерфейса, обозначенного здесь как enp0s3, следует указать в соответствии с реальной конфигурацией сервера. <br />
<br />
IP-адрес для интерфейса будет взят из {{path|/etc/net/ifaces/enp0s3/ipv4address}}. <br />
<br />
В опции HOST файла {{path|/etc/net/ifaces/vmbr0/options}} нужно указать те интерфейсы, которые будут входить в мост. Если в него будут входить интерфейсы, которые до этого имели IP-адрес (например, enp0s3), то этот адрес должен быть удален (например, можно закомментировать содержимое файла {{path|/etc/net/ifaces/enp0s3/ipv4address}}).<br />
<br />
Для того, чтобы изменения вступили в силу необходим перезапуск сервиса network:<br />
<br />
<source lang="text" highlight="1"># systemctl restart network</source><br />
<br />
При старте сети сначала поднимаются интерфейсы, входящие в мост, затем сам мост (автоматически).<br />
<br />
==Создание кластера PVE==<br />
Кластер не создается автоматически на только что установленном узле PVE. Он должен быть создан через интерфейс командной строки с любого из узлов PVE, который будет частью кластера. После того как кластер создан и узлы добавлены в этот кластер, большая часть управления может выполняться через графический интерфейс. <br />
<br />
Для правильного функционирования кластера необходимо как минимум три узла. С тремя узлами возможен кворум, который позволяет кластерам обеспечивать работоспособность и функционирование должным образом.<br />
<br />
На «головном» узле кластера необходимо выполнить команды инициализации конкретного кластера PVE, в данном случае — «pve», выполнив команды (это можно сделать и из веб-интерфейса Datacenter -> Cluster -> Create claster, перед этим запустив все необходимые службы (см.ниже)):<br />
<br />
<source lang="text" highlight="1-2"># systemctl start pve-cluster<br />
# pvecm create pve<br />
</source><br />
<br />
Проверка:<br />
<br />
<source lang="text" highlight="1"># pvecm status<br />
Quorum information<br />
------------------<br />
Date: Fri Sep 27 16:29:06 2019<br />
Quorum provider: corosync_votequorum<br />
Nodes: 1<br />
Node ID: 0x00000001<br />
Ring ID: 1/4<br />
Quorate: Yes<br />
<br />
Votequorum information<br />
----------------------<br />
Expected votes: 1<br />
Highest expected: 1<br />
Total votes: 1<br />
Quorum: 1<br />
Flags: Quorate<br />
<br />
Membership information<br />
----------------------<br />
Nodeid Votes Name<br />
0x00000001 1 192.168.88.186 (local)<br />
</source><br />
<br />
Команда создания кластера создает файл настройки {{path|/etc/pve/corosync.conf}}. По мере добавления узлов в кластер файл настройки будет автоматически пополняться информацией об узлах. <br />
<br />
Для добавления узлов в кластер, необходимо на «подчинённых» узлах выполнить следующие команды:<br />
<br />
<source lang="text" highlight="1-2"># systemctl start pve-cluster<br />
# pvecm add pve01<br />
</source><br />
<br />
где pve01 — имя или ip-адрес «головного» узла.<br />
При добавлении узла в кластер, потребуется ввести пароль администратора главного узла кластера:<br />
<br />
<source lang="text" highlight="1"># pvecm add 192.168.88.186<br />
Please enter superuser (root) password for '192.168.88.186':<br />
Password for root@192.168.88.186: ***<br />
Establishing API connection with host '192.168.88.186'<br />
Login succeeded.<br />
Request addition of this node<br />
Join request OK, finishing setup locally<br />
stopping pve-cluster service<br />
backup old database to '/var/lib/pve-cluster/backup/config-1573727779.sql.gz<br />
waiting for quorum...OK<br />
(re)generate node files<br />
generate new node certificate<br />
merge authorized SSH keys and known hosts<br />
generated new node certificate, restart pveproxy and pvedaemon services<br />
successfully added node 'pve03' to cluster.<br />
</source><br />
После добавления узлов в кластер, файл настройки кластера в {{path|/etc/pve/corosync.conf}} должен содержать информацию об узлах кластера.<br />
<br />
На всех узлах кластера необходимо запустить службы кластера и добавить их в список служб, запускаемых при старте узла:<br />
<br />
<source lang="text" highlight="1-2"># systemctl start lxc lxcfs lxc-net lxc-monitord pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy<br />
# systemctl enable corosync lxc lxcfs lxc-net lxc-monitord pve-cluster pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy pve-guests<br />
</source><br />
Дальнейшие настройки кластера удобно делать через веб-интерфейс. <br />
<br />
Веб-интерфейс PVE доступен по адресу https://<внешний-ip-адрес>:8006. Потребуется пройти аутентификацию (логин по умолчанию: root, пароль указывается в процессе установки): <br />
<br />
[[Изображение:Pve_auth.png|Аутентификация в веб-интерфейсе PVE]]<br />
<br />
= Установка и настройка PVE =<br />
В качестве сервера для развёртывания PVE нужно использовать серверный дистрибутив Альт на базе 8-й платформы и доустановить необходимые пакеты штатным способом любым штатным способом ({{cmd|apt-get}}, {{cmd|aptitude}}, {{cmd|synaptic}}) установить пакет {{cmd|pve-manager}}. Все необходимые компоненты при этом будут установлены автоматически. Также следует убедиться в том, что пакет systemd обновлён до версии, находящейся в репозитории P8.<br />
<pre><br />
На всех нодах:<br />
# apt-get install pve-manager<br />
</pre><br />
Рассмотрим настройку кластера PVE. Локальную установку будем считать частным случаем кластера из одного узла.<br />
<br />
== Настройка сетевой подсистемы ==<br />
: Если в файле options интерфейса не задан TYPE=, pve-manager завершается с ошибкой<br />
<br />
Сначала на всех узлах кластера настроим Ethernet-мост в соответствии с [[Etcnet#Настройка Ethernet-моста|руководством]]:<br />
<br />
<pre><br />
#ip=$(hostname -i)<br />
#cat > /etc/net/ifaces/ens18/options << EOF<br />
TYPE=eth<br />
EOF<br />
#mkdir -p /etc/net/ifaces/vmbr0<br />
#cat > /etc/net/ifaces/vmbr0/options << EOF<br />
BOOTPROTO=static<br />
TYPE=bri<br />
HOST='ens18'<br />
CONFIG_WIRELESS=no<br />
CONFIG_IPV4=yes<br />
EOF<br />
#cat > /etc/net/ifaces/vmbr0/ipv4address << EOF<br />
$ip/21<br />
EOF<br />
#cat > /etc/net/ifaces/vmbr0/ipv4route << EOF<br />
default via 10.88.8.1<br />
EOF<br />
cat > /etc/net/ifaces/vmbr0/resolv.conf << EOF<br />
search example.com test.com<br />
nameserver 10.0.0.0<br />
EOF<br />
# cat <<EOF > /etc/net/ifaces/vmbr0/brctl<br />
stp AUTO off<br />
setfd AUTO 0<br />
EOF<br />
</pre><br />
<br />
Имя интерфейса, обозначенного здесь как ens18, следует указать в соответствии с реальной конфигурацией сервера.<br />
<br />
{{Attention|Данная последовательность команд приводит к желаемому результату только в том случае, если интерфейс, который является хостом для моста, ранее не настраивался. В противном случае необходимо также удалить или очистить ipv4address, ipv4route и resolv.conf, иначе могут возникнуть проблемы при дальнейшей настройке. }}<br />
<br />
При установленных пакетах {{pkg|alterator-net-eth}} и {{pkg|alterator-net-bridge}} вместо всего этого можно просто воспользоваться web-интерфейсом.<br />
{{Attention|При этом нужно учесть, что мост, созданный через веб-интерфейс, будет иметь имя br*, в то время как для PVE стандартом является vmbr*. Это может приводить к труднодиагностируемым и трудноразрешимым проблемам, препятствующим нормальному запуску PVE}}<br />
<br />
Далее необходимо обеспечить взаимно однозначное прямое и обратное преобразование имён для всех узлов кластера. Крайне желательно использовать DNS, но в крайнем случае можно обойтись соответствующими записями в локальных файлах {{path|/etc/hosts}}:<br />
<br />
<pre><br />
# echo "10.88.8.251 pve1.localdomain pve1" >> /etc/hosts<br />
# echo "10.88.8.252 pve2.localdomain pve2" >> /etc/hosts<br />
# echo "10.88.8.253 pve3.localdomain pve3" >> /etc/hosts<br />
</pre><br />
<br />
При этом имя машины '''НЕ''' должно присутствовать в файле /etc/hosts, разрешающимся в 127.0.0.1!<br />
<br />
== Настройка взаимодействия компонентов PVE ==<br />
В качестве транспорта для передачи команд между узлами кластера применяется протокол SSH.<br />
Для передачи команд между узлами кластера необходимо обеспечить взаимную беспарольную аутентификацию пользователя root. Это можно сделать вручную, а можно при добавлении нового узла в кластер PVE разрешить на «ведущем» узле вход пользователя root по паролю и ввести пароль. После этого взаимная беспарольная аутентификация root будет настроена автоматически утилитами PVE, и вход root по паролю можно будет снова отключить.<br />
<br />
Важно понимать, что в сконфигурированном кластере PVE все узлы равноправны. «Ведущим», «головным» и так далее один из узлов становится только в момент добавления в кластер нового узла. После добавления новый узел может стать таким же ведущим при проведении следующей процедуры добавления очередного узла в кластер.<br />
<br />
Теперь осталось настроить ещё два компонента системы, которые утилиты PVE пока не могут полностью автоматически настроить при запуске кластера. Это демон {{cmd|rrdcached}}, отвечающий за хранение данных мониторинга активности подсистем кластера, и {{cmd|corosync}} — комплекс ПО, обеспечивающий в пределах кластера элементы высокой доступности.<br />
<pre><br />
Выполнить на всех нодах:<br />
# sh /usr/share/doc/pve-cluster/pve-firsttime<br />
# rm -f /etc/corosync/corosync.conf<br />
</pre><br />
Для версии pve-cluster 6.0 и выше:<br />
<pre><br />
# rm -f /etc/corosync/corosync.conf<br />
</pre><br />
<br />
Конфигурационный файл {{cmd|corosync}} после этого будет создан автоматически при инициализации кластера PVE.<br />
<br />
== Запуск служб кластера ==<br />
Запускаем службы кластера и настраиваем их автоматический запуск при старте узла:<br />
<br />
<pre><br />
# systemctl start ntpd rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target<br />
# systemctl enable ntpd rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target<br />
</pre><br />
<br />
Для версии 6.0 (в связи с заменой ntpd на chrony):<br />
<pre><br />
# systemctl start chronyd rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target<br />
# systemctl enable chronyd rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target<br />
</pre><br />
Также на версии 6.0 может потребоваться предварительно доустановить nfs-clients<br />
<br />
Далее, на «головном» (см. выше) узле кластера выполняем команды собственно инициализации конкретного кластера PVE, в данном случае — «mypve»:<br />
{{Attention|Если после переустановки pve не возможно инициализировать кластер: cluster config '/etc/pve/corosync.conf' already exists удалите файл /etc/pve/corosync.conf }}<br />
<pre><br />
# systemctl start pve-cluster<br />
# ip=$(hostname -i)<br />
# pvecm create pve --ring0_addr $ip<br />
<br />
Для версии pve-cluster 6.0 и выше:<br />
# systemctl start pve-cluster<br />
# ip=$(hostname -i)<br />
# pvecm create pve<br />
</pre> <br />
<br />
Если на данном этапе получили ошибку, загляните на форум за [https://forum.altlinux.org/index.php?topic=43400.0 возможным решением]<br />
<br />
На «подчинённых» (см. выше) узлах:<br />
{{Attention|Если при добавлении узла возникает ошибка: * cluster config '/etc/pve/corosync.conf' already exists<br />
необходимо добавить опцию -force (В версии 6.0.7 данной опции нет, что подтверждает man) }}<br />
<pre><br />
ip=$(hostname -i)<br />
systemctl start pve-cluster<br />
pvecm add 10.88.10.251 --ring0_addr $ip<br />
<br />
Для версии pve-cluster 6.0 и выше:<br />
systemctl start pve-cluster<br />
pvecm add 10.88.10.251 --use_ssh<br />
</pre><br />
<br />
Далее, запускаем остальные службы и добавляем их в список служб, запускаемых при старте узла:<br />
<br />
<pre><br />
# systemctl start lxc lxc-net lxc-monitord pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy<br />
# systemctl enable corosync lxc lxc-net lxc-monitord pve-cluster pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy pve-guests<br />
</pre><br />
<br />
Дальнейшие настройки кластера удобно делать через веб интерфейс.<br />
<br />
[[Файл:Pve-first-login.png|900px|Экран входа пользователя в веб-интерфейс PVE]]<br />
<br />
= Применение PVE =<br />
<br />
В ходе работы с веб-интерфейсом PVE оператору приходится иметь дело со следующими основными объектами: физическими узлами, виртуальными окружениями, хранилищами данных и субъектами авторизации. Так как PVE является средством управления виртуальными окружениями, рассматривать взаимодействие компонентов мы будем относительно них. Виртуальные окружения под управлением PVE бывают двух типов: полностью виртуализированные, управляемые гипервизором kvm, и изолированные окружения выполняющиеся непосредственно на основном ядре ОС физического узла. Первые в терминах PVE называются VM (виртуальные машины), а вторые — CT (контейнеры, ConTainers). Начнём с VM.<br />
<br />
== VM: виртуальные машины kvm ==<br />
<br />
Виртуальные машины, управляемые гипервизором kvm, с точки зрения операционной системы физического узла, на котором они выполняются, представляют собой один процесс гипервизора kvm. Они взаимодействуют с физическим оборудованием не напрямую, а только через гипервизор. Всё оборудование, которое доступно операционной системе внутри виртуальной машины, включая процессор и память, является виртуальным. Даже виртуальная сетевая карта подключается виртуальным кабелем к виртуальному коммутатору. Дисковые контроллеры тоже являются виртуальными, а дисковые накопители обычно представляют собой файлы на файловой системе физического узла, на котором выполняется процесс гипервизора.<br />
<br />
=== Хранилища данных ===<br />
<br />
В случае, когда PVE управляет не одним физическим узлом, а кластером физических узлов, должна обеспечиваться возможность миграции VM с одного физического узла на другой. Миграция представляет собой заморозку состояния VM на одном узле, перенос данных и конфигурации на другой узел, и разморозку состояния VM на новом месте. Так как виртуальные дисковые накопители VM могут занимать значительный объём, удобно в пределах среды виртуализации PVE оперировать не локальными файловыми системами физических узлов, а хранилищами данных, доступными со всех узлов кластера. Кроме того, очень удобно, когда образы загрузочных инсталляционных дисков ОС, которые мы развёртываем на виртуальных машинах, также были доступны сразу на всех узлах кластера. Чтобы не приходилось копировать сотни мегабайт файлов .iso с машины на машину, когда нам захочется развернуть несколько однотипных VM на разных физических узлах.<br />
<br />
Хранилищами данных удобно управлять через веб-интерфейс. В качестве бэкенда хранилищ PVE может использовать:<br />
<br />
* сетевые файловые системы, в том числе распределённые: NFS, CEPH, GlusterFS;<br />
* локальные системы управления дисковыми томами: LVM, ZFS;<br />
* удалённые (iSCSI) и локальные дисковые тома;<br />
* локальные дисковые каталоги.<br />
<br />
Сетевые файловые системы подходят для организации распределённых хранилищ данных, доступных со всех узлов кластера. Остальные могут использоваться только в качестве локальных хранилищ, доступных в пределах одного узла.<br />
<br />
[[Файл:Pve-storage-types.png|900px|Выбор бэкенда хранилища данных]]<br />
<br />
При создании каждому хранилищу данных присваивается роль или набор ролей. Например, хранение контейнеров, образов виртуальных дисков, файлов .iso и так далее. Список возможных ролей зависит от бэкенда хранилища. Например, для NFS или каталога локальной файловой системы доступны любые роли или наборы ролей.<br />
<br />
[[Файл:Pve-storage-roles.png|900px|Выбор ролей хранилища данных]]<br />
<br />
Сразу после инициализации кластера в пределах каждого из узлов нам доступно одно локальное хранилище данных. Этого уже вполне достаточно для начала работы.<br />
<br />
=== Создание виртуальной машины ===<br />
<br />
Прежде чем создать в интерфейсе PVE виртуальную машину (VM), необходимо определиться со следующими моментами:<br />
<br />
* откуда будет загружен инсталлятор ОС, которую мы будем устанавливать внутрь виртуальной машины;<br />
* на каком физическом узле будет выполняться процесс гипервизора kvm;<br />
* на каком хранилище данных будут располагаться образы дисков виртуальной машины.<br />
<br />
Все остальные параметры VM относятся к конфигурации виртуального компьютера и могут быть определены по ходу процесса создания VM.<br />
<br />
Так как хранилища данных у нас пока только локальные, определимся с физическим узлом на котором будет создано виртуальное окружение. Чтобы установить ОС на виртуальную машину, расположенную на этом узле, нужно обеспечить возможность загрузки инсталлятора на этой виртуальной машине. Для этого загрузим ISO-образ инсталлятора в хранилище данных выбранного физического узла. Это также удобно делать через веб-интерфейс.<br />
<br />
[[Файл:Pve-iso-pick.png|900px|Загрузка файла .iso в хранилище данных]]<br />
<br />
Теперь, когда все предварительные действия выполнены, нажимаем в веб-интерфейсе PVE кнопку «Создать VM» в правом верхнем углу.<br />
<br />
[[Файл:Pve-vm-create-basic.png|900px|Добавление новой виртуальной машины]]<br />
<br />
Процесс создания VM оформлен в виде «мастера», привычного для пользователей систем управления виртуальными машинами. Проходя по очереди по вкладкам, выбираем, соответственно, уникальное имя VM, шаблон настроек ОС, файл .iso, с которого будет загружаться инсталлятор ОС, тип дискового контроллера, формат и размер образа виртуального жёсткого диска, хранилище данных, на котором он будет располагаться, количество ядер процессора и размер оперативной памяти и так далее. Отдельное внимание обратим на настройки типа подключения дисковых накопителей настройки доступа к сети.<br />
<br />
=== Настройка сетевых подключений ===<br />
<br />
Существует два основных способа подключения VM к сети:<br />
<br />
* через трансляцию сетевых адресов;<br />
* через ethernet-мост.<br />
<br />
Первый способ рекомендуется к использованию в ситуациях, когда мы не планируем использовать виртуальную машину в качестве сервера каких-нибудь сетевых протоколов. Например, когда мы просто хотим протестировать процесс инсталляции ОС. Механизм NAT будет настроен автоматически, без дополнительных действий оператора, достаточно будет просто в процессе создания виртуальной машины поставить радиокнопку на вкладке «Сеть» в положение «NAT mode».<br />
<br />
В процессе настройки гостевой ОС нужно будет выбрать автоматический вариант настройки сетевых адресов по протоколу DHCP. Со стороны гипервизора kvm будет поднят сервер DHCP, который выдаст гостевой системе сетевой адрес и маршруты. Также, со стороны гипервизора будет автоматически настроена трансляция всех адресов выданных встроенным сервером DHCP. Таким образом приложения, работающие в гостевой ОС, получат доступ ко всем сетям, к которым имеет доступ ОС физического узла, причём со стороны этих сетей они будут маскироваться под адресом самого физического узла.<br />
<br />
Второй способ подключения рекомендуется во всех остальных ситуациях. В этом случае, учитывая настройки, сделанные нами при установке PVE, сетевой интерфейс виртуальной машины будет подключён к тому же самому виртуальному коммутатору, что и сетевой интерфейс физического узла. То есть, настройки сетевой подсистемы виртуальной машины зависят от конфигурации той самой сети, в которой находится физический узел. Например, если в этой сети работает сервер DHCP, который сможет выдать нужный адрес виртуальной машине, можно указать автоматический вариант конфигурации. Если нет — придётся настраивать вручную. В отличие от первого способа, где ручной вариант настроек не предполагается (хотя, и возможен).<br />
<br />
[[Файл:Pve-vm-create-net.png|900px|Настройки доступа в сеть виртуальной машины]]<br />
<br />
=== VirtIO ===<br />
<br />
Настраивая сетевое подключение, обращаем внимание также и на то, что в списке сетевых карт, которые может эмулировать гипервизор kvm, есть пункт «VirtIO (paravirtualized)». Это специальный интерфейс, задачей которого является снижение накладных расходов на эмуляцию физической сетевой карты и реализацию драйвера для работы с ней. Между производителями современных операционных систем и произоводителями современных гипервизоров существует договорённость о поддержке единого интерфейса VirtIO, который со стороны гостевой ОС выглядит как очень простая и производительная сетевая карта, а со стороны гипервизора — как прямой интерфейс к сетевому драйверу гостевой ОС. Таким образом, производительность существенно вырастает за счёт того, что не нужно больше эмулировать несуществующее железо. Если про гостевую ОС точно известно, что она поддерживает VirtIO, имеет смысл использовать именно эту «сетевую карту».<br />
<br />
Кстати, реализация VirtIO существует также и для другого интерфейса между виртуальной ОС и гипервизором, критичного к скорости передачи данных — для дисковых накопителей. Там рекомендации точно такие же — если уверенность в поддержке со стороны гостевой ОС есть, включаем.<br />
<br />
=== Удалённый доступ к виртуальной машине ===<br />
<br />
После того, как выбор параметров виртуальной машины закончен и нажата кнопка «Завершить», виртуальная машина создана. Теперь нужно получить удалённый доступ к её консоли. В PVE для удалённый доступ к «физической» консоли виртуальной машины используется протокол VNC. В качестве клиента выступает приложение на Javascript, интегрированное в окно браузера.<br />
=== Миграция виртуальных машин из VMware в ALT PVE ===<br />
Этот раздел описывает миграцию виртуальных машин из VMware в ALT PVE, на примере виртуальной машины с Windows 7.<br><br />
'''Подготовка операционной системы Windows'''<br><br />
Необходимо сделать так, чтобы система грузилась с дисков в режиме IDE.<br><br />
'''Подготовка образа диска'''<br><br />
Предположим что файл с образом диска называется win7.vmdk<br><br />
С помощью vmware-vdiskmanager (утилита поставляется в комплекте с VMWare Workstation) Вам необходимо преобразовать Ваш образ диска в тип "single growable virtual disk". Для этого в перейдите в папку с образами дисков и выполните следующую команду:<br />
<pre>"C:\Program Files\VMware\VMware Server\vmware-vdiskmanager" -r win7.vmdk -t 0 win7-pve.vmdk</pre><br />
'''Подключение образа диска к виртуальной машине на основе Directory Storage'''<br><br />
Создайте новую виртуальную машину KVM, используя web-интерфейс ALT PVE, но не запускайте её. Посмотрите VMID, созданной виртуальной машины (например 100).<br><br />
Скопируйте преобразованный образ win7-pve.vmdk в директорию с образами виртуальных машин <pre>/var/lib/vz/images/VMID</pre> (для этого можно воспользоваться WinSCP).<br><br />
Преобразуйте файл win7-pve.vmdk в qemu формат:<br />
<pre># qemu-img convert -f vmdk win7-pve.vmdk -O qcow2 win7-pve.qcow2</pre><br />
Для подключения образа диска к созданной виртуальной машине Вам необходимо добавить в конфигурационный файл {{path|/etc/pve/nodes/node01/qemu-server/VMID.conf}} виртуальной машины следующую строчку:<br />
<pre>unused0: locald:100/win7-pve.qcow2.qcow2</pre><br />
где 100 это VMID, а locald это имя хранилища в ALT PVE. Далее перейдите в web-интерфейс ALT PVE на вкладку Hardware, созданной виртуальной машины. В списке устройств вы увидите неиспользуемый жесткий диск, щелкните на него, выберете режим IDE и нажмите кнопку Add:<br><br />
[[Файл:Alt pve add disk.jpg|600px]]<br><br />
'''Подключение образа диска к виртуальной машине на основе LVM Storage'''<br><br />
Создайте виртуальную машину используя web-интерфейс ALT PVE с диском большего размера,чем диск в образе vmdk. Посмотреть размер диска в образе можно командой:<br />
<pre># qemu-img info win7-pve.vmdk <br />
image: win7-pve.vmdk<br />
file format: vmdk<br />
virtual size: 127G (136365211648 bytes)<br />
disk size: 8.5G<br />
cluster_size: 65536<br />
Format specific information:<br />
cid: 3098509145<br />
parent cid: 4294967295<br />
create type: monolithicSparse<br />
extents:<br />
[0]:<br />
virtual size: 136365211648<br />
filename: win7-pve.vmdk<br />
cluster size: 65536<br />
format:</pre><br />
В данном случае необходимо создать диск в режиме IDE размером не меньше 127GB, не запускайте виртуальную машину.<br><br />
Скопируйте преобразованный образ win7-pve.vmdk на нужную ноду кластера.<br><br />
Перейдите в консоль ноды кластера и посмотрите как называется LVM диск созданной виртуальной машины (он должен быть в статусе ACTIVE):<br />
<pre># lvscan<br />
ACTIVE '/dev/sharedsv/vm-101-disk-1' [130,00 GiB] inherit</pre><br />
Далее необходимо сконвертировать образ vdmk в raw формат непосредственно на LVM-устройство:<br />
<pre># qemu-img convert -f vmdk win7-pve.vmdk -O raw /dev/sharedsv/vm-101-disk-1</pre><br />
'''Подключение образа диска к виртуальной машине на основе CEPH Storage'''<br><br />
Создайте виртуальную машину используя web-интерфейс ALT PVE с диском большего размера,чем диск в образе vmdk.<br><br />
Скопируйте преобразованный образ win7-pve.vmdk на нужную ноду кластера.<br><br />
Перейдите в консоль ноды кластера. Имя нужного пула можно посмотреть на вкладке Datacenter->Storage->rbd-storage:<br><br />
[[Файл:Alt pve rbd pool.jpg|500px]]<br><br />
Нам необходимо отобразить образ из пула CEPH в локальное блочное устройство:<br />
<pre># rbd map rbd01/vm-100-disk-1<br />
/dev/rbd0</pre><br />
Далее необходимо сконвертировать образ vdmk в raw формат непосредственно на отображенное устройство:<br />
<pre># qemu-img convert -f vmdk win7-pve.vmdk -O raw /dev/rbd0</pre><br />
'''Проблемы с образом VMware'''<br><br />
Кроме того Ваш образ диска может быть в формате flat, тогда при попытке конвертировать его вы получите ошибку "Operation not permitted". Вы можете посмотреть настоящий формат вашего .vdmk файла с помощью команды "file". Если файл в формате flat то вы получите примерно такой вывод:<br />
<pre># file myVMwFlatImage-pre.vmdk<br />
myVMwFlatImage-pre.vmdk: x86 boot sector; partition 1: ID=0x83, active, starthead 1,<br />
startsector 63, 208782 sectors; partition 2: ID=0x8e, starthead 0, startsector 208845,<br />
16563015 sectors, code offset 0x48</pre><br />
Очень просто конвертировать такой файл из .vdmk в .qcow2 просто убрав параметр "-f vdmk" из предыдущей команды, предоставив qemu-img автоматически определить формат исходного файла:<br />
<pre># qemu-img convert myVMwFlatImage-pve.vmdk -O qcow2 myVMwFlatImage-pve.qcow2</pre><br />
Если ваша виртуальная машина KVM стартует, но не грузится с ошибкой "booting from hard disk...boot failed: not a bootable disk", то попробуйте при конвертировании вместо типа диска "single growable virtual disk" тип "preallocated virtual disk". Для этого в командной строке запустите vmvare-vdiskmanager без параметров, Вы увидите справку по работе с командой. Тип диска при конвертации задает параметр -t <disk-type>:<br />
<pre>Disk types:<br />
0 : single growable virtual disk<br />
1 : growable virtual disk split in 2GB files<br />
2 : preallocated virtual disk<br />
3 : preallocated virtual disk split in 2GB files<br />
4 : preallocated ESX-type virtual disk<br />
5 : compressed disk optimized for streaming</pre><br />
Нам нужно выбрать тип 2:<br />
<pre>vmware-vdiskmanager -r whatever.vmdk -t 2 whatever-pve.vmdk</pre><br />
Имейте ввиду, что при этом vmware-vdiskmanager создаст два файла. Первый файл {{path|whatever-pve.vmdk}} очень маленький, это обычный текстовый файл со ссылкой на образ. Второй файл {{path|whatever-pve-flat.vmdk}}, который имеет размер всего Вашего виртуального диска и именно его надо конвертировать в kvm.<br><br />
'''Адаптация новой виртуальной машины KVM'''<br />
*Проверьте режим работы жесткого диска для Windows - IDE, для Linux SCSI<br />
*Режим VIRTIO жесткого диска:<br />
**Режим VIRTIO также доступен для Windows, но сразу загрузиться в этом режиме система не может<br />
**Загрузитесь сначала в режиме IDE и выключите машину, добавьте еще один диск в режиме VIRTIO и включите машину, Windows установит нужные драйвера<br />
**Выключите машину<br />
**Измените режим основного диска с IDE на VIRTIO<br />
**Загрузите систему, которая должна применить VIRTIO драйвер и выдать сообщение, что драйвер от RedHat<br />
*Включите виртуальную машину<br />
*Первое включение займет какое-то время пока будут загружены необходимые драйвера<br />
*Драйвера VIRTIO для Windows можно скачать [https://fedoraproject.org/wiki/Windows_Virtio_Drivers здесь]<br />
<br />
== Контейнеры (CT) ==<br />
<br />
В отличие от виртуальной машины, которая с точки зрения ОС, запущенной на физическом узле, представляет собой один процесс гипервизора, процессы контейнера выполняются на том же самом ядре, что и остальные процессы ОС. То есть, если мы запустим VM и CT на одном и том же физическом узле PVE, процессы CT будут выполняться «рядом» с процессами гипервизора. Разница будет только в применении к процессам контейнеров механизмов изоляции — пространств имён (Namespaces) и групп управления (CGroups) — работающих на уровне ядра Linux.<br />
<br />
Существует несколько реализаций изолированных контейнеров, базирующихся на этих механизмах. Например [https://openvz.org OpenVZ] и [https://linuxcontainers.org LXC], которые отличаются развитостью и проработанностью механизмов управления. В PVE версий 4+ используется реализация LXC (до 3 версии использовалась OpenVZ), обёрнутая дополнительным собственным пользовательским интерфейсом, делающим процесс создания и обслуживания контейнеров ещё более удобным.<br />
<br />
Процесс создания контейнера во многом схож с процессом создания виртуальной машины. Разница в том, что создание контейнера соответствует созданию VM и одновременно установке туда операционной системы. Эквивалентом инсталляционному диску является шаблон, из которого разворачивается контейнер. Это архив, содержащий корневую файловую систему будущего контейнера. Примеры шаблонов контейнеров можно найти на [http://download.proxmox.com/images/system/ сайте разработчиков PVE] и в [https://openvz.org/Download/template/precreated коллекции шаблонов OpenVZ].<br />
<br />
Важно помнить, что [[Шаблоны для развёртывания CT в PVE|шаблоны, пригодные для развёртывания CT в PVE]], имеют собственную нотацию имён, отличающуюся от таковых, например, в OpenVZ. Поэтому перед загрузкой очередного шаблона в хранилище PVE не забываем переименовать его соответствующим образом.<br />
<br />
[[Файл:Pve-template-load.png|900px|Загрузка шаблона контейнера]]<br />
<br />
Почти весь процесс «инсталляции» сводится к распаковке шаблона. Оставшаяся часть процесса инсталляции заключается в том, чтобы придать распакованному образу корневой файловой системы уникальные черты, отличающие его от других таких же контейнеров, созданных, возможно, из этого же самого шаблона.<br />
<br />
Уникальность контейнера обеспечивается на двух уровнях: первый уровень это уникальный идентификатор контейнера в пределах ОС физического узла, в которой разворачиваются контейнеры. Это число, как правило больше ста. PVE автоматизированным образом ведёт учёт идентификаторов и при создании контейнера не позволит выбрать уже занятый. Кстати, в пределах кластера PVE идентификаторы VM и СТ составляют единое пространство идентификаторов.<br />
<br />
Второй уровень уникальности контейнера — строго говоря, не обязательный — это сетевые настройки: IP-адрес и имя узла. Обеспечивать уникальность на этом уровне не обязательно, так как у нас может быть несколько контейнеров с одинаковым именем узла, адресом IP, и даже MAC-адресом. Просто они будут запускаться в разное время. Но следить за этим будет уже не PVE, а оператор. PVE только обеспечивает возможность задания сетевых настроек контейнера при его создании.<br />
<br />
[[Файл:Pve-ct-create-net.png|900px|Сетевые настройки контейнера]]<br />
<br />
Основная задача CT, в отличие от VM — не запуск полноценной ОС в виртуальной машине, а запуск отдельного приложения или сетевой службы в изолированном окружении. Поэтому доступ для обслуживания CT, как правило, удобнее осуществлять через обычный терминал — то есть, уже без участия интерфейса PVE. Для этого внутри контейнера настраивают серверную часть SSH, VNC или наоборот — клиентскую часть X-протокола. Впрочем, веб-интерфейс предоставляет для CT, так же, кстати, как и для физических узлов консоль. Обычную текстовую консоль UNIX.<br />
<br />
[[Файл:Pve-node-console.png|900px|Доступ к консоли через веб-интерфейс]]<br />
<br />
<br />
=== Где взять готовые контейнеры ===<br />
<br />
# Загрузить при помощи встроенной училиты pveam ("Из коробки" не работает из-за [[altbug:37631]])<br />
# Загрузить вручную с [http://download.proxmox.com/images/system/ сайта Proxmox]<br />
# Загрузить шаблоны LXC с [https://uk.images.linuxcontainers.org/images/ официального сайта] <br />
# Загрузить готовое окружение для решения конкретной задачи (на базе Debian) [http://mirror.turnkeylinux.org/turnkeylinux/images/proxmox/ отсюда]<br />
# Создать контейнер самому <br />
<br />
{{Attention|Следует учитывать, что будут работать не все контейнеры, созданные для LXC, т.к. система, на базе которой создан контейнер, должна поддерживаться скриптами PVE }}<br />
<br />
== Обслуживание виртуальных окружений ==<br />
<br />
Кроме создания, удаления и получения доступа к консоли существует ещё ряд важных задач по работе с виртуальными окружениями, которые веб-интерфейс PVE позволяет успешно решать. Это в первую очередь сбор статистики по расходованию ресурсов кластера PVE, управление доступом к объектам виртуальной инфраструктуры, и обеспечение бесперебойной работы в случае сбоев.<br />
<br />
=== Статистика ===<br />
<br />
В течение всего времени работы кластера PVE собирает статистику по широкому спектру параметров, характеризующих различные виды нагрузки на физические узлы, хранилища данных и виртуальные окружения. Статистическая информация собирается, хранится, и может быть в любой момент представлена в виде графиков и диаграмм.<br />
<br />
[[Файл:Pve-stats-node.png|900px|Данные о нагрузке на узел]]<br />
<br />
Такой наглядный способ представления может быть полезен не только для оценки текущего состояния работы системы, но и для оценки тенденций изменения характера нагрузок. Поэтому, при выборе узла, на который мы планируем добавить очередное виртуальное окружение в кластер, бывает полезно заглянуть не только в выпадающий список узлов со значениями текущих показателей нагрузки, но и в графики распределения нагрузки по времени суток и дням недели. Может оказаться, что узел, наименее нагруженный в данный момент, бо́льшую часть времени работает под максимальной нагрузкой.<br />
<br />
=== Управление доступом ===<br />
<br />
Как уже упоминалось в руководстве по установке, PVE может использовать любые базы данных пользовательских учётных записей, доступные через механизм PAM. Например, базы локальных пользователей физических узлов кластера. Кроме того, у PVE есть ещё и своя база данных учётных записей пользователей и групп. Все эти пользователи и группы являются полноправными субъектами доступа к объектам кластера. Объектами доступа являются физические узлы и хранилища данных. Полномочия субъектов доступа настраиваются через механизм ролей.<br />
<br />
[[Файл:Pve-user-as-role.png|900px|Список возможных ролей пользователя]]<br />
<br />
Для упрощения разграничения доступа в PVE существует ещё один уровень объектов доступа, функционально аналогичный группам — пулы. В состав пула могут входить виртуальные окружения и некоторые виды хранилищ данных. Доступ к пулам регулируется так же через механизм назначения ролей.<br />
<br />
=== Резервное копирование ===<br />
<br />
На радость системным администраторам PVE имеет встроенную систему резервного копирования. Добавить очередной пункт в расписание снятия резервных копий состояния виртуальных окружений и хранилищ данных можно буквально «в несколько кликов».<br />
<br />
[[Файл:Pve-backup-setup.png|900px|Настройка расписания резервного копирования]]<br />
<br />
Важно не забыть предварительно добавить хранилище, у которого будет роль хранилища для резервных копий.<br />
<br />
Формат и режим снятия резервных копий могут быть разными. Это могут быть образы остановленных виртуальных окружений, находящихся в консистентном состоянии, или снапшоты, сделанные «на лету». В последнем случае работоспособность сервисов, запущенных внутри виртуального окружения, после восстановления из резервной копии не гарантируется.<br />
<br />
=== Снапшоты ===<br />
<br />
Кроме снятия резервных копий, снапшоты используются и просто для фиксации состояния виртуального окружения. Для фиксации снапшотов есть специальный пункт в меню виртуального окружения в интерфейсе PVE.<br />
<br />
[[Файл:Pve-snapshot-setup.png|900px|Снятие снапшота]]<br />
<br />
= Ссылки =<br />
* [http://www.proxmox.com/ Официальный сайт]<br />
* [[:ruwp:Proxmox_Virtual_Environment|Proxmox VE]]<br />
<br />
[[Категория:Admin]]<br />
[[Категория:Миграция]]<br />
[[Категория:Виртуализация]]<br />
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=PVE&diff=47929PVE2020-03-06T10:42:58Z<p>Корнеечев Евгений: /* Создание кластера PVE */</p>
<hr />
<div>= Что это такое =<br />
Proxmox Virtual Environment (PVE) — средство управления виртуальными окружениями на базе гипервизора [[ruwp:KVM|KVM]] и системы контейнерной изоляции [[ruwp:LXC|LXC]]. Строго говоря, PVE это не система виртуализации, а инструментарий управления средой, в которой выполняются виртуальные окружения KVM и LXC. Основными компонентами среды являются:<br />
<br />
* физические серверы, на которых выполняются процессы гипервизора KVM, и процессы, работающие в контейнерах LXC;<br />
* хранилища данных, в которых хранятся образы установочных дисков, образы дисков виртуальных машин KVM и файлы, доступные из контейнеров LXC;<br />
* виртуальные сетевые коммутаторы, к которым подключаются сетевые интерфейсы виртуальных окружений.<br />
<br />
= Как это устроено =<br />
Собственно PVE состоит из веб-интерфейса, распределённого хранилища данных конфигурации виртуальных окружений, а также утилит конфигурирования, работающих в командной строке. Все эти инструменты предназначены только для управления средой выполнения виртуальных окружений. За формирование среды отвечают компоненты системы, не входящие непосредственно в состав PVE. В первую очередь это сетевая и дисковая подсистемы, а также механизмы аутентификации.<br />
<br />
== Веб-интерфейс ==<br />
Веб-интерфейс пользователя PVE предназначен для решения следующих задач:<br />
<br />
* создание, удаление, настройка виртуальных окружений;<br />
* управление физическими серверами;<br />
* мониторинг активности виртуальных окружений и использования ресурсов среды;<br />
* фиксация состояний (snapshot-ы), создание резервных копий и шаблонов виртуальных окружений, восстановление виртуальных окружений из резервных копий.<br />
<br />
Кроме решения пользовательских задач, веб-интерфейс PVE можно использовать ещё и для встраивания в интегрированные системы управления — например, в панели управления хостингом. Для этого он имеет развитый RESTful API с JSON в качестве основного формата данных.<br />
<br />
Для аутентификации пользователей веб-интерфейса можно использовать как собственные механизмы PVE, так и PAM. Использование PAM даёт возможность, например, интегрировать PVE в домен аутентификации.<br />
<br />
== Хранилище данных ==<br />
В случае локальной установки PVE для размещения данных виртуальных окружений можно дополнительно ничего не настраивать и использовать локальную файловую систему сервера. Но в случае кластера из нескольких серверов имеет смысл настроить сетевую или распределённую сетевую файловую систему, обеспечивающую параллельный доступ к файлам со всех серверов, на которых выполняются процессы виртуальных окружений. В качестве таких файловых систем могут выступать, например, [[ruwp:NFS|NFS]] или [[ruwp:CEPH|CEPH]].<br />
==== Подключение общего хранилища iSCSI (Multipath) с использованием LVM ====<br />
Настройка iSCSI-target на базе ALT подробно описана в [[GFS2 на iSCSI с Multipath#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_iSCSI_target|этой статье]].<br><br />
{{Attention|iSCSI initiator настраивается средствами ALT PVE.<br> Сервис iscsid запускается средствами ALT PVE и не должен присутствовать в атозагрузке}}<br />
Исходные данные:<br><br />
* Настроенный кластер ALT PVE<br />
* Настроенный iSCSI target<br />
Для добавления iSCSI устройства надо зайти в web-интерфейс ALT PVE в раздел Datacenter -> Storage -> Add -> iSCSI:<br><br />
[[Файл:Add iSCSI.png|Добавление iSCSI-устройства]]<br />
*ID: Имя добавляемого устройства, может быть любым, но изменить его позже нельзя<br />
*Portal: Адрес iSCSI сервера<br />
*Target: Выпадающий список ресурсов, отдаваемых iSCSI сервером<br />
*Nodes: Каким нодам будет доступно данное хранилище<br />
*Enable: Вкл/Выкл хранилище<br />
*Use LUNs directly: Использование LUN напрямую, галочку надо снять<br />
Ту же процедуру надо проделать для второго адреса iSCSI сервера.<br><br />
После этого на всех нодах появятся два блочных устройства.<br><br />
Далее необходимо настроить Multipath по этой [[GFS2 на iSCSI с Multipath#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_Multipath|инструкции]]<br><br />
Далее переходим в консоль на любой ноде для настройки LVM.<br><br />
Для корректной работы LVM и Multipath говорим LVM не сканировать наши iSCSI-диски (sd*):<br><br />
В файл {{path|/etc/lvm/lvm.conf}} добавляем:<br />
<pre>devices {<br />
...<br />
filter = [ "r|/dev/sd|" ]<br />
...<br />
}</pre><br />
Инициализируем блочные устройства для использования в LVM:<br />
<pre># pvcreate /dev/mapper/mpatha</pre><br />
Создаём группу томов 'sharedsv':<br />
<pre># vgcreate sharedsv /dev/mapper/mpatha</pre><br />
Далее переходим в web-интерфейс ALT PVE в раздел Datacenter -> Storage -> Add -> LVM:<br><br />
[[Файл:ALT PVE add LVM.png]]<br />
*ID: Имя добавляемого устройства, может быть любым, но изменить его позже нельзя<br />
*Base Storage: Выбираем 'Existing volume groups'<br />
*Volume group: Выпадающий список LVM разделов, выбираем созданный нами 'sharedsv'<br />
*Content: Что разрешено хранить на данном хранилище<br />
*Nodes: Каким нодам будет доступно данное хранилище<br />
*Enable: Вкл/Выкл хранилище<br />
*Shared: Делает хранилище доступным для всех нод<br />
При таком подключении LVM хранилище общедоступно, виртуальные машины могут хранить на нем образы дисков и доступна Online-миграция виртуальных машин между нодами.<br />
<br />
== Сетевая подсистема ==<br />
В отличие от хранилища данных, сетевая подсистема требует специальной настройки даже в случае локальной установки PVE. Это обусловлено тем, что сетевые интерфейсы виртуальных окружений должны подключаться к какому-то виртуальному же устройству, обеспечивающему соединение с общей сетью передачи данных. Обычно в качестве такого устройства выступает Ethernet-мост.<br />
<br />
= Установка и настройка PVE на Альт Сервер Виртуализации 9 =<br />
<br />
В качестве сервера для развертывания PVE удобно использовать дистрибутив Альт Сервер Виртуализации (Сервер виртуализации). Он уже содержит все необходимые компоненты. <br />
<br />
{{Note| Компоненты PVE будут установлены в систему, если при установке дистрибутива выбрать профиль '''Виртуальное окружение Proxmox'''.}}<br />
<br />
==Настройка узлов кластера==<br />
<br />
PVE должен быть установлен на всех узлах. Следует убедиться, что каждый узел установлен с окончательным именем хоста и IP-конфигурацией. Изменение имени хоста и IP-адреса невозможно после создания кластера. <br />
<br />
{{Note|Локальная установка — частный случай кластера из одного узла. }}<br />
===Настройка преобразования имен===<br />
Необходимо обеспечить взаимно однозначное прямое и обратное преобразование имен для всех узлов кластера. Крайне желательно использовать DNS, в крайнем случае, можно обойтись соответствующими записями в локальных файлах {{path|/etc/hosts}}: <br />
<br />
<source lang="text" highlight="1-3"># echo "192.168.88.186 pve01.localdomain pve01" >> /etc/hosts<br />
# echo "192.168.88.90 pve02.localdomain pve02" >> /etc/hosts<br />
# echo "192.168.88.70 pve03.localdomain pve03" >> /etc/hosts<br />
</source><br />
{{Note| Имя машины не должно присутствовать в файле {{path|/etc/hosts}} разрешающимся в 127.0.0.1. }}<br />
===Настройка сетевой подсистемы===<br />
На всех узлах кластера необходимо настроить Ethernet-мост. <br />
<br />
{{Attention|Мосту должно быть назначено имя vmbr0 и оно должно быть одинаково на всех узлах.}}<br />
<br />
Для настройки Ethernet-моста с именем vmbr0, можно выполнить следующие команды:<br />
<br />
<source lang="text" highlight="1-4"># mkdir /etc/net/ifaces/vmbr0<br />
# cp /etc/net/ifaces/enp0s3/* /etc/net/ifaces/vmbr0/<br />
# rm -f /etc/net/ifaces/enp0s3/{i,r}* <br />
# cat <<EOF > /etc/net/ifaces/vmbr0/options BOOTPROTO=static CONFIG_WIRELESS=no CONFIG_IPV4=yes HOST='enp0s3' ONBOOT=yes TYPE=bri EOF<br />
</source><br />
Имя интерфейса, обозначенного здесь как enp0s3, следует указать в соответствии с реальной конфигурацией сервера. <br />
<br />
IP-адрес для интерфейса будет взят из {{path|/etc/net/ifaces/enp0s3/ipv4address}}. <br />
<br />
В опции HOST файла {{path|/etc/net/ifaces/vmbr0/options}} нужно указать те интерфейсы, которые будут входить в мост. Если в него будут входить интерфейсы, которые до этого имели IP-адрес (например, enp0s3), то этот адрес должен быть удален (например, можно закомментировать содержимое файла {{path|/etc/net/ifaces/enp0s3/ipv4address}}).<br />
<br />
Для того, чтобы изменения вступили в силу необходим перезапуск сервиса network:<br />
<br />
<source lang="text" highlight="1"># systemctl restart network</source><br />
<br />
При старте сети сначала поднимаются интерфейсы, входящие в мост, затем сам мост (автоматически).<br />
<br />
==Создание кластера PVE==<br />
Кластер не создается автоматически на только что установленном узле PVE. Он должен быть создан через интерфейс командной строки с любого из узлов PVE, который будет частью кластера. После того как кластер создан и узлы добавлены в этот кластер, большая часть управления может выполняться через графический интерфейс. <br />
<br />
Для правильного функционирования кластера необходимо как минимум три узла. С тремя узлами возможен кворум, который позволяет кластерам обеспечивать работоспособность и функционирование должным образом.<br />
<br />
На «головном» узле кластера необходимо выполнить команды инициализации конкретного кластера PVE, в данном случае — «pve», выполнив команды (это можно сделать и из веб-интерфейса Datacenter -> Cluster -> Create claster, перед этим запустив все необходимые службы (см.ниже)):<br />
<br />
<source lang="text" highlight="1-2"># systemctl start pve-cluster<br />
# pvecm create pve<br />
</source><br />
<br />
Проверка:<br />
<br />
<source lang="text" highlight="1"># pvecm status<br />
Quorum information<br />
------------------<br />
Date: Fri Sep 27 16:29:06 2019<br />
Quorum provider: corosync_votequorum<br />
Nodes: 1<br />
Node ID: 0x00000001<br />
Ring ID: 1/4<br />
Quorate: Yes<br />
<br />
Votequorum information<br />
----------------------<br />
Expected votes: 1<br />
Highest expected: 1<br />
Total votes: 1<br />
Quorum: 1<br />
Flags: Quorate<br />
<br />
Membership information<br />
----------------------<br />
Nodeid Votes Name<br />
0x00000001 1 192.168.88.186 (local)<br />
</source><br />
<br />
Команда создания кластера создает файл настройки {{path|/etc/pve/corosync.conf}}. По мере добавления узлов в кластер файл настройки будет автоматически пополняться информацией об узлах. <br />
<br />
Для добавления узлов в кластер, необходимо на «подчинённых» узлах выполнить следующие команды:<br />
<br />
<source lang="text" highlight="1-2"># systemctl start pve-cluster<br />
# pvecm add pve01<br />
</source><br />
<br />
где pve01 — имя или ip-адрес «головного» узла.<br />
При добавлении узла в кластер, потребуется ввести пароль администратора главного узла кластера:<br />
<br />
<source lang="text" highlight="1"># pvecm add 192.168.88.186<br />
Please enter superuser (root) password for '192.168.88.186':<br />
Password for root@192.168.88.186: ***<br />
Establishing API connection with host '192.168.88.186'<br />
Login succeeded.<br />
Request addition of this node<br />
Join request OK, finishing setup locally<br />
stopping pve-cluster service<br />
backup old database to '/var/lib/pve-cluster/backup/config-1573727779.sql.gz<br />
waiting for quorum...OK<br />
(re)generate node files<br />
generate new node certificate<br />
merge authorized SSH keys and known hosts<br />
generated new node certificate, restart pveproxy and pvedaemon services<br />
successfully added node 'pve03' to cluster.<br />
</source><br />
После добавления узлов в кластер, файл настройки кластера в {{path|/etc/pve/corosync.conf}} должен содержать информацию об узлах кластера.<br />
<br />
На всех узлах кластера необходимо запустить службы кластера и добавить их в список служб, запускаемых при старте узла:<br />
<br />
<source lang="text" highlight="1-2"># systemctl start lxc lxc-net lxc-monitord pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy<br />
# systemctl enable corosync lxc lxc-net lxc-monitord pve-cluster pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy pve-guests<br />
</source><br />
Дальнейшие настройки кластера удобно делать через веб-интерфейс. <br />
<br />
Веб-интерфейс PVE доступен по адресу https://<внешний-ip-адрес>:8006. Потребуется пройти аутентификацию (логин по умолчанию: root, пароль указывается в процессе установки): <br />
<br />
[[Изображение:Pve_auth.png|Аутентификация в веб-интерфейсе PVE]]<br />
<br />
= Установка и настройка PVE =<br />
В качестве сервера для развёртывания PVE нужно использовать серверный дистрибутив Альт на базе 8-й платформы и доустановить необходимые пакеты штатным способом любым штатным способом ({{cmd|apt-get}}, {{cmd|aptitude}}, {{cmd|synaptic}}) установить пакет {{cmd|pve-manager}}. Все необходимые компоненты при этом будут установлены автоматически. Также следует убедиться в том, что пакет systemd обновлён до версии, находящейся в репозитории P8.<br />
<pre><br />
На всех нодах:<br />
# apt-get install pve-manager<br />
</pre><br />
Рассмотрим настройку кластера PVE. Локальную установку будем считать частным случаем кластера из одного узла.<br />
<br />
== Настройка сетевой подсистемы ==<br />
: Если в файле options интерфейса не задан TYPE=, pve-manager завершается с ошибкой<br />
<br />
Сначала на всех узлах кластера настроим Ethernet-мост в соответствии с [[Etcnet#Настройка Ethernet-моста|руководством]]:<br />
<br />
<pre><br />
#ip=$(hostname -i)<br />
#cat > /etc/net/ifaces/ens18/options << EOF<br />
TYPE=eth<br />
EOF<br />
#mkdir -p /etc/net/ifaces/vmbr0<br />
#cat > /etc/net/ifaces/vmbr0/options << EOF<br />
BOOTPROTO=static<br />
TYPE=bri<br />
HOST='ens18'<br />
CONFIG_WIRELESS=no<br />
CONFIG_IPV4=yes<br />
EOF<br />
#cat > /etc/net/ifaces/vmbr0/ipv4address << EOF<br />
$ip/21<br />
EOF<br />
#cat > /etc/net/ifaces/vmbr0/ipv4route << EOF<br />
default via 10.88.8.1<br />
EOF<br />
cat > /etc/net/ifaces/vmbr0/resolv.conf << EOF<br />
search example.com test.com<br />
nameserver 10.0.0.0<br />
EOF<br />
# cat <<EOF > /etc/net/ifaces/vmbr0/brctl<br />
stp AUTO off<br />
setfd AUTO 0<br />
EOF<br />
</pre><br />
<br />
Имя интерфейса, обозначенного здесь как ens18, следует указать в соответствии с реальной конфигурацией сервера.<br />
<br />
{{Attention|Данная последовательность команд приводит к желаемому результату только в том случае, если интерфейс, который является хостом для моста, ранее не настраивался. В противном случае необходимо также удалить или очистить ipv4address, ipv4route и resolv.conf, иначе могут возникнуть проблемы при дальнейшей настройке. }}<br />
<br />
При установленных пакетах {{pkg|alterator-net-eth}} и {{pkg|alterator-net-bridge}} вместо всего этого можно просто воспользоваться web-интерфейсом.<br />
{{Attention|При этом нужно учесть, что мост, созданный через веб-интерфейс, будет иметь имя br*, в то время как для PVE стандартом является vmbr*. Это может приводить к труднодиагностируемым и трудноразрешимым проблемам, препятствующим нормальному запуску PVE}}<br />
<br />
Далее необходимо обеспечить взаимно однозначное прямое и обратное преобразование имён для всех узлов кластера. Крайне желательно использовать DNS, но в крайнем случае можно обойтись соответствующими записями в локальных файлах {{path|/etc/hosts}}:<br />
<br />
<pre><br />
# echo "10.88.8.251 pve1.localdomain pve1" >> /etc/hosts<br />
# echo "10.88.8.252 pve2.localdomain pve2" >> /etc/hosts<br />
# echo "10.88.8.253 pve3.localdomain pve3" >> /etc/hosts<br />
</pre><br />
<br />
При этом имя машины '''НЕ''' должно присутствовать в файле /etc/hosts, разрешающимся в 127.0.0.1!<br />
<br />
== Настройка взаимодействия компонентов PVE ==<br />
В качестве транспорта для передачи команд между узлами кластера применяется протокол SSH.<br />
Для передачи команд между узлами кластера необходимо обеспечить взаимную беспарольную аутентификацию пользователя root. Это можно сделать вручную, а можно при добавлении нового узла в кластер PVE разрешить на «ведущем» узле вход пользователя root по паролю и ввести пароль. После этого взаимная беспарольная аутентификация root будет настроена автоматически утилитами PVE, и вход root по паролю можно будет снова отключить.<br />
<br />
Важно понимать, что в сконфигурированном кластере PVE все узлы равноправны. «Ведущим», «головным» и так далее один из узлов становится только в момент добавления в кластер нового узла. После добавления новый узел может стать таким же ведущим при проведении следующей процедуры добавления очередного узла в кластер.<br />
<br />
Теперь осталось настроить ещё два компонента системы, которые утилиты PVE пока не могут полностью автоматически настроить при запуске кластера. Это демон {{cmd|rrdcached}}, отвечающий за хранение данных мониторинга активности подсистем кластера, и {{cmd|corosync}} — комплекс ПО, обеспечивающий в пределах кластера элементы высокой доступности.<br />
<pre><br />
Выполнить на всех нодах:<br />
# sh /usr/share/doc/pve-cluster/pve-firsttime<br />
# rm -f /etc/corosync/corosync.conf<br />
</pre><br />
Для версии pve-cluster 6.0 и выше:<br />
<pre><br />
# rm -f /etc/corosync/corosync.conf<br />
</pre><br />
<br />
Конфигурационный файл {{cmd|corosync}} после этого будет создан автоматически при инициализации кластера PVE.<br />
<br />
== Запуск служб кластера ==<br />
Запускаем службы кластера и настраиваем их автоматический запуск при старте узла:<br />
<br />
<pre><br />
# systemctl start ntpd rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target<br />
# systemctl enable ntpd rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target<br />
</pre><br />
<br />
Для версии 6.0 (в связи с заменой ntpd на chrony):<br />
<pre><br />
# systemctl start chronyd rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target<br />
# systemctl enable chronyd rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target<br />
</pre><br />
Также на версии 6.0 может потребоваться предварительно доустановить nfs-clients<br />
<br />
Далее, на «головном» (см. выше) узле кластера выполняем команды собственно инициализации конкретного кластера PVE, в данном случае — «mypve»:<br />
{{Attention|Если после переустановки pve не возможно инициализировать кластер: cluster config '/etc/pve/corosync.conf' already exists удалите файл /etc/pve/corosync.conf }}<br />
<pre><br />
# systemctl start pve-cluster<br />
# ip=$(hostname -i)<br />
# pvecm create pve --ring0_addr $ip<br />
<br />
Для версии pve-cluster 6.0 и выше:<br />
# systemctl start pve-cluster<br />
# ip=$(hostname -i)<br />
# pvecm create pve<br />
</pre> <br />
<br />
Если на данном этапе получили ошибку, загляните на форум за [https://forum.altlinux.org/index.php?topic=43400.0 возможным решением]<br />
<br />
На «подчинённых» (см. выше) узлах:<br />
{{Attention|Если при добавлении узла возникает ошибка: * cluster config '/etc/pve/corosync.conf' already exists<br />
необходимо добавить опцию -force (В версии 6.0.7 данной опции нет, что подтверждает man) }}<br />
<pre><br />
ip=$(hostname -i)<br />
systemctl start pve-cluster<br />
pvecm add 10.88.10.251 --ring0_addr $ip<br />
<br />
Для версии pve-cluster 6.0 и выше:<br />
systemctl start pve-cluster<br />
pvecm add 10.88.10.251 --use_ssh<br />
</pre><br />
<br />
Далее, запускаем остальные службы и добавляем их в список служб, запускаемых при старте узла:<br />
<br />
<pre><br />
# systemctl start lxc lxc-net lxc-monitord pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy<br />
# systemctl enable corosync lxc lxc-net lxc-monitord pve-cluster pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy pve-guests<br />
</pre><br />
<br />
Дальнейшие настройки кластера удобно делать через веб интерфейс.<br />
<br />
[[Файл:Pve-first-login.png|900px|Экран входа пользователя в веб-интерфейс PVE]]<br />
<br />
= Применение PVE =<br />
<br />
В ходе работы с веб-интерфейсом PVE оператору приходится иметь дело со следующими основными объектами: физическими узлами, виртуальными окружениями, хранилищами данных и субъектами авторизации. Так как PVE является средством управления виртуальными окружениями, рассматривать взаимодействие компонентов мы будем относительно них. Виртуальные окружения под управлением PVE бывают двух типов: полностью виртуализированные, управляемые гипервизором kvm, и изолированные окружения выполняющиеся непосредственно на основном ядре ОС физического узла. Первые в терминах PVE называются VM (виртуальные машины), а вторые — CT (контейнеры, ConTainers). Начнём с VM.<br />
<br />
== VM: виртуальные машины kvm ==<br />
<br />
Виртуальные машины, управляемые гипервизором kvm, с точки зрения операционной системы физического узла, на котором они выполняются, представляют собой один процесс гипервизора kvm. Они взаимодействуют с физическим оборудованием не напрямую, а только через гипервизор. Всё оборудование, которое доступно операционной системе внутри виртуальной машины, включая процессор и память, является виртуальным. Даже виртуальная сетевая карта подключается виртуальным кабелем к виртуальному коммутатору. Дисковые контроллеры тоже являются виртуальными, а дисковые накопители обычно представляют собой файлы на файловой системе физического узла, на котором выполняется процесс гипервизора.<br />
<br />
=== Хранилища данных ===<br />
<br />
В случае, когда PVE управляет не одним физическим узлом, а кластером физических узлов, должна обеспечиваться возможность миграции VM с одного физического узла на другой. Миграция представляет собой заморозку состояния VM на одном узле, перенос данных и конфигурации на другой узел, и разморозку состояния VM на новом месте. Так как виртуальные дисковые накопители VM могут занимать значительный объём, удобно в пределах среды виртуализации PVE оперировать не локальными файловыми системами физических узлов, а хранилищами данных, доступными со всех узлов кластера. Кроме того, очень удобно, когда образы загрузочных инсталляционных дисков ОС, которые мы развёртываем на виртуальных машинах, также были доступны сразу на всех узлах кластера. Чтобы не приходилось копировать сотни мегабайт файлов .iso с машины на машину, когда нам захочется развернуть несколько однотипных VM на разных физических узлах.<br />
<br />
Хранилищами данных удобно управлять через веб-интерфейс. В качестве бэкенда хранилищ PVE может использовать:<br />
<br />
* сетевые файловые системы, в том числе распределённые: NFS, CEPH, GlusterFS;<br />
* локальные системы управления дисковыми томами: LVM, ZFS;<br />
* удалённые (iSCSI) и локальные дисковые тома;<br />
* локальные дисковые каталоги.<br />
<br />
Сетевые файловые системы подходят для организации распределённых хранилищ данных, доступных со всех узлов кластера. Остальные могут использоваться только в качестве локальных хранилищ, доступных в пределах одного узла.<br />
<br />
[[Файл:Pve-storage-types.png|900px|Выбор бэкенда хранилища данных]]<br />
<br />
При создании каждому хранилищу данных присваивается роль или набор ролей. Например, хранение контейнеров, образов виртуальных дисков, файлов .iso и так далее. Список возможных ролей зависит от бэкенда хранилища. Например, для NFS или каталога локальной файловой системы доступны любые роли или наборы ролей.<br />
<br />
[[Файл:Pve-storage-roles.png|900px|Выбор ролей хранилища данных]]<br />
<br />
Сразу после инициализации кластера в пределах каждого из узлов нам доступно одно локальное хранилище данных. Этого уже вполне достаточно для начала работы.<br />
<br />
=== Создание виртуальной машины ===<br />
<br />
Прежде чем создать в интерфейсе PVE виртуальную машину (VM), необходимо определиться со следующими моментами:<br />
<br />
* откуда будет загружен инсталлятор ОС, которую мы будем устанавливать внутрь виртуальной машины;<br />
* на каком физическом узле будет выполняться процесс гипервизора kvm;<br />
* на каком хранилище данных будут располагаться образы дисков виртуальной машины.<br />
<br />
Все остальные параметры VM относятся к конфигурации виртуального компьютера и могут быть определены по ходу процесса создания VM.<br />
<br />
Так как хранилища данных у нас пока только локальные, определимся с физическим узлом на котором будет создано виртуальное окружение. Чтобы установить ОС на виртуальную машину, расположенную на этом узле, нужно обеспечить возможность загрузки инсталлятора на этой виртуальной машине. Для этого загрузим ISO-образ инсталлятора в хранилище данных выбранного физического узла. Это также удобно делать через веб-интерфейс.<br />
<br />
[[Файл:Pve-iso-pick.png|900px|Загрузка файла .iso в хранилище данных]]<br />
<br />
Теперь, когда все предварительные действия выполнены, нажимаем в веб-интерфейсе PVE кнопку «Создать VM» в правом верхнем углу.<br />
<br />
[[Файл:Pve-vm-create-basic.png|900px|Добавление новой виртуальной машины]]<br />
<br />
Процесс создания VM оформлен в виде «мастера», привычного для пользователей систем управления виртуальными машинами. Проходя по очереди по вкладкам, выбираем, соответственно, уникальное имя VM, шаблон настроек ОС, файл .iso, с которого будет загружаться инсталлятор ОС, тип дискового контроллера, формат и размер образа виртуального жёсткого диска, хранилище данных, на котором он будет располагаться, количество ядер процессора и размер оперативной памяти и так далее. Отдельное внимание обратим на настройки типа подключения дисковых накопителей настройки доступа к сети.<br />
<br />
=== Настройка сетевых подключений ===<br />
<br />
Существует два основных способа подключения VM к сети:<br />
<br />
* через трансляцию сетевых адресов;<br />
* через ethernet-мост.<br />
<br />
Первый способ рекомендуется к использованию в ситуациях, когда мы не планируем использовать виртуальную машину в качестве сервера каких-нибудь сетевых протоколов. Например, когда мы просто хотим протестировать процесс инсталляции ОС. Механизм NAT будет настроен автоматически, без дополнительных действий оператора, достаточно будет просто в процессе создания виртуальной машины поставить радиокнопку на вкладке «Сеть» в положение «NAT mode».<br />
<br />
В процессе настройки гостевой ОС нужно будет выбрать автоматический вариант настройки сетевых адресов по протоколу DHCP. Со стороны гипервизора kvm будет поднят сервер DHCP, который выдаст гостевой системе сетевой адрес и маршруты. Также, со стороны гипервизора будет автоматически настроена трансляция всех адресов выданных встроенным сервером DHCP. Таким образом приложения, работающие в гостевой ОС, получат доступ ко всем сетям, к которым имеет доступ ОС физического узла, причём со стороны этих сетей они будут маскироваться под адресом самого физического узла.<br />
<br />
Второй способ подключения рекомендуется во всех остальных ситуациях. В этом случае, учитывая настройки, сделанные нами при установке PVE, сетевой интерфейс виртуальной машины будет подключён к тому же самому виртуальному коммутатору, что и сетевой интерфейс физического узла. То есть, настройки сетевой подсистемы виртуальной машины зависят от конфигурации той самой сети, в которой находится физический узел. Например, если в этой сети работает сервер DHCP, который сможет выдать нужный адрес виртуальной машине, можно указать автоматический вариант конфигурации. Если нет — придётся настраивать вручную. В отличие от первого способа, где ручной вариант настроек не предполагается (хотя, и возможен).<br />
<br />
[[Файл:Pve-vm-create-net.png|900px|Настройки доступа в сеть виртуальной машины]]<br />
<br />
=== VirtIO ===<br />
<br />
Настраивая сетевое подключение, обращаем внимание также и на то, что в списке сетевых карт, которые может эмулировать гипервизор kvm, есть пункт «VirtIO (paravirtualized)». Это специальный интерфейс, задачей которого является снижение накладных расходов на эмуляцию физической сетевой карты и реализацию драйвера для работы с ней. Между производителями современных операционных систем и произоводителями современных гипервизоров существует договорённость о поддержке единого интерфейса VirtIO, который со стороны гостевой ОС выглядит как очень простая и производительная сетевая карта, а со стороны гипервизора — как прямой интерфейс к сетевому драйверу гостевой ОС. Таким образом, производительность существенно вырастает за счёт того, что не нужно больше эмулировать несуществующее железо. Если про гостевую ОС точно известно, что она поддерживает VirtIO, имеет смысл использовать именно эту «сетевую карту».<br />
<br />
Кстати, реализация VirtIO существует также и для другого интерфейса между виртуальной ОС и гипервизором, критичного к скорости передачи данных — для дисковых накопителей. Там рекомендации точно такие же — если уверенность в поддержке со стороны гостевой ОС есть, включаем.<br />
<br />
=== Удалённый доступ к виртуальной машине ===<br />
<br />
После того, как выбор параметров виртуальной машины закончен и нажата кнопка «Завершить», виртуальная машина создана. Теперь нужно получить удалённый доступ к её консоли. В PVE для удалённый доступ к «физической» консоли виртуальной машины используется протокол VNC. В качестве клиента выступает приложение на Javascript, интегрированное в окно браузера.<br />
=== Миграция виртуальных машин из VMware в ALT PVE ===<br />
Этот раздел описывает миграцию виртуальных машин из VMware в ALT PVE, на примере виртуальной машины с Windows 7.<br><br />
'''Подготовка операционной системы Windows'''<br><br />
Необходимо сделать так, чтобы система грузилась с дисков в режиме IDE.<br><br />
'''Подготовка образа диска'''<br><br />
Предположим что файл с образом диска называется win7.vmdk<br><br />
С помощью vmware-vdiskmanager (утилита поставляется в комплекте с VMWare Workstation) Вам необходимо преобразовать Ваш образ диска в тип "single growable virtual disk". Для этого в перейдите в папку с образами дисков и выполните следующую команду:<br />
<pre>"C:\Program Files\VMware\VMware Server\vmware-vdiskmanager" -r win7.vmdk -t 0 win7-pve.vmdk</pre><br />
'''Подключение образа диска к виртуальной машине на основе Directory Storage'''<br><br />
Создайте новую виртуальную машину KVM, используя web-интерфейс ALT PVE, но не запускайте её. Посмотрите VMID, созданной виртуальной машины (например 100).<br><br />
Скопируйте преобразованный образ win7-pve.vmdk в директорию с образами виртуальных машин <pre>/var/lib/vz/images/VMID</pre> (для этого можно воспользоваться WinSCP).<br><br />
Преобразуйте файл win7-pve.vmdk в qemu формат:<br />
<pre># qemu-img convert -f vmdk win7-pve.vmdk -O qcow2 win7-pve.qcow2</pre><br />
Для подключения образа диска к созданной виртуальной машине Вам необходимо добавить в конфигурационный файл {{path|/etc/pve/nodes/node01/qemu-server/VMID.conf}} виртуальной машины следующую строчку:<br />
<pre>unused0: locald:100/win7-pve.qcow2.qcow2</pre><br />
где 100 это VMID, а locald это имя хранилища в ALT PVE. Далее перейдите в web-интерфейс ALT PVE на вкладку Hardware, созданной виртуальной машины. В списке устройств вы увидите неиспользуемый жесткий диск, щелкните на него, выберете режим IDE и нажмите кнопку Add:<br><br />
[[Файл:Alt pve add disk.jpg|600px]]<br><br />
'''Подключение образа диска к виртуальной машине на основе LVM Storage'''<br><br />
Создайте виртуальную машину используя web-интерфейс ALT PVE с диском большего размера,чем диск в образе vmdk. Посмотреть размер диска в образе можно командой:<br />
<pre># qemu-img info win7-pve.vmdk <br />
image: win7-pve.vmdk<br />
file format: vmdk<br />
virtual size: 127G (136365211648 bytes)<br />
disk size: 8.5G<br />
cluster_size: 65536<br />
Format specific information:<br />
cid: 3098509145<br />
parent cid: 4294967295<br />
create type: monolithicSparse<br />
extents:<br />
[0]:<br />
virtual size: 136365211648<br />
filename: win7-pve.vmdk<br />
cluster size: 65536<br />
format:</pre><br />
В данном случае необходимо создать диск в режиме IDE размером не меньше 127GB, не запускайте виртуальную машину.<br><br />
Скопируйте преобразованный образ win7-pve.vmdk на нужную ноду кластера.<br><br />
Перейдите в консоль ноды кластера и посмотрите как называется LVM диск созданной виртуальной машины (он должен быть в статусе ACTIVE):<br />
<pre># lvscan<br />
ACTIVE '/dev/sharedsv/vm-101-disk-1' [130,00 GiB] inherit</pre><br />
Далее необходимо сконвертировать образ vdmk в raw формат непосредственно на LVM-устройство:<br />
<pre># qemu-img convert -f vmdk win7-pve.vmdk -O raw /dev/sharedsv/vm-101-disk-1</pre><br />
'''Подключение образа диска к виртуальной машине на основе CEPH Storage'''<br><br />
Создайте виртуальную машину используя web-интерфейс ALT PVE с диском большего размера,чем диск в образе vmdk.<br><br />
Скопируйте преобразованный образ win7-pve.vmdk на нужную ноду кластера.<br><br />
Перейдите в консоль ноды кластера. Имя нужного пула можно посмотреть на вкладке Datacenter->Storage->rbd-storage:<br><br />
[[Файл:Alt pve rbd pool.jpg|500px]]<br><br />
Нам необходимо отобразить образ из пула CEPH в локальное блочное устройство:<br />
<pre># rbd map rbd01/vm-100-disk-1<br />
/dev/rbd0</pre><br />
Далее необходимо сконвертировать образ vdmk в raw формат непосредственно на отображенное устройство:<br />
<pre># qemu-img convert -f vmdk win7-pve.vmdk -O raw /dev/rbd0</pre><br />
'''Проблемы с образом VMware'''<br><br />
Кроме того Ваш образ диска может быть в формате flat, тогда при попытке конвертировать его вы получите ошибку "Operation not permitted". Вы можете посмотреть настоящий формат вашего .vdmk файла с помощью команды "file". Если файл в формате flat то вы получите примерно такой вывод:<br />
<pre># file myVMwFlatImage-pre.vmdk<br />
myVMwFlatImage-pre.vmdk: x86 boot sector; partition 1: ID=0x83, active, starthead 1,<br />
startsector 63, 208782 sectors; partition 2: ID=0x8e, starthead 0, startsector 208845,<br />
16563015 sectors, code offset 0x48</pre><br />
Очень просто конвертировать такой файл из .vdmk в .qcow2 просто убрав параметр "-f vdmk" из предыдущей команды, предоставив qemu-img автоматически определить формат исходного файла:<br />
<pre># qemu-img convert myVMwFlatImage-pve.vmdk -O qcow2 myVMwFlatImage-pve.qcow2</pre><br />
Если ваша виртуальная машина KVM стартует, но не грузится с ошибкой "booting from hard disk...boot failed: not a bootable disk", то попробуйте при конвертировании вместо типа диска "single growable virtual disk" тип "preallocated virtual disk". Для этого в командной строке запустите vmvare-vdiskmanager без параметров, Вы увидите справку по работе с командой. Тип диска при конвертации задает параметр -t <disk-type>:<br />
<pre>Disk types:<br />
0 : single growable virtual disk<br />
1 : growable virtual disk split in 2GB files<br />
2 : preallocated virtual disk<br />
3 : preallocated virtual disk split in 2GB files<br />
4 : preallocated ESX-type virtual disk<br />
5 : compressed disk optimized for streaming</pre><br />
Нам нужно выбрать тип 2:<br />
<pre>vmware-vdiskmanager -r whatever.vmdk -t 2 whatever-pve.vmdk</pre><br />
Имейте ввиду, что при этом vmware-vdiskmanager создаст два файла. Первый файл {{path|whatever-pve.vmdk}} очень маленький, это обычный текстовый файл со ссылкой на образ. Второй файл {{path|whatever-pve-flat.vmdk}}, который имеет размер всего Вашего виртуального диска и именно его надо конвертировать в kvm.<br><br />
'''Адаптация новой виртуальной машины KVM'''<br />
*Проверьте режим работы жесткого диска для Windows - IDE, для Linux SCSI<br />
*Режим VIRTIO жесткого диска:<br />
**Режим VIRTIO также доступен для Windows, но сразу загрузиться в этом режиме система не может<br />
**Загрузитесь сначала в режиме IDE и выключите машину, добавьте еще один диск в режиме VIRTIO и включите машину, Windows установит нужные драйвера<br />
**Выключите машину<br />
**Измените режим основного диска с IDE на VIRTIO<br />
**Загрузите систему, которая должна применить VIRTIO драйвер и выдать сообщение, что драйвер от RedHat<br />
*Включите виртуальную машину<br />
*Первое включение займет какое-то время пока будут загружены необходимые драйвера<br />
*Драйвера VIRTIO для Windows можно скачать [https://fedoraproject.org/wiki/Windows_Virtio_Drivers здесь]<br />
<br />
== Контейнеры (CT) ==<br />
<br />
В отличие от виртуальной машины, которая с точки зрения ОС, запущенной на физическом узле, представляет собой один процесс гипервизора, процессы контейнера выполняются на том же самом ядре, что и остальные процессы ОС. То есть, если мы запустим VM и CT на одном и том же физическом узле PVE, процессы CT будут выполняться «рядом» с процессами гипервизора. Разница будет только в применении к процессам контейнеров механизмов изоляции — пространств имён (Namespaces) и групп управления (CGroups) — работающих на уровне ядра Linux.<br />
<br />
Существует несколько реализаций изолированных контейнеров, базирующихся на этих механизмах. Например [https://openvz.org OpenVZ] и [https://linuxcontainers.org LXC], которые отличаются развитостью и проработанностью механизмов управления. В PVE версий 4+ используется реализация LXC (до 3 версии использовалась OpenVZ), обёрнутая дополнительным собственным пользовательским интерфейсом, делающим процесс создания и обслуживания контейнеров ещё более удобным.<br />
<br />
Процесс создания контейнера во многом схож с процессом создания виртуальной машины. Разница в том, что создание контейнера соответствует созданию VM и одновременно установке туда операционной системы. Эквивалентом инсталляционному диску является шаблон, из которого разворачивается контейнер. Это архив, содержащий корневую файловую систему будущего контейнера. Примеры шаблонов контейнеров можно найти на [http://download.proxmox.com/images/system/ сайте разработчиков PVE] и в [https://openvz.org/Download/template/precreated коллекции шаблонов OpenVZ].<br />
<br />
Важно помнить, что [[Шаблоны для развёртывания CT в PVE|шаблоны, пригодные для развёртывания CT в PVE]], имеют собственную нотацию имён, отличающуюся от таковых, например, в OpenVZ. Поэтому перед загрузкой очередного шаблона в хранилище PVE не забываем переименовать его соответствующим образом.<br />
<br />
[[Файл:Pve-template-load.png|900px|Загрузка шаблона контейнера]]<br />
<br />
Почти весь процесс «инсталляции» сводится к распаковке шаблона. Оставшаяся часть процесса инсталляции заключается в том, чтобы придать распакованному образу корневой файловой системы уникальные черты, отличающие его от других таких же контейнеров, созданных, возможно, из этого же самого шаблона.<br />
<br />
Уникальность контейнера обеспечивается на двух уровнях: первый уровень это уникальный идентификатор контейнера в пределах ОС физического узла, в которой разворачиваются контейнеры. Это число, как правило больше ста. PVE автоматизированным образом ведёт учёт идентификаторов и при создании контейнера не позволит выбрать уже занятый. Кстати, в пределах кластера PVE идентификаторы VM и СТ составляют единое пространство идентификаторов.<br />
<br />
Второй уровень уникальности контейнера — строго говоря, не обязательный — это сетевые настройки: IP-адрес и имя узла. Обеспечивать уникальность на этом уровне не обязательно, так как у нас может быть несколько контейнеров с одинаковым именем узла, адресом IP, и даже MAC-адресом. Просто они будут запускаться в разное время. Но следить за этим будет уже не PVE, а оператор. PVE только обеспечивает возможность задания сетевых настроек контейнера при его создании.<br />
<br />
[[Файл:Pve-ct-create-net.png|900px|Сетевые настройки контейнера]]<br />
<br />
Основная задача CT, в отличие от VM — не запуск полноценной ОС в виртуальной машине, а запуск отдельного приложения или сетевой службы в изолированном окружении. Поэтому доступ для обслуживания CT, как правило, удобнее осуществлять через обычный терминал — то есть, уже без участия интерфейса PVE. Для этого внутри контейнера настраивают серверную часть SSH, VNC или наоборот — клиентскую часть X-протокола. Впрочем, веб-интерфейс предоставляет для CT, так же, кстати, как и для физических узлов консоль. Обычную текстовую консоль UNIX.<br />
<br />
[[Файл:Pve-node-console.png|900px|Доступ к консоли через веб-интерфейс]]<br />
<br />
<br />
=== Где взять готовые контейнеры ===<br />
<br />
# Загрузить при помощи встроенной училиты pveam ("Из коробки" не работает из-за [[altbug:37631]])<br />
# Загрузить вручную с [http://download.proxmox.com/images/system/ сайта Proxmox]<br />
# Загрузить шаблоны LXC с [https://uk.images.linuxcontainers.org/images/ официального сайта] <br />
# Загрузить готовое окружение для решения конкретной задачи (на базе Debian) [http://mirror.turnkeylinux.org/turnkeylinux/images/proxmox/ отсюда]<br />
# Создать контейнер самому <br />
<br />
{{Attention|Следует учитывать, что будут работать не все контейнеры, созданные для LXC, т.к. система, на базе которой создан контейнер, должна поддерживаться скриптами PVE }}<br />
<br />
== Обслуживание виртуальных окружений ==<br />
<br />
Кроме создания, удаления и получения доступа к консоли существует ещё ряд важных задач по работе с виртуальными окружениями, которые веб-интерфейс PVE позволяет успешно решать. Это в первую очередь сбор статистики по расходованию ресурсов кластера PVE, управление доступом к объектам виртуальной инфраструктуры, и обеспечение бесперебойной работы в случае сбоев.<br />
<br />
=== Статистика ===<br />
<br />
В течение всего времени работы кластера PVE собирает статистику по широкому спектру параметров, характеризующих различные виды нагрузки на физические узлы, хранилища данных и виртуальные окружения. Статистическая информация собирается, хранится, и может быть в любой момент представлена в виде графиков и диаграмм.<br />
<br />
[[Файл:Pve-stats-node.png|900px|Данные о нагрузке на узел]]<br />
<br />
Такой наглядный способ представления может быть полезен не только для оценки текущего состояния работы системы, но и для оценки тенденций изменения характера нагрузок. Поэтому, при выборе узла, на который мы планируем добавить очередное виртуальное окружение в кластер, бывает полезно заглянуть не только в выпадающий список узлов со значениями текущих показателей нагрузки, но и в графики распределения нагрузки по времени суток и дням недели. Может оказаться, что узел, наименее нагруженный в данный момент, бо́льшую часть времени работает под максимальной нагрузкой.<br />
<br />
=== Управление доступом ===<br />
<br />
Как уже упоминалось в руководстве по установке, PVE может использовать любые базы данных пользовательских учётных записей, доступные через механизм PAM. Например, базы локальных пользователей физических узлов кластера. Кроме того, у PVE есть ещё и своя база данных учётных записей пользователей и групп. Все эти пользователи и группы являются полноправными субъектами доступа к объектам кластера. Объектами доступа являются физические узлы и хранилища данных. Полномочия субъектов доступа настраиваются через механизм ролей.<br />
<br />
[[Файл:Pve-user-as-role.png|900px|Список возможных ролей пользователя]]<br />
<br />
Для упрощения разграничения доступа в PVE существует ещё один уровень объектов доступа, функционально аналогичный группам — пулы. В состав пула могут входить виртуальные окружения и некоторые виды хранилищ данных. Доступ к пулам регулируется так же через механизм назначения ролей.<br />
<br />
=== Резервное копирование ===<br />
<br />
На радость системным администраторам PVE имеет встроенную систему резервного копирования. Добавить очередной пункт в расписание снятия резервных копий состояния виртуальных окружений и хранилищ данных можно буквально «в несколько кликов».<br />
<br />
[[Файл:Pve-backup-setup.png|900px|Настройка расписания резервного копирования]]<br />
<br />
Важно не забыть предварительно добавить хранилище, у которого будет роль хранилища для резервных копий.<br />
<br />
Формат и режим снятия резервных копий могут быть разными. Это могут быть образы остановленных виртуальных окружений, находящихся в консистентном состоянии, или снапшоты, сделанные «на лету». В последнем случае работоспособность сервисов, запущенных внутри виртуального окружения, после восстановления из резервной копии не гарантируется.<br />
<br />
=== Снапшоты ===<br />
<br />
Кроме снятия резервных копий, снапшоты используются и просто для фиксации состояния виртуального окружения. Для фиксации снапшотов есть специальный пункт в меню виртуального окружения в интерфейсе PVE.<br />
<br />
[[Файл:Pve-snapshot-setup.png|900px|Снятие снапшота]]<br />
<br />
= Ссылки =<br />
* [http://www.proxmox.com/ Официальный сайт]<br />
* [[:ruwp:Proxmox_Virtual_Environment|Proxmox VE]]<br />
<br />
[[Категория:Admin]]<br />
[[Категория:Миграция]]<br />
[[Категория:Виртуализация]]<br />
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%9F%D1%80%D0%BE&diff=47536КриптоПро2020-01-23T11:46:49Z<p>Корнеечев Евгений: /* Установка пакетов */</p>
<hr />
<div>{{Stub}}<br />
<br />
= О КриптоПро =<br />
<br />
КриптоПро — линейка криптографических утилит (вспомогательных программ) — так называемых криптопровайдеров. Они используются во многих программах российских разработчиков для генерации [[ЭЦП]], работы с сертификатами, организации структуры PKI и т.д.<br />
<br />
Сайт: http://www.cryptopro.ru/<br />
<br />
<!-- Если читатель думает, что, установив КриптоПро, он может без проблем входить на сайты электронных торговых площадок и подписывать [[ЭЦП]] документы, то это не совсем так:<br />
<blockquote style="color: #666;">''«Работать на платформах, отличных от windows, с данными площадками Вы к сожалению не сможете. Разрабатываемый Ростелекомом плагин для госуслуг не поддерживает работу с нашим криптопровайдером на linux\MacOS. Если же посмотреть в перечень ПО для работы с закрытой частью сайта закупки.гов.ру, то там требуется установка некоего компонента подписи (разраб. Ланит) и использование IE.»''[https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=69158#post69158]</blockquote> --><br />
<br />
= Совместимость =<br />
<br />
По информации разработчика, с ALT Linux совместимы следующие продукты КриптоПро:<br />
* КриптоПро CSP<br />
* КриптоПро JCP<br />
* КриптоПро HSM<br />
* КриптоПро TSP<br />
* КриптоПро OCSP<br />
* КриптоПро ЭЦП Browser plug-in<br />
* КриптоПро SSF<br />
* КриптоПро Stunnel<br />
* Браузер КриптоПро Fox <br />
<br />
{{note|В репозитории доступен пакет {{pkg|firefox-gost}}, аналогичный КриптоПро Fox, с патчем от КриптоПро.}}<br />
<br />
= Установка КриптоПро CSP =<br />
<br />
== Загрузка ==<br />
<br />
Архив с программным обеспечением (КриптоПро CSP 4.0 R4 — сертифицированная версия, КриптоПро CSP 5.0 — несертифицированная) можно [http://www.cryptopro.ru/downloads загрузить] после [http://www.cryptopro.ru/products/csp/overview предварительной регистрации]:<br />
* linux-ia32.tgz (19,3 МБ, для i586) КриптоПро CSP 4.0 для Linux (x86, rpm) для 32 разрядный систем;<br />
* linux-amd64.tgz (20,1 МБ, для x86_64) КриптоПро CSP 4.0 для Linux (x64, rpm) для 64 разрядный систем.<br />
<br />
[[Изображение:Cryptopro_load.png|Загрузка КриптоПро]]<br />
<br />
{{Attention|По умолчанию при скачивании с сайта КриптоПро выдаётся лицензия '''на три месяца'''}}<br />
<br />
== Установка пакетов ==<br />
<br />
1. Установите пакет {{pkg|cryptopro-preinstall}}:<br />
:<source lang="text" highlight="1"># apt-get install cryptopro-preinstall</source><br />
:Этот пакет установит все требуемое для КриптоПро (включая инфраструктуру поддержки карт Рутокен S и Рутокен ЭЦП).<br />
{{note|Пакет {{pkg|cryptopro-preinstall}} вытягивает зависимости {{pkg|libpangox-compat}}, {{pkg|opensc}}, {{pkg|pcsc-lite}}, {{pkg|pcsc-lite-rutokens}}, {{pkg|pcsc-lite-ccid}}, {{pkg|newt52}}.}}<br />
<br />
2. Распакуйте архив, скачанный с официального сайта КриптоПро:<br />
:<source lang="text" highlight="1">$ tar -xf linux-amd64.tgz</source><br />
<br />
''Таблица 1. Описание необходимых пакетов КриптоПро.''<br />
{|class="standard"<br />
!Пакет<br />
!Описание<br />
|-<br />
|colspan="2"|'''Базовые пакеты:'''<br />
|-<br />
|{{pkg|cprocsp-curl}}||Библиотека libcurl с реализацией шифрования по ГОСТ<br />
|-<br />
|{{pkg|lsb-cprocsp-base}}||Основной пакет КриптоПро CSP<br />
|-<br />
|{{pkg|lsb-cprocsp-capilite}}||Интерфейс CAPILite и утилиты<br />
|-<br />
|{{pkg|lsb-cprocsp-kc1}}||Провайдер криптографической службы KC1<br />
|-<br />
|{{pkg|lsb-cprocsp-kc2}}||Провайдер криптографической службы KC2 (требует наличия аппаратного датчика случайных чисел или гаммы)<br />
|-<br />
|-<br />
|{{pkg|lsb-cprocsp-rdr}}||Поддержка ридеров и RNG<br />
|-<br />
|colspan="2"|'''Дополнительные пакеты:'''<br />
|-<br />
|{{pkg|cprocsp-rdr-gui-gtk}}||Графический интерфейс для диалоговых операций<br />
|-<br />
|{{pkg|cprocsp-rdr-rutoken}}||Поддержка карт Рутокен<br />
|-<br />
|{{pkg|cprocsp-rdr-jacarta}}||Поддержка карт JaCarta<br />
|-<br />
|{{pkg|cprocsp-rdr-pcsc}}||Компоненты PC/SC для ридеров КриптоПро CSP<br />
|-<br />
|{{pkg|lsb-cprocsp-pkcs11}}||Поддержка PKCS11<br />
|-<br />
|{{pkg|ifd-rutokens}}||Конфигурация Рутокеновских карт (или можно взять {{pkg|pcsc-lite-rutokens}} из репозитория)<br />
|}<br />
<br />
3. Установите пакеты КриптоПро:<br />
* под правами пользователя root перейдите в папку с распакованным архивом:<br />
*:<source lang="text" highlight="1"># cd /home/user/linux-amd64/</source><br />
* установите базовые пакеты:<br />
*:<source lang="text" highlight="1"># apt-get install cprocsp-curl* lsb-cprocsp-base* lsb-cprocsp-capilite* lsb-cprocsp-kc1* lsb-cprocsp-rdr-64* </source><br />
{{note|Для 32-битной версии вместо последнего пакета — {{pkg|lsb-cprocsp-rdr-4*}}}}<br />
* установите пакеты для поддержки токенов (Рутокен S и Рутокен ЭЦП):<br />
*:<source lang="text" highlight="1"># apt-get install cprocsp-rdr-gui-gtk* cprocsp-rdr-rutoken* cprocsp-rdr-pcsc* lsb-cprocsp-pkcs11* pcsc-lite-rutokens pcsc-lite-ccid</source><br />
{{note|Если возникнут проблемы с отображением контейнеров на Рутокен S — удалите {{pkg|pcsc-lite-openct}}}}<br />
* установите пакет для поддержки токенов (JaCarta):<br />
*:<source lang="text" highlight="1"># apt-get install cprocsp-rdr-jacarta*</source><br />
{{note|Для установки {{pkg|cprocsp-rdr-jacarta}} может понадобиться предварительно удалить {{pkg|openct}}.}}<br />
* Для установки сертификатов Главного удостоверяющего центра:<br />
*:<source lang="text" highlight="1"># apt-get install lsb-cprocsp-ca-certs*</source><br />
<br />
Можно выполнить установку КриптоПро, запустив {{cmd|./install_gui.sh}} в распакованном каталоге и выбрав необходимые модули:<br />
<source lang="text" highlight="1"># /home/user/install_gui.sh</source><br />
[[Файл:Install_gui2.png|Установка пакетов КриптоПро]]<br />
<br />
'''Примечания:'''<br />
* Для КриптоПро CSP 3.6 R2 потребуется установить пакет {{pkg|cprocsp-compat-altlinux-1.0.0-1.noarch.rpm}}<br />
* Для установки {{pkg|cprocsp-rdr-gui}} может понадобиться [https://bugzilla.altlinux.org/show_bug.cgi?id=27115 libXm.so.3] ({{pkg|libopenmotif3}}) и для вывода кириллицы {{pkg|fonts-bitmap-cyr_rfx-iso8859-5}}.<br />
* Для установки {{pkg|cprocsp-rdr-gui-gtk}} потребуется предварительно установить {{pkg|libpangox-compat}}.<br />
* В версии 4.0.0-alt5 пакета {{pkg|cryptopro-preinstall}} добавлены подпакеты:<br />
** {{pkg|cryptopro-preinstall-base}} для установки с {{pkg|cprocsp-compat-altlinux}}, «предоставляющим» {{pkg|lsb}} (в случае нежелательности «лишних» зависимостей вроде {{pkg|libqt3}}), и<br />
** {{pkg|cryptopro-preinstall-full}} для автоустановки зависимостей {{pkg|cprocsp-rdr-gui}}.<br />
<br />
== Обновление КриптоПро ==<br />
<br />
{{Attention|Пакеты КриптоПро становятся нерабочие при их обновлении. Рекомендуется удалить все пакеты и установить пакеты снова.}}<br />
<br />
Для обновления КриптоПро необходимо:<br />
#Запомнить текущую конфигурацию:<br />
#*набор установленных пакетов:<br />
#*:<source lang="text" highlight="1">$ rpm -qa | grep cprocsp</source><br />
#*настройки провайдера (для простоты можно сохранить {{path|/etc/opt/cprocsp/config[64].ini}}). <br />
#Удалить штатными средствами ОС все пакеты КриптоПро:<br />
#:<source lang="text" highlight="1"># apt-get remove lsb-cprocsp-base</source><br />
#Установить аналогичные новые пакеты КриптоПро.<br />
#При необходимости внести изменения в настройки (можно просмотреть diff старого и нового {{path|/etc/opt/cprocsp/config[64].ini}}).<br />
#Ключи и сертификаты сохраняются автоматически.<br />
== Прописывание путей к исполняемым файлам ==<br />
<br />
Утилиты КриптоПро расположены в директориях {{path|/opt/cprocsp/sbin/<название_архитектуры>}} и {{path|/opt/cprocsp/bin/<название_архитектуры>}}.<br />
<br />
Чтобы каждый раз не вводить полный путь к утилитам КриптоПро:<br />
* после установки пакета {{pkg|cryptopro-preinstall}} начните новый сеанс пользователя в консоли;<br />
{{note|Не работает для суперпользователя.}}<br />
или<br />
* выполните от имени пользователя, который будет запускать команды (будет действовать до закрытия терминала):<br />
<source lang="Bash">export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"</source><br />
<br />
{{Attention|Если установлен пакет {{pkg|mono}} или {{pkg|mono4-devel}}, может быть конфликт по имени утилиты certmgr}}<br />
<br />
== Проверка лицензии ==<br />
<br />
Проверить срок истечения лицензии можно командой (обратите внимание на строки '''Expires:'''):<br />
<br />
<source lang="text" highlight="1">$ cpconfig -license -view<br />
License validity:<br />
4040E-G0037-EK8R3-C6K4U-HCXQG<br />
Expires: 2 month(s) 23 day(s)<br />
License type: Server.<br />
</source><br />
<br />
{{note|Для версии КриптоПро CSP под Linux все лицензии считаются серверными, поэтому не смущайтесь строкой «License type: Server».}}<br />
<br />
Для установки другой лицензии выполните (под root):<br />
<br />
<source lang="text" highlight="1"># cpconfig -license -set <серийный_номер></source><br />
<br />
{{Note|Серийный номер следует вводить с соблюдением регистра символов.}}<br />
<br />
== Проверка версии ==<br />
<br />
Проверить версию КриптоПро можно командой:<br />
<br />
<source lang="text" highlight="1">$ csptest -keyset -verifycontext | sed -n 's/.* Ver:*\([0-9.]\+\).*/\1/p'<br />
4.0.9963<br />
</source><br />
<br />
== Удаление КриптоПро ==<br />
<source lang="text" highlight="1"># apt-get remove lsb-cprocsp-base</source><br />
{{Note|Если появляется <source lang="text">support_mutex_open("registry_lock") failed:: Permission denied</source>выполните после удаления <source lang="text" highlight="1"># rm -f /var/opt/cprocsp/tmp/.registry_lock</source>}}<br />
<br />
= Настройка оборудования =<br />
<br />
Настройка устройств хранения (носителей) и считывания (считывателей) ключевой информации и датчиков случайных чисел.<br />
{{note|Если не работает под обычным пользователем, то [https://access.redhat.com/blogs/766093/posts/1976313 проверить правила polkit].}}<br />
Считыватели (readers) — устройства, предназначенные для чтения ключей. К считывателям относится считыватели дискет (FAT12), считыватели флеш-накопителей (FLASH), считыватели смарт-карт и токенов, считыватель образа дискеты на жестком диске (HDIMAGE) и др. <br />
<br />
Ключевые носители (media) являются местом хранения электронной подписи. В качестве носителя ключевой информации могут использоваться: защищенный флэш-накопитель (токен) ([[Rutoken|Рутокен]], [[JaCarta|JaCarta]], [[ESMART|ESMART]] и др.), смарт-карта, флэш-накопитель, дискета.<br />
<br />
Ключевые контейнеры — это способ хранения закрытых ключей, реализованный в КриптоПро. Их физическое представление зависит от типа ключевого носителя (на флеш-накопителе, дискете, жестком диске это каталог в котором хранится набор файлов с ключевой информацией; в случае со смарт-картами — файлы в защищенной памяти смарт-карты). <br />
<br />
Встроенный в «КриптоПро CSP» датчик случайных чисел (далее ДСЧ) используется для генерации ключей.<br />
<br />
Для смарт-карт: ключи дополнительно защищаются кодом доступа к защищенной памяти смарт-карты (PIN). При всех операциях с защищенной памятью (чтение, запись, удаление...) требуется вводить PIN.<br />
Для других носителей: для повышения безопасности на контейнер можно установить пароль. В этом случае всё содержимое контейнера хранится не в открытом виде, а в зашифрованном на этом пароле. Пароль задается при создании контейнера, в дальнейшем для чтения ключей из контейнера необходимо будет вводить пароль.<br />
<br />
{{Note|Подробнее про работе с разными ключевыми носителями: [[Rutoken|Рутокен]], [[JaCarta|JaCarta]], [[ESMART|ESMART]]}}<br />
== Управление считывателями ==<br />
Просмотр доступных (настроенных) считывателей:<br />
<source lang="text" highlight="1">$ cpconfig -hardware reader -view<br />
<br />
Nick name: Aladdin R.D. JaCarta [SCR Interface] 00 00<br />
Connect name: <br />
Reader name: <br />
<br />
Nick name: FLASH<br />
Connect name: <br />
Reader name: <br />
<br />
Nick name: HDIMAGE<br />
Connect name: <br />
Reader name:<br />
</source><br />
Либо:<br />
<source lang="text" highlight="1">$ csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251<br />
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.<br />
CryptAcquireContext succeeded.HCRYPTPROV: 6679203<br />
GetProvParam(...PP_ENUMREADERS...) until it returns false<br />
Len Byte NickName/Name<br />
_____________________________<br />
0x012a 0x72 ACS ACR38U-CCID 00 00<br />
All PC/SC readers<br />
0x012a 0x72 Aktiv Co. Rutoken S 00 00<br />
All PC/SC readers<br />
0x012a 0x58 FLASH<br />
FLASH<br />
0x012a 0x18 HDIMAGE<br />
Структура дискеты на жестком диске<br />
Cycle exit when getting data. 4 items found. Level completed without problems.<br />
Total: SYS: 0,000 sec USR: 0,170 sec UTC: 0,190 sec<br />
[ErrorCode: 0x00000000]</source><br />
<br />
Инициализация считывателя HDIMAGE, если его нет в списке доступных считывателей (под правами root):<br />
<br />
<source lang="text" highlight="1"># cpconfig -hardware reader -add HDIMAGE store<br />
Adding new reader:<br />
Nick name: HDIMAGE<br />
Succeeded, code:0x0</source><br />
<br />
Считыватель HDIMAGE размещается на {{path|/var/opt/cprocsp/keys/<имя пользователя>/}}.<br />
<br />
Для работы со считывателем PC/SC требуется пакет cprocsp-rdr-pcsc. После подключения считывателя можно просмотреть список видимых считывателей (не зависимо от того, настроены ли они в КриптоПро как считыватели, зависит только от того, какие установлены драйверы для считывателей):<br />
<source lang="text" highlight="1">$ list_pcsc <br />
Aladdin R.D. JaCarta [SCR Interface] 00 00<br />
Aktiv Co. Rutoken S 00 00</source><br />
<br />
Инициализация считывателя {{path|Aktiv Co. Rutoken S 00 00}} (требуется, если считыватель есть в списке видимых считывателей и отсутствует в списке настроенных), в параметре -add указывается имя, которое было получено при просмотре видимых считывателей, в параметре -name — удобное для обращения к считывателю имя, например, {{path|Rutoken}} (под правами root):<br />
<br />
<source lang="text" highlight="1"># cpconfig -hardware reader -add 'Aktiv Co. Rutoken S 00 00' -name 'Rutoken'<br />
Adding new reader:<br />
Nick name: Aktiv Co. Rutoken S 00 00<br />
Name device: Rutoken<br />
Succeeded, code:0x0<br />
</source><br />
<br />
Современные аппаратные и программно-аппаратные хранилища ключей, такие как Рутокен ЭЦП или eSmart ГОСТ, поддерживаются через интерфейс PCSC. За реализацию этого интерфейса отвечает служба {{cmd|pcscd}}, которую необходимо запустить перед началом работы с соответствующими устройствами:<br />
<br />
<source lang="text" highlight="1"># systemctl start pcscd</source><br />
<br />
Можно включить службу {{cmd|pcscd}} в автозапуск при загрузке системы:<br />
<source lang="text" highlight="1"># systemctl enable pcscd</source><br />
<br />
== Управление носителями ==<br />
Просмотр доступных носителей:<br />
<source lang="text" highlight="1">$ cpconfig -hardware media -view | iconv -f cp1251</source><br />
<br />
== Управление ДСЧ ==<br />
Просмотр списка настроенных ДСЧ:<br />
<source lang="text" highlight="1">$ cpconfig -hardware rndm -view<br />
<br />
Nick name: CPSD<br />
Connect name: <br />
Rndm name: <br />
Rndm level: 3<br />
<br />
Nick name: BIO_GUI<br />
Connect name: <br />
Rndm name: <br />
Rndm level: 4<br />
<br />
Nick name: BIO_TUI<br />
Connect name: <br />
Rndm name: <br />
Rndm level: 5<br />
</source><br />
<br />
<br />
== Настройка криптопровайдера ==<br />
<br />
Просмотреть доступные типы криптопровайдеров можно командой {{cmd|cpconfig -defprov -view_type}}:<br />
<source lang="text" highlight="1">$ cpconfig -defprov -view_type<br />
Provider type Provider Type Name<br />
_____________ _____________________________________<br />
75 GOST R 34.10-2001 Signature with Diffie-Hellman Key Exchange<br />
80 GOST R 34.10-2012 (256) Signature with Diffie-Hellman Key Exchange<br />
81 GOST R 34.10-2012 (512) Signature with Diffie-Hellman Key Exchange<br />
16 ECDSA Full and AES<br />
24 RSA Full and AES<br />
</source><br />
Просмотр свойств криптопровайдера нужного типа:<br />
<source lang="text" highlight="1">$ cpconfig -defprov -view -provtype 80<br />
Listing Available Providers:<br />
Provider type Provider Name<br />
_____________ _____________________________________<br />
80 Crypto-Pro GOST R 34.10-2012 KC1 CSP<br />
80 Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider<br />
<br />
Provider types and provider names have been listed.<br />
</source><br />
<br />
== Управление контейнерами ==<br />
<br />
==== Создание контейнера ====<br />
{{note|Для того, чтобы сертификат из контейнера можно было использовать через модуль pkcs11 (из пакета {{pkg|lsb-cprocsp-pkcs11}}) в браузере {{pkg|firefox-gost}}, необходимо создать его с -provtype 75 (поддержка ГОСТ-2001).}}<br />
<br />
{{Attention|C 1 января 2019 г. по указанию ФСБ РФ и Минкомсвязи всем аккредитованным УЦ запрещен выпуск сертификатов ЭП по ГОСТ 2001.<br />
Ключи и запрос на сертификат необходимо формировать ГОСТ 2012.}}<br />
<br />
Создадим контейнер с именем «''test''» в локальном считывателе ''HDIMAGE''.<br />
<br />
<source lang="text" highlight="1">$ csptest -keyset -provtype 75 -newkeyset -cont '\\.\HDIMAGE\test'</source><br />
<br />
При установленном пакете {{pkg|cprocsp-rdr-gui-gtk}} будет показано графическое окно, где будет предложено перемещать указатель мыши или нажимать клавиши:<br />
<br />
[[Изображение:Cryptopro-newkeyset-ru.png|Генерация случайной последовательности]]<br />
<br />
{{note|Если такой пакет не установлен, будет предложено ввести любые символы с клавиатуры.}}<br />
<br />
После этого будет предложено указать пароль на контейнер (можно указать пустой, тогда пароль запрашиваться не будет):<br />
<br />
[[Изображение:Cryptopro-newkeyset-passwordset.png|Установка пароля на контейнер]]<br />
<br />
{{Attention|При создании контейнера на токене:<br />
<source lang="text" highlight="1">$ csptest -keyset -provtype 75 -newkeyset -cont '\\.\Aladdin R.D. JaCarta [SCR Interface] 01 00\test'</source><br />
<br />
Пароль не создается, а предъявляется (PIN-код пользователя):<br />
[[Изображение:Cryptopro-newkeyset-pin.png|Запрос пин-кода для аутентификации на носителе]]}}<br />
<br />
После указания пароля снова будет предложено перемещать указатель мыши.<br />
<br />
Вывод команды:<br />
<br />
<source lang="text">CSP (Type:75) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.<br />
AcquireContext: OK. HCRYPTPROV: 6679219<br />
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP<br />
Container name: "test"<br />
Signature key is not available.<br />
Attempting to create a signature key...<br />
a signature key created.<br />
Exchange key is not available.<br />
Attempting to create an exchange key...<br />
an exchange key created.<br />
Keys in container:<br />
signature key<br />
exchange key<br />
Extensions:<br />
OID: 1.2.643.2.2.37.3.9<br />
<br />
OID: 1.2.643.2.2.37.3.10<br />
Total: SYS: 0,030 sec USR: 0,160 sec UTC: 22,910 sec<br />
[ErrorCode: 0x00000000]<br />
</source><br />
<br />
Локальный контейнер создан.<br />
<br />
В КриптоПро 5 появилась возможность интерактивно выбирать носитель и тип создаваемого контейнера. Теперь можно создавать неизвлекаемые контейнеры. <br><br />
Для этого необходимо выполнить команду, где {{path|testinside_2012}} — имя контейнера:<br />
<source lang="text" highlight="1">$ csptest -keyset -provtype 80 -newkeyset -cont testinside_2012</source><br />
<br />
Откроется окно выбора носителя и способа создания контейнера. Для некоторых носителей нет возможности выбрать способ создания контейнера (Рутокен S, JaCarta PKI):<br />
<br />
[[Файл:CryptoPro5_keyset.png|Создание контейнера]]<br><br />
<br />
Для некоторых носителей можно выбрать способ создания контейнера (Рутокен ЭЦП, JaCarta-2 PKI/ГОСТ).<br><br />
Создание неизвлекаемого контейнера:<br><br />
[[Файл:CryptoPro5 keyset win 1.jpg|Создание неизвлекаемого контейнера]]<br><br />
Создание обычного контейнера:<br><br />
[[Файл:CryptoPro5 keyset win 2.jpg|Создание обычного контейнера]]<br><br />
<br />
==== Просмотр доступных контейнеров ====<br />
<br />
{{Attention|При подключении токена в порт USB3, контейнеры видны не будут.}}<br />
<br />
{{Note|Вы можете загрузить все сертификаты с подключенных токенов командой: <source lang="text">csptestf -absorb -certs -autoprov</source>}}<br />
<br />
Проверить наличие контейнеров можно с помощью команды:<br />
<br />
<source lang="text" highlight="1">$ csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251<br />
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.<br />
AcquireContext: OK. HCRYPTPROV: 6679203<br />
\\.\HDIMAGE\test<br />
OK.<br />
Total: SYS: 0,000 sec USR: 0,070 sec UTC: 0,130 sec<br />
[ErrorCode: 0x00000000]</source><br />
<br />
{{Attention|Имена контейнеров могут содержать названия в кодировке cp1251 (например, на токенах), что делает работу с ними по этим именам проблематичной. Можно показать список контейнеров с их уникальными именами командой: <source lang="text" highlight="1">$ csptest -keyset -enum_cont -fqcn -verifyc -uniq<br />
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.<br />
AcquireContext: OK. HCRYPTPROV: 6679203<br />
\\.\Aktiv Co. Rutoken S 00 00\card |\\.\Aktiv Co. Rutoken S 00 00\SCARD\rutoken_2b8654f7\0A00\6AD1<br />
\\.\HDIMAGE\test |\\.\HDIMAGE\HDIMAGE\\test.000\2EF8<br />
OK.<br />
Total: SYS: 0,020 sec USR: 0,190 sec UTC: 1,510 sec<br />
[ErrorCode: 0x00000000]</source> Уникальные имена указаны после символа «&#124;».}}<br />
<br />
Просмотр подробной информации о контейнере:<br />
<source lang="text" highlight="1">csptestf -keyset -container '\\.\HDIMAGE\test' -info</source><br />
<br />
==== Удаление контейнера ====<br />
<br />
Удалить контейнер можно с помощью команды:<br />
<br />
<source lang="text" highlight="1">$ csptest -keyset -deletekeyset -cont '\\.\HDIMAGE\test'<br />
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.<br />
Container \\.\HDIMAGE\test deleted.<br />
Total: SYS: 0,010 sec USR: 0,240 sec UTC: 0,260 sec<br />
[ErrorCode: 0x00000000]</source><br />
<br />
= Управление сертификатами =<br />
<br />
cryptcp — приложение командной строки для создания запросов на сертификаты, шифрования и расшифрования файлов, создания и проверки электронной подписи файлов с использованием сертификатов открытых ключей, хэширования файлов. Результатом работы приложения в большинстве случаев является файл с CMS-сообщением (PKCS#7) в кодировке DER или BASE64.<br />
<br />
=== Создание запроса на получение сертификата ===<br />
Создание запроса на получение сертификата средствами КриптоПро:<br />
<source lang="text" highlight="1">cryptcp -creatrqst -dn "список имён полей" -cont 'путь к контейнеру' <название_файла>.csr</source><br />
<br />
Для создания запроса на получение сертификата потребуется:<br />
# DN — данные, которые будут храниться в поле Subject сертификата (cn=Test User5,e=cas@altlinux.org).<br />
# Имя контейнера вместе со считывателем (например, в локальном хранилище hdimage: {{path|\\.\HDIMAGE\test}}).<br />
# Имя файла, в котором следует сохранить запрос ({{path|test5.csr}}).<br />
<br />
{{Attention|Для использования проверки подлинности клиента в браузере потребуется также указать, что запрос создается по ГОСТ 2001 и добавляется тип применения подлинности клиента: {{cmd|-provtype 75 -certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2"}}.}}<br />
<br />
С помощью опции -certusage можно указать OID назначение сертификата.<br />
Назначение сертификата представляется в сертификате объектным идентификатором, присвоенным этой политике, — OID. Если в сертификате указано несколько политик, то это означает, что сертификат соответствует всем этим политикам списка.<br />
<br />
''Таблица 2. Типы применения.''<br />
{|class="standard"<br />
!OID<br />
!Назначение<br />
|-<br />
|{{term|1.3.6.1.5.5.7.3.1}}||Аутентификация сервера<br />
|-<br />
|{{term|1.3.6.1.5.5.7.3.2}}||Аутентификация клиента<br />
|-<br />
|{{term|1.3.6.1.5.5.7.3.3}}||Подписывание кода<br />
|-<br />
|{{term|1.3.6.1.5.5.7.3.4}}||Защищенная электронная почта<br />
|-<br />
|{{term|1.3.6.1.5.5.7.3.8}}||Простановка штампов времени<br />
|-<br />
|{{term|1.3.6.1.4.1.311.10.5.1}}||Цифровые права<br />
|-<br />
|{{term|1.3.6.1.4.1.311.10.3.12}}||Подписывание документа<br />
|}<br />
<br />
''Таблица 3. Поле Subject сертификата''<br />
{|class="standard"<br />
!OID<br />
!Алиас<br />
!Назначение<br />
!Примечание<br />
|-<br />
|{{term|2.5.4.3}}||CN||Общее имя||Наименование ЮЛ (если ИНН начинается с "00") или ФИО владельца. Длина не более 64 символов<br />
|-<br />
|{{term|2.5.4.4}}||SN||Фамилия<br />
|-<br />
|{{term|2.5.4.42}}||GN/G||Имя Отчество||Общая длина текста в полях SN и G должна быть не более 64 символов (с учетом одного пробела между текстом из Фамилии и текстом из Имени)<br />
|-<br />
|{{term|1.2.840.113549.1.9.1}}||emailAddress/E||Адрес электронной почты||ivanov@mail.mail<br />
|-<br />
|{{term|1.2.643.100.3}}||SNILS||СНИЛС||Должно быть записано 11 цифр (допускается 11 нулей для иностранных граждан).<br />
|-<br />
|{{term|1.2.643.3.131.1.1}}||INN||ИНН||12 цифр, для ЮЛ первые две цифры 00<br />
|-<br />
|{{term|2.5.4.6}}||C||Страна||Двухсимвольный код страны (RU)<br />
|-<br />
|{{term|2.5.4.8}}||S||Регион||Наименование субъекта РФ ЮЛ: по адресу местонахождения,<br />
ФЛ: по адресу регистрации (39 Калининградская обл.)<br />
|-<br />
|{{term|2.5.4.7}}||L||Населенный пункт||Наименование населенного <br />
пункта (Калининград)<br />
|-<br />
|{{term|2.5.4.9}}||street||Название улицы, номер дома||Пр-т Победы 14 кв.3<br />
|-<br />
|<br />
|-<br />
|{{term|2.5.4.10}}||O||Организация||Полное или сокращенное <br />
наименование организации (только для ЮЛ)<br />
|-<br />
|{{term|2.5.4.11}}||OU||Подразделение||В случае выпуска СКПЭП на должностное лицо – соответствующее подразделение организации (только для ЮЛ)<br />
|-<br />
|{{term|2.5.4.12}}||T||Должность||В случае выпуска СКПЭП на должностное лицо – его должность (только для ЮЛ)<br />
|-<br />
|{{term|1.2.643.100.1}}||OGRN||ОГРН||ОГРН организации (только для ЮЛ)<br />
|}<br />
<br />
Создать запрос на субъект "cn=Test User5,e=cas@altlinux.org", используя открытый ключ, сгенерированный в контейнере test текущего пользователя криптопровайдером «GOST R 34.10-2001» (тип — 75) и сохранить его в файл test5.req, назначение ключа — аутентификация и защита электронной почты:<br />
<source lang="text" highlight="1">$ cryptcp -creatrqst -dn "cn=Test User5,e=cas@altlinux.org" -provtype 75 -nokeygen -cont '\\.\HDIMAGE\test' -certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" test5.req<br />
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.<br />
Утилита командной строки для подписи и шифрования файлов.<br />
Запрос успешно создан и сохранен в файле.<br />
[ErrorCode: 0x00000000]<br />
</source><br />
<br />
Созданный запрос будет сохранен в файле test5.req. Эти данные нужны для получения сертификата в удостоверяющем центре.<br />
<br />
Создать запрос на физическое лицо, используя открытый ключ, сгенерированный в контейнере test_2012 (тип — 80) текущего пользователя криптопровайдером «Crypto-Pro GOST R 34.10-2012 KC1 CSP» (тип — 80) и сохранить его в файл test2012.req, назначение ключа — аутентификация и защита электронной почты:<br />
<br />
<source lang="text" highlight="1-14">$ cryptcp -creatrqst \<br />
-dn "CN=Иванов Иван Иванович,SN=Иванов,G=Иван Иванович,E=ivanov@mail.mail,C=RU,L=Калининград,ST=39 Калининградская обл.,street=Пр-т Победы 14 кв.3,SNILS=102301111222,INN=11223344556" \<br />
-provtype 80 -nokeygen \<br />
-cont '\\.\HDIMAGE\test_2012' \<br />
-certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" test2012.req<br />
</source><br />
Тот же запрос, используя OID:<br />
<source lang="text" highlight="1-14">$ cryptcp -creatrqst \<br />
-dn "2.5.4.3=Иванов Иван Иванович,2.5.4.4=Иванов,2.5.4.42=Иван Иванович,1.2.840.113549.1.9.1=ivanov@mail.mail,2.5.4.6=RU,2.5.4.8=39 Калининградская обл.,2.5.4.7=Калининград,2.5.4.9=Пр-т Победы 14 кв.3,1.2.643.3.131.1.1=102301111222,1.2.643.100.3=11223344556" \<br />
-provtype 80 -nokeygen -cont '\\.\HDIMAGE\test_2012' \<br />
-certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" test2012.req</source><br />
<br />
{{note|Подробную [http://cryptopro.ru/sites/default/files/products/cryptcp/cryptcp_5.0.x.pdf инструкцию] по работе с утилитой cryptcp можно скачать со страницы http://cryptopro.ru/products/other/cryptcp}}<br />
<br />
===Установка сертификата===<br />
Добавление сертификата, без привязки к ключам (только проверка ЭЦП):<br />
<br />
<source lang="text" highlight="1">$ certmgr -inst -file cert.cer</source><br />
<br />
Ассоциировать сертификат с контейнером, сертификат попадет в пользовательское хранилище uMy:<br />
<source lang="text" highlight="1">$ certmgr -inst -file cert.cer -store uMy -cont '\\.\HDIMAGE\test' </source><br />
<br />
Запись сертификата клиента в контейнер:<br />
<source lang="text" highlight="1">$ cryptcp -instcert -provtype 80 -cont '\\.\HDIMAGE\test' -ku -askpin cert.cer</source><br />
Основные опции:<br />
<br />
-provtype — указать тип криптопровайдера (по умолчанию 75);<br />
<br />
-provname — указать имя криптопровайдера;<br />
<br />
-cont — задать имя ключевого контейнера (по умолчанию выбор из списка);<br />
<br />
-ku — использовать контейнер пользователя (CURRENT_USER);<br />
<br />
-km — использовать контейнер компьютера (LOCAL_MACHINE);<br />
<br />
-dm — установка в хранилище компьютера (LOCAL_MACHINE);<br />
<br />
-du — установка в хранилище пользователя (CURRENT_USER);<br />
<br />
-askpin — запросить пароль ключевого контейнера из с консоли;<br />
<br />
<имя файла> — имя файла, содержащего сертификат.<br />
<br />
Добавление сертификата УЦ из файла certne_ucw.cer в хранилище машины (для текущего пользователя): <br />
<source lang="text" highlight="1">$ certmgr -inst -file certne_ucw.cer -store uRoot</source><br />
<br />
Добавление корневых сертификатов из файла cert.p7b (для текущего пользователя): <br />
<source lang="text" highlight="1">$ certmgr -inst -all -file cert.p7b -store uRoot</source><br />
Необходимо последовательно добавить все сертификаты.<br />
<br />
{{Note|Корневые сертификаты для всех пользователей ставятся в хранилище машины — т.е. с параметром {{cmd|-store mRoot}}. Например: {{cmd|# certmgr -inst -store mRoot -file /tmp/cert.cer}}}}<br />
<br />
=== Просмотр сертификатов ===<br />
<br />
Для просмотра установленных сертификатов можно воспользоваться командой:<br />
<source lang="text" highlight="1">$ certmgr -list <br />
Certmgr 1.1 (c) "Crypto-Pro", 2007-2018.<br />
program for managing certificates, CRLs and stores<br />
<br />
=============================================================================<br />
1-------<br />
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2<br />
Subject : CN=Test User5, E=cas@altlinux.org<br />
Serial : 0x120012447FA7E652B76808CD7900000012447F<br />
SHA1 Hash : 0xcb8e7ca68bea0ffbbd84c326d565de68cd8a15f5<br />
SubjKeyID : 6f7507353601d6d943f1406aae60c21ab65190e0<br />
Signature Algorithm : ГОСТ Р 34.11/34.10-2001<br />
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)<br />
Not valid before : 18/12/2018 13:41:38 UTC<br />
Not valid after : 18/03/2019 13:51:38 UTC<br />
PrivateKey Link : Yes <br />
Container : HDIMAGE\\test.000\2EF8<br />
Provider Name : Crypto-Pro GOST R 34.10-2001 KC1 CSP<br />
Provider Info : ProvType: 75, KeySpec: 1, Flags: 0x0<br />
CA cert URL : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt<br />
OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf<br />
CDP : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl<br />
Extended Key Usage : 1.3.6.1.5.5.7.3.4<br />
1.3.6.1.5.5.7.3.2<br />
=============================================================================<br />
<br />
[ErrorCode: 0x00000000]</source><br />
<br />
Просмотр сертификатов в локальном хранилище uMy:<br />
<source lang="text" highlight="1">$ certmgr -list -store uMy</source><br />
<br />
{{Note|Если в списке сертификатов выводится '''PrivateKey Link: Yes. Container: HDIMAGE\\test.000\2EF8''', то сертификат ассоциирован (связан) с приватным ключом, а если выводится '''PrivateKey Link: No''' — связи нет, и использовать такой контейнер для подписи не удастся: <br />
<br />
[[Изображение:Certmgr_list.png|Ассоциация сертификата с контейнером]]}}<br />
<br />
Просмотр сертификатов в контейнере: <br />
<source lang="text" highlight="1">$ certmgr -list -container '\\.\Aktiv Rutoken ECP - CP 00 00\Rutoken'</source><br />
<br />
Просмотр корневых сертификатов:<br />
<source lang="text" highlight="1">$ certmgr -list -store uRoot</source><br />
<br />
=== Получение сертификата в УЦ и его установка ===<br />
<br />
Для получения сертификата в УЦ (на примере тестового удостоверяющего центра КриптоПро), необходимо выполнить следующие действия:<br />
<br />
# Откройте в браузере ссылку http://www.cryptopro.ru/certsrv (тестовый удостоверяющий центр КриптоПро).<br />
# Нажмите ссылку «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64»:<br />
#:[[Изображение:Certrqxt1.png|Ссылка «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64»]]<br />
# Вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла {{path|test5.req}} и нажмите кнопку «Выдать»: <br />
#:[[Изображение:Certrqxt.png|Выдача запроса на сертификат]]<br />
# Сохраните файл по ссылке «Загрузить цепочку сертификатов» (по умолчанию предлагается имя {{path|certnew.p7b}}):<br />
#:[[Изображение:Certrqxt2.png|Ссылка «Загрузить цепочку сертификатов»]]<br />
<br />
{{Note|Просмотреть содержимое файла {{path|test5.req}} можно, выполнив команду: <br />
<source lang="text" highlight="1">$ cat test5.req<br />
MIIBMDCB4AIBADA2MRMwEQYDVQQDDApUZXN0IFVzZXI1MR8wHQYJKoZIhvcNAQkBFhBjYXNAYWx0<br />
bGludXgub3JnMGMwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEDQwAEQDq5IAql+tHfVT7r<br />
oz+P5dPgOUVXc7dg91nzGM7fkUBSKlapGO2A2xUDRUBHLtW/hBCiZsxdH3ydhzlZ6nhcbNKgPjA8<br />
BgorBgEEAYI3AgEOMS4wLDAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwCwYDVR0PBAQD<br />
AgTwMAgGBiqFAwICAwNBAFYnhGI6SsCwFRSl5p6EVnM7y6Hx9JGM6BFS4U3xTEGvzMK7yzk9j1kG<br />
EKU7YZO5cFluPuDdi0WuYskhdz4SEg4=</source>}}<br />
<br />
Просмотреть полученный сертификат можно, выполнив команду:<br />
<br />
<source lang="text" highlight="1">$ certmgr -list -file certnew.p7b<br />
Certmgr 1.1 (c) "CryptoPro", 2007-2018.<br />
program for managing certificates, CRLs and stores<br />
<br />
=============================================================================<br />
1-------<br />
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2<br />
Subject : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2<br />
Serial : 0x2B6E3351FD6EB2AD48200203CB5BA141<br />
SHA1 Hash : 0x046255290b0eb1cdd1797d9ab8c81f699e3687f3<br />
SubjKeyID : 15317cb08d1ade66d7159c4952971724b9017a83<br />
Signature Algorithm : ГОСТ Р 34.11/34.10-2001<br />
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)<br />
Not valid before : 05/08/2014 13:44:24 UTC<br />
Not valid after : 05/08/2019 13:54:03 UTC<br />
PrivateKey Link : No <br />
2-------<br />
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2<br />
Subject : CN=Test User5, E=cas@altlinux.org<br />
Serial : 0x120012447FA7E652B76808CD7900000012447F<br />
SHA1 Hash : 0xcb8e7ca68bea0ffbbd84c326d565de68cd8a15f5<br />
SubjKeyID : 6f7507353601d6d943f1406aae60c21ab65190e0<br />
Signature Algorithm : ГОСТ Р 34.11/34.10-2001<br />
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)<br />
Not valid before : 18/12/2018 13:41:38 UTC<br />
Not valid after : 18/03/2019 13:51:38 UTC<br />
PrivateKey Link : No<br />
CA cert URL : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt<br />
OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf<br />
CDP : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl<br />
Extended Key Usage : 1.3.6.1.5.5.7.3.4<br />
1.3.6.1.5.5.7.3.2<br />
=============================================================================<br />
<br />
[ErrorCode: 0x00000000]<br />
</source><br />
<br />
Цепочка сертификатов содержит два сертификата:<br />
*Сертификат удостоверяющего центра.<br />
*Сертификат клиента.<br />
<br />
Для установки сертификата удостоверяющего центра:<br />
* выполните команду:<br />
*:<source lang="text" highlight="1">$ certmgr -inst -file certnew.p7b -store uRoot</source><br />
* в ответ на запрос команды нажмите 1.<br />
<br />
Для записи сертификата клиента в контейнер:<br />
* выполните команду:<br />
*:<source lang="text" highlight="1">$ certmgr -inst -file certnew.p7b -store uMy -cont '\\.\HDIMAGE\test'</source><br />
* в ответ на запрос команды нажмите 2.<br />
*введите пароль на контейнер \\.\HDIMAGE\test при запросе:<br />
*:[[Изображение:Keyset_pass.png|Запрос пароля на контейнер]]<br />
<br />
{{Note|Корневые сертификаты для всех пользователей ставятся в хранилище машины — т.е. с параметром {{cmd|-store mRoot}}. Например: {{cmd|# certmgr -inst -store mRoot -file /tmp/cert.cer}}<br />
CRL ставятся точно также только с параметром -crl. CRL ставить не обязательно, но нужно убедиться что в {{path|/etc/opt/cprocsp/config64.ini}} в секции apppath указан правильный путь для libcurl.so. По умолчанию там путь до библиотеки от КриптоПро и если curl от КриптоПро не установлен — загрузка CRL работать не будет. Установка параметра на 64-битных системах: <source lang="text" highlight="1"># cpconfig -ini \\config\\apppath -add string libcurl.so /opt/cprocsp/lib/amd64/libcpcurl.so</source>}}<br />
<br />
=== Проверка цепочки сертификатов ===<br />
<br />
{{Attention|В кэше сертификатов для выпущенного сертификата должны присутствовать корневые сертификаты удостоверяющих центров. В противном случае он будет недоступен в плагине для браузера!}}<br />
<br />
''Таблица 4. Сертификаты популярных удостоверяющих центров.''<br />
{|class="standard"<br />
!Удостоверяющий Центр<br />
!Источник<br />
!Сертификаты<br />
|-<br />
|ПАК «Головной удостоверяющий центр»||https://e-trust.gosuslugi.ru/MainCA||https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=8CAE88BBFD404A7A53630864F9033606E1DC45E2<br />
|-<br />
|ЗАО «Национальный удостоверяющий центр»||https://www.nucrf.ru/info/||https://www.nucrf.ru/download/nucrf.p7b <br />
|-<br />
|Удостоверяющий центр СКБ Контур||https://ca.kontur.ru/about/certificates (выбрать 2015 год)||http://cdp.skbkontur.ru/certificates/kontur-root-2015.crt<br />
|-<br />
|}<br />
<br />
Для проверки можно скопировать персональный сертификат в файл:<br />
<br />
<source lang="text" highlight="1">cryptcp -copycert -dn "CN=Иванов Иван Иванович" -df tt.cer<br />
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.<br />
Утилита командной строки для подписи и шифрования файлов.<br />
<br />
Будет использован следующий сертификат:<br />
Субъект:11223344556, 102301111222, Пр-т Победы 14 кв.3, 39 Калининградская обл., Калининград, RU, ivanov@mail.mail, Иван Иванович, Иванов, Иванов Иван Иванович<br />
Действителен с 21.02.2019 13:16:38 по 21.05.2019 13:26:38<br />
<br />
Цепочки сертификатов проверены.<br />
Копирование сертификатов завершено.<br />
[ErrorCode: 0x00000000]<br />
</source><br />
Из вывода следует, что все сертификаты есть в цепочке сертификатов.<br />
<br />
Если же команда возвращает «Цепочка сертификатов не проверена для следующего сертификата:» или другую ошибку:<br />
<br />
<source lang="text" highlight="1">$ cryptcp -copycert -dn E=user@test.ru -df personal.cer<br />
<br />
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.<br />
Command prompt Utility for file signature and encryption.<br />
<br />
The following certificate will be used:<br />
RDN:******<br />
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00<br />
<br />
Certificate chain is not checked for this certificate:<br />
RDN:******<br />
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00<br />
<br />
The certificate or certificate chain is based on an untrusted root.<br />
Do you want to use this certificate ([Y]es, [N]o, [C]ancel)?</source><br />
(нажмите C и Enter, чтобы выйти).<br />
<br />
Можно запустить вышеуказанную команду с отладкой цепочки:<br />
<source lang="text" highlight="1">$ CP_PRINT_CHAIN_DETAIL=1 cryptcp -copycert -dn E=user@test.ru -df personal.cer<br />
...<br />
----------- Error chain -----------<br />
Chain status:IS_UNTRUSTED_ROOT<br />
Revocation reason:unspecified<br />
1. <br />
Subject:'E=ca@skbkontur.ru, C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)'<br />
Issuer:'E=ca@skbkontur.ru, C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)'<br />
Cert status:IS_UNTRUSTED_ROOT<br />
...<br />
</source><br />
<br />
То есть нам надо установить сертификат УЦ с '''CN=uc skb kontur (root)''':<br />
<br />
<source lang="text" highlight="1">$ certmgr -inst -store uRoot -file kontur-root-2015.crt</source><br />
<br />
После этого:<br />
<source lang="text" highlight="1">$ cryptcp -copycert -dn E=user@test.ru -df personal.cer<br />
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.<br />
Command prompt Utility for file signature and encryption.<br />
<br />
The following certificate will be used:<br />
RDN:******<br />
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00<br />
<br />
Certificate chains are checked.<br />
Certificate's been copied.<br />
[ReturnCode: 0]<br />
</source><br />
<br />
Всё в порядке и сертификат виден в плагине Cades.<br />
<br />
=== Удаление сертификата ===<br />
<br />
Удалить сертификат c "CN=Иванов Иван Иванович" из хранилища КриптоПро:<br />
<source lang="text" highlight="1">$ certmgr -delete -dn "CN=Иванов Иван Иванович"</source><br />
<br />
Удалить сертификат c "CN=Иванов Иван Иванович" из контейнера:<br />
<source lang="text" highlight="1">$ certmgr -delete -dn "CN=Иванов Иван Иванович" -container '\\.\Aladdin R.D. JaCarta [SCR Interface] 01 00\test'</source><br />
<br />
Удалить все сертификаты из хранилища КриптоПро:<br />
<source lang="text" highlight="1-2">$ certmgr -delete -all<br />
$ certmgr -delete -store uRoot</source><br />
<br />
Удалить все сертификаты установленные в хранилище машины:<br />
<source lang="text" highlight="1"># certmgr -delete -store mRoot</source><br />
<br />
=== Экспорт контейнера и сертификата на другую машину ===<br />
Если при создании контейнера он был помечен как экспортируемый (ключ -exportable), то его можно экспортировать на USB-диск:<br />
<source lang="text" highlight="1">$ csptest -keycopy -contsrc '\\.\HDIMAGE\test_export' -contdest '\\.\FLASH\test_new'<br />
CryptAcquireContext succeeded.HCRYPTPROV: 36965843<br />
CryptAcquireContext succeeded.HCRYPTPROV: 37297363<br />
Total: SYS: 0,100 sec USR: 0,200 sec UTC: 13,420 sec<br />
[ErrorCode: 0x00000000]</source><br />
При этом потребуется ввести пароль от контейнера '\\.\HDIMAGE\test_export' и задать пароль на новый контейнер '\\.\FLASH\test_new'.<br />
<br />
{{Note|Будьте внимательны при операциях импорта/экспорта контейнера с использованием токена:<br />
<source lang="text" highlight="1">$ csptest -keycopy -contsrc '\\.\HDIMAGE\test_export' -contdest '\\.\Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00\test_export'</source><br />
необходимо будет предъявлять pin токена.}}<br />
<br />
Просмотр списка контейнеров:<br />
<source lang="text" highlight="1">$ csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251<br />
CSP (Type:80) v5.0.10001 KC1 Release Ver:5.0.11319 OS:Linux CPU:AMD64 FastCode:READY:AVX.<br />
AcquireContext: OK. HCRYPTPROV: 41622371<br />
\\.\FLASH\test_new<br />
\\.\HDIMAGE\test_export<br />
\\.\HDIMAGE\test<br />
OK.<br />
Total: SYS: 0,030 sec USR: 0,060 sec UTC: 0,160 sec<br />
[ErrorCode: 0x00000000]</source><br />
<br />
Экспортировать сертификат из локального хранилища в файл:<br />
<source lang="text" highlight="1">$ certmgr -export -dn 'CN=Ли Александр Сергеевич' -dest test.cer</source><br />
Скопировать сертификат на USB-диск:<br />
<source lang="text" highlight="1">$ cp test.cer /run/media/user/NAMEUSB/</source><br />
<br />
Экспорт контейнера с USB-диска на жесткий диск:<br />
<source lang="text" highlight="1">$ csptest -keycopy -contsrc '\\.\FLASH\test_new' -contdest '\\.\HDIMAGE\test_export'<br />
CryptAcquireContext succeeded.HCRYPTPROV: 35778003<br />
CryptAcquireContext succeeded.HCRYPTPROV: 36125907<br />
Total: SYS: 0,050 sec USR: 0,240 sec UTC: 19,390 sec<br />
[ErrorCode: 0x00000000]</source><br />
<br />
{{Note|Экспорт сертификата на жесткий диск необходимо выполнять под пользователем, который будет использовать данный контейнер для подписи.}}<br />
<br />
Ассоциировать сертификат с контейнером, сертификат попадет в пользовательское хранилище My: <br />
<source lang="text" highlight="1">$ certmgr -inst -file /run/media/user/NAMEUSB/test.cer -cont '\\.\HDIMAGE\test_export'</source><br />
<br />
=== Экспорт сертификатов на другую машину ===<br />
<br />
Закрытые ключи к сертификатам находятся в {{path|/var/opt/cprocsp/keys}}. <br />
<br />
Для экспорта сертификатов необходимо:<br />
<br />
# Перенести ключи из {{path|/var/opt/cprocsp/keys}} на нужную машину в тот же каталог.<br />
# Экспортировать сертификаты (их, количество можно определить, выполнив: certmgr -list, в примере сертификатов 3): <br />
#:<source lang="text" highlight="1">$ for i in `seq 1 3`; do echo $i | certmgr -export -dest $i.cer; done</source><br />
# Перенести файлы сертификатов (1.cer, 2.cer, 3.cer) на нужную машину.<br />
# На машине, куда переносятся сертификаты, просмотреть какие контейнеры есть (должны появится контейнеры с первой машины): <br />
#:<source lang="text" highlight="1">$ csptest -keyset -enum_cont -verifycontext -fqcn</source><br />
# Связать сертификат и закрытый ключ: <br />
#:<source lang="text" highlight="1">$ certmgr -inst -file 1.cer -cont '\\.\HDIMAGE\container.name'</source><br />
#:Если закрытый ключ и сертификат не подходят друг к другу, будет выведена ошибка: <br />
#:<source lang="text">Cannot install certificate<br />
Public keys in certificate and container are not identical</source><br />
# Если закрытого ключа нет, то просто поставить сертификат:<br />
#:<source lang="text" highlight="1">$ certmgr -inst -file 1.cer</source><br />
<br />
=== Импорт персонального сертификата ===<br />
<br />
Вы можете импортировать собственный сертификат в локальный считыватель '''HDIMAGE'''.<br />
<br />
Если у вас нет сертификата, самое время его создать:<br />
<br />
* Создание через [[cert-sh-functions]] (требует установки пакета {{pkg|cert-sh-functions}})<br />
* [[Создание сертификатов PKCS12]] (достаточно только пакета {{pkg|openssl}})<br />
<br />
Допустим, мы пошли по первому пути и создали сертификат web-server ('''делать это строго под правами root'''):<br />
<source lang="text" highlight="1-2"># . cert-sh-functions<br />
# ssl_generate 'web-server'</source><br />
<br />
Сертификат по умолчанию будет лежать в {{path|/var/lib/ssl/certs/web-server.cert}}, а ключ — в {{path|/var/lib/ssl/private/web-server.key}}<br />
<br />
Для импорта потребуется файл сертификата и закрытый ключ в [http://ru.wikipedia.org/wiki/PKCS12 контейнере PKCS#12].<br />
<br />
Создадим для нашего ключа и сертификата необходимый контейнер:<br />
<source lang="text" highlight="1">openssl pkcs12 -export -in /var/lib/ssl/certs/web-server.cert -inkey /var/lib/ssl/private/web-server.pem -out web-server.p12</source><br />
<br />
{{Note|При создании контейнера будет дважды запрошен пароль для экспорта. По соображениям безопасности вводимые символы не показываются. После ввода каждого пароля нажимайте Enter.}}<br />
<br />
Проверка созданного контейнера (при запросе введите пароль, введённый в предыдущей команде):<br />
<source lang="text" highlight="1"># openssl pkcs12 -in web-server.p12 -nodes | grep BEGIN<br />
Enter Import Password:<br />
MAC verified OK<br />
-----BEGIN CERTIFICATE-----<br />
-----BEGIN PRIVATE KEY-----</source><br />
И сертификат и ключ попали в контейнер.<br />
<br />
После генерации сертификата проверим наличие считывателя:<br />
<source lang="text" highlight="1"># cpconfig -hardware reader -view | grep ^Nick<br />
Nick name: FLASH<br />
Nick name: HDIMAGE</source><br />
<br />
Для импорта сертификата в КриптоПро используйте программу {{cmd|certmgr}}. В нашем случае:<br />
<source lang="text" highlight="1">$ certmgr -inst -file web-server.p12 -cont HDIMAGE</source><br />
<br />
Если Вам необходимо импортировать сертификат с токена:<br />
<source lang="text" highlight="1">certmgr -inst -cont '\\.\Aktiv Co. Rutoken S 00 00\le-fb25d25d-23e9-4723-ae4c-fe0c95f2fcc1'</source><br />
Если контейнер защищен паролем используйте ключ -pin <пароль><br />
<br />
== Использование cptools ==<br />
В версии КриптоПРО 5 появилась графическая утилита для работы с сертификатами — cptools.<br><br />
Для использования cptools необходимо установить пакет {{path|cprocsp-cptools-gtk}} из скаченного архива:<br />
<source lang="text" highlight="1"># apt-get install cprocsp-cptools-gtk*</source><br />
После этого её можно запустить из консоли:<br />
<source lang="text" highlight="1">$ cptools</source><br />
[[Изображение:CryptoPro5-cptools.png|Графическая утилита для работы с сертификатами]]<br />
<br />
С её помощью можно установить сертификат из токена в хранилище uMy:<br><br />
[[Изображение:CryptoPro5-cptools-import-cert.png]]<br />
<br />
== Работа с сертификатами в token-manager ==<br />
token-manager предоставляет графический интерфейс управления ключевыми носителями и сертификатами. С помощью этой программы можно:<br />
* просматривать подключенные ключевые носители (токены);<br />
* изменять PIN-код ключевого носителя;<br />
* устанавливать, просматривать и удалять сертификаты;<br />
* просматривать и устанавливать лицензию КриптоПро.<br />
<br />
===Установка и запуск===<br />
Установка пакета {{pkg|token-manager}}:<br />
<source lang="text" highlight="1"># apt-get install token-manager</source><br />
<br />
Запустить token-manager можно:<br />
*из командной строки:<br />
*:<source lang="text" highlight="1">$ python /usr/bin/token-manager.py</source><br />
* в рабочей среде Mate: {{nav|Меню Система|Администрирование|Ключевые носители и сертификаты}};<br />
* в рабочей среде KDE5: {{nav|Меню запуска приложений|Настройки|Ключевые носители и сертификаты}}.<br />
<br />
[[Файл:Token-manager.png|token-manager]]<br />
<br />
=== Проверка лицензии ===<br />
<br />
Проверить срок истечения лицензии КриптоПРО можно выбрав в меню token-manager пункт {{nav|Операции|Просмотр лицензии КриптоПро CSP}}:<br />
<br />
[[Файл:Token-manager-license-view.png|Просмотр лицензии КриптоПро CSP]]<br />
<br />
Для установки другой лицензии КриптоПРО выберите в меню token-manager пункт {{nav|Операции|Ввод лицензии КриптоПро CSP}}:<br />
<br />
[[Файл:Token-manager-license-set.png|Ввод лицензии КриптоПро CSP]]<br />
<br />
=== Просмотр сертификатов ===<br />
<br />
Просмотреть список сертификатов в хранилище или на ключевом носителе, можно выбрав соответствующий носитель:<br />
<br />
[[Файл:Token-manager-listcert.png|Просмотр сертификатов в хранилище]]<br />
<br />
Для просмотра сертификата, необходимо выбрать сертификат и нажать кнопку «Просмотр»:<br />
<br />
[[Файл:Token-manager-viewcert.png|Просмотр сертификата]]<br />
<br />
Для просмотра корневых сертификатов, необходимо выбрать в меню token-manager пункт {{nav|Операции|Просмотр корневых сертификатов}}.<br />
<br />
=== Установка сертификата ===<br />
<br />
Чтобы установить сертификат с токена в локальное хранилище, необходимо выбрать контейнер на токене и нажать кнопку «Установить»:<br />
<br />
[[Файл:Token-manager-install-sert.png|Установка сертификата]]<br />
<br />
Сертификат будет установлен в локальное хранилище сертификатов и будет связан с закрытым ключом на токене.<br />
<br />
Чтобы установить сертификат в локальное хранилище из файла, необходимо выбрать «Личное хранилище сертификатов», нажать кнопку «Установить», выбрать файл сертификата и нажать кнопку «Открыть». Появится сообщение об успешном импорте сертификата:<br />
<br />
[[Файл:Token-manager-install-sert2.png|Установка сертификата]]<br />
<br />
Сертификат будет установлен в локальное хранилище сертификатов, но не будет связан ни с каким закрытым ключом. Этот сертификат можно использовать для проверки подписи.<br />
<br />
= Электронная подпись =<br />
Существуют два вида электронной подписи:<br />
* прикреплённая (attached) — в результирующий файл упакованы данные исходного файла и подпись;<br />
* откреплённая (detached) — подписываемый документ остается неизменным, подпись же сохраняется в отдельном файле. Для проверки отсоединенной подписи нужны оба файла, файл подписи и файл исходного документа.<br />
<br />
== Создание и проверка подписи в командной строке ==<br />
<br />
=== Создание подписи ===<br />
<br />
Для создания электронной подписи файла необходимо указать сертификат и имя подписываемого файла.<br />
<br />
Для создания прикрепленной (attached) электронной подписи выполните команду:<br />
<br />
{{note|Проще всего для указания сертификата использовать адрес e-mail.}}<br />
<source lang="text" highlight="1">$ cryptcp -sign -dn E=user@test.ru -der zayavlenie.pdf<br />
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.<br />
Утилита командной строки для подписи и шифрования файлов.<br />
<br />
Будет использован следующий сертификат:<br />
Субъект:user@test.ru, Иванов Иван<br />
Действителен с 18.12.2018 13:41:38 по 18.03.2019 13:51:38<br />
<br />
Цепочки сертификатов проверены.<br />
Папка './':<br />
zayavlenie.pdf... Подпись данных... <br />
<br />
Подписанное сообщение успешно создано.<br />
[ErrorCode: 0x00000000]<br />
</source><br />
<br />
где <br />
* '''-dn E=user@test.ru''' — сертификат по e-mail;<br />
* '''-der''' — использовать формат DER для файла подписи (по умолчанию используется формат Base64);<br />
* '''zayavlenie.pdf''' — имя подписываемого файла.<br />
<br />
На выходе появится файл {{path|zayavlenie.pdf.sig}}, содержащий как сам подписываемый файл, так и электронную подпись. <br />
<br />
Для создания открепленной (detached) подписи необходимо заменить ключ ''-sign'' на ''-signf'':<br />
<br />
<source lang="text" highlight="1">$ cryptcp -signf -dn E=user@test.ru -der zayavlenie.pdf</source><br />
<br />
Тогда рядом с оригинальным файлом будет лежать файл подписи — {{path|zayavlenie.pdf.sgn}}.<br />
<br />
=== Проверка подписи ===<br />
<br />
Для проверки прикреплённой подписи выполните команду:<br />
<br />
<source lang="text" highlight="1">$ cryptcp -verify zayavlenie.pdf.sig<br />
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.<br />
Утилита командной строки для подписи и шифрования файлов.<br />
<br />
Будет использован следующий сертификат:<br />
Субъект:user@test.ru, Иванов Иван<br />
Действителен с 18.12.2018 13:41:38 по 18.03.2019 13:51:38<br />
<br />
Цепочки сертификатов проверены.<br />
Папка './':<br />
zayavlenie.pdf.sig... Проверка подписи... <br />
Автор подписи: user@test.ru, Иванов Иван<br />
Подпись проверена.<br />
[ErrorCode: 0x00000000]</source><br />
<br />
Показано, кто подписывал и что подпись проверена.<br />
<br />
Для проверки откреплённой подписи выполните команду:<br />
<br />
<source lang="text" highlight="1">$ cryptcp -vsignf zayavlenie.pdf<br />
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.<br />
Утилита командной строки для подписи и шифрования файлов.<br />
<br />
Будет использован следующий сертификат:<br />
Субъект:user@test.ru, Иванов Иван<br />
Действителен с 18.12.2018 13:41:38 по 18.03.2019 13:51:38<br />
<br />
Цепочки сертификатов проверены.<br />
Папка './':<br />
234.pdf... Проверка подписи... <br />
<br />
Автор подписи: user@test.ru, Иванов Иван<br />
Подпись проверена.<br />
[ErrorCode: 0x00000000]</source><br />
<br />
Также для проверки электронной подписи можно воспользоваться сервисом на сайте Госуслуг — https://www.gosuslugi.ru/pgu/eds.<br />
<br />
=== Извлечение подписанного файла ===<br />
<br />
Для извлечения файла с данными из файла электронной подписи необходимо указать имя файла, в который будут извлечены данные, в конце команды проверки подписи:<br />
<br />
<source lang="text" highlight="1">$ cryptcp -verify zayavlenie.pdf.sig zayavlenie.pdf</source><br />
<br />
==Создание и проверка ЭЦП в gost-crypto-gui==<br />
gost-crypto-gui — средство для создания электронной подписи и шифрования файлов.<br />
<br />
Установить пакет {{pkg|gost-crypto-gui}} из репозитория можно, выполнив команду:<br />
<br />
<source lang="text" highlight="1"># apt-get install gost-crypto-gui</source><br />
<br />
Запустить программу можно:<br />
*из командной строки:<br />
*:<source lang="text" highlight="1">$ python /usr/bin/gost-crypto-gui.py</source><br />
* в рабочей среде Mate: {{nav|Меню Система|Администрирование|Подпись и шифрование файлов}};<br />
* в рабочей среде KDE: {{nav|Меню запуска приложений|Настройки|Подпись и шифрование файлов}}.<br />
<br />
С её помощью можно подписывать и проверять подписи файлов: <br />
<br />
[[Файл:Gost-crypto-gui.png|Программа gost-crypto-gui]]<br />
<br />
Для создания электронной подписи файла необходимо:<br />
# Нажать кнопку «Подписать файл(ы)».<br />
# Выбрать файл, который необходимо подписать.<br />
# Выбрать сертификат и нажать кнопку «Далее»:<br />
#:[[Файл:Gost-crypto-cert.png|Выбор сертификата]]<br />
#Ввести пароль на контейнер (если он был установлен):<br />
#:[[Файл:Container_test.png|Пароль на контейнер]]<br />
#Появится сообщение о подписанном файле:<br />
#:[[Файл:Gost-crypto-sign.png|Информация о подписанном файле]]<br />
<br />
Опции ЭП настраиваются в меню «Опции» (параметр «Отсоединенная подпись» не работает???):<br />
<br />
[[Файл:Gost-crypto-gui-option.png|Опции ЭП]]<br />
<br />
Для проверки электронной подписи следует:<br />
# Нажать кнопку «Проверить подпись».<br />
# Выбрать подписанный файл.<br />
# Появится информация о сертификате подписи:<br />
#:[[Файл:Gost-crypto-sign view.png|Проверка электронной подписи]]<br />
<br />
==Создание и проверка ЭЦП с использованием cptools==<br />
<br />
{{Note|cptools доступна версии КриптоПро 5.}}<br />
<br />
Запустить программу можно из консоли (должен быть установлен {{pkg|cprocsp-cptools-gtk}} из скаченного архива КриптоПро):<br />
<br />
<source lang="text" highlight="1">$ cptools</source><br />
<br />
С помощью cptools можно подписывать и проверять подписи файлов.<br />
<br />
Для создания электронной подписи файла необходимо:<br />
# В левом меню выбрать пункт «Создание подписи».<br />
# Выбрать файл, который необходимо подписать, нажав кнопку «Выбрать файл для подписи» (или ввести адрес файла в текстовое поле под кнопкой «Выбрать файл для подписи»).<br />
# Изменить имя файла подписи, если оно вас не устраивает:<br />
#:[[Файл:Crypto-sign.png|600px|Создание подписи в КриптоПро CSP]]<br />
# Нажать кнопку «Подписать».<br />
# Ввести пароль на контейнер (если он был установлен).<br />
# Появится сообщение о подписанном файле: «Создание подписи завершилось успехом».<br />
<br />
Для проверки электронной подписи следует:<br />
# В левом меню выбрать пункт «Проверка подписи».<br />
# Выбрать файл с подписью, нажав кнопку «Выбрать файл с подписью для проверки» (или ввести адрес файла в текстовое поле под этой кнопкой).<br />
# Нажать кнопку «Проверить подпись».<br />
# Появится информация о результате проверки:<br />
#:[[Файл:Crypto-sign_view.png|600px|Проверка подписи в КриптоПро CSP]]<br />
<br />
= Web =<br />
<br />
Информацию о создании и проверки ЭЦП на веб-сайтах с помощью плагина КриптоПро можно найти в <br />
руководстве разработчика КриптоПро ЭЦП Browser plug-in: <br />
* <big>[http://cpdn.cryptopro.ru/default.asp?url=content/cades/indexpage.html КриптоПро ЭЦП. Руководство разработчика]</big><br />
<br />
= КриптоПро ЭЦП Browser plug-in =<br />
<br />
{{Attention|Последняя доступная версия плагина КриптоПро ЭЦП Browser plug-in 2.0 <u>требует КриптоПро 4.0</u>. С более ранними версиями КриптоПро плагин не работает и конфликтует.}}<br />
<br />
КриптоПро ЭЦП Browser plug-in предназначен для создания и проверки электронной подписи (ЭП) на веб-страницах с использованием СКЗИ «КриптоПро CSP».<br />
<br />
Плагин проверки ЭЦП для браузера требует установленного КриптоПро CSP, пакета {{pkg|cprocsp-rdr-gui-gtk}} из его комплекта и расширения для браузера CryptoPro Extension for CAdES Browser Plug-in (для работы в Firefox версии 52 и выше). <br />
<br />
Для установки плагина:<br />
#Скачайте архив по ссылке http://www.cryptopro.ru/products/cades/plugin/get_2_0 (будет скачан архив под архитектуру браузера) или на странице https://www.cryptopro.ru/products/cades/plugin/ нажмите ссылку «версия 2.0 для пользователей»:<br />
#:[[Файл:Plugin download.png|Скачать актуальную версию КриптоПро ЭЦП Browser plug-in]]<br />
#Распакуйте архив:<br />
#:<source lang="text" highlight="1">$ tar -xf cades_linux_amd64.tar.gz</source><br />
#Установите пакеты (под правами root, из папки с установочными файлами):<br />
#:<source lang="text" highlight="1"># apt-get install cprocsp-pki-*-{cades,plugin}.rpm</source><br />
#Разместите ссылки (под правами root):<br />
#:Для Chromium:<br />
#:<source lang="text" highlight="1-2"># ln -s /usr/share/chromium-browser/extensions /usr/lib64/chromium/extensions</source><br />
#:Для Firefox (64-битная версия):<br />
#:<source lang="text" highlight="1-2"># cp /opt/cprocsp/lib/amd64/libnpcades.so.2.0.0 /usr/lib64/browser-plugins/libnpcades.so</source><br />
#Для работы в Firefox версии 52 и выше установите расширение для браузера [https://www.cryptopro.ru/products/cades/plugin Инструкция на сайте производителя]. Для установки расширения в Mozilla Firefox скачайте его по ссылке https://www.cryptopro.ru/sites/default/files/products/cades/extensions/firefox_cryptopro_extension_latest.xpi или нажмите на ссылку «Скачать расширение для браузера» на странице https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html<br />
#:[[Файл:Mozilla addon.png|Ссылка на расширение для браузера]]<br />
#: Во всплывающем окне нажмите кнопку «Разрешить»:<br />
#: [[Файл:Mozilla_addon_add.png|Разрешить установку расширения для браузера]]<br />
#: Нажмите кнопку «Добавить»:<br />
#: [[Файл:Mozilla_addon_add2.png|Добавить расширение для браузера]]<br />
#: Появится сообщение, что расширение добавлено в Firefox:<br />
#: [[Файл:Mozilla_addon_add3.png|Сообщение об успешном добавлении расширения ]]<br />
#: Убедиться, что плагин установлен можно на странице {{path|about:addons}} (или {{path|about:plugins}} в более ранних версиях Mozilla Firefox). Сделайте его активируемым по умолчанию.<br />
#Для работы в Chromium установите расширение для браузера на странице {{path|chrome://extensions/}}:<br />
#:[[Файл:Plugin_cryptopro_chromium_install.png|Добавить расширение для браузера]]<br />
#На странице https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html вверху должна появится надпись: «Плагин загружен» и должен показаться сертификат в списке:<br />
#:[[Файл:Plugin cryptopro.png|Проверка работы КриптоПро ЭЦП Browser plug-in]]<br />
#:[[Файл:Plugin_cryptopro_chromium.png|Проверка работы КриптоПро ЭЦП Browser plug-in]]<br />
#:{{Attention|Если список пуст, необходимо проверить правильность цепочки сертификатов}}<br />
#:{{Attention|Если при переходе на страницу https://www.cryptopro.ru/sites/default/files/products/cades/demopage/simple.html получаем ошибку SEC_ERROR_NO_MODULE, необходимо на странице about:config изменить параметр security.tls.version.max;3 на 2 или 1}}<br />
= zakupki.gov.ru =<br />
<br />
Для входа в личный кабинет на http://zakupki.gov.ru необходимо:<br />
<br />
1. Браузер с поддержкой ГОСТового TLS: [[Chromium-gost]] или {{pkg|firefox-gost}}.<br />
<br />
2. Так как сертификат у этого сайта неправильный, потребуется новая версия КриптоПро ('''4.0.9963''' или новее) и выключение строгой проверки имени сервера (под правами root)[https://forum.astralinux.ru/threads/419/#post-3702]:<br />
<source lang="text" highlight="1"># /opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add long Rfc6125_NotStrict_ServerName_Check 1</source><br />
<br />
Проверка под обычным пользователем:<br />
<source lang="text" highlight="1">$ /opt/cprocsp/bin/amd64/csptestf -tlsc -server zakupki.gov.ru -nosave<br />
HDEContext expired: OK if file is completely downloaded<br />
Reply status: HTTP/1.1 200 OK<br />
1 connections, 589 bytes in 0.200 seconds;<br />
Total: SYS: 0,020 sec USR: 0,150 sec UTC: 0,250 sec<br />
[ErrorCode: 0x00000000]</source><br />
<br />
= Вход в ЕСИА =<br />
<br />
Для аутентификации через ЕСИА (https://esia.gosuslugi.ru/) потребуется установить версию не позже CSP 4.0R3 и плагин [[ЭП#.D0.94.D0.BE.D1.81.D1.82.D1.83.D0.BF_.D0.BA_.D1.81.D0.B0.D0.B9.D1.82.D1.83_.D0.93.D0.BE.D1.81.D1.83.D1.81.D0.BB.D1.83.D0.B3|IFCPlugin]]<br />
<br />
Подробнее: <br />
* [[ЕСИА|Вход в ЕСИА]] <br />
* [https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/275 Вход с помощью электронной подписи на портал Госуслуг на Linux (от КриптоПро)]<br />
<br />
{{Note|Для старых версий плагина (< 3.0.0) необходимо добавить в файл {{path|/etc/ifc.cfg}} после раздела с Jacarta (для 64-битных систем):<br />
<source lang="text"> { name = "CryptoPro CSP";<br />
alias = "cryptoprocsp";<br />
type = "pkcs11";<br />
lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";<br />
},</source>}}<br />
<br />
{{Note|Для работы с контейнерами КриптоПро (в том числе с ГОСТ-2012) для плагина 3.0.5 необходимо добавить в файл {{path|/etc/ifc.cfg}} (для 64-битных систем):<br />
<source lang="text"><br />
{ name = "CryptoPro CSP5";<br />
alias = "cprocsp5";<br />
type = "pkcs11";<br />
alg = "gost2001";<br />
model = "CPPKCS 3";<br />
lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";<br />
},<br />
{ name = "CryptoPro CSP5 2012 256";<br />
alias = "cprocsp5_2012_256";<br />
type = "pkcs11";<br />
alg = "gost2012_256";<br />
model = "CPPKCS 3";<br />
lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";<br />
},<br />
{ name = "CryptoPro CSP5 2012 512";<br />
alias = "cprocsp5_2012_512";<br />
type = "pkcs11";<br />
alg = "gost2012_512";<br />
model = "CPPKCS 3";<br />
lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";<br />
}<br />
</source><br />
И сделать символическую ссылку на библиотеку pkcs11:<br />
<source lang="text" highlight=1># ln -s /opt/cprocsp/lib/amd64/libcppkcs11.so.4.0.4 /usr/lib/mozilla/plugins/lib/libcppkcs11.so</source>}}<br />
<br />
Журнал работы плагина можно найти в файле {{path|/var/log/ifc/engine_logs/engine.log}}.<br />
<br />
= Особенности работы с токенами =<br />
<br />
== Rutoken S ==<br />
<br />
При входе в [[ЕСИА]] с помощью Rutoken S не находится приватная часть ключа. В журнале ifc появляется строка:<br />
IFC:do_work_sign_cms:ERROR:get_priv_key_by_id error:ifc_sign_cms.c:110<br />
<br />
Для этого надо перенести приватный ключ в локальное хранилище и задействовать его:<br />
<source lang="text" highlight="1-2">$ csptest -keycopy -contsrc 'имя_контейнера_например\\.\Aktiv Rutoken ECP 00 00\ххххх' -contdest '\\.\HDIMAGE\private' -pindest пароль<br />
$ certmgr -inst -cont '\\.\HDIMAGE\private'</source><br />
<br />
= КриптоПро JCP =<br />
<br />
* Для установки КриптоПро JCP нужно установить Oracle Java 1.7.0 (через [[Java/OracleSDK|собственную сборку]] или пакеты для Fedora)<br />
* Распакуйте архив и перейдите в каталог<br />
* Выполните<br />
<source lang="text" highlight="1"># ./install.sh /usr/java/jre1.7.0_51 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX "Your Company"</source><br />
<br />
=== Поддержка [[Rutoken|Рутокена]] ===<br />
<br />
* Загрузите драйвер для JCP http://www.rutoken.ru/support/download/rutoken-for-cp/ и распакуйте его<br />
* Выполните:<br />
<source lang="text" highlight="1"># java -jar rtjlib.jar -install -rutoken</source><br />
<br />
=== Запуск контрольной панели ===<br />
<br />
<source lang="text" highlight="1">$ ./ControlPane.sh /usr</source><br />
<br />
(требует графического дисплея)<br />
<br />
== Ссылки ==<br />
<br />
* ЖТЯИ.00050-03 90 02-02. СКЗИ «КриптоПро CSP». Руководство администратора безопасности. Использование СКЗИ под управлением ОС Linux (из электронной документации по КриптоПро; доступно для скачивания с демонстрационной версией)<br />
* ЖТЯИ.00050-03 90 07. КриптоПро CSP. Приложение командной строки<br />
* [https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=83121#post83121 Инструкция по настройке '''IFCPlugin''' (сайт госуслуг) для работы с КриптоПро]<br />
* [[ЭЦП]]<br />
* [http://pushorigin.ru/cryptopro/linux-crypto-pro Набор скриптов для подписания и проверки ЭЦП КриптоПро на Linux]<br />
<br />
[[Категория:Enterprise Software]]<br />
[[Категория:Криптография]]<br />
{{Category navigation|title=Криптография|category=Криптография|sortkey={{SUBPAGENAME}}}}<br />
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Rutoken&diff=47517Rutoken2020-01-22T09:34:38Z<p>Корнеечев Евгений: /* Управление считывателями */</p>
<hr />
<div>{{Stub}}<br />
Рутокен ЭЦП 2.0 — токен с аппаратной реализацией российского стандарта электронной подписи, шифрования и хеширования. Обеспечивает безопасное хранение ключей электронной подписи во встроенной защищенной памяти без возможности их экспорта.<br />
<br />
Рутокен S — не имеет аппаратной реализации алгоритмов подписи. Устройство предназначено для безопасного хранения ключей шифрования и паролей, защиты персональных данных, и защиты от несанкционированного доступа. Основной ключевой носитель для российских СКЗИ (КриптоПро, ViPNet).<br />
<br />
Рутокен Lite — не имеет аппаратной реализации алгоритмов подписи.<br />
<br />
= Настройка аутентификации =<br />
С помощью следующих инструкций можно настроить аутентификацию в системе с помощью сертификата и ключа на Рутокен ЭЦП:<br />
* [[Аутентификация по ключу]]<br />
* [[alterator-auth-token]]<br />
<br />
Также с его помощью может быть реализована [[двухфакторная аутентификация]].<br />
<br />
= Значения PIN-кодов на Рутокен по умолчанию =<br />
У Рутокен:<br />
''PIN-коды Рутокен S/Lite/ЭЦП 2.0, установленные по умолчанию — Пользователь: 12345678; Администратор: 87654321''<br />
<br />
У Рутокен Web:<br />
PIN на скретч-карте.<br />
<br />
<br />
=КриптоПро=<br />
Подробнее о КриптоПро: [[КриптоПро]]<br />
Для поддержки Рутокен в качестве ключевого носителя в СКЗИ «КриптоПро CSP» необходимо установить модуль поддержки (из архива КриптоПро):<br />
<source lang="text" highlight="1"># apt-get install cprocsp-rdr-rutoken* </source><br />
<br />
==Управление считывателями==<br />
Проверка видимости токена:<br />
<source lang="text" highlight="1">$ list_pcsc<br />
Aktiv Co. Rutoken S 00 00</source><br />
<br />
{{Note|Cлужба {{cmd|pcscd}} должна быть запущена. Запустить службу {{cmd|pcscd}} и добавить её в автозапуск при загрузке системы:<br />
<source lang="text" highlight="1,2"># systemctl start pcscd<br />
# systemctl enable pcscd</source><br />
<br />
Если при токен не виден может потребоваться удалить пакет pcsc-lite-openct:<br />
<source lang="text" highlight="1"># apt-get remove pcsc-lite-openct</source>}}<br />
<br />
Просмотр доступных считывателей:<br />
<br />
<source lang="text" highlight="1">$ csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251<br />
CSP (Type:80) v5.0.10001 KC1 Release Ver:5.0.11319 OS:Linux CPU:AMD64 FastCode:READY:AVX.<br />
CryptAcquireContext succeeded.HCRYPTPROV: 26310531<br />
GetProvParam(...PP_ENUMREADERS...) until it returns false<br />
Len Byte NickName/Name<br />
_____________________________<br />
0x012a 0x03 Aktiv Co. Rutoken S 00 00<br />
MyRutoken<br />
0x012a 0x01 FLASH<br />
FLASH<br />
0x012a 0x00 HDIMAGE<br />
HDD key storage<br />
Cycle exit when getting data. 3 items found. Level completed without problems.<br />
Total: SYS: 0,040 sec USR: 0,040 sec UTC: 0,160 sec<br />
[ErrorCode: 0x00000000]</source><br />
<br />
Инициализация считывателя {{path|Aktiv Co. Rutoken S 00 00}} (требуется, если считыватель есть в списке видимых считывателей и отсутствует в списке настроенных), в параметре -add указывается имя, которое было получено при просмотре видимых считывателей, в параметре -name — удобное для обращения к считывателю имя, например, {{path|Rutoken}} (под правами root):<br />
<br />
<source lang="text" highlight="1"># cpconfig -hardware reader -add "Aktiv Co. Rutoken S 00 00" -name "MyRutoken"<br />
Adding new reader:<br />
Nick name: Aktiv Co. Rutoken S 00 00<br />
Name device: MyRutoken<br />
Succeeded, code:0x0<br />
</source><br />
<br />
{{Note|Если получаете ошибку:<br />
<source lang="Bash">-bash: cpconfig: команда не найдена</source><br />
Выполните:<br />
<source lang="Bash">export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"</source><br />
Для пользователя root будет действовать до перезагрузки}}<br />
<br />
==Создание контейнера==<br />
Создание контейнера на токене/смарт-карте:<br />
<source lang="text" highlight="1">$ csptest -keyset -provtype 80 -newkeyset -cont '\\.\Aktiv Co. Rutoken S 00 00\Rutoken' <br />
CSP (Type:80) v5.0.10001 KC1 Release Ver:5.0.11319 OS:Linux CPU:AMD64 FastCode:READY:AVX.<br />
AcquireContext: OK. HCRYPTPROV: 13027379<br />
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC1 CSP<br />
Container name: "Rutoken<br />
"<br />
Signature key is not available.<br />
Attempting to create a signature key...<br />
a signature key created.<br />
Exchange key is not available.<br />
Attempting to create an exchange key...<br />
an exchange key created.<br />
Keys in container:<br />
signature key<br />
exchange key<br />
Extensions:<br />
OID: 1.2.643.2.2.37.3.9<br />
PrivKey: Not specified - 28.05.2020 11:35:54 (UTC)<br />
<br />
OID: 1.2.643.2.2.37.3.10<br />
PrivKey: Not specified - 28.05.2020 11:37:29 (UTC)<br />
Total: SYS: 0,180 sec USR: 0,050 sec UTC: 107,930 sec<br />
[ErrorCode: 0x00000000]<br />
</source><br />
<br />
При установленном пакете {{pkg|cprocsp-rdr-gui-gtk}} будет показано графическое окно, где будет предложено перемещать указатель мыши или нажимать клавиши:<br />
<br />
[[Изображение:Cryptopro-newkeyset-ru.png|Генерация случайной последовательности]]<br />
<br />
{{note|Если такой пакет не установлен, будет предложено ввести любые символы с клавиатуры.}}<br />
<br />
После этого необходимо предъявить PIN-код пользователя.<br />
<br />
После указания PIN-кода снова будет предложено перемещать указатель мыши.<br />
{{note|Если используется модель Рутокен ЭЦП, можно будет выбрать способ создания контейнера.<br />
<br />
Создание неизвлекаемого контейнера:<br />
<br />
[[Файл:Rutoken_newcont.png|Создание неизвлекаемого контейнера]]<br />
<br />
В этом случае будет использована встроенная криптография носителя.<br />
<br />
Создание контейнера КриптоПро:<br />
<br />
[[Файл:Rutoken_newcont2.png|Создание обычного контейнера]]<br />
В этом случае будет использована криптография КриптоПро}}<br />
<br />
Проверить наличие контейнеров можно с помощью команды:<br />
<br />
<source lang="text" highlight="1">$ csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251<br />
CSP (Type:80) v5.0.10001 KC1 Release Ver:5.0.11319 OS:Linux CPU:AMD64 FastCode:READY:AVX.<br />
AcquireContext: OK. HCRYPTPROV: 22009731<br />
\\.\Aktiv Co. Rutoken S 00 00\Rutoken<br />
OK.<br />
Total: SYS: 0,030 sec USR: 0,050 sec UTC: 2,400 sec<br />
[ErrorCode: 0x00000000]<br />
</source><br />
<br />
Просмотр подробной информации о контейнере:<br />
<source lang="text" highlight="1">$ csptestf -keyset -container '\\.\Aktiv Co. Rutoken S 00 00\Rutoken' -info </source><br />
<br />
Удалить контейнер можно с помощью команды:<br />
<source lang="text" highlight="1">$ csptestf -keyset -deletekeyset -cont '\\.\Aktiv Co. Rutoken S 00 00\Rutoken' </source><br />
<br />
==Управление сертификатами==<br />
===Создание запроса на сертификат===<br />
Создание запроса на получение сертификата средствами КриптоПро:<br />
<source lang="text" highlight="1">$ cryptcp -creatrqst -dn "список имён полей" -cont 'путь к контейнеру' <название_файла>.csr</source><br />
Например:<br />
<source lang="text" highlight="1-5">$ cryptcp -creatrqst \<br />
-dn "E=ivanov@mail.mail,CN=Иванов Иван Иванович,SN=Иванов,G=Иван Иванович,C=RU,L=Калининград,ST=39 Калининградская обл.,street=Пр-т Победы 14 кв.3" \<br />
-provtype 80 -nokeygen \<br />
-cont '\\.\Aktiv Co. Rutoken S 00 00\Rutoken' \<br />
-certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" rutoken.req<br />
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.<br />
Утилита командной строки для подписи и шифрования файлов.<br />
Запрос успешно создан и сохранен в файле.<br />
[ErrorCode: 0x00000000]<br />
</source><br />
Запрос на сертификат необходимо подписать в аккредитованном удостоверяющем центре.<br />
<br />
===Добавление (запись) сертификатов===<br />
<br />
Добавление сертификата, без привязки к ключам (только проверка ЭЦП):<br />
<br />
<source lang="text" highlight="1">$ certmgr -inst -file cert.cer</source><br />
<br />
Ассоциировать сертификат с контейнером, сертификат попадет в пользовательское хранилище uMy:<br />
<source lang="text" highlight="1">$ certmgr -inst -file cert.cer -store uMy -cont '\\.\Aktiv Co. Rutoken S 00 00\Rutoken'</source> <br />
<br />
Запись сертификата клиента в контейнер:<br />
<source lang="text" highlight="1">$ cryptcp -instcert -provtype 80 -ku -askpin rutoken.cer <br />
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.<br />
Утилита командной строки для подписи и шифрования файлов.<br />
Пожалуйста, выберите нужный контейнер (введите его номер и нажмите [Enter]).<br />
<br />
#1: Rutoken<br />
#2: 506c7567696e3036303232303139313831333030<br />
#3: test<br />
Номер:1<br />
Введите пароль для контейнера Rutoken: <br />
Сертификат был успешно установлен.<br />
[ErrorCode: 0x00000000]<br />
</source><br />
<br />
Добавление сертификата УЦ из файла certne_ucw.cer в хранилище машины (с правами root): <br />
<source lang="text" highlight="1"># /opt/cprocsp/bin/amd64/certmgr -inst -file certne_ucw.cer -store mRoot</source><br />
<br />
Добавление корневых сертификатов из файла cert.p7b (под root): <br />
<source lang="text" highlight="1"># /opt/cprocsp/bin/amd64/certmgr -inst -all -file cert.p7b -store mRoot</source><br />
Необходимо последовательно добавить все сертификаты.<br />
===Просмотр сертификатов===<br />
Просмотр сертификатов:<br />
<source lang="text" highlight="1">$ certmgr -list</source><br />
<br />
Просмотр сертификатов в локальном хранилище uMy:<br />
<source lang="text" highlight="1">$ certmgr -list -store uMy</source><br />
Просмотр сертификатов в контейнере: <br />
<br />
<source lang="text" highlight="1">$ certmgr -list -container '\\.\Aktiv Rutoken ECP - CP 00 00\Rutoken'<br />
Certmgr 1.1 (c) "Crypto-Pro", 2007-2018.<br />
program for managing certificates, CRLs and stores<br />
<br />
=============================================================================<br />
1-------<br />
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2<br />
Subject : E=ivanov@mail.mail, CN=Иванов Иван Иванович, SN=Иванов, G=Иван Иванович, C=RU, S=39 Калининградская обл., L=Калининград, STREET=Пр-т Победы 14 кв.3<br />
Serial : 0x120032F1A2A438324D0C0EFA2900000032F1A2<br />
SHA1 Hash : 85b37ce3e2fce0f86f7847000eafca0a9c5df274<br />
SubjKeyID : c16fc96ae4670ac21b219434caae3a9f68b54ca2<br />
Signature Algorithm : ГОСТ Р 34.11/34.10-2001<br />
PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits)<br />
Not valid before : 05/03/2019 10:56:32 UTC<br />
Not valid after : 05/06/2019 11:06:32 UTC<br />
PrivateKey Link : Certificate from container. No link to key<br />
CA cert URL : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt<br />
OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf<br />
CDP : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl<br />
Extended Key Usage : 1.3.6.1.5.5.7.3.4<br />
1.3.6.1.5.5.7.3.2<br />
1.3.6.1.4.1.311.10.3.12<br />
=============================================================================<br />
<br />
[ErrorCode: 0x00000000]<br />
</source><br />
<br />
Просмотр корневых сертификатов:<br />
<source lang="text" highlight="1">$ certmgr -list -store uRoot</source><br />
<br />
==Создание и проверка подписи==<br />
Для создания электронной подписи файла необходимо указать сертификат и имя подписываемого файла:<br />
<source lang="text" highlight="1">$ cryptcp -sign -dn E=ivanov@mail.mail -der my_file.odt <br />
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.<br />
Утилита командной строки для подписи и шифрования файлов.<br />
<br />
Будет использован следующий сертификат:<br />
Субъект:11223344556, 102301111222, Пр-т Победы 14 кв.3, Калининград, 39 Калининградская обл., RU, ivanov@mail.mail, Иван Иванович, Иванов, Иванов Иван Иванович<br />
Действителен с 27.02.2019 13:41:47 по 27.05.2019 13:51:47<br />
<br />
Цепочки сертификатов проверены.<br />
Папка './':<br />
my_file.odt... Подпись данных... <br />
<br />
Подписанное сообщение успешно создано.<br />
[ErrorCode: 0x00000000]</source><br />
На выходе появится файл {{path|my_file.odt.sig}}, содержащий как сам подписываемый файл, так и электронную подпись. <br />
Для проверки прикреплённой подписи выполните команду:<br />
<source lang="text" highlight="1">$ cryptcp -verify my_file.odt.sig<br />
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.<br />
Утилита командной строки для подписи и шифрования файлов.<br />
<br />
Найдено сертификатов: 2<br />
Цепочки сертификатов проверены.<br />
Папка './':<br />
my_file.odt.sig... Проверка подписи... <br />
Автор подписи: 11223344556, 102301111222, Пр-т Победы 14 кв.3, Калининград, 39 Калининградская обл., RU, ivanov@mail.mail, Иван Иванович, Иванов, Иванов Иван Иванович<br />
Подпись проверена.<br />
[ErrorCode: 0x00000000]<br />
</source><br />
<br />
Для извлечения файла с данными из файла электронной подписи необходимо указать имя файла, в который будут извлечены данные, в конце команды проверки подписи: <br />
<source lang="text" highlight="1">$ cryptcp -verify my_file.odt.sig new_file.odt</source><br />
Для создания откреплённой (detached) подписи необходимо заменить ключ -sign на -signf:<br />
<source lang="text" highlight="1">$ cryptcp -signf -dn E=ivanov@mail.mail -der my_file.odt </source><br />
Проверка откреплённой подписи:<br />
<source lang="text" highlight="1">$ cryptcp -vsignf my_file.odt </source><br />
<br />
<br />
= Рутокен S =<br />
{{attention|Rutoken S — не является токеном — нет аппаратной поддержки алгоритмов, а для использования RSA в opensc < 0.12 были реализованы '''выгрузка''' '''приватного''' (!!!) ключа из Rutoken S и работа с этим ключом через openssl.}}<br />
<br />
https://github.com/OpenSC/OpenSC/wiki/Aktiv-Co.-Rutoken-S<br />
== Пакеты ==<br />
pcsc-lite-rutokens<br />
opensc<br />
<br />
== Утилита pkcs11-tool==<br />
{{Note|[http://forum.rutoken.ru/topic/2799/ С форума Рутокен]: Если Вы хотите работать через opensc-pkcs11.so, то Вы должны обязательно предварительно отформатировать токен через pkcs15-init, а затем создавать и работать с ключами только через opensc-pkcs11.so.<br />
<br />
Если Вы хотите работать через наш PKCS#11, то лучше всего форматировать через<br />
[https://dev.rutoken.ru/pages/viewpage.action?pageId7995615/ Утилиту администрирования Рутокен], а затем создавать и работать с ключами только через наш PKCS#11. Это самый поддерживаемый путь. (не для Рутокен S??)<br />
<br />
Вы можете отформатировать токен через pkcs15-init и работать с нашим PKCS#11. Но в этом случае через opensc-pkcs11.so ничего не будет доступно.}}<br />
<br />
{{Note|Rutoken S не поддерживает работу с библиотекой rtPKCS11ECP (librtpkcs11ecp.so), т.е. операции генерации и импорта ключей на Рутокен S выполнить не получится.<br />
<br />
При работе с Рутокен S необходимо указывать путь до библиотеки opensc-pkcs11:<br />
<source lang="text" highlight="1">--module /usr/lib64/pkcs11/opensc-pkcs11.so</source>}}<br />
<br />
Список поддерживаемых механизмов:<br />
<source lang="text" highlight="1">$ pkcs11-tool -v --module /usr/lib64/pkcs11/opensc-pkcs11.so --list-mechanisms<br />
Using slot 0 with a present token (0x0)<br />
Supported mechanisms:<br />
SHA-1, digest<br />
SHA256, digest<br />
SHA384, digest<br />
SHA512, digest<br />
MD5, digest<br />
RIPEMD160, digest<br />
GOSTR3411, digest</source><br />
<br />
===Проверка работы===<br />
<br />
Проверяем работу токена, он должен быть виден в списке:<br />
<source lang="text" highlight="1">$ pkcs11-tool -L --module /usr/lib64/pkcs11/opensc-pkcs11.so <br />
Available slots:<br />
Slot 0 (0x0): Aktiv Co. Rutoken S 00 00<br />
token label : User PIN (Rutoken S)<br />
token manufacturer : Aktiv Co.<br />
token model : PKCS#15<br />
token flags : login required, rng, token initialized, PIN initialized<br />
hardware version : 0.0<br />
firmware version : 0.0<br />
serial num : 398C4F0B<br />
pin min/max : 8/16<br />
</source><br />
<br />
Просмотреть имеющуюся на токене информацию можно при помощи команды (требуется пароль от токена):<br />
<source lang="text" highlight="1">$ pkcs11-tool -Ol --module /usr/lib64/pkcs11/opensc-pkcs11.so<br />
Using slot 0 with a present token (0x0)<br />
Logging in to "User PIN (Rutoken S)".<br />
Please enter User PIN:<br />
</source><br />
<br />
===Инициализация токена===<br />
{{Attention|При инициализации все данные с токена будут удалены!}}<br />
Для инициализации токена следует выполнить команду (необходимо ввести so-pin карты 2 раза или передать его в качестве параметра --so-pin):<br />
<source lang="text" highlight="1">$ pkcs11-tool --init-token --label RutokenS --module /usr/lib64/pkcs11/opensc-pkcs11.so<br />
Using slot 0 with a present token (0x0)<br />
Please enter the new SO PIN: <br />
Please enter the new SO PIN (again): <br />
Token successfully initialized<br />
</source><br />
<br />
===Смена PIN-кода===<br />
Для смены PIN-кода необходимо выполнить команду (потребуется ввести текущий PIN-код, а затем дважды ввести новый):<br />
<source lang="text" highlight="1">$ pkcs11-tool --change-pin --module /usr/lib64/pkcs11/opensc-pkcs11.so<br />
Using slot 0 with a present token (0x0)<br />
Logging in to "User PIN (Rutoken S)".<br />
Please enter the current PIN: <br />
Please enter the new PIN: <br />
Please enter the new PIN again: <br />
PIN successfully changed<br />
</source><br />
<br />
===Разблокировка PIN-кода===<br />
Для того чтобы разблокировать PIN-код необходимо выполнить команду (потребуется ввести so-pin карты, а затем дважды ввести новый PIN-код):<br />
<source lang="text" highlight="1">$ pkcs11-tool --init-pin -l --module /usr/lib64/pkcs11/opensc-pkcs11.so<br />
Using slot 0 with a present token (0x0)<br />
Logging in to "User PIN (Rutoken S)".<br />
Please enter SO PIN: <br />
Please enter the new PIN: <br />
Please enter the new PIN again: <br />
User PIN successfully initialized<br />
</source><br />
<br />
= Рутокен ЭЦП 2.0 =<br />
<br />
== Центр регистрации Рутокен ==<br />
<br />
Для генерации ключей, формирования запроса на сертификат и записи сертификата на Рутокен ЭЦП можно воспользоваться ПО «Рутокен плагин»,<br />
(работает через библиотеку PKCS#11 и совместим с плагином Госуслуг) и ПО «Центр регистрации Рутокен» [https://ra.rutoken.ru ra.rutoken.ru].<br />
<br />
Веб-сервис управления хранилищем сертификатов и ключей «Центр регистрации Рутокен» позволяет:<br />
* генерировать ключи;<br />
* создавать запросы на сертификаты;<br />
* импортировать сертификаты и связывать их с ключами;<br />
* подписывать документы электронной подписью;<br />
* менять PIN-код на устройстве.<br />
<br />
=== Установка «Рутокен плагин» ===<br />
'''[http://www.rutoken.ru/products/all/rutoken-plugin/ Рутокен Плагин]''' представляет собой решение для электронной подписи, шифрования и двухфакторной аутентификации для Web- и SaaS-сервисов. <br />
Плагин необходим для связи USB-устройств c браузером, он позволяет опознавать и работать с ними. Для того чтобы установить плагин, необходимо загрузить соответствующий установочный файл и запустить его<br />
<br />
{{Attention|Плагин работает только с браузерами, поддерживающими NPAPI, например, Mozilla Firefox GOST ({{pkg|firefox-gost}}) или Mozilla Firefox ESR ({{pkg|firefox-esr}}).}}<br />
<br />
Чтобы установить «Рутокен плагин» необходимо:<br />
#Загрузить «Рутокен плагин» со страницы [https://www.rutoken.ru/support/download/rutoken-plugin/ по ссылке] (выбрать пакет формата «rpm»):<br />
#:[[Изображение:Rutoken-plugin-download.png|Загрузка «Рутокен плагин»|600px]]<br />
#Установить «Рутокен плагин». Для этого в контекстном меню скаченного файла выбрать пункт «Открыть в Установка RPM». В открывшемся окне нажать кнопку «Установить»: <br />
#:[[Изображение:Rutoken-plugin-install.png|Установка пакетов RPM]]<br />
#:Ввести пароль администратора системы и нажать кнопку «ОК»:<br />
#:[[Изображение:Rutoken-plugin-install1.png|Ввод пароля администратора системы]]<br />
#:В открывшемся окне нажать кнопку «Установить»:<br />
#:[[Изображение:Rutoken-plugin-install2.png|Установка пакетов RPM]]<br><br><br />
#:Или установить «Рутокен плагин», выполнив из папки с загруженным пакетом команду (под правами root):<br />
#:<source lang="text" highlight="1"># apt-get install libnpRutokenPlugin*</source><br />
#Перезапустить браузер.<br />
#Убедиться, что плагин установлен и включен. Сделать это можно на странице {{path|about:addons}} (или {{path|about:plugins}} в более ранних версиях Mozilla Firefox):<br />
#:[[Изображение:Rutoken-plugin-on.png|Рутокен плагин|600px]]<br />
Проверить работу плагина можно на площадке: http://demobank.rutoken.ru/<br />
<br />
=== Генерация пары ключей и формирование запроса на сертификат ===<br />
<br />
Для генерации пары ключей и формированию запроса на сертификат с помощью ПО «Центр регистрации Рутокен» следует:<br />
#Зайти на сайт «Центр регистрации Рутокен» https://ra.rutoken.ru:<br />
#:[[Изображение:Ra-rutoken-devices.png|Центр регистрации Рутокен]]<br />
#Подключить Рутокен ЭЦП к компьютеру, выбрать токен, ввести PIN-код пользователя:<br />
#:[[Изображение:Ra-rutoken-pin.png|Запрос PIN-кода]]<br />
#Нажать кнопку «Создать ключ»:<br />
#:[[Изображение:Ra-rutoken.png|Интерфейс «Центра регистрации Рутокен»]]<br />
#Ввести идентификатор и маркер ключа (опционально), выбрать тип ключа и алгоритм шифрования, затем нажать кнопку «Сгенерировать ключи»:<br />
#:[[Изображение:Rutoken-key-add.png|Создание ключей]]<br />
#:Появится сообщение, о том, что ключи созданы:<br />
#:[[Изображение:Rutoken-key.png|Ключи созданы]]<br />
#Нажать кнопку «Создать заявку на сертификат».<br />
#На странице создания запроса заполнить поля запроса, выбрать назначение сертификата, нажать кнопку «Создать запрос» (показан пример заполнения полей для физ.лица):<br />
#:[[Изображение:Rutoken-cert-new.png|Создание запроса на сертификат]]<br />
#:В раскрывающемся списке можно выбрать шаблон запроса. Шаблоны содержат разное количество полей в блоке информации о пользователе и разные расширения сертификата.<br />
#Откроется окно содержащее текст запроса. Можно сохранить его на диске, нажав кнопку «Сохранить на диске», или скопировать в буфер обмена, нажав кнопку «Скопировать в буфер обмена»:<br />
#:[[Изображение:Rutoken-cert-request.png|Запрос создан и подписан]]<br />
#Отправить запрос в удостоверяющий центр.<br />
#После получения сертификата, на странице «Центр регистрации Рутокен» https://ra.rutoken.ru нажать кнопку «Добавить к ключам сертификат» или выбрать пару ключей и нажать кнопку «Добавить сертификат»<br />
#:[[Изображение:Rutoken-cert-add.png|Добавление сертификата]]<br />
#В открывшемся окне загрузить файл с сертификатом, нажав кнопку «Выбрать», или вставить сертификат из буфера обмена, нажав кнопку «Вставить из буфера обмена», и нажать кнопку «Связать»:<br />
#:[[Изображение:Rutoken-cert-add2.png|Добавление сертификата пользователя]]<br />
#:[[Изображение:Rutoken-cert-add22.png|Добавление сертификата пользователя]]<br />
#Сертификат отобразится в списке:<br />
#:[[Изображение:Rutoken-cert-add4.png|Контейнер с сертификатом]]<br />
{{Note|Данные сертификата должны быть в формате PEM или Base64. Если вы получили сертификат в другом формате, его можно конвертировать в нужный формат, выполнив команду:<br />
$ openssl x509 -inform der -in cert.cer -out cert.pem<br />
}}<br />
<br />
== Утилита pkcs11-tool==<br />
Должны быть установлены пакеты:<br />
<source lang="text" highlight="1"># apt-get install opensc pcsc-lite pcsc-lite-rutokens</source><br />
В состав opensc входит универсальная утилита pkcs11-tool, которой можно «подложить», например, библиотеку PKCS#11 для работы с Рутокен ЭЦП 2.0 и с ее помощью «управлять» Рутокенами.<br />
=== Библиотека для работы с Рутокен ЭЦП 2.0===<br />
Для работы должна быть установлена библиотека librtpkcs11ecp:<br />
<source lang="text" highlight="1"># apt-get install librtpkcs11ecp</source><br />
{{Note|При работе с Rutoken ЭЦП 2.0 необходимо указывать путь до библиотеки librtpkcs11ecp:<br />
<source lang="text" highlight="1">--module /usr/lib64/pkcs11/librtpkcs11ecp.so</source>}}<br />
<br />
=== Проверка работы Рутокен ЭЦП в системе ===<br />
Проверяем работу токена, он должен быть виден в списке:<br />
<source lang="text" highlight="1">$ pkcs11-tool -L --module /usr/lib64/pkcs11/librtpkcs11ecp.so<br />
Available slots:<br />
Slot 0 (0x0): Aktiv Rutoken ECP 00 00<br />
token label : Rutoken ECP <no label><br />
token manufacturer : Aktiv Co.<br />
token model : Rutoken ECP<br />
token flags : login required, rng, SO PIN to be changed, token initialized, PIN initialized, user PIN to be changed<br />
hardware version : 20.5<br />
firmware version : 23.2<br />
serial num : 373b83cf<br />
pin min/max : 6/32<br />
Slot 1 (0x1): <br />
(empty)<br />
Slot 2 (0x2): <br />
(empty)<br />
</source><br />
<br />
Список поддерживаемых механизмов:<br />
<source lang="text" highlight="1">$ pkcs11-tool -v --module /usr/lib64/pkcs11/librtpkcs11ecp.so --list-mechanisms<br />
Using slot 0 with a present token (0x0)<br />
Supported mechanisms:<br />
RSA-PKCS-KEY-PAIR-GEN, keySize={512,2048}, hw, generate_key_pair<br />
RSA-PKCS, keySize={512,2048}, hw, encrypt, decrypt, sign, verify<br />
RSA-PKCS-OAEP, keySize={512,2048}, hw, encrypt, decrypt<br />
MD5, digest<br />
SHA-1, digest<br />
GOSTR3410-KEY-PAIR-GEN, hw, generate_key_pair<br />
GOSTR3410, hw, sign, verify<br />
mechtype-0x1204, hw, derive<br />
GOSTR3411, hw, digest<br />
GOSTR3410-WITH-GOSTR3411, hw, digest, sign<br />
mechtype-0x1224, hw, wrap, unwrap<br />
mechtype-0x1221, hw, encrypt, decrypt<br />
mechtype-0x1222, hw, encrypt, decrypt<br />
mechtype-0x1220, hw, generate<br />
mechtype-0x1223, hw, sign, verify<br />
mechtype-0x1211, sign, verify</source><br />
<br />
=== Проверка наличия сертификатов и ключевых пар ===<br />
<br />
Просмотреть имеющуюся на токене информацию можно при помощи команды (требуется пароль от токена):<br />
<source lang="text" highlight="1">$ pkcs11-tool -Ol --module /usr/lib64/pkcs11/librtpkcs11ecp.so<br />
Using slot 0 with a present token (0x0)<br />
Logging in to "Rutoken ECP <no label>".<br />
WARNING: user PIN to be changed<br />
Please enter User PIN: <br />
Public Key Object; GOSTR3410 <br />
PARAMS OID: 06072a850302022301<br />
VALUE: 84f16c48511700660fa03ce9d32612ebdf5a69b87372cf3b07f344e4819409f0<br />
aeacbd4e922869bed61ef08e20d15fe956ac81c27e197c8dfcc4b5be2763b47d<br />
label: <br />
ID: 506c7567696e3132303232303139313630363239<br />
Usage: verify<br />
Private Key Object; GOSTR3410 <br />
PARAMS OID: 06072a850302022301<br />
label: Иванова Ольга Петровна<br />
ID: 506c7567696e3132303232303139313630363239<br />
Usage: sign, derive<br />
Certificate Object; type = X.509 cert<br />
label: Rutoken Plugin<br />
subject: DN: C=RU, ST=\xD0\x9C\xD0\xBE\xD1\x81\xD0\xBA\xD0\xB2\xD0\xB0, L=\xD1\x80-\xD0\xBD \xD0\x9F\xD1\x80\xD0\xB8\xD0\xBE\xD0\xB7\xD0\xB5\xD1\x80\xD1\x81\xD0\xBA\xD0\xB8\xD0\xB9, \xD0\xB3. \xD0\x9B\xD1\x83\xD0\xB3\xD0\xB0, CN=\xD0\x98\xD0\xB2\xD0\xB0\xD0\xBD\xD0\xBE\xD0\xB2\xD0\xB0 \xD0\x9E\xD0\xBB\xD1\x8C\xD0\xB3\xD0\xB0 \xD0\x9F\xD0\xB5\xD1\x82\xD1\x80\xD0\xBE\xD0\xB2\xD0\xBD\xD0\xB0/1.2.643.3.131.1.1=5001007322229/street=\xD1\x83\xD0\xBB. \xD0\x93\xD0\xB0\xD0\xB3\xD0\xB0\xD1\x80\xD0\xB8\xD0\xBD\xD0\xB0, \xD0\xB4. 5/emailAddress=ivanova@mail.ru<br />
ID: 506c7567696e3132303232303139313630363239<br />
</source><br />
В результате в окне терминала отобразится информация обо всех сертификатах и ключевых парах, хранящихся на Рутокене.<br />
<br />
Чтобы открыть сертификат или ключевую пару скопируйте ID необходимого объекта и введите команду:<br />
<source lang="text" highlight="1">$ pkcs11-tool --module /usr/lib64/pkcs11/librtpkcs11ecp.so -r -y cert --id 506c7567696e3132303232303139313630363239 | openssl x509 -inform der -text</source><br />
В результате в окне Терминала отобразится полная информация об указанном объекте.<br />
<br />
Чтобы скопировать сертификат в файл введите команду:<br />
<source lang="text" highlight="1">$ pkcs11-tool --module /usr/lib64/pkcs11/librtpkcs11ecp.so -r -y cert --id 506c7567696e3132303232303139313630363239 > ./имя_файла</source><br />
<br />
===Изменение PIN-кода===<br />
<br />
Для изменения PIN-кода введите команду:<br />
<source lang="text" highlight="1">$ pkcs11-tool --module /usr/lib64/pkcs11/librtpkcs11ecp.so --login --pin 12345678 --change-pin --new-pin 2780712<br />
Using slot 0 with a present token (0x0)<br />
PIN successfully changed<br />
</source><br />
где<br />
pin — текущий PIN-код устройства;<br />
new-pin — новый PIN-код устройства.<br />
<br />
===Разблокировка PIN-кода===<br />
Для того чтобы разблокировать PIN-код необходимо выполнить команду (потребуется ввести so-pin карты, а затем дважды ввести новый PIN-код):<br />
<source lang="text" highlight="1">$ pkcs11-tool --init-pin -l --module /usr/lib64/pkcs11/librtpkcs11ecp.so<br />
Using slot 0 with a present token (0x1)<br />
Please enter SO PIN: <br />
Please enter the new PIN: <br />
Please enter the new PIN again: <br />
User PIN successfully initialized<br />
</source><br />
<br />
===Инициализация токена===<br />
{{Attention|При инициализации все данные с токена будут удалены!}}<br />
Для инициализации токена следует выполнить команду (необходимо ввести so-pin карты 2 раза или передать его в качестве параметра --so-pin):<br />
<source lang="text" highlight="1">$ pkcs11-tool --init-token --label RuTokenECP --module /usr/lib64/pkcs11/librtpkcs11ecp.so<br />
Using slot 0 with a present token (0x1)<br />
Please enter the new SO PIN: <br />
Please enter the new SO PIN (again): <br />
Token successfully initialized<br />
</source><br />
<br />
===Удаление объекта===<br />
Для удаления объекта необходимо указать его тип и идентификатор (id) или название (label). Открытый и закрытый ключ удаляются отдельно.<br />
<source lang="text" highlight="1">$ pkcs11-tool -b -y privkey --login --id 1024 --module /usr/lib64/pkcs11/librtpkcs11ecp.so</source><br />
<br />
Типы объектов:<br />
*privkey – закрытый ключ;<br />
*pubkey – открытый ключ;<br />
*cert – сертификат.<br />
<br />
===Создание ключевой пары===<br />
<br />
{{Note| Для генерации ключевой пары ГОСТ-2012 на Рутокене используйте [[Rutoken#Генерация_пары_ключей_и_формирование_запроса_на_сертификат|веб-сервис «Центр регистрации Рутокен»]] (https://ra.rutoken.ru/)}}<br />
<br />
Создание ключевой пары по алгоритму ГОСТ-2001 (PIN-код пользователя указывается в опции --pin, или запрашивается, если опцию не задать):<br />
<source lang="text" highlight="1">$ pkcs11-tool --module /usr/lib64/pkcs11/librtpkcs11ecp.so --login --pin 12345678 --keypairgen --key-type GOSTR3410:A --id 0101 --label "my key"<br />
Using slot 0 with a present token (0x1)<br />
Key pair generated:<br />
Private Key Object; GOSTR3410 <br />
PARAMS OID: 06072a850302022301<br />
label: my key<br />
ID: 0101<br />
Usage: sign, unwrap<br />
Public Key Object; GOSTR3410 <br />
PARAMS OID: 06072a850302022301<br />
VALUE: a973f28ea2462781249fff1060d37276f23030e9766b54b8a14f0daa6fba6a7d<br />
62f2481e00a3df35bdd6c75ed82e8e95f1a78e9db549c8ee55008cfd92d7abb2<br />
label: my key<br />
ID: 0101<br />
Usage: verify, wrap<br />
</source><br />
<br />
Создание ключевой пары RSA 2048 (запрашивается PIN-код пользователя):<br />
<source lang="text" highlight="1">$ pkcs11-tool --module /usr/lib64/pkcs11/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 --login --id 2222 --label myrsakey<br />
Using slot 0 with a present token (0x0)<br />
Logging in to "Rutoken ECP <no label>".<br />
Please enter User PIN: <br />
Key pair generated:<br />
Private Key Object; RSA <br />
label: myrsakey<br />
ID: 2222<br />
Usage: decrypt, sign, unwrap<br />
Public Key Object; RSA 2048 bits<br />
label: myrsakey<br />
ID: 2222<br />
Usage: encrypt, verify, wrap<br />
</source><br />
{{Note|Рекомендуемая длина ключа RSA — не ниже 2048 бит.}}<br />
{{Note|Если у вас уже имеется выписанная на токен ключевая пара RSA с привязанным к ней сертификатом, то вы можете использовать их для аутентификации.}}<br />
<br />
== Ссылки ==<br />
* http://developer.rutoken.ru/pages/viewpage.action?pageId=3440675<br />
<br />
= Rutoken Web/ЭЦП =<br />
https://github.com/OpenSC/OpenSC/wiki/Aktiv-Co.-Rutoken-ECP<br />
== ssh ==<br />
ssh-add -s opensc-pkcs11.so<br />
[[Категория:Криптография]]<br />
{{Category navigation|title=Криптография|category=Криптография|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Alterator-sysconfig/proxy&diff=47386Alterator-sysconfig/proxy2019-12-24T11:26:40Z<p>Корнеечев Евгений: /* Использование модуля */ Добавлено</p>
<hr />
<div>== Название пакета ==<br />
<br />
{{pkg|alterator-sysconfig}}<br />
<br />
== Назначение ==<br />
<br />
Модуль '''Настройки proxy''' отвечает за настройку системных параметров PROXY.<br />
<br />
== Запуск ==<br />
<br />
Модуль '''Настройки proxy''' доступен как в GUI (раздел {{nav|Сеть|Настройки proxy}}):<br />
<br />
[[Файл:Alterator-sysconfig-proxy-gui.png|Интерфейс модуля Настройки proxy]]<br />
<br />
так и в веб-интерфейсе https://ip-address:8080 (раздел {{nav|Сеть|Настройки proxy}}):<br />
<br />
[[Файл:Alterator-sysconfig-proxy-web.png|Веб-интерфейс модуля Настройки proxy]]<br />
<br />
== Использование модуля ==<br />
<br />
Необходимо ввести адрес и порт (при отличном от 80) прокси-сервера, также при необходимости аутентификационные данные.<br />
<br />
После нажатия кнопки "Применить" все параметры запишутся в файл {{path|/etc/sysconfig/network}} в следующем виде:<br />
<pre>HTTP_PROXY=http://username:password@address:port<br />
HTTPS_PROXY=http://username:password@address:port<br />
FTP_PROXY=http://username:password@address:port</pre><br />
<br />
{{note|Именно эти настройки используют для работы все производные браузера Chromium (Chrome, Yandex, Sputnik и т.п.)}}<br />
<br />
{{Category navigation|title=Модули Alterator|category=Модули Alterator|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Alterator-sysconfig-proxy-web.png&diff=47384Файл:Alterator-sysconfig-proxy-web.png2019-12-24T11:11:57Z<p>Корнеечев Евгений: </p>
<hr />
<div></div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Alterator-sysconfig-proxy-gui.png&diff=47383Файл:Alterator-sysconfig-proxy-gui.png2019-12-24T11:11:41Z<p>Корнеечев Евгений: </p>
<hr />
<div></div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Alterator-sysconfig/proxy&diff=47382Alterator-sysconfig/proxy2019-12-24T11:11:15Z<p>Корнеечев Евгений: Новая страница: «== Название пакета == {{pkg|alterator-sysconfig}} == Назначение == Модуль '''Настройки proxy''' отвечает за н…»</p>
<hr />
<div>== Название пакета ==<br />
<br />
{{pkg|alterator-sysconfig}}<br />
<br />
== Назначение ==<br />
<br />
Модуль '''Настройки proxy''' отвечает за настройку системных параметров PROXY.<br />
<br />
== Запуск ==<br />
<br />
Модуль '''Настройки proxy''' доступен как в GUI (раздел {{nav|Сеть|Настройки proxy}}):<br />
<br />
[[Файл:Alterator-sysconfig-proxy-gui.png|Интерфейс модуля Настройки proxy]]<br />
<br />
так и в веб-интерфейсе https://ip-address:8080 (раздел {{nav|Сеть|Настройки proxy}}):<br />
<br />
[[Файл:Alterator-sysconfig-proxy-web.png|Веб-интерфейс модуля Настройки proxy]]<br />
<br />
== Использование модуля ==<br />
<br />
...<br />
<br />
{{Category navigation|title=Модули Alterator|category=Модули Alterator|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=1C/Quick(old)&diff=473711C/Quick(old)2019-12-23T09:24:47Z<p>Корнеечев Евгений: +remove</p>
<hr />
<div>Данная инструкция описывает быстрое развёртывание клиента 1С:Предприятие 8.3 на десктопных дистрибутивах ALT Linux. <br />
<br />
Проверенные конфигурации:<br />
* 1С:Предприятие 8.3.3.658 (клиент, 64-битная сборка)<br />
* Альт Линукс 7.0 Кентавр x86_64 (обновлён из [[Branches/p7|p7]] на 10 июля 2013 года)<br />
и<br />
* 1С:Предприятие 8.3.3.658 (клиент, 32-битная сборка)<br />
* Альт Линукс 7.0 Кентавр i586 обновлён из [[Branches/p7|p7]] на 10 июля 2013 года)<br />
<br />
Все действия осуществляются в графическом терминале [[Su|под правами пользователя root]].<br />
<br />
= Установка ключа защиты =<br />
<br />
Самый простой способ установить поддержку ключа защиты — установить пакет [http://wiki.etersoft.ru/HASP haspd от Etersoft]. Он собран для большинства дистрибутивов. В ALT Linux он устанавливается командой:<br />
<br />
apt-get install haspd<br />
<br />
Вставим ключ в порт USB и включим/запустим службу<br />
<br />
chkconfig haspd on<br />
service haspd start<br />
<br />
= Подготовка среды =<br />
<br />
Установим все зависимости для пакетов 1С:Предприятия, а также исправление зависимостей на libWand.so:<br />
<br />
apt-get install 1c-preinstall<br />
<br />
= Установка пакетов =<br />
<br />
Перейдём в каталог, содержащий архивы {{path|client.rpm64.tar.gz}} и {{path|rpm64.tar.gz}} (которые предварительно были скачаны с сайта 1С), распакуем их:<br />
tar xvf client.rpm64.tar.gz<br />
tar xvf rpm64.tar.gz<br />
<br />
и установим распакованные пакеты:<br />
apt-get install 1C_Enterprise83-client-8.3.3-658.x86_64.rpm \<br />
1C_Enterprise83-client-nls-8.3.3-658.x86_64.rpm \<br />
1C_Enterprise83-server-8.3.3-658.x86_64.rpm 1C_Enterprise83-server-nls-8.3.3-658.x86_64.rpm \<br />
1C_Enterprise83-common-8.3.3-658.x86_64.rpm 1C_Enterprise83-common-nls-8.3.3-658.x86_64.rpm<br />
<br />
Установка занимает около '''1 ГБ''' жёсткого диска.<br />
<br />
== Добавление шрифтов Microsoft® ==<br />
<br />
Для правильного отображения шрифтов при запуске нужно установить шрифты от Microsoft®:<br />
apt-get install 1c-preinstall-full<br />
<br />
=== Вручную ===<br />
apt-get install fonts-ttf-ms<br />
<br />
{{Note|По лицензии этот пакет не может распространяться в составе дистрибутива, но его можно установить из онлайнового репозитория}}<br />
<br />
Однако эти шрифты будут невидимы 1С. Создайте символическую ссылку на уровне системы:<br />
ln -rs /usr/share/fonts/ttf/ms /usr/share/fonts/msttcorefonts<br />
<br />
или для отдельного пользователя:<br />
ln -s /usr/share/fonts/ttf/ms ~/.fonts<br />
<br />
Всё это реализовано в {{pkg|1c-preinstall-full}} {{Since|8.3-alt6}}.<br />
<br />
== Исправление запуска тонкого клиента ==<br />
<br />
Если при запуске тонкого клиента возникает сообщение об ошибке «Не найдена библиотека libWand.so», сделайте ссылку на правильную библиотеку.<br />
<br />
==== Самый простой способ ====<br />
<br />
Установить пакет {{pkg|1c-preinstall}}, как описано выше.<br />
<br />
==== Вручную ====<br />
При недоступности библиотеки libWand.so удостоверьтесь, что установлена библиотека {{pkg|libImageMagick}} и выполните ([[Su|под правами root]]):<br />
<br />
в 32-битной системе:<br />
ln -s /usr/lib/libMagickWand*.so.1 /usr/lib/libWand.so.1<br />
ldconfig<br />
<br />
в 64-битной системе:<br />
ln -s /usr/lib64/libMagickWand*.so.1 /usr/lib64/libWand.so.1<br />
ldconfig<br />
<br />
== Ошибка при подключении к БД, размещенной на сервере ==<br />
При попытке запуска сетевой БД можно увидеть ошибку:<br />
<br />
[[Файл:Error1С linux.png]]<br />
<br />
В Windows ошибка более информативна:<br />
server_addr=vm-pg9 descr=Ошибка сетевого доступа к серверу <br />
(Windows Sockets - 11001(0x00002AF9). Этот хост неизвестен. ) line=991 file=Src\DataExchangeCommon.cpp<br />
Решается явным указанием IP-адреса сервера в /etc/hosts (ну или в настройках подключения базы сразу указать IP)<br />
<br />
= Удаление =<br />
apt-get remove -y 1C_Enterprise83-*<br />
<br />
{{Category navigation|title=1C|category=1C|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%9A%D0%BE%D0%BD%D1%82%D0%B8%D0%BD%D0%B5%D0%BD%D1%82-%D0%90%D0%9F&diff=47128Континент-АП2019-11-27T09:52:59Z<p>Корнеечев Евгений: Про КС1 и КС2</p>
<hr />
<div>1. Сначала получите пакеты RPM у [https://www.securitycode.ru/products/skzi-kontinent-ap/ Кода Безопасности]: cts (СКЗИ класса КС1). Если нужен KC2, то cts и sobol.<br />
<br />
2. Установка ПО «Континент АП» (все команды выполняются под правами root):<br />
# Установить пакет(ы), выполнив команду (команда выполняется из папки с rpm):<br />
#:<source lang="text" highlight="1"># apt-get install cts-* #КС1</source><br />
#:<source lang="text" highlight="1"># apt-get install cts-* sobol-* #КС2</source><br />
# Для завершения установки ПО «Континент АП» требуется перезагрузка ОС.<br />
<br />
3. После перезагрузки служба cts будет запущена:<br />
<source lang="text" highlight="1"># systemctl status cts</source><br />
<br />
[[Изображение:Cts-status.png|Служба cts]]<br />
<br />
Появится значок ПО «Континент АП» в трее:<br />
<br />
[[Изображение:Continent-ap.png|Контекстное меню «Континент АП» в трее]]<br />
<br />
[[Категория:Enterprise Software]]<br />
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Thunderbird&diff=46669Thunderbird2019-10-30T07:09:03Z<p>Корнеечев Евгений: +Архивация</p>
<hr />
<div>'''Mozilla Thunderbird''' - бесплатная кроссплатформенная свободно распространяемая программа для работы с электронной почтой, группами новостей и с календарём (расширение Lightning, на данный момент входит в состав Thunderbird, с версии 45.3). Является составной частью проекта Mozilla. Поддерживает протоколы: SMTP, POP3, IMAP, NNTP, RSS. Предоставляются официальные сборки для Microsoft Windows, macOS, Linux , причём набор возможностей на всех платформах одинаков.<br />
<br />
= Установка =<br />
Установите пакет {{pkg|thunderbird-ru}} (если установить пакет {{pkg|thunderbird}} - интерфейс будет на английском):<br />
$ su -<br />
# apt-get update<br />
# apt-get install thunderbird-ru<br />
{{note|Также для установки можно использовать [[Synaptic]]}}<br />
<br />
= Настройка учетной записи почты =<br />
Во время первого запуска Mozilla Thunderbird откроется окно, в котором будет предложено создать учетную запись почты, если у Вас таковая не имеется. В данном окне нажимаем кнопку "Пропустить это и использовать мою существующую почту" - после этого откроется окно (настройка УЗ почты также будет доступна из меню программы: {{path|'Правка' -> 'Параметры учетной записи' -> 'Действия для учетной записи' -> 'Добавить учетную запись почты...'}}):<br />
<br />
[[Файл:Thunderbird_1.png]]<br />
<br />
Если у Вас почтовый ящик размещен на одном из популярных сервисов (gmail.com, mail.ru, yandex.ru и пр.), то его настройка сводится<br />
к указанию отображаемого имени, адреса и пароля - остальные параметры программа настроит автоматически после нажатия кнопки "Продолжить", Вам останется только выбрать протокол [https://ru.wikipedia.org/wiki/IMAP IMAP] или [https://ru.wikipedia.org/wiki/POP3 POP] и нажать кнопку "Готово".<br />
<br />
Если же у Вас имеется корпоративный почтовый ящик, развернутый на своем сервере (например, {{cmd|ivanov@company.org}}), то скорее всего, вследствие отсутствия данных по Вашему домену в [http://mzl.la/1KjLF9G базе ISP от Mozilla], автоматическая настройка не произойдет (в конце откроется окно, изображенное на рисунке ниже). В этом случае Вам необходимо нажать на кнопку "Настройка вручную" и указать необходимые данные (которые нужно узнать у администратора почтового сервера) для подключения вручную:<br />
<br />
[[Файл:Thunderbird_2.png]]<br />
<br />
После ввода верных данных и нажатия кнопки "Готово" первоначальная настройка учетной записи завершена, Вы можете принимать/отправлять письма.<br />
<br />
== Несколько советов по настройке ==<br />
<br />
* По умолчанию, все письма из Вашего почтового ящика загружаются к Вам на компьютер для возможности автономной работы и увеличения скорости поиска. Однако, если этого не требуется или размер дискового пространства на Вашем компьютере ограничен, Вы можете отключить данный параметр - в "Параметрах учетной записи" в разделе "Синхронизация и хранение" снимите флажок "Хранить сообщения для этой учетной записи на этом компьютере"<br />
<br />
* Если в списке папок почтового ящика Вы не нашли какую-либо, то Вам необходимо нажать правой кнопкой мыши на нужной учетной записи, далее нажимаем "Подписаться..." и выбрать необходимые для отображения папки.<br />
<br />
= Настройка кодировки исходящих сообщений =<br />
Не все кодировки доступны для выбора в '''Правка → Настройки → Отображение → Дополнительно...'''<br />
<br />
Однако можно задать любую через редактор настроек ([[#Добавление всех папок почты в автопроверку|см. п.4.2]]). Для этого необходимо изменить:<br />
Имя надстройки: ''mailnews.send_default_charset''<br />
Значение: ''windows-1251'', как пример.<br />
<br />
= Настройка проверки новых сообщений в папках почты =<br />
<br />
По умолчанию Thunderbird автоматически проверяет новые сообщения (и отображает всплывающие уведомления об этом) только в папке "Входящие" любой из добавленных учетных записей.<br />
<br />
== Добавление определенной папки в автопроверку ==<br />
<br />
Необходимо на данной папке почты нажать правой кнопкой мыши (ПКМ), выбрать '''Свойства''' и в открывшемся окне поставить чекбокс -<br />
'''"При получении новых сообщений для этой учётной записи всегда проверять эту папку"'''<br />
<br />
После перезапуска программы уведомления о новых письмах будут появляться при получении письма и во "Входящие", и в данную папку.<br />
<br />
== Добавление всех папок почты в автопроверку ==<br />
<br />
Для этого зайдите в меню: '''Правка → Настройки → Дополнительные → Редактор настроек...'''<br />
здесь ПКМ ''' → Создать → Логическое'''<br />
Имя надстройки: ''mail.check_all_imap_folders_for_new''<br />
Значение: ''true''<br />
<br />
= Интеграция в LibreOffice =<br />
В любом из приложений пакета LO есть возможность напрямую отправить текущий документ по email:<br />
<br />
Для этого есть пункт меню: '''Файл → Отправить → Документ эл. почтой...'''. Однако при нажатии на эту кнопку открывается окно создания нового сообщения Thunderbird, но вложения в нем нет.<br />
<br />
Исправляем эту ошибку: зайти в LO в пункт меню '''Сервис → Параметры → Интернет → Эл.почта''' и здесь указать путь до исполняемого файла Thunderbird:<br />
/usr/bin/thunderbird<br />
{{note|Такие же настройки можно произвести и при использовании других почтовых клиентов, например [[Evolution]].}}<br />
<br />
= Архив сообщений =<br />
Описание есть на странице поддержки Mozilla: http://mzl.la/1ApHimZ<br />
<br />
Автоархивации в Thunderbird нет, можно воспользоваться дополнением [https://addons.thunderbird.net/ru/thunderbird/addon/awesome-auto-archive/ Awesome Auto Archive]<br />
<br />
= Использование адресной книги с LDAP ALT-домена =<br />
<br />
По соображениям безопасности LDAP с [[Домен|домена ALT Linux]] раздаётся по сети только по протоколу LDAPS (636). Ещё одной особенностью домена является то, что все сертификаты сервера идут самоподписанными. В свою очередь, Thunderbird для imaps и pop3s запрашивает подтверждение исключения, а для ldaps — нет[https://bugzilla.mozilla.org/show_bug.cgi?id=528922].<br />
<br />
== Добавление сервера LDAP как источника адресов в Thunderbird ==<br />
<br />
1. В главном окне откройте меню '''Инструменты → Адресная книга'''.<br />
<br />
2. В окне адресной книги откройте '''Файл → Создать → Каталог LDAP'''<br />
<br />
3. Укажите название подключения, имя сервера, корневой элемент (на сервере его можно получить командой:<br />
<source lang="Bash">echo "ou=People,$(system-auth status|cut -f2 -d' ')"</source><br />
<br />
Например, ''ou=People,dc=school,dc=alt''<br />
<br />
{{Note|Организационная структура (ou) ''People'' добавлена для исключения дублирования записей пользователей и групп.}}<br />
<br />
4. Установите флажок '''Использовать защищённое соединение (SSL)'''. Номер порта при этом изменится на 636.<br />
<br />
5. Нажмите кнопку '''OK'''.<br />
<br />
== Добавление исключения для самоподписанного сертификата ==<br />
<br />
Сертификат не может быть получен, пока не будет добавлена адресная книга LDAP с этим хостом и не произведена хотя бы одна репликация[http://forum.altlinux.org/index.php/topic,30774.0.html].<br />
<br />
1. Выполнить у адресной книги LDAP: '''Свойства → Автономно → Загрузить сейчас'''. Появится «Ошибка репликации», но это без сертификата нормально. Закрыть окно.<br />
<br />
2. Переходим в меню '''Правка → Настройки → Дополнительные → Сертификаты'''.<br />
<br />
3. Нажимаем на кнопку '''Просмотр сертификатов''', переходим на вкладку '''Серверы''' и нажимаем кнопку '''Добавить исключение'''.<br />
<br />
3. В поле адреса прописываем имя сервера ('''точно такое же''', как у добавленной адресной книги LDAP) с номером протокола '''636''' (без названия протокола). Например, <source lang="text">ldap:636</source><br />
<br />
4. Нажмите на кнопку '''Получить сертификат''' и затем на кнопку '''Подтвердить исключение безопасности'''. <br />
{{Note|Рекомендуется постоянно хранить это исключение.}}<br />
<br />
== После добавления и принятия сертификата ==<br />
<br />
После этого начнёт работать поиск адресов и по пользователям домена.<br />
<br />
{{Note|Thunderbird не показывает весь список пользователей из LDAP, а только совпадающих с поисковым запросом. Для показа всего списка напишите в строке поиска любую букву из названия домена или точку.}}<br />
<br />
В актуальных версиях Thunderbird, с 30.* и далее, при заполнении поля Кому: (новое сообщение, перенаправление, переадресация и т.д.) поиск и автодополнение по умолчанию производятся только в '''локальных''' адресных книгах. Чтобы включить поиск по адресной книге LDAP, следует поправить либо глобальные настройкиподстановки адресов: '''Правка → Параметры → Составление → Адресация → Сервер каталогов''' → выберите нужный (только что добавленный);<br />
либо настройки учетной записи: (прав. кн. мыши) '''Параметры''' - '''Составление и адресация''' - (справа внизу) '''Глобальные настройки адресации...'''<br />
<br />
{{Note|''Проверено на Thunderbird 31.2.0 и 31.3.0 из p7''}}<br />
<br />
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}}<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=ActiveDirectory/DC&diff=46360ActiveDirectory/DC2019-10-18T08:06:10Z<p>Корнеечев Евгений: /* Заведение вторичного DC */</p>
<hr />
<div>[[Файл:Samba_logo.png|frameless|right]]<br />
Использование Samba 4 в роли контроллера домена [https://ru.wikipedia.org/wiki/Active_Directory Active Directory]. Такой способ позволяет вводить Windows 7/8 в домен [[Домен/Windows#.D0.92.D1.85.D0.BE.D0.B4_.D0.B2_ALT-.D0.B4.D0.BE.D0.BC.D0.B5.D0.BD_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC_.D0.BD.D0.B0_Windows_7.2F8|безо всяких манипуляций с реестром]].<br />
<br />
= Возможности =<br />
<br />
Поддерживаются базовые возможности [https://ru.wikipedia.org/wiki/Active_Directory Active Directory]:<br />
* Аутентификация рабочих станций Windows и Linux и служб;<br />
* Авторизация и предоставление ресурсов;<br />
* Групповые политики (GPO);<br />
* Перемещаемые профили (Roaming Profiles);<br />
* Поддержка инструментов Microsoft для управления серверами ([https://wiki.samba.org/index.php/Installing_RSAT_on_Windows_for_AD_Management Remote Server Administration Tools]) с компьютеров под управлением Windows (<span style="color:gray;">''под WINE не работает''</span>);<br />
* Поддержка протоколов SMB2 и SMB3 (в том числе с поддержкой шифрования);<br />
* Репликация с другими серверами (в том числе с Windows 2012).<br />
<br />
== Не поддерживается ==<br />
<br />
Не поддерживаются следующие возможности[https://lists.samba.org/archive/samba/2014-October/186126.html]:<br />
* Не реплицируется хранилище SYSVOL (можно использовать osync[https://wiki.samba.org/index.php/SysVol_Bidirectional_Replication][https://wiki.samba.org/index.php/Rsync_based_SysVol_replication_workaround]);<br />
* Доверительные отношения только в одном направлении (от Windows к Samba, но не наоборот[https://wiki.samba.org/index.php/FAQ#Trusts]) (что не позволяет реализовать лес доменов);<br />
* Не поддерживаются поддомены[https://lists.samba.org/archive/samba/2015-June/192441.html];<br />
** В Samba отсутствует глобальный каталог (GC) и полноценная поддержка фантомных объектов;<br />
** Проблемы при построении структуры AD (Active Directory browser), проблемы при поиске объектов в другом домене;<br />
** При применении групповых политик в многодоменной среде могут быть проблемы с определением, в каком домене находится компьютер;<br />
* [https://wiki.samba.org/index.php/DFS DFS] работает только в режиме одиночного сервера;<br />
* Не реализовано DFS-R;<br />
* Не полностью реализовано RODC;<br />
* Ограничения размера базы TDB в 4 ГБ. Это ограничение приводит к невозможности перехода от леса доменов к плоской структуре с одним доменом.[http://ldapcon.org/2015/wp-content/uploads/2015/09/ivanova-samba_backend.pdf]<br />
* ''Не закончено тестирование'' поддержки CTDB (хранение данных в кластерной инфраструктуре);<br />
* ''Не закончено тестирование'' работы Winbind.<br />
<br />
Смотрите также статью [http://habrahabr.ru/post/272777/ Возможности и ограничения Samba 4 как контроллера домена Active Directory] на http://habrahabr.ru/.<br />
<br />
{{Attention|Samba AD DC несовместима с OpenLDAP и MIT Kerberos, поэтому службы, использующие MIT Kerberos, несовместимы с ним.}}<br />
{{Attention|Samba AD DC функционирует на уровне контроллера доменов Windows 2008 R2. Вы можете ввести его в домен Windows 2012 как клиента, но не как контроллер домена.}}<br />
<br />
= Установка =<br />
1. Установите пакет {{pkg|task-samba-dc}} {{Since|4.3.1}}, который установит необходимое.<br />
<br />
{{Note|До версии 4.3.1 требовалось явно установить пакеты: {{pkg|samba-DC python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-client krb5-kinit}}}}<br />
<br />
<br />
2. Так как Samba в режиме контроллера домена (Doman Controller, DC) использует как свой LDAP, так и свой сервер Kerberos, несовместимый с MIT Kerberos, перед установкой <br />
остановите конфликтующие службы {{cmd|krb5kdc}} и {{cmd|slapd}}, а также {{cmd|bind}}:<br />
for service in smb nmb krb5kdc slapd bind; do chkconfig $service off; service $service stop; done<br />
<br />
= Создание нового домена =<br />
<br />
== Восстановление к начальному состоянию samba ==<br />
<br />
Очищаем базы и конфигурацию Samba (если уже создавался домен):<br />
rm -f /etc/samba/smb.conf<br />
rm -rf /var/lib/samba<br />
rm -rf /var/cache/samba<br />
mkdir -p /var/lib/samba/sysvol<br />
<br />
{{Attention|Обязательно удаляйте {{path|/etc/samba/smb.conf}} перед созданием домена: <source lang="bash">rm -f /etc/samba/smb.conf</source>}}<br />
<br />
== Выбор имени домена ==<br />
<br />
Имя домена для разворачиваемого DC должно состоять минимум из двух компонентов, разделённых точкой.<br />
<br />
При этом должно быть установлено правильное имя узла и домена для сервера:<br />
* HOSTNAME=dc.school.alt в {{path|/etc/sysconfig/network}}<br />
* # hostname dc.school.alt<br />
* # domainname school.alt<br />
<br />
{{Attention|При указании домена, имеющего суффикс '''.local''', потребуется на сервере и подключаемых компьютерах под управлением Linux <u>'''отключить''' службу {{cmd|avahi-daemon}}</u>.}}<br />
<br />
== Создание домена одной командой ==<br />
<br />
Создание контроллера домена ''school.alt'' с паролем администратора ''Pa$$word'':<br />
<br />
samba-tool domain provision --realm=school.alt --domain school --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc --use-rfc2307<br />
<br />
== Интерактивное создание домена ==<br />
<br />
В примере показано создание домена ''school.alt''.<br />
<br />
Запустите {{cmd|samba-tool domain provision}}:<br />
<source lang="text"># samba-tool domain provision<br />
Realm [SCHOOL.ALT]: <br />
Domain [SCHOOL]: <br />
Server Role (dc, member, standalone) [dc]: <br />
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: <br />
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: <br />
Administrator password: <br />
Retype password: <br />
Looking up IPv4 addresses<br />
More than one IPv4 address found. Using 192.168.1.1<br />
Looking up IPv6 addresses<br />
No IPv6 address will be assigned<br />
Setting up share.ldb<br />
Setting up secrets.ldb<br />
Setting up the registry<br />
Setting up the privileges database<br />
Setting up idmap db<br />
Setting up SAM db<br />
Setting up sam.ldb partitions and settings<br />
Setting up sam.ldb rootDSE<br />
Pre-loading the Samba 4 and AD schema<br />
Adding DomainDN: DC=school,DC=alt<br />
Adding configuration container<br />
Setting up sam.ldb schema<br />
Setting up sam.ldb configuration data<br />
Setting up display specifiers<br />
Modifying display specifiers<br />
Adding users container<br />
Modifying users container<br />
Adding computers container<br />
Modifying computers container<br />
Setting up sam.ldb data<br />
Setting up well known security principals<br />
Setting up sam.ldb users and groups<br />
Setting up self join<br />
Adding DNS accounts<br />
Creating CN=MicrosoftDNS,CN=System,DC=school,DC=alt<br />
Creating DomainDnsZones and ForestDnsZones partitions<br />
Populating DomainDnsZones and ForestDnsZones partitions<br />
Setting up sam.ldb rootDSE marking as synchronized<br />
Fixing provision GUIDs<br />
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf<br />
Once the above files are installed, your Samba4 server will be ready to use<br />
Server Role: active directory domain controller<br />
Hostname: c228<br />
NetBIOS Domain: SCHOOL<br />
DNS Domain: school.alt<br />
DOMAIN SID: S-1-5-21-80639820-2350372464-3293631772</source><br />
<br />
При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»).<br />
{{Note|Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов.}}<br />
<br />
Параметры ''--use-rfc2307 --use-xattrs=yes'' позволяют поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.<br />
<br />
= Запуск службы =<br />
<br />
Установите службу по умолчанию и запустите её:<br />
chkconfig samba on<br />
service samba start<br />
<br />
= Проверка работоспособности =<br />
<br />
1. Общая информация о домене:<br />
<source lang="text"># samba-tool domain info 127.0.0.1<br />
Forest : school.alt<br />
Domain : school.alt<br />
Netbios domain : SCHOOL<br />
DC name : c228.school.alt<br />
DC netbios name : C228<br />
Server site : Default-First-Site-Name<br />
Client site : Default-First-Site-Name</source><br />
<br />
2. Просмотр предоставляемых служб:<br />
<source lang="text"># smbclient -L localhost -Uadministrator<br />
Enter administrator's password: <br />
Domain=[SCHOOL] OS=[Unix] Server=[Samba 4.0.21]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
netlogon Disk <br />
sysvol Disk <br />
IPC$ IPC IPC Service (Samba 4.0.21)<br />
Domain=[SCHOOL] OS=[Unix] Server=[Samba 4.0.21]<br />
<br />
Server Comment<br />
--------- -------<br />
<br />
Workgroup Master<br />
--------- -------<br />
SCHOOL.ALT C228<br />
WORKGROUP HOST-15</source><br />
<br />
3. Проверка конфигурации DNS<br />
<br />
3.1 Убедитесь в наличии <tt>nameserver 127.0.0.1</tt> в {{path|/etc/resolv.conf}}:<br />
host school.alt<br />
3.2 Проверяем имена хостов:<br />
<source lang="text"># host -t SRV _kerberos._udp.school.alt.<br />
_kerberos._udp.school.alt has SRV record 0 100 88 c228.school.alt.<br />
# host -t SRV _ldap._tcp.school.alt.<br />
_ldap._tcp.school.alt has SRV record 0 100 389 c228.school.alt.<br />
# host -t A c228.school.alt.<br />
c228.school.alt has address 192.168.1.1</source><br />
<br />
Если имена не находятся, проверяйте выключение службы {{cmd|named}}.<br />
<br />
4. Проверка Kerberos:<br />
{{Attention|Имя домена должно быть в '''верхнем регистре''', иначе выдаст: <source lang="text">kinit: KDC reply did not match expectations while getting initial credentials</source>}}<br />
<source lang="text"># kinit administrator@SCHOOL.ALT<br />
Password for administrator@SCHOOL.ALT: <br />
Warning: Your password will expire in 41 days on Вт 11 ноя 2014 08:58:30</source><br />
<br />
Просмотр полученного билета:<br />
<source lang="text"># klist<br />
Ticket cache: FILE:/tmp/krb5cc_0<br />
Default principal: administrator@SCHOOL.ALT<br />
<br />
Valid starting Expires Service principal<br />
30.09.2014 10:23:54 30.09.2014 20:23:54 krbtgt/SCHOOL.ALT@SCHOOL.ALT<br />
renew until 01.10.2014 10:23:45</source><br />
<br />
{{Attention|Для серверов, не внесённых в зону обратного просмотра DNS, авторизация через nslcd по GSSAPI будет вылетать с диагностикой: <source lang="text">Local error: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database)</source>}}<br />
<br />
= Управление пользователями =<br />
<br />
Создать пользователя с паролем[https://wiki.samba.org/index.php/Adding_users_with_samba_tool], :<br />
samba-tool user create <имя пользователя><br />
samba-tool user setexpiry <имя пользователя><br />
<br />
Например, <br />
samba-tool user create ivanov --given-name='Иван Иванов' --mail-address='ivanov@stand.alt'<br />
<br />
Просмотреть доступных пользователей:<br />
samba-tool user list<br />
<br />
Не забудьте разблокировать пользователя:<br />
samba-tool user setexpiry <имя пользователя> --noexpiry<br />
<br />
{{Attention|Не допускайте одинаковых имён для пользователя и компьютера, это может привести к коллизиям (например, такого пользователя нельзя добавить в группу). [http://support2.microsoft.com/kb/310845]}}<br />
<br />
Если компьютер с таким именем заведён, удалить его можно командой:<br />
pdbedit -x -m <имя><br />
<br />
= Заведение вторичного DC =<br />
<br />
Подробная инструкция на английском языке: https://wiki.samba.org/index.php/Join_a_domain_as_a_DC<br />
<br />
Имя узла: ''dc2.school.alt (192.168.1.106)''. Предполагается, что пакет {{pkg|task-samba-dc}} уже установлен.<br />
<br />
1. Заводим IP-адрес для dc2 на PDC (с версии Samba 4.7 и выше - запись вносится автоматически):<br />
{{Attention|Указание аутентифицирующей информации (имени пользователя и пароля) '''обязательно'''!}}<br />
# samba-tool dns add 192.168.1.1 school.alt DC2 A 192.168.1.106 -Uadministrator<br />
<br />
2. На ''dc2.school.alt'' правим файл {{path|/etc/krb5.conf}}:<br />
[libdefaults]<br />
default_realm = SCHOOL.ALT<br />
dns_lookup_realm = true<br />
dns_lookup_kdc = true<br />
<br />
{{Note|Перед вводом в домен в resolvconf обязательно должен быть добавлен PDC как {{term|nameserver}}.}}<br />
<br />
3. Получаем билет и убеждаемся, что билет получен:<br />
{{Attention|Имя домена должно быть указано '''в верхнем регистре'''}}<br />
<pre># kinit administrator@SCHOOL.ALT<br />
Password for administrator@SCHOOL.ALT: <br />
Warning: Your password will expire in 37 days on Пт 14 ноя 2014 14:31:40<br />
# klist<br />
Ticket cache: FILE:/tmp/krb5cc_0<br />
Default principal: administrator@SCHOOL.ALT<br />
<br />
Valid starting Expires Service principal<br />
07.10.2014 18:51:01 08.10.2014 04:51:01 krbtgt/SCHOOL.ALT@SCHOOL.ALT<br />
renew until 08.10.2014 18:50:51</pre><br />
<br />
4. Вводим в домен:<br />
# samba-tool domain join school.alt DC -Uadministrator --realm=school.alt<br />
<br />
Если всё нормально, в конце видим:<br />
Joined domain SCHOOL (SID S-1-5-21-80639820-2350372464-3293631772) as a DC<br />
<br />
5. После успешного ввода в домен в resolvconf необходимо сменить адрес PDC на адрес вторичного DC (в нашем примере 192.168.1.106).<br />
<br />
6. Делаем службу {{cmd|samba}} запускаемой по умолчанию:<br />
# chkconfig samba on<br />
<br />
7. Запускаем службу, соответственно:<br />
# service samba start<br />
<br />
= Репликация =<br />
{{Attention|Помните, что без успешной двунаправленной репликации в течение 14 дней DC '''исключается''' из Active Directory}}<br />
{{Attention|Указание аутентифицирующей информации (имени пользователя и пароля) '''обязательно'''!}}<br />
1. Реплицируем '''на вторичном DC''' (с первичного):<br />
<br />
# samba-tool drs replicate dc2.school.alt c228.school.alt dc=school,dc=alt -Uadministrator<br />
<br />
(сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP).<br />
<br />
2. Реплицируем '''на вторичном DC''' (на первичный):<br />
<br />
# samba-tool drs replicate с228.school.alt dc2.school.alt dc=school,dc=alt -Uadministrator<br />
<br />
(сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP).<br />
<br />
{{Note|Имя домена в именах серверов можно опустить (если они одинаковые)}}<br />
<br />
3. Просмотр статуса репликации на PDC:<br />
# samba-tool drs showrepl<br />
<br />
{{Note|Если репликация на Windows не работает, добавьте в ''Active Directory Sites and Services'' новое соединение Active Directory. Реплицируйте на DC, подождите минут 5 и пробуйте реплицировать с Samba на Windows}}<br />
<br />
= Ссылки =<br />
* Рекомендуемые серверные установочные образы (после установки выполните [[обновление ОС]]):<br />
** [http://basealt.ru/products/alt-server/ Альт Сервер]<br />
** [http://basealt.ru/products/alt-spt/ Альт Линукс СПТ 7.0] (сертификат ФСТЭК)<br />
** стартеркиты: [http://nightly.altlinux.org/p8/permalink/alt-p8-server-latest-x86_64.iso x86_64], [http://nightly.altlinux.org/p8/permalink/alt-p8-server-latest-i586.iso i586] (GPL)<br />
** [http://basealt.ru/about/contacts существуют] сборки samba-DC для [[ports/e2k|порта на "Эльбрус"]]<br />
* Тестовые образы:<br />
** [http://nightly.altlinux.org/p7/beta/ altlinux-p7-server-samba4.iso] (старая стабильная ветка)<br />
** [http://nightly.altlinux.org/sisyphus/alpha/ regular-server-samba4.iso] (нестабильная ветка)<br />
* Документация на русском языке:<br />
** [http://smb-conf.ru/samba4-addc.html Инструкция по настройке Samba в качестве контроллера домена, совместимого с Active Directory]<br />
** [http://habr.com/ru/post/259029/ Samba4 — использование Python Scripting Interface]<br />
** [http://habr.com/ru/post/272777/ Возможности и ограничения Samba 4 как контроллера домена Active Directory]<br />
** [https://habr.com/ru/post/450572/ Samba DC в качестве второго контроллера в домене AD Windows 2012R2 и перемещаемые папки для клиентов на Windows и Linux]<br />
* wiki.samba.org: <br />
** [https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO Samba AD DC HOWTO]<br />
** [https://wiki.samba.org/index.php/Installing_RSAT_on_Windows_for_AD_Management Installing RSAT on Windows for AD Management]<br />
** [https://wiki.samba.org/index.php/Samba4/HOWTO/Join_a_domain_as_a_DC Добавление ещё одного DC в домен]<br />
** [https://wiki.samba.org/index.php/Samba_%26_Windows_Profiles Samba & Windows Profiles]<br />
** [https://wiki.samba.org/index.php/Join_an_additional_Samba_DC_to_an_existing_Active_Directory Join an additional Samba DC to an existing Active Directory]<br />
** [https://wiki.samba.org/index.php/Backup_and_restore_an_Samba_AD_DC Backup and restore an Samba AD DC]<br />
* Иные ресурсы:<br />
** [http://www.youtube.com/watch?v=8tYnjp_BleI Заведение групповых политик для домена (ролик)]<br />
** [http://wiki.skytech.dk/index.php/Samba_4_-_domain_controller#Join_domain_with_a_linux_machine Samba 4 - domain controller#Join domain with a linux machine]<br />
<br />
= Советы =<br />
* Введите в домен машину с Windows, установите на неё [https://wiki.samba.org/index.php/Installing_RSAT_on_Windows_for_AD_Management Remote Server Administration Tools] и управляйте доменом из графического интерфейса.<br />
* Для того, чтобы посмотреть конфигурацию LDAP контроллера домена, получите билет Kerberos (через {{cmd|kinit}}) и выполните:<br />
<source lang="Bash">ldapsearch -LLL -b '' -s base -x</source><br />
<!--* Для выполнения задач с помощью samba-tool, требующих прав администратора, указание его пароля в параметре {{term|-Uadministrator%пароль}} можно заменить на использование Kerberos (в этом случае -U указывать нельзя):<br />
<source lang="Bash">kinit Administrator<br />
samba-tool -k yes ...</source>--><br />
* Для отключения проверки необходимой длины и стойкости паролей выполните:<br />
samba-tool domain passwordsettings set --complexity=off<br />
samba-tool domain passwordsettings set --history-length=0<br />
samba-tool domain passwordsettings set --min-pwd-age=0<br />
samba-tool domain passwordsettings set --max-pwd-age=0<br />
* Для просмотра всех записей DNS домена выполните:<br />
samba-tool dns query localhost test.altlinux '@' ALL -U 'Administrator%Pa$$word'<br />
* Для удаления заведённого хоста выполните:<br />
samba-tool dns delete localhost test.altlinux host-51 A 192.168.3.51 -U 'Administrator%Pa$$word'<br />
<br />
= Troubleshooting =<br />
<br />
;Если домен не создаётся с ошибкой типа <code lang="text">ERROR(ldb): uncaught exception - operations error at ../source4/dsdb/samdb/ldb_modules/password_hash.c:2241</code><br />
:Удалите директиву {{cmd|include}} или {{cmd|includedir}} в {{path|/etc/krb5.conf}}[https://github.com/heimdal/heimdal/issues/89]<br />
<br />
[[Категория:HOWTO]]<br />
[[Категория:Active Directory]]<br />
{{Category navigation|title=Samba|category=Samba|sortkey={{SUBPAGENAME}}}}<br />
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=ActiveDirectory/DC&diff=46359ActiveDirectory/DC2019-10-18T08:01:45Z<p>Корнеечев Евгений: /* Заведение вторичного DC */</p>
<hr />
<div>[[Файл:Samba_logo.png|frameless|right]]<br />
Использование Samba 4 в роли контроллера домена [https://ru.wikipedia.org/wiki/Active_Directory Active Directory]. Такой способ позволяет вводить Windows 7/8 в домен [[Домен/Windows#.D0.92.D1.85.D0.BE.D0.B4_.D0.B2_ALT-.D0.B4.D0.BE.D0.BC.D0.B5.D0.BD_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC_.D0.BD.D0.B0_Windows_7.2F8|безо всяких манипуляций с реестром]].<br />
<br />
= Возможности =<br />
<br />
Поддерживаются базовые возможности [https://ru.wikipedia.org/wiki/Active_Directory Active Directory]:<br />
* Аутентификация рабочих станций Windows и Linux и служб;<br />
* Авторизация и предоставление ресурсов;<br />
* Групповые политики (GPO);<br />
* Перемещаемые профили (Roaming Profiles);<br />
* Поддержка инструментов Microsoft для управления серверами ([https://wiki.samba.org/index.php/Installing_RSAT_on_Windows_for_AD_Management Remote Server Administration Tools]) с компьютеров под управлением Windows (<span style="color:gray;">''под WINE не работает''</span>);<br />
* Поддержка протоколов SMB2 и SMB3 (в том числе с поддержкой шифрования);<br />
* Репликация с другими серверами (в том числе с Windows 2012).<br />
<br />
== Не поддерживается ==<br />
<br />
Не поддерживаются следующие возможности[https://lists.samba.org/archive/samba/2014-October/186126.html]:<br />
* Не реплицируется хранилище SYSVOL (можно использовать osync[https://wiki.samba.org/index.php/SysVol_Bidirectional_Replication][https://wiki.samba.org/index.php/Rsync_based_SysVol_replication_workaround]);<br />
* Доверительные отношения только в одном направлении (от Windows к Samba, но не наоборот[https://wiki.samba.org/index.php/FAQ#Trusts]) (что не позволяет реализовать лес доменов);<br />
* Не поддерживаются поддомены[https://lists.samba.org/archive/samba/2015-June/192441.html];<br />
** В Samba отсутствует глобальный каталог (GC) и полноценная поддержка фантомных объектов;<br />
** Проблемы при построении структуры AD (Active Directory browser), проблемы при поиске объектов в другом домене;<br />
** При применении групповых политик в многодоменной среде могут быть проблемы с определением, в каком домене находится компьютер;<br />
* [https://wiki.samba.org/index.php/DFS DFS] работает только в режиме одиночного сервера;<br />
* Не реализовано DFS-R;<br />
* Не полностью реализовано RODC;<br />
* Ограничения размера базы TDB в 4 ГБ. Это ограничение приводит к невозможности перехода от леса доменов к плоской структуре с одним доменом.[http://ldapcon.org/2015/wp-content/uploads/2015/09/ivanova-samba_backend.pdf]<br />
* ''Не закончено тестирование'' поддержки CTDB (хранение данных в кластерной инфраструктуре);<br />
* ''Не закончено тестирование'' работы Winbind.<br />
<br />
Смотрите также статью [http://habrahabr.ru/post/272777/ Возможности и ограничения Samba 4 как контроллера домена Active Directory] на http://habrahabr.ru/.<br />
<br />
{{Attention|Samba AD DC несовместима с OpenLDAP и MIT Kerberos, поэтому службы, использующие MIT Kerberos, несовместимы с ним.}}<br />
{{Attention|Samba AD DC функционирует на уровне контроллера доменов Windows 2008 R2. Вы можете ввести его в домен Windows 2012 как клиента, но не как контроллер домена.}}<br />
<br />
= Установка =<br />
1. Установите пакет {{pkg|task-samba-dc}} {{Since|4.3.1}}, который установит необходимое.<br />
<br />
{{Note|До версии 4.3.1 требовалось явно установить пакеты: {{pkg|samba-DC python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-client krb5-kinit}}}}<br />
<br />
<br />
2. Так как Samba в режиме контроллера домена (Doman Controller, DC) использует как свой LDAP, так и свой сервер Kerberos, несовместимый с MIT Kerberos, перед установкой <br />
остановите конфликтующие службы {{cmd|krb5kdc}} и {{cmd|slapd}}, а также {{cmd|bind}}:<br />
for service in smb nmb krb5kdc slapd bind; do chkconfig $service off; service $service stop; done<br />
<br />
= Создание нового домена =<br />
<br />
== Восстановление к начальному состоянию samba ==<br />
<br />
Очищаем базы и конфигурацию Samba (если уже создавался домен):<br />
rm -f /etc/samba/smb.conf<br />
rm -rf /var/lib/samba<br />
rm -rf /var/cache/samba<br />
mkdir -p /var/lib/samba/sysvol<br />
<br />
{{Attention|Обязательно удаляйте {{path|/etc/samba/smb.conf}} перед созданием домена: <source lang="bash">rm -f /etc/samba/smb.conf</source>}}<br />
<br />
== Выбор имени домена ==<br />
<br />
Имя домена для разворачиваемого DC должно состоять минимум из двух компонентов, разделённых точкой.<br />
<br />
При этом должно быть установлено правильное имя узла и домена для сервера:<br />
* HOSTNAME=dc.school.alt в {{path|/etc/sysconfig/network}}<br />
* # hostname dc.school.alt<br />
* # domainname school.alt<br />
<br />
{{Attention|При указании домена, имеющего суффикс '''.local''', потребуется на сервере и подключаемых компьютерах под управлением Linux <u>'''отключить''' службу {{cmd|avahi-daemon}}</u>.}}<br />
<br />
== Создание домена одной командой ==<br />
<br />
Создание контроллера домена ''school.alt'' с паролем администратора ''Pa$$word'':<br />
<br />
samba-tool domain provision --realm=school.alt --domain school --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc --use-rfc2307<br />
<br />
== Интерактивное создание домена ==<br />
<br />
В примере показано создание домена ''school.alt''.<br />
<br />
Запустите {{cmd|samba-tool domain provision}}:<br />
<source lang="text"># samba-tool domain provision<br />
Realm [SCHOOL.ALT]: <br />
Domain [SCHOOL]: <br />
Server Role (dc, member, standalone) [dc]: <br />
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: <br />
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: <br />
Administrator password: <br />
Retype password: <br />
Looking up IPv4 addresses<br />
More than one IPv4 address found. Using 192.168.1.1<br />
Looking up IPv6 addresses<br />
No IPv6 address will be assigned<br />
Setting up share.ldb<br />
Setting up secrets.ldb<br />
Setting up the registry<br />
Setting up the privileges database<br />
Setting up idmap db<br />
Setting up SAM db<br />
Setting up sam.ldb partitions and settings<br />
Setting up sam.ldb rootDSE<br />
Pre-loading the Samba 4 and AD schema<br />
Adding DomainDN: DC=school,DC=alt<br />
Adding configuration container<br />
Setting up sam.ldb schema<br />
Setting up sam.ldb configuration data<br />
Setting up display specifiers<br />
Modifying display specifiers<br />
Adding users container<br />
Modifying users container<br />
Adding computers container<br />
Modifying computers container<br />
Setting up sam.ldb data<br />
Setting up well known security principals<br />
Setting up sam.ldb users and groups<br />
Setting up self join<br />
Adding DNS accounts<br />
Creating CN=MicrosoftDNS,CN=System,DC=school,DC=alt<br />
Creating DomainDnsZones and ForestDnsZones partitions<br />
Populating DomainDnsZones and ForestDnsZones partitions<br />
Setting up sam.ldb rootDSE marking as synchronized<br />
Fixing provision GUIDs<br />
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf<br />
Once the above files are installed, your Samba4 server will be ready to use<br />
Server Role: active directory domain controller<br />
Hostname: c228<br />
NetBIOS Domain: SCHOOL<br />
DNS Domain: school.alt<br />
DOMAIN SID: S-1-5-21-80639820-2350372464-3293631772</source><br />
<br />
При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»).<br />
{{Note|Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов.}}<br />
<br />
Параметры ''--use-rfc2307 --use-xattrs=yes'' позволяют поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.<br />
<br />
= Запуск службы =<br />
<br />
Установите службу по умолчанию и запустите её:<br />
chkconfig samba on<br />
service samba start<br />
<br />
= Проверка работоспособности =<br />
<br />
1. Общая информация о домене:<br />
<source lang="text"># samba-tool domain info 127.0.0.1<br />
Forest : school.alt<br />
Domain : school.alt<br />
Netbios domain : SCHOOL<br />
DC name : c228.school.alt<br />
DC netbios name : C228<br />
Server site : Default-First-Site-Name<br />
Client site : Default-First-Site-Name</source><br />
<br />
2. Просмотр предоставляемых служб:<br />
<source lang="text"># smbclient -L localhost -Uadministrator<br />
Enter administrator's password: <br />
Domain=[SCHOOL] OS=[Unix] Server=[Samba 4.0.21]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
netlogon Disk <br />
sysvol Disk <br />
IPC$ IPC IPC Service (Samba 4.0.21)<br />
Domain=[SCHOOL] OS=[Unix] Server=[Samba 4.0.21]<br />
<br />
Server Comment<br />
--------- -------<br />
<br />
Workgroup Master<br />
--------- -------<br />
SCHOOL.ALT C228<br />
WORKGROUP HOST-15</source><br />
<br />
3. Проверка конфигурации DNS<br />
<br />
3.1 Убедитесь в наличии <tt>nameserver 127.0.0.1</tt> в {{path|/etc/resolv.conf}}:<br />
host school.alt<br />
3.2 Проверяем имена хостов:<br />
<source lang="text"># host -t SRV _kerberos._udp.school.alt.<br />
_kerberos._udp.school.alt has SRV record 0 100 88 c228.school.alt.<br />
# host -t SRV _ldap._tcp.school.alt.<br />
_ldap._tcp.school.alt has SRV record 0 100 389 c228.school.alt.<br />
# host -t A c228.school.alt.<br />
c228.school.alt has address 192.168.1.1</source><br />
<br />
Если имена не находятся, проверяйте выключение службы {{cmd|named}}.<br />
<br />
4. Проверка Kerberos:<br />
{{Attention|Имя домена должно быть в '''верхнем регистре''', иначе выдаст: <source lang="text">kinit: KDC reply did not match expectations while getting initial credentials</source>}}<br />
<source lang="text"># kinit administrator@SCHOOL.ALT<br />
Password for administrator@SCHOOL.ALT: <br />
Warning: Your password will expire in 41 days on Вт 11 ноя 2014 08:58:30</source><br />
<br />
Просмотр полученного билета:<br />
<source lang="text"># klist<br />
Ticket cache: FILE:/tmp/krb5cc_0<br />
Default principal: administrator@SCHOOL.ALT<br />
<br />
Valid starting Expires Service principal<br />
30.09.2014 10:23:54 30.09.2014 20:23:54 krbtgt/SCHOOL.ALT@SCHOOL.ALT<br />
renew until 01.10.2014 10:23:45</source><br />
<br />
{{Attention|Для серверов, не внесённых в зону обратного просмотра DNS, авторизация через nslcd по GSSAPI будет вылетать с диагностикой: <source lang="text">Local error: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database)</source>}}<br />
<br />
= Управление пользователями =<br />
<br />
Создать пользователя с паролем[https://wiki.samba.org/index.php/Adding_users_with_samba_tool], :<br />
samba-tool user create <имя пользователя><br />
samba-tool user setexpiry <имя пользователя><br />
<br />
Например, <br />
samba-tool user create ivanov --given-name='Иван Иванов' --mail-address='ivanov@stand.alt'<br />
<br />
Просмотреть доступных пользователей:<br />
samba-tool user list<br />
<br />
Не забудьте разблокировать пользователя:<br />
samba-tool user setexpiry <имя пользователя> --noexpiry<br />
<br />
{{Attention|Не допускайте одинаковых имён для пользователя и компьютера, это может привести к коллизиям (например, такого пользователя нельзя добавить в группу). [http://support2.microsoft.com/kb/310845]}}<br />
<br />
Если компьютер с таким именем заведён, удалить его можно командой:<br />
pdbedit -x -m <имя><br />
<br />
= Заведение вторичного DC =<br />
<br />
Подробная инструкция на английском языке: https://wiki.samba.org/index.php/Join_a_domain_as_a_DC<br />
<br />
Имя узла: ''dc2.school.alt (192.168.1.106)''. Предполагается, что пакет {{pkg|task-samba-dc}} уже установлен.<br />
<br />
1. Заводим IP-адрес для dc2 на PDC (с версии Samba 4.7 и выше - запись вносится автоматически):<br />
{{Attention|Указание аутентифицирующей информации (имени пользователя и пароля) '''обязательно'''!}}<br />
# samba-tool dns add 192.168.1.1 school.alt DC2 A 192.168.1.106 -Uadministrator<br />
<br />
2. На ''dc2.school.alt'' правим файл {{path|/etc/krb5.conf}}:<br />
[libdefaults]<br />
default_realm = SCHOOL.ALT<br />
dns_lookup_realm = true<br />
dns_lookup_kdc = true<br />
<br />
{{Note|В resolvconf обязательно должен быть добавлен PDC как {{term|nameserver}}.}}<br />
<br />
3. Получаем билет и убеждаемся, что билет получен:<br />
{{Attention|Имя домена должно быть указано '''в верхнем регистре'''}}<br />
<pre># kinit administrator@SCHOOL.ALT<br />
Password for administrator@SCHOOL.ALT: <br />
Warning: Your password will expire in 37 days on Пт 14 ноя 2014 14:31:40<br />
# klist<br />
Ticket cache: FILE:/tmp/krb5cc_0<br />
Default principal: administrator@SCHOOL.ALT<br />
<br />
Valid starting Expires Service principal<br />
07.10.2014 18:51:01 08.10.2014 04:51:01 krbtgt/SCHOOL.ALT@SCHOOL.ALT<br />
renew until 08.10.2014 18:50:51</pre><br />
<br />
4. Вводим в домен:<br />
# samba-tool domain join school.alt DC -Uadministrator --realm=school.alt<br />
<br />
Если всё нормально, в конце видим:<br />
Joined domain SCHOOL (SID S-1-5-21-80639820-2350372464-3293631772) as a DC<br />
<br />
5. Делаем службу {{cmd|samba}} запускаемой по умолчанию:<br />
# chkconfig samba on<br />
<br />
6. И запускаем службу, соответственно:<br />
# service samba start<br />
<br />
= Репликация =<br />
{{Attention|Помните, что без успешной двунаправленной репликации в течение 14 дней DC '''исключается''' из Active Directory}}<br />
{{Attention|Указание аутентифицирующей информации (имени пользователя и пароля) '''обязательно'''!}}<br />
1. Реплицируем '''на вторичном DC''' (с первичного):<br />
<br />
# samba-tool drs replicate dc2.school.alt c228.school.alt dc=school,dc=alt -Uadministrator<br />
<br />
(сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP).<br />
<br />
2. Реплицируем '''на вторичном DC''' (на первичный):<br />
<br />
# samba-tool drs replicate с228.school.alt dc2.school.alt dc=school,dc=alt -Uadministrator<br />
<br />
(сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP).<br />
<br />
{{Note|Имя домена в именах серверов можно опустить (если они одинаковые)}}<br />
<br />
3. Просмотр статуса репликации на PDC:<br />
# samba-tool drs showrepl<br />
<br />
{{Note|Если репликация на Windows не работает, добавьте в ''Active Directory Sites and Services'' новое соединение Active Directory. Реплицируйте на DC, подождите минут 5 и пробуйте реплицировать с Samba на Windows}}<br />
<br />
= Ссылки =<br />
* Рекомендуемые серверные установочные образы (после установки выполните [[обновление ОС]]):<br />
** [http://basealt.ru/products/alt-server/ Альт Сервер]<br />
** [http://basealt.ru/products/alt-spt/ Альт Линукс СПТ 7.0] (сертификат ФСТЭК)<br />
** стартеркиты: [http://nightly.altlinux.org/p8/permalink/alt-p8-server-latest-x86_64.iso x86_64], [http://nightly.altlinux.org/p8/permalink/alt-p8-server-latest-i586.iso i586] (GPL)<br />
** [http://basealt.ru/about/contacts существуют] сборки samba-DC для [[ports/e2k|порта на "Эльбрус"]]<br />
* Тестовые образы:<br />
** [http://nightly.altlinux.org/p7/beta/ altlinux-p7-server-samba4.iso] (старая стабильная ветка)<br />
** [http://nightly.altlinux.org/sisyphus/alpha/ regular-server-samba4.iso] (нестабильная ветка)<br />
* Документация на русском языке:<br />
** [http://smb-conf.ru/samba4-addc.html Инструкция по настройке Samba в качестве контроллера домена, совместимого с Active Directory]<br />
** [http://habr.com/ru/post/259029/ Samba4 — использование Python Scripting Interface]<br />
** [http://habr.com/ru/post/272777/ Возможности и ограничения Samba 4 как контроллера домена Active Directory]<br />
** [https://habr.com/ru/post/450572/ Samba DC в качестве второго контроллера в домене AD Windows 2012R2 и перемещаемые папки для клиентов на Windows и Linux]<br />
* wiki.samba.org: <br />
** [https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO Samba AD DC HOWTO]<br />
** [https://wiki.samba.org/index.php/Installing_RSAT_on_Windows_for_AD_Management Installing RSAT on Windows for AD Management]<br />
** [https://wiki.samba.org/index.php/Samba4/HOWTO/Join_a_domain_as_a_DC Добавление ещё одного DC в домен]<br />
** [https://wiki.samba.org/index.php/Samba_%26_Windows_Profiles Samba & Windows Profiles]<br />
** [https://wiki.samba.org/index.php/Join_an_additional_Samba_DC_to_an_existing_Active_Directory Join an additional Samba DC to an existing Active Directory]<br />
** [https://wiki.samba.org/index.php/Backup_and_restore_an_Samba_AD_DC Backup and restore an Samba AD DC]<br />
* Иные ресурсы:<br />
** [http://www.youtube.com/watch?v=8tYnjp_BleI Заведение групповых политик для домена (ролик)]<br />
** [http://wiki.skytech.dk/index.php/Samba_4_-_domain_controller#Join_domain_with_a_linux_machine Samba 4 - domain controller#Join domain with a linux machine]<br />
<br />
= Советы =<br />
* Введите в домен машину с Windows, установите на неё [https://wiki.samba.org/index.php/Installing_RSAT_on_Windows_for_AD_Management Remote Server Administration Tools] и управляйте доменом из графического интерфейса.<br />
* Для того, чтобы посмотреть конфигурацию LDAP контроллера домена, получите билет Kerberos (через {{cmd|kinit}}) и выполните:<br />
<source lang="Bash">ldapsearch -LLL -b '' -s base -x</source><br />
<!--* Для выполнения задач с помощью samba-tool, требующих прав администратора, указание его пароля в параметре {{term|-Uadministrator%пароль}} можно заменить на использование Kerberos (в этом случае -U указывать нельзя):<br />
<source lang="Bash">kinit Administrator<br />
samba-tool -k yes ...</source>--><br />
* Для отключения проверки необходимой длины и стойкости паролей выполните:<br />
samba-tool domain passwordsettings set --complexity=off<br />
samba-tool domain passwordsettings set --history-length=0<br />
samba-tool domain passwordsettings set --min-pwd-age=0<br />
samba-tool domain passwordsettings set --max-pwd-age=0<br />
* Для просмотра всех записей DNS домена выполните:<br />
samba-tool dns query localhost test.altlinux '@' ALL -U 'Administrator%Pa$$word'<br />
* Для удаления заведённого хоста выполните:<br />
samba-tool dns delete localhost test.altlinux host-51 A 192.168.3.51 -U 'Administrator%Pa$$word'<br />
<br />
= Troubleshooting =<br />
<br />
;Если домен не создаётся с ошибкой типа <code lang="text">ERROR(ldb): uncaught exception - operations error at ../source4/dsdb/samdb/ldb_modules/password_hash.c:2241</code><br />
:Удалите директиву {{cmd|include}} или {{cmd|includedir}} в {{path|/etc/krb5.conf}}[https://github.com/heimdal/heimdal/issues/89]<br />
<br />
[[Категория:HOWTO]]<br />
[[Категория:Active Directory]]<br />
{{Category navigation|title=Samba|category=Samba|sortkey={{SUBPAGENAME}}}}<br />
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=ActiveDirectory/DC&diff=46358ActiveDirectory/DC2019-10-18T07:45:17Z<p>Корнеечев Евгений: /* Заведение вторичного DC */</p>
<hr />
<div>[[Файл:Samba_logo.png|frameless|right]]<br />
Использование Samba 4 в роли контроллера домена [https://ru.wikipedia.org/wiki/Active_Directory Active Directory]. Такой способ позволяет вводить Windows 7/8 в домен [[Домен/Windows#.D0.92.D1.85.D0.BE.D0.B4_.D0.B2_ALT-.D0.B4.D0.BE.D0.BC.D0.B5.D0.BD_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC_.D0.BD.D0.B0_Windows_7.2F8|безо всяких манипуляций с реестром]].<br />
<br />
= Возможности =<br />
<br />
Поддерживаются базовые возможности [https://ru.wikipedia.org/wiki/Active_Directory Active Directory]:<br />
* Аутентификация рабочих станций Windows и Linux и служб;<br />
* Авторизация и предоставление ресурсов;<br />
* Групповые политики (GPO);<br />
* Перемещаемые профили (Roaming Profiles);<br />
* Поддержка инструментов Microsoft для управления серверами ([https://wiki.samba.org/index.php/Installing_RSAT_on_Windows_for_AD_Management Remote Server Administration Tools]) с компьютеров под управлением Windows (<span style="color:gray;">''под WINE не работает''</span>);<br />
* Поддержка протоколов SMB2 и SMB3 (в том числе с поддержкой шифрования);<br />
* Репликация с другими серверами (в том числе с Windows 2012).<br />
<br />
== Не поддерживается ==<br />
<br />
Не поддерживаются следующие возможности[https://lists.samba.org/archive/samba/2014-October/186126.html]:<br />
* Не реплицируется хранилище SYSVOL (можно использовать osync[https://wiki.samba.org/index.php/SysVol_Bidirectional_Replication][https://wiki.samba.org/index.php/Rsync_based_SysVol_replication_workaround]);<br />
* Доверительные отношения только в одном направлении (от Windows к Samba, но не наоборот[https://wiki.samba.org/index.php/FAQ#Trusts]) (что не позволяет реализовать лес доменов);<br />
* Не поддерживаются поддомены[https://lists.samba.org/archive/samba/2015-June/192441.html];<br />
** В Samba отсутствует глобальный каталог (GC) и полноценная поддержка фантомных объектов;<br />
** Проблемы при построении структуры AD (Active Directory browser), проблемы при поиске объектов в другом домене;<br />
** При применении групповых политик в многодоменной среде могут быть проблемы с определением, в каком домене находится компьютер;<br />
* [https://wiki.samba.org/index.php/DFS DFS] работает только в режиме одиночного сервера;<br />
* Не реализовано DFS-R;<br />
* Не полностью реализовано RODC;<br />
* Ограничения размера базы TDB в 4 ГБ. Это ограничение приводит к невозможности перехода от леса доменов к плоской структуре с одним доменом.[http://ldapcon.org/2015/wp-content/uploads/2015/09/ivanova-samba_backend.pdf]<br />
* ''Не закончено тестирование'' поддержки CTDB (хранение данных в кластерной инфраструктуре);<br />
* ''Не закончено тестирование'' работы Winbind.<br />
<br />
Смотрите также статью [http://habrahabr.ru/post/272777/ Возможности и ограничения Samba 4 как контроллера домена Active Directory] на http://habrahabr.ru/.<br />
<br />
{{Attention|Samba AD DC несовместима с OpenLDAP и MIT Kerberos, поэтому службы, использующие MIT Kerberos, несовместимы с ним.}}<br />
{{Attention|Samba AD DC функционирует на уровне контроллера доменов Windows 2008 R2. Вы можете ввести его в домен Windows 2012 как клиента, но не как контроллер домена.}}<br />
<br />
= Установка =<br />
1. Установите пакет {{pkg|task-samba-dc}} {{Since|4.3.1}}, который установит необходимое.<br />
<br />
{{Note|До версии 4.3.1 требовалось явно установить пакеты: {{pkg|samba-DC python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-client krb5-kinit}}}}<br />
<br />
<br />
2. Так как Samba в режиме контроллера домена (Doman Controller, DC) использует как свой LDAP, так и свой сервер Kerberos, несовместимый с MIT Kerberos, перед установкой <br />
остановите конфликтующие службы {{cmd|krb5kdc}} и {{cmd|slapd}}, а также {{cmd|bind}}:<br />
for service in smb nmb krb5kdc slapd bind; do chkconfig $service off; service $service stop; done<br />
<br />
= Создание нового домена =<br />
<br />
== Восстановление к начальному состоянию samba ==<br />
<br />
Очищаем базы и конфигурацию Samba (если уже создавался домен):<br />
rm -f /etc/samba/smb.conf<br />
rm -rf /var/lib/samba<br />
rm -rf /var/cache/samba<br />
mkdir -p /var/lib/samba/sysvol<br />
<br />
{{Attention|Обязательно удаляйте {{path|/etc/samba/smb.conf}} перед созданием домена: <source lang="bash">rm -f /etc/samba/smb.conf</source>}}<br />
<br />
== Выбор имени домена ==<br />
<br />
Имя домена для разворачиваемого DC должно состоять минимум из двух компонентов, разделённых точкой.<br />
<br />
При этом должно быть установлено правильное имя узла и домена для сервера:<br />
* HOSTNAME=dc.school.alt в {{path|/etc/sysconfig/network}}<br />
* # hostname dc.school.alt<br />
* # domainname school.alt<br />
<br />
{{Attention|При указании домена, имеющего суффикс '''.local''', потребуется на сервере и подключаемых компьютерах под управлением Linux <u>'''отключить''' службу {{cmd|avahi-daemon}}</u>.}}<br />
<br />
== Создание домена одной командой ==<br />
<br />
Создание контроллера домена ''school.alt'' с паролем администратора ''Pa$$word'':<br />
<br />
samba-tool domain provision --realm=school.alt --domain school --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc --use-rfc2307<br />
<br />
== Интерактивное создание домена ==<br />
<br />
В примере показано создание домена ''school.alt''.<br />
<br />
Запустите {{cmd|samba-tool domain provision}}:<br />
<source lang="text"># samba-tool domain provision<br />
Realm [SCHOOL.ALT]: <br />
Domain [SCHOOL]: <br />
Server Role (dc, member, standalone) [dc]: <br />
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: <br />
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: <br />
Administrator password: <br />
Retype password: <br />
Looking up IPv4 addresses<br />
More than one IPv4 address found. Using 192.168.1.1<br />
Looking up IPv6 addresses<br />
No IPv6 address will be assigned<br />
Setting up share.ldb<br />
Setting up secrets.ldb<br />
Setting up the registry<br />
Setting up the privileges database<br />
Setting up idmap db<br />
Setting up SAM db<br />
Setting up sam.ldb partitions and settings<br />
Setting up sam.ldb rootDSE<br />
Pre-loading the Samba 4 and AD schema<br />
Adding DomainDN: DC=school,DC=alt<br />
Adding configuration container<br />
Setting up sam.ldb schema<br />
Setting up sam.ldb configuration data<br />
Setting up display specifiers<br />
Modifying display specifiers<br />
Adding users container<br />
Modifying users container<br />
Adding computers container<br />
Modifying computers container<br />
Setting up sam.ldb data<br />
Setting up well known security principals<br />
Setting up sam.ldb users and groups<br />
Setting up self join<br />
Adding DNS accounts<br />
Creating CN=MicrosoftDNS,CN=System,DC=school,DC=alt<br />
Creating DomainDnsZones and ForestDnsZones partitions<br />
Populating DomainDnsZones and ForestDnsZones partitions<br />
Setting up sam.ldb rootDSE marking as synchronized<br />
Fixing provision GUIDs<br />
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf<br />
Once the above files are installed, your Samba4 server will be ready to use<br />
Server Role: active directory domain controller<br />
Hostname: c228<br />
NetBIOS Domain: SCHOOL<br />
DNS Domain: school.alt<br />
DOMAIN SID: S-1-5-21-80639820-2350372464-3293631772</source><br />
<br />
При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»).<br />
{{Note|Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов.}}<br />
<br />
Параметры ''--use-rfc2307 --use-xattrs=yes'' позволяют поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.<br />
<br />
= Запуск службы =<br />
<br />
Установите службу по умолчанию и запустите её:<br />
chkconfig samba on<br />
service samba start<br />
<br />
= Проверка работоспособности =<br />
<br />
1. Общая информация о домене:<br />
<source lang="text"># samba-tool domain info 127.0.0.1<br />
Forest : school.alt<br />
Domain : school.alt<br />
Netbios domain : SCHOOL<br />
DC name : c228.school.alt<br />
DC netbios name : C228<br />
Server site : Default-First-Site-Name<br />
Client site : Default-First-Site-Name</source><br />
<br />
2. Просмотр предоставляемых служб:<br />
<source lang="text"># smbclient -L localhost -Uadministrator<br />
Enter administrator's password: <br />
Domain=[SCHOOL] OS=[Unix] Server=[Samba 4.0.21]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
netlogon Disk <br />
sysvol Disk <br />
IPC$ IPC IPC Service (Samba 4.0.21)<br />
Domain=[SCHOOL] OS=[Unix] Server=[Samba 4.0.21]<br />
<br />
Server Comment<br />
--------- -------<br />
<br />
Workgroup Master<br />
--------- -------<br />
SCHOOL.ALT C228<br />
WORKGROUP HOST-15</source><br />
<br />
3. Проверка конфигурации DNS<br />
<br />
3.1 Убедитесь в наличии <tt>nameserver 127.0.0.1</tt> в {{path|/etc/resolv.conf}}:<br />
host school.alt<br />
3.2 Проверяем имена хостов:<br />
<source lang="text"># host -t SRV _kerberos._udp.school.alt.<br />
_kerberos._udp.school.alt has SRV record 0 100 88 c228.school.alt.<br />
# host -t SRV _ldap._tcp.school.alt.<br />
_ldap._tcp.school.alt has SRV record 0 100 389 c228.school.alt.<br />
# host -t A c228.school.alt.<br />
c228.school.alt has address 192.168.1.1</source><br />
<br />
Если имена не находятся, проверяйте выключение службы {{cmd|named}}.<br />
<br />
4. Проверка Kerberos:<br />
{{Attention|Имя домена должно быть в '''верхнем регистре''', иначе выдаст: <source lang="text">kinit: KDC reply did not match expectations while getting initial credentials</source>}}<br />
<source lang="text"># kinit administrator@SCHOOL.ALT<br />
Password for administrator@SCHOOL.ALT: <br />
Warning: Your password will expire in 41 days on Вт 11 ноя 2014 08:58:30</source><br />
<br />
Просмотр полученного билета:<br />
<source lang="text"># klist<br />
Ticket cache: FILE:/tmp/krb5cc_0<br />
Default principal: administrator@SCHOOL.ALT<br />
<br />
Valid starting Expires Service principal<br />
30.09.2014 10:23:54 30.09.2014 20:23:54 krbtgt/SCHOOL.ALT@SCHOOL.ALT<br />
renew until 01.10.2014 10:23:45</source><br />
<br />
{{Attention|Для серверов, не внесённых в зону обратного просмотра DNS, авторизация через nslcd по GSSAPI будет вылетать с диагностикой: <source lang="text">Local error: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database)</source>}}<br />
<br />
= Управление пользователями =<br />
<br />
Создать пользователя с паролем[https://wiki.samba.org/index.php/Adding_users_with_samba_tool], :<br />
samba-tool user create <имя пользователя><br />
samba-tool user setexpiry <имя пользователя><br />
<br />
Например, <br />
samba-tool user create ivanov --given-name='Иван Иванов' --mail-address='ivanov@stand.alt'<br />
<br />
Просмотреть доступных пользователей:<br />
samba-tool user list<br />
<br />
Не забудьте разблокировать пользователя:<br />
samba-tool user setexpiry <имя пользователя> --noexpiry<br />
<br />
{{Attention|Не допускайте одинаковых имён для пользователя и компьютера, это может привести к коллизиям (например, такого пользователя нельзя добавить в группу). [http://support2.microsoft.com/kb/310845]}}<br />
<br />
Если компьютер с таким именем заведён, удалить его можно командой:<br />
pdbedit -x -m <имя><br />
<br />
= Заведение вторичного DC =<br />
<br />
Подробная инструкция на английском языке: https://wiki.samba.org/index.php/Join_a_domain_as_a_DC<br />
<br />
Имя узла: ''dc2.school.alt (192.168.1.106)''<br />
<br />
1. На PDC не забываем выключить службу bind и, если она была включена, перезапустить службу samba. Заводим адрес IP для dc2:<br />
{{Attention|Указание аутентифицирующей информации (имени пользователя и пароля) '''обязательно'''!}}<br />
# samba-tool dns add 192.168.1.1 school.alt DC2 A 192.168.1.106 -Uadministrator<br />
<br />
2. На ''dc2.school.alt'' правим файл {{path|/etc/krb5.conf}}:<br />
[libdefaults]<br />
default_realm = SCHOOL.ALT<br />
dns_lookup_realm = true<br />
dns_lookup_kdc = true<br />
<br />
{{Note|В resolvconf обязательно должен быть добавлен PDC как {{term|nameserver}}.}}<br />
<br />
3. Получаем билет и убеждаемся, что билет получен:<br />
{{Attention|Имя домена должно быть указано '''в верхнем регистре'''}}<br />
<pre># kinit administrator@SCHOOL.ALT<br />
Password for administrator@SCHOOL.ALT: <br />
Warning: Your password will expire in 37 days on Пт 14 ноя 2014 14:31:40<br />
# klist<br />
Ticket cache: FILE:/tmp/krb5cc_0<br />
Default principal: administrator@SCHOOL.ALT<br />
<br />
Valid starting Expires Service principal<br />
07.10.2014 18:51:01 08.10.2014 04:51:01 krbtgt/SCHOOL.ALT@SCHOOL.ALT<br />
renew until 08.10.2014 18:50:51</pre><br />
<br />
4. Вводим в домен:<br />
# samba-tool domain join school.alt DC -Uadministrator --realm=school.alt<br />
<br />
Если всё нормально, в конце видим:<br />
Joined domain SCHOOL (SID S-1-5-21-80639820-2350372464-3293631772) as a DC<br />
<br />
5. Делаем службу {{cmd|samba}} запускаемой по умолчанию:<br />
# chkconfig samba on<br />
<br />
6. И запускаем службу, соответственно:<br />
# service samba start<br />
<br />
= Репликация =<br />
{{Attention|Помните, что без успешной двунаправленной репликации в течение 14 дней DC '''исключается''' из Active Directory}}<br />
{{Attention|Указание аутентифицирующей информации (имени пользователя и пароля) '''обязательно'''!}}<br />
1. Реплицируем '''на вторичном DC''' (с первичного):<br />
<br />
# samba-tool drs replicate dc2.school.alt c228.school.alt dc=school,dc=alt -Uadministrator<br />
<br />
(сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP).<br />
<br />
2. Реплицируем '''на вторичном DC''' (на первичный):<br />
<br />
# samba-tool drs replicate с228.school.alt dc2.school.alt dc=school,dc=alt -Uadministrator<br />
<br />
(сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP).<br />
<br />
{{Note|Имя домена в именах серверов можно опустить (если они одинаковые)}}<br />
<br />
3. Просмотр статуса репликации на PDC:<br />
# samba-tool drs showrepl<br />
<br />
{{Note|Если репликация на Windows не работает, добавьте в ''Active Directory Sites and Services'' новое соединение Active Directory. Реплицируйте на DC, подождите минут 5 и пробуйте реплицировать с Samba на Windows}}<br />
<br />
= Ссылки =<br />
* Рекомендуемые серверные установочные образы (после установки выполните [[обновление ОС]]):<br />
** [http://basealt.ru/products/alt-server/ Альт Сервер]<br />
** [http://basealt.ru/products/alt-spt/ Альт Линукс СПТ 7.0] (сертификат ФСТЭК)<br />
** стартеркиты: [http://nightly.altlinux.org/p8/permalink/alt-p8-server-latest-x86_64.iso x86_64], [http://nightly.altlinux.org/p8/permalink/alt-p8-server-latest-i586.iso i586] (GPL)<br />
** [http://basealt.ru/about/contacts существуют] сборки samba-DC для [[ports/e2k|порта на "Эльбрус"]]<br />
* Тестовые образы:<br />
** [http://nightly.altlinux.org/p7/beta/ altlinux-p7-server-samba4.iso] (старая стабильная ветка)<br />
** [http://nightly.altlinux.org/sisyphus/alpha/ regular-server-samba4.iso] (нестабильная ветка)<br />
* Документация на русском языке:<br />
** [http://smb-conf.ru/samba4-addc.html Инструкция по настройке Samba в качестве контроллера домена, совместимого с Active Directory]<br />
** [http://habr.com/ru/post/259029/ Samba4 — использование Python Scripting Interface]<br />
** [http://habr.com/ru/post/272777/ Возможности и ограничения Samba 4 как контроллера домена Active Directory]<br />
** [https://habr.com/ru/post/450572/ Samba DC в качестве второго контроллера в домене AD Windows 2012R2 и перемещаемые папки для клиентов на Windows и Linux]<br />
* wiki.samba.org: <br />
** [https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO Samba AD DC HOWTO]<br />
** [https://wiki.samba.org/index.php/Installing_RSAT_on_Windows_for_AD_Management Installing RSAT on Windows for AD Management]<br />
** [https://wiki.samba.org/index.php/Samba4/HOWTO/Join_a_domain_as_a_DC Добавление ещё одного DC в домен]<br />
** [https://wiki.samba.org/index.php/Samba_%26_Windows_Profiles Samba & Windows Profiles]<br />
** [https://wiki.samba.org/index.php/Join_an_additional_Samba_DC_to_an_existing_Active_Directory Join an additional Samba DC to an existing Active Directory]<br />
** [https://wiki.samba.org/index.php/Backup_and_restore_an_Samba_AD_DC Backup and restore an Samba AD DC]<br />
* Иные ресурсы:<br />
** [http://www.youtube.com/watch?v=8tYnjp_BleI Заведение групповых политик для домена (ролик)]<br />
** [http://wiki.skytech.dk/index.php/Samba_4_-_domain_controller#Join_domain_with_a_linux_machine Samba 4 - domain controller#Join domain with a linux machine]<br />
<br />
= Советы =<br />
* Введите в домен машину с Windows, установите на неё [https://wiki.samba.org/index.php/Installing_RSAT_on_Windows_for_AD_Management Remote Server Administration Tools] и управляйте доменом из графического интерфейса.<br />
* Для того, чтобы посмотреть конфигурацию LDAP контроллера домена, получите билет Kerberos (через {{cmd|kinit}}) и выполните:<br />
<source lang="Bash">ldapsearch -LLL -b '' -s base -x</source><br />
<!--* Для выполнения задач с помощью samba-tool, требующих прав администратора, указание его пароля в параметре {{term|-Uadministrator%пароль}} можно заменить на использование Kerberos (в этом случае -U указывать нельзя):<br />
<source lang="Bash">kinit Administrator<br />
samba-tool -k yes ...</source>--><br />
* Для отключения проверки необходимой длины и стойкости паролей выполните:<br />
samba-tool domain passwordsettings set --complexity=off<br />
samba-tool domain passwordsettings set --history-length=0<br />
samba-tool domain passwordsettings set --min-pwd-age=0<br />
samba-tool domain passwordsettings set --max-pwd-age=0<br />
* Для просмотра всех записей DNS домена выполните:<br />
samba-tool dns query localhost test.altlinux '@' ALL -U 'Administrator%Pa$$word'<br />
* Для удаления заведённого хоста выполните:<br />
samba-tool dns delete localhost test.altlinux host-51 A 192.168.3.51 -U 'Administrator%Pa$$word'<br />
<br />
= Troubleshooting =<br />
<br />
;Если домен не создаётся с ошибкой типа <code lang="text">ERROR(ldb): uncaught exception - operations error at ../source4/dsdb/samdb/ldb_modules/password_hash.c:2241</code><br />
:Удалите директиву {{cmd|include}} или {{cmd|includedir}} в {{path|/etc/krb5.conf}}[https://github.com/heimdal/heimdal/issues/89]<br />
<br />
[[Категория:HOWTO]]<br />
[[Категория:Active Directory]]<br />
{{Category navigation|title=Samba|category=Samba|sortkey={{SUBPAGENAME}}}}<br />
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=VirtualBox_(%D1%83%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%BB%D0%BE)&diff=46258VirtualBox (устарело)2019-10-04T14:15:32Z<p>Корнеечев Евгений: crap</p>
<hr />
<div>{{crap}}<br />
{{w|VirtualBox}}<br />
[http://virtualbox.org VirtualBox] — программный продукт виртуализации для операционных систем Microsoft Windows, DOS, GNU/Linux, Mac OS X и SUN Solaris/OpenSolaris. Программа была создана компанией Innotek с использованием исходного кода Qemu. Первая публично доступная версия VirtualBox появилась 15 января 2007 года. Существует две версии — свободная (OSE, англ. Open Source Edition), выпущенная под GNU GPL, и проприетарная (PUEL), различающиеся по функциональности; полнофункциональная проприетарная версия для личного использования распространяется бесплатно.<br />
В феврале 2008 Innotek был приобретён компанией Sun Microsystems, модель распространения VirtualBox при этом не изменилась.<br />
<br />
Пакеты свободной версии VirtualBox есть в составе дистрибутивов ALT Linux, начиная с Desktop 4.1. При установке системы можно выбрать группу "Виртуализация" для установки Virtualbox по умолчанию.<br />
<br />
{{Attention|С версии VirtualBox 5.1.2 не используйте профили ALT Linux при создании виртуальных машин. Из списка их убрать сложно, поэтому просто не используйте. Импорт таких машин по-прежнему возможен.}}<br />
<br />
== Установка свободной версии VirtualBox из пакетов ==<br />
[[VirtualBox/Quick]]<br />
<br />
;Чтобы воспользоваться Virtualbox, необходимо установить следующий набор пакетов:<br />
''(при помощи apt-get install без указания "-версия программы", только по названию пакета)''<br />
<br />
* virtualbox-версия программы<br />
* virtualbox-common-версия программы<br />
* virtualbox-doc-версия программы<br />
* kernel-modules-virtualbox-std-def-версия-программы-"номер_сборки_ядра" (нужен для хостовой ОС)<br />
* kernel-modules-virtualbox-addition-std-def-версия-программы-"номер_сборки_ядра" (не нужен для хостовой ОС)<br />
* virtualbox-guest-additions-версия программы (не нужен для хостовой ОС)<br />
<br />
;Пример:<br />
Пусть у вас стоит:<br />
* virtualbox-4.3.22-alt0.M70P.1<br />
и ядро<br />
* kernel-image-std-def-3.14.35-alt1 <br />
<br />
;Cмотрим модули virtualbox:<br />
<br />
* kernel-modules-virtualbox-addition-std-def-4.3.22-alt1.200227.1 (можно удалить - вы не внутри Virtualbox)<br />
* kernel-modules-virtualbox-std-def-4.3.22-alt1.200227.1 (актуальное ядро, от актуальной версии VirtualBox)<br />
* kernel-modules-virtualbox-std-def-4.3.22-alt1.200225.1 (для старой версии ядра)<br />
* kernel-modules-virtualbox-std-def-4.3.14-alt1.200225.1 (от старого Virtualbox и старого ядра)<br />
* virtualbox-common-4.3.22-alt0.M70P.1 - Ок<br />
* virtualbox-doc-4.3.22-alt0.M70P.1 - Ок<br />
* virtualbox-guest-additions-4.3.22-alt0.M70P.1 - (не нужный пакет, если вы не внутри VirtualBox)/<br />
<br />
При этом, они должны быть одной версии (4.3.22-alt0.M70P.1 в данном случае) а модули ядра, от текущего ядра.<br />
Кроме того, модуль ядра должен соответствовать сборочной ветки ядра (std-def в данном случае).<br />
Чтобы это обеспечить, ядро и пакеты необходимо устанавливать из одного и того же репозитория. <br />
<br />
Если VirtualBox был недавно обновлён в репозитарии, а ядро Вы давно не обновляли, вероятно, что VB не будет работать с Вашим старым ядром. Вам придётся обновить ядро и/или модули. Это всё можно сделать утилитой {{prg|update-kernel}}.<br />
update-kernel<br />
{{note|подробнее смотри [[Обновление модулей ядра]]}}<br />
<br />
;Узнать версию загруженного ядра можно так:<br />
<source lang=text><br />
$ uname -r <br />
3.14.35-std-def-alt1<br />
</source><br />
<br />
;Если у вас в виртуальной машине (гостевая система) тоже ALT Linux, то можно установить в ней "дополнения гостевой системы":<br />
<br />
kernel-modules-virtualbox-addition-std-def-версия программы-"номер_сборки_ядра" <br />
virtualbox-guest-additions-версия программы-"номер_сборки_ядра" <br />
<br />
Virtualbox использует для работы устройство:<br />
<br />
$ ls -l /dev/vboxdrv<br />
crw-rw---- 1 root vboxusers 10, 58 Май 5 08:46 /dev/vboxdrv<br />
<br />
Если такого файла нет -- следует проверить наличие соответствующего загруженному ядру (тип и версия) пакета {{pkg|kernel-modules-virtualbox-*}} и<br />
<pre><br />
chkconfig virtualbox on<br />
service virtualbox start<br />
</pre><br />
;Проверяем список установленных пакетов:<br />
<br />
<source lang=text><br />
$ rpm -qa | grep virtual-*<br />
kernel-modules-virtualbox-addition-std-def-4.3.22-alt1.200227.1<br />
virtualbox-doc-4.3.22-alt0.M70P.1<br />
kernel-modules-virtualbox-4.3.22-alt1.200227.1 (не нужен в гостевой машине, можно удалить)<br />
virtualbox-4.3.22-alt0.M70P.1 - (можно смело удалять, если вы не хотитке устраивать "матрёшки").<br />
virtualbox-guest-additions-4.3.22-alt0.M70P.1<br />
virtualbox-common-4.3.22-alt0.M70P.1<br />
</source><br />
<br />
;Включаем своего пользователя в группу vboxusers или vboxadd (для коммерческой сборки)<br />
<br />
<source lang=text><br />
gpasswd -a user vboxusers<br />
</source><br />
или<br />
<source lang=text><br />
gpasswd -a user vboxadd <br />
</source><br />
<br />
;Для работы с usb устройствами необходимо настроить fstab:<br />
{{note|в p7 и старше не надо}}<br />
1. В конец /etc/fstab добавляем<br />
none /proc/bus/usb/ usbfs devgid=500,devmode=666 0 0 где devgid=идентификатор пользователя<br />
<br />
2. Перезагружаем систему<br />
<br />
;Для работы usb в режиме usb2 и usb3 надо скачать с сайта [https://www.virtualbox.org/wiki/Downloads Страница загрузки VirtualBox] и установить "Oracle VM VirtualBox Extension Pack", версия которого должна соответствовать версии Virtualbox. Также его можно скачать и установить, воспользовавшись пунктом меню "Файл->Проверить обновления..."<br />
<br />
;После чего, можно запускать Virtualbox, например, в KDE из меню: K- Система — Виртуализатор Virtualbox.<br />
<br />
== Настройка сети в гостевой системе Virtualbox ==<br />
<br />
;Чтобы гостевая система получила доступ к подсети, в которой находится хост-система, можно поступить следующим образом:<br />
<br />
Настроить в хост-системе туннель и бридж, как описано в пунктах [[Etcnet#Настройка tun/tap интерфейса|3.7]] и<br />
[[Etcnet#Как настроить Ethernet-мост|3.6]] статьи Etcnet — соответственно, сначала необходимо запустить интерфейс туннеля tap0 а затем объединить его в мост с интерфейсом вашей физической сетевой карты (например, eth0).<br />
После того, как вы убедитесь, что сеть на хост-системе после этой настройки работает как и раньше, вы можете использовать туннель в Virtualbox:<br />
зайдите в свойства виртуальной машины, раздел "сеть" и выберите "Подсоединён к" — "Хост-интерфейс", а ниже, в поле "Хост-интерфейсы" выберите tap0.<br />
После этого, при загрузке, гостевая система получит доступ к той же подсети, что и хост-система, и будет выступать равноправным компьютером в сети со своим IP адресом. IP адрес и другие настройки интерфейсу следует назначать средствами гостевой системы.<br />
<br/><br/><br />
<br />
== Настройка загрузки Linux в гостевых машинах в режиме UEFI ==<br />
Основная статья [[UEFI]]<br />
<br />
Следует отметить, что NVRAM на виртуальном железе VirtualBox не переживает выключение экземпляра (это известная проблема). Т.е. установщик/efibootmgr не может добавить ссылку на grub, а если добавить её руками, она исчезнет при следующем запуске экземпляра.<br />
<br />
Решение:<br />
<br />
'''1-ый вариант''' выполнить в ещё загруженной системе<br />
<br />
echo "fs0:\EFI\altlinux\grubx64.efi" > /boot/efi/startup.nsh<br />
<br />
Или то же самое сделать потом, из EFI Shell:<br />
<br />
echo "fs0:\EFI\altlinux\grubx64.efi" > fs0:\startup.nsh<br />
<br />
'''2-ой вариант''' (подсмотрено в | VirtualBox (Русский) на wiki.archlinux.org<br />
<br />
после установки системы:<br />
<br />
* Если существует файл /boot/efi/boot/BOOTX64.EFI дать ему другое имя<br />
* Скопировать /EFI/altlinux/grubx64.efi в /boot/efi/boot/BOOTX64.EFI<br />
<br />
== Решение проблем ==<br />
<br />
;При запуске дистрибутивов на Седьмой платформе как гостевых ОС в VirtualBox после загрузки ядра показывается чёрный экран, в журнале пишется <pre>Guest Log: BIOS: KBD: unsupported int 16h function 03</pre><br />
:Для современных ядер, на которых основаны дистрибутивы Седьмой платформы, нужно указывать в настройках виртуальной машины Система {{==)}} Материнская плата {{==)}} Чипсет: '''ICH9''' (заодно там же включите '''IO APIC'''). По умолчанию в альтовом VirtualBox стоит PIIX3, что и является причиной указанного поведения.<br />
<br />
;При запуске гостевой ОС на Седьмой платформе VirtualBox показывает сообщение о не достаточных правах доступа для /dev/vboxdrv и просит запустить "/etc/init.d/vboxdrv setup" которого нет <br />
* Необходимо выполнить:<br />
<pre><br />
chkconfig virtualbox on<br />
service virtualbox start<br />
</pre><br />
<br />
;В гостевой ОС после выбора подсказки Установка или LiveCD чёрный экран и ничего не происходит. <br />
* Выберите PIIX3, и при запуске установки (или загрузки с LiveCD) выберите клавишеей F5 загрузка "Без локального APIC" <br />
[[Файл:VirtualBox1.jpg|миниатюра]]<br />
<br />
;В гостевой системе не работает звук<br />
:Откройте регулятор громкости PulseAudio ({{prg|pavucontrol}}) и на вкладке «Проигрывание» включите звук для виртуальной машины.<br />
{{note|VirtualBox через PulseAudio позволяет настраивать вывод звука для каждой виртуальной машины. При этом включение для первой машины включает звук и для других запускаемых виртуальных машин}}<br />
<br />
;Плохо работает микрофон в гостевой системе (заикается)<br />
:Всё дело в PulseAudio. Для того, чтобы микрофон работал без заиканий, для виртуальной машины выставьте ALSA: Аудио {{==)}} Аудиодрайвер: ALSA и выключите на время работы PulseAudio: в терминале<br />
<pre>pulseaudio -k</pre><br />
<br />
;Если служба {{cmd|virtualbox}} запускается, но модули не загружаются, отключите автозапуск службы {{cmd|virtualbox}} и создайте файл {{path|/etc/modules-load.d/virtualbox.conf}} такого содержания:<br />
vboxdrv<br />
vboxpci<br />
vboxnetflt<br />
vboxnetadp<br />
<br />
;Происходит зависание гостевой ОС на словах <tt>Local IPI:</tt><br />
:Это {{altbug|29344}}, исправлено в {{pkg|virtualbox-4.2.16-alt2}} (но вовсе не факт, что в других дистрибутивах порядок).<br />
<br />
== Установка Oracle Extension Pack ==<br />
<br />
;Установленная версия VirtualBox OSE позволяет использовать только USB 1.0, однако иногда необходимо использовать USB 2.0. Для корректной работы USB 2.0 в VirtualBox (на момент написания актуальной версией в репозитарии Sisyphus является VirtualBox 4.0.12) требуется Oracle VM VirtualBox Extension Pack. Его можно скачать с сайта Oracle [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html#extpack]. Установку дополнения можно запустить из графического интерфейса или из командной строки:<br />
<br />
# VirtualBox extpack install /path/to/Oracle_VM_VirtualBox_Extension_Pack-...vbox-extpack<br />
<br />
Для установки дополнения необходимо запустить VirtualBox с правами администратора, иначе установка не удастся с ошибкой:<br />
<br />
The installer failed with exit code 127: Error creating textual authentication agent:<br />
Error opening current controlling terminal for the process (`/dev/tty'): No such device or address.<br />
<br />
{{note|новые версии Virtualbox умеют устанавливать это расширение от обычного пользователя}}<br />
<br />
Если в системе установлена программа gksu или kdesudo, то VirtualBox попытается с их помощью поднять уровень привилегий для выполнения установки<br />
<br />
На данный момент Oracle VM VirtualBox Extension Pack является единственным дополнением. Оно обеспечивает следующую функциональность:<br />
<br />
* USB 2.0 EHCI<br />
* VirtualBox Remote Desktop Protocol, VRDP<br />
* Intel PXE boot ROM с поддержкой контроллера E1000<br />
* экспериментальная поддержка «проброса» PCI с хост-системы<br />
<br />
{{Важно|Если установлен и используется плагин Oracle Extension Pack , то обязательно обновить его до последней версии (скачать с virtualbox.org), иначе виртуальная машина начинает грузится и «схлопывается».[http://lists.altlinux.org/pipermail/community/2015-February/683600.html]}}<br />
<br />
== Установка проприетарной сборки VirtualBox ==<br />
<br />
Также можно использовать закрытую бинарную сборку с сайта разработчиков программы. <br />
{{note|посмотрите обсуждение этой статьи, почему не надо так делать}}<br />
<br />
=== Что потребуется для установки? ===<br />
* Во-первых, очевидно, потребуется файл с инсталлятором VirtualBox с официального сайта. На данный момент страница со ссылками на нужный файл находится по адресу: [http://www.virtualbox.org/wiki/Linux_Downloads www.virtualbox.org/wiki/Linux_Downloads]. Дистрибутивы {{path|All distributions i386}} или {{path|All distributions AMD64}} для 32-х или 64-х битной системы, соответственно.<br />
<br />
* Во-вторых, вам потребуется компилятор. Например, на момент написания этой статьи, нужен пакет {{pkg|gcc4.1}}, а также программа {{prg|make}}. Кроме того, вам потребуется пакет {{pkg|kernel-headers-modules}} для ''вашего'' ядра.<br />
<br />
=== Об установке заголовков для сборки модулей ядра ===<br />
;Для сборки модулей ядра, которые нужны для VirtualBox (или VM Ware), в системе должен быть установлен пакет {{pkg|kernel-headers-modules}} той же версии, что и используемое ядро.<br />
<br />
Посмотрите, какая версия ядра установлена у вас в системе. Например:<br />
<source lang=text><br />
[alexei@threebears ~]$ uname -r<br />
2.6.27-std-ll-alt7<br />
</source><br />
Как видно, в системе установлено ядро '''2.6.27-std-ll-alt7'''. То есть, для сборки модулей под него нужно установить пакет {{pkg|kernle-headers-modules-std-ll}} версии '''2.6.27-alt7'''.<br />
<br />
;Проверить, установлен ли у вас такой пакет, можно так:<br />
<br />
<source lang=text><br />
[alexei@threebears ~]$ rpm -qa | grep headers-modules<br />
kernel-headers-modules-std-ll-2.6.27-alt7<br />
kernel-headers-modules-std-def-2.6.27-alt7<br />
</source><br />
Как видно, в данной системе он установлен.<br />
<br />
;Если в вашей системе этого пакета нет, установите его командой: <br />
<br />
<source lang=text><br />
apt-get install kernel-headers-modules-std-ll<br />
</source><br />
<br />
{{note|Советую запретить apt-у автоматом обновлять пакеты kernel-headers-* ("захолдить") эти пакеты}}<br />
<br />
=== К вопросу о несогласованности версий ===<br />
;Если вы ставите пакеты с диска с дистрибутивом, то версии ядер и заголовков совпадают (если только в дистрибутив не вкралась досадная ошибка). Однако, если вы делали точечные обновления системы, или обновляетесь с нестабильных репозиториев, то версии ядра и заголовков могут не совпадать.<br />
<br />
;Проверьте версии. Если они не совпадают, то обновите свою систему, обновите индексы apt (через apt-get update или "получить сведения" в Синаптике) или установите то ядро, для которого есть заголовки.<br />
<br />
=== Установка === <br />
<br />
Общий план действий:<br />
* скачайте дистрибутив в любое удобное место, например в /tmp <br />
* сделайте файл исполняемым<br />
* переключитесь в рута, и выполните файл<br />
** в процессе установки выберите какой-либо каталог, отличный от /usr, например /opt<br />
* запускайте VirtualBox от пользователя и работайте<br />
<br />
Вот пример:<br />
<source lang=text><br />
[alexei@threebears ~]$ cd /tmp<br />
[alexei@threebears tmp]$ wget http://download.virtualbox.org/virtualbox/2.1.0/VirtualBox-2.1.0-41146-Linux_x86.run<br />
.......<skip>.........<br />
100%[======================================>] 41 050 695 1,54M/s в 23s <br />
2008-12-27 16:15:16 (1,71 MB/s) - `VirtualBox-2.1.0-41146-Linux_x86.run?e=1230383984&h=ff5f79c0533f3b71dd384e4c47e696c9' сохранён [41050695/41050695]<br />
[alexei@threebears tmp]$ mv ./VirtualBox-2.1.0-41146-Linux_x86.run\?e\=1230383984\&h\=ff5f79c0533f3b71dd384e4c47e696c9 ./VirtualBox-2.1.0-41146-Linux_x86.run <br />
[alexei@threebears tmp]$ chmod a+x ./VirtualBox-2.1.0-41146-Linux_x86.run <br />
[alexei@threebears tmp]$ ll ./VirtualBox-2.1.0-41146-Linux_x86.run <br />
-rwxr-xr-x 1 alexei user 41050695 Дек 27 16:17 ./VirtualBox-2.1.0-41146-Linux_x86.run<br />
[alexei@threebears tmp]$ su -<br />
Password: <br />
[root@threebears ~]# cd /tmp/<br />
[root@threebears tmp]# ./VirtualBox-2.1.0-41146-Linux_x86.run <br />
Verifying archive integrity... All good.<br />
Uncompressing VirtualBox for Linux installation.........<br />
VirtualBox Version 2.1.0 (2008-12-17T10:57:49Z) installer<br />
Removing previous installation of VirtualBox 2.1.0 from /opt/VirtualBox-2.1.0<br />
Installing VirtualBox to /opt/VirtualBox-2.1.0<br />
Building the VirtualBox kernel module<br />
Building the VirtualBox netflt kernel module<br />
VirtualBox has been installed successfully.<br />
You will find useful information about using VirtualBox in the user manual<br />
/opt/VirtualBox-2.1.0/UserManual.pdf<br />
and in the user FAQ<br />
http://www.virtualbox.org/wiki/User_FAQ<br />
We hope that you enjoy using VirtualBox.<br />
</source><br />
<br />
Всё, программа установлена. Теперь от пользователя можно вызывать команду VirtualBox.<br />
<br />
Второй вариант установки — с бывшей страницы Virtualbox, созданной пользователем Becase:<br />
<br />
Прекрасно работает VirtualBox_*_Linux_x86.run<br />
<br />
;Необходимо обязательно иметь и в хост и в гостевой системе такие пакеты (версии не важны, важно, чтобы они были '''одинаковы''' и для вашего рабочего ядра):<br />
* kernel-headers-common<br />
* kernel-headers-std-smp<br />
* kernel-headers-modules-std-smp<br />
<br />
;Установка аддона — отдельная песня, но весьма несложная.<br />
<br />
;Аддон необходимо распаковать рутом, например, так:<br />
<pre><br />
./VBoxLinuxAdditions.run --noexec --keep --target /root/VBoxInstall<br />
</pre><br />
<br />
В install.sh необходимо добавить в проверку версии xorg.<br />
Найдите строчки<br />
<pre><br />
7.1.* | 7.2.* )<br />
install -o 0 -g 0 -m 0644 vboxvideo_drv_71.so<br />
$modules_dir/drivers/vboxvideo_drv.so<br />
install -o 0 -g 0 -m 0644 vboxmouse_drv_71.so<br />
$modules_dir/input/vboxmouse_drv.so<br />
</pre><br />
И замените первую на<br />
<pre><br />
7.1.* | 7.2.* | 7.3.* )<br />
install -o 0 -g 0 -m 0644 vboxvideo_drv_71.so<br />
$modules_dir/drivers/vboxvideo_drv.so<br />
install -o 0 -g 0 -m 0644 vboxmouse_drv_71.so<br />
$modules_dir/input/vboxmouse_drv.so<br />
</pre><br />
А ещё, чуть выше, в строку<br />
<pre><br />
for dir in /usr/lib/xorg/modules /usr/X11R6/lib/modules; do<br />
</pre><br />
добавьте «наш» каталог для модулей<br />
<pre><br />
for dir in '''/usr/lib/X11/modules''' /usr/lib/xorg/modules /usr/X11R6/lib/modules; do<br />
</pre><br />
<br />
После чего, можно просто запускать install.sh (от рута) и перегружать гостевую ОС… всё работает :)<br />
<br />
=== Что делать после обновления ядра, если у вас установлена закрытая версия версия VirtualBox ===<br />
Если вы установили VirtualBox, а затем обновили ядро, то при следующем запуске VirtualBox вы получите такое сообщение:<br />
<br />
<pre><br />
[alexei@threebears ~]$ VirtualBox <br />
WARNING: The vboxdrv kernel module is not loaded. Either there is no module<br />
available for the current kernel (2.6.27-std-ll-alt7) or it failed to<br />
load. Please recompile the kernel module and install it by<br />
sudo /etc/init.d/vboxdrv setup<br />
You will not be able to start VMs until this problem is fixed.<br />
</pre><br />
<br />
Это означает, что для нового ядра не собран нужный модуль, и программа подсказывает вам, как поступить:<br />
<pre><br />
[alexei@threebears ~]$ su -<br />
Password: <br />
[root@threebears ~]# service vboxdrv setup<br />
Stopping VirtualBox kernel module [ DONE ]<br />
Removing old VirtualBox netflt kernel module [ DONE ]<br />
Removing old VirtualBox kernel module [ DONE ]<br />
Recompiling VirtualBox kernel module [ DONE ]<br />
Starting VirtualBox kernel module [ DONE ]<br />
</pre><br />
<br />
== Установка «Дополнений гостевой ОС» для гостевого ALT Linux ==<br />
<br />
;1. Установите модуль ядра {{pkg|kernel-modules-virtualbox-addition-<тип ядра>}} и вспомогательные пакеты для интеграции:<br />
<source lang="Bash">apt-get install kernel-modules-virtualbox-addition-$(uname -r|cut -f2,3 -d-) virtualbox-guest-additions xorg-drv-vboxvideo</source><br />
<br />
<br />
{{Важно|Перед любыми операциями с установкой модуля ядра, надо обновить ядро с помощью команд: <source lang="Bash"><br />
apt-get update<br />
update-kernel<br />
</source> <br />
И ни в коем случае не устанавливать модуль от другой ядерной сборки подробнее смотри: [[Обновление_ядра]]}}<br />
<!---<br />
{{Note|Если модуль ядра из репозитория слишком новый и потянул новое ядро, рекомендуется обновить ядро целиком со всеми модулями командой <source lang="Bash">update-kernel</source>}}<br />
---><br />
;2. Выберите в Центре управления системой {{==)}} Дисплей драйвер {{cmd|vboxvideo}}.<br />
{{Note|Драйвер можно выбрать и в командной строке (под правами root): <source lang="Bash">alterator-cmdline /x11 action write _objects driver driver vboxvideo</source>}}<br />
<br />
{{Note|Если пункта «Дисплей» нет в Центре управления системой, установите пакет {{pkg|alterator-x11}}}}<br />
;3. Перезагрузите гостевую систему или только сеанс<br />
<br />
;4. Включите в меню виртуальной машины:<br />
* Устройства {{==)}} Общий буфер обмена {{==)}} Двунаправленный <br />
* Устройства {{==)}} Drag'n'Drop {{==)}} Двунаправленный.<br />
<br />
=== Общие папки ===<br />
<br />
;1. Установите в гостевой операционной системе дополнения гостевой операционной системы и {{pkg|virtualbox-guest-utils}}:<br />
<pre><br />
apt-get install kernel-modules-virtualbox-addition-$(uname -r | cut -d "-" -f2,3) virtualbox-guest-utils<br />
</pre><br />
<br />
Этот пункт не нужен, если уже установлен пакет {{pkg|virtualbox-guest-additions}}, как описано выше.<br />
<br />
;2. Добавьте в свойствах виртуальной машины (раздел «Общие папки») папку. Для этого выберите путь и укажите имя папки (по умолчанию используется имя последней папки в указанном пути). Если хотите чтобы папка осталась настроенной и после перезагрузки гостевой операционной системы, установите флажок «Создать постоянную папку».<br />
<br />
;3. Для монтирования общих папок VirtualBox должен быть загружен модуль '''vboxsf''':<br />
<source lang="Bash">modprobe vboxsf</source><br />
<br />
;4. В гостевой операционной системе выполните<br />
<source lang="Bash">mount -t vboxsf <имя папки> /mnt</source><br />
<br />
{{Attention|Использование параметра -t в команде {{cmd|mount}} разрешено только [[Su|пользователю root]].}}<br />
<br />
Если необходимо обеспечить доступ на чтение/запись от имени обычного пользователя, то добавьте в команду монтирования опции uid и gid.<br />
Например, если у пользователя user uid=500 и gid=500, то команда будет выглядеть так: <br />
<source lang="Bash">mount -t vboxsf -o uid=500,gid=500 <имя папки> /mnt</source><br />
<br />
;5. Общая папка становится доступна в /mnt.<br />
<br />
=== Краткая инструкция для установки дополнений вручную ===<br />
{{Attention|идеологически неправильное решение!!!'''<ref>Идеологически правильно дождаться, пока мейнтейнер соберёт новую версию драйверов в дистрибутив.</ref>}}<br />
* Запускаем гостевой Линукс, и удаляем пакеты:<br />
xorg-drv-vboxvideo<br />
* Ставим пакет '''kernel-headers-modules''' для ''своего'' ядра.<br />
* В окне VirtualBox, в меню "Устройства", выбираем "Установить дополнения гостевой ОС".<br />
* В гостевом Линуксе заходим на CD-ROM, находим там файл '''VBoxLinuxAdditions-x86.run''' (-amd64.run для соответствующей архитектуры), копируем его в /tmp.<br />
* В гостевом Линуксе открываем терминал, переходим в нём в рута (командой su -) и выполняем команду:<br />
chmod a+x /tmp/VBoxLinuxAdditions-x86.run<br />
/tmp/VBoxLinuxAdditions-x86.run<br />
* Далее исполняется скрипт, который сам все распакует, скомпилирует и установит.<br />
* Убеждаемся, что в гостевом Линуксе '''xorg.conf''' прописаны драйвер '''vboxvideo''' для видео.<br />
* Перезагружаем виртуальную машину.<br />
* Наслаждаемся автоизменением размеров окна, и "незалипающей" мышкой.<br />
<br />
== Примечания ==<br />
<references /><br />
<br />
{{Category navigation|title=Виртуализация|category=Виртуализация|sortkey={{SUBPAGENAME}}}}<br />
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=VirtualBox&diff=46257VirtualBox2019-10-04T14:11:31Z<p>Корнеечев Евгений: Новая страница: «<pre># apt-get update # apt-get dist-upgrade -y # update-kernel -y # apt-get install virtualbox kernel-headers-std-def kernel-headers-modules-std-def kernel-modul…»</p>
<hr />
<div><pre># apt-get update<br />
# apt-get dist-upgrade -y<br />
# update-kernel -y<br />
# apt-get install virtualbox kernel-headers-std-def kernel-headers-modules-std-def kernel-modules-virtualbox-std-def<br />
# gpasswd -a user vboxusers<br />
# reboot<br />
</pre><br />
[[Категория:Виртуализация]]<br />
[[Категория:HOWTO]]</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%9A%D0%B8%D0%BE%D1%81%D0%BA&diff=45970Киоск2019-08-30T10:35:19Z<p>Корнеечев Евгений: /* WEB-киоск */ +chmod +x</p>
<hr />
<div>=Описание=<br />
Режим «киоск» служит для ограничения прав пользователей в системе.<br />
<br />
Профиль киоска – файл .desktop (обычно из {{path|/usr/share/applications}}), размещаемый в каталог {{path|/etc/kiosk}}. Задать профиль киоска для пользователя можно в модуль ЦУС [[Alterator-users|«Локальные учетные записи» alterator-users]] (только GUI).<br />
<br />
В качестве примера рассмотрим настройку режима «киоск» для пользователя kiosk. Пользователю kiosk будет разрешено использовать только веб-браузер firefox. <br />
<br />
Для настройки режима киоска для пользователя, необходимо выполнить следующие действия:<br />
#Создать каталог {{path|/etc/kiosk}} (если он еще не создан):<br />
#:<source lang="text" highlight="1"># mkdir /etc/kiosk</source><br />
#Скопировать файл firefox.desktop из /usr/share/applications, в каталог /etc/kiosk:<br />
#:<source lang="text" highlight="1"># cp /usr/share/applications/firefox.desktop /etc/kiosk/</source><br />
#Если необходимо чтобы при запуске веб-браузера открывалась определенная страница, необходимо внести изменения в файл /etc/kiosk/firefox.desktop:<br />
#:<source lang="text" highlight="1"># vim /etc/kiosk/firefox.desktop<br />
[Desktop Entry]<br />
Exec=firefox http://<адрес_сайта></source><br />
#Запустить ЦУС и в модуле «Локальные учетные записи», выбрав учетную запись kiosk (если учетной записи не существует, необходимо ее создать), в выпадающем списке «Режим киоска» выбрать пункт «Веб-браузер (firefox.desktop)» и нажать кнопку «Применить»:<br />
#:[[Изображение:Kiosk.png|Режим «киоск» для пользователя kiosk]]<br />
#Завершить сеанс текущего пользователя и войти в систему используя учетную запись пользователя kiosk. Пользователю kiosk будет доступен только веб-браузер firefox, по умолчанию будет загружена страница, адрес которой указан в параметре Exec в файле {{path|/etc/kiosk/firefox.desktop}}.<br />
<br />
Так можно запускать любое приложение.<br />
<br />
{{Note|Приложение в режиме киоска будет запускаться не на полном экране, поэтому используйте параметры запуска приложения в режиме киоска (например, {{cmd|chromium --kiosk}}) или разверните окно иными способами.}}<br />
=Примеры=<br />
Исходя из примечания выше, лучше всего сделать свой desktop-файл и скрипт, содержащий требуемое ПО, который будет запускаться.<br />
Ниже представлены примеры. {{cmd|marco --replace &}} в обоих случаях запускает менеджер окон, который позволит программе развернуться на весь экран.<br />
====WEB-киоск====<br />
Файл {{path|/etc/kiosk/webkiosk.desktop}}:<br />
<source lang="bash">#!/usr/bin/env xdg-open<br />
[Desktop Entry]<br />
Version=1.0<br />
Type=Application<br />
Terminal=false<br />
Exec=/usr/local/bin/webkiosk<br />
Name=WEB-kiosk<br />
Icon=start</source><br />
Файл {{path|/usr/local/bin/webkiosk}} (его необходимо сделать исполняемым: {{cmd|chmod +x /usr/local/bin/webkiosk}}):<br />
<source lang="bash"><br />
#!/bin/bash<br />
marco --replace &<br />
chromium --kiosk https://ya.ru</source><br />
<br />
====RDP-киоск====<br />
Файл {{path|/etc/kiosk/rdpkiosk.desktop}}:<br />
<source lang="bash">#!/usr/bin/env xdg-open<br />
[Desktop Entry]<br />
Version=1.0<br />
Type=Application<br />
Terminal=false<br />
Exec=/usr/local/bin/rdpkiosk<br />
Name=RDP-kiosk<br />
Icon=start</source><br />
Файл {{path|/usr/local/bin/rdpkiosk}}:<br />
<source lang="bash"><br />
#!/bin/bash<br />
marco --replace &<br />
xfreerdp /v:192.168.0.250 /t:'TS' /f +clipboard /drives /bpp:32 /gdi:sw /cert-ignore +auto-reconnect -sec-nla<br />
/sbin/poweroff #позволит выключать ПК при выходе из терминального сеанса</source><br />
<br />
[[Категория:HOWTO]]<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%9A%D0%B8%D0%BE%D1%81%D0%BA&diff=45969Киоск2019-08-30T10:34:13Z<p>Корнеечев Евгений: Добавил примеры</p>
<hr />
<div>=Описание=<br />
Режим «киоск» служит для ограничения прав пользователей в системе.<br />
<br />
Профиль киоска – файл .desktop (обычно из {{path|/usr/share/applications}}), размещаемый в каталог {{path|/etc/kiosk}}. Задать профиль киоска для пользователя можно в модуль ЦУС [[Alterator-users|«Локальные учетные записи» alterator-users]] (только GUI).<br />
<br />
В качестве примера рассмотрим настройку режима «киоск» для пользователя kiosk. Пользователю kiosk будет разрешено использовать только веб-браузер firefox. <br />
<br />
Для настройки режима киоска для пользователя, необходимо выполнить следующие действия:<br />
#Создать каталог {{path|/etc/kiosk}} (если он еще не создан):<br />
#:<source lang="text" highlight="1"># mkdir /etc/kiosk</source><br />
#Скопировать файл firefox.desktop из /usr/share/applications, в каталог /etc/kiosk:<br />
#:<source lang="text" highlight="1"># cp /usr/share/applications/firefox.desktop /etc/kiosk/</source><br />
#Если необходимо чтобы при запуске веб-браузера открывалась определенная страница, необходимо внести изменения в файл /etc/kiosk/firefox.desktop:<br />
#:<source lang="text" highlight="1"># vim /etc/kiosk/firefox.desktop<br />
[Desktop Entry]<br />
Exec=firefox http://<адрес_сайта></source><br />
#Запустить ЦУС и в модуле «Локальные учетные записи», выбрав учетную запись kiosk (если учетной записи не существует, необходимо ее создать), в выпадающем списке «Режим киоска» выбрать пункт «Веб-браузер (firefox.desktop)» и нажать кнопку «Применить»:<br />
#:[[Изображение:Kiosk.png|Режим «киоск» для пользователя kiosk]]<br />
#Завершить сеанс текущего пользователя и войти в систему используя учетную запись пользователя kiosk. Пользователю kiosk будет доступен только веб-браузер firefox, по умолчанию будет загружена страница, адрес которой указан в параметре Exec в файле {{path|/etc/kiosk/firefox.desktop}}.<br />
<br />
Так можно запускать любое приложение.<br />
<br />
{{Note|Приложение в режиме киоска будет запускаться не на полном экране, поэтому используйте параметры запуска приложения в режиме киоска (например, {{cmd|chromium --kiosk}}) или разверните окно иными способами.}}<br />
=Примеры=<br />
Исходя из примечания выше, лучше всего сделать свой desktop-файл и скрипт, содержащий требуемое ПО, который будет запускаться.<br />
Ниже представлены примеры. {{cmd|marco --replace &}} в обоих случаях запускает менеджер окон, который позволит программе развернуться на весь экран.<br />
====WEB-киоск====<br />
Файл {{path|/etc/kiosk/webkiosk.desktop}}:<br />
<source lang="bash">#!/usr/bin/env xdg-open<br />
[Desktop Entry]<br />
Version=1.0<br />
Type=Application<br />
Terminal=false<br />
Exec=/usr/local/bin/webkiosk<br />
Name=WEB-kiosk<br />
Icon=start</source><br />
Файл {{path|/usr/local/bin/webkiosk}}:<br />
<source lang="bash"><br />
#!/bin/bash<br />
marco --replace &<br />
chromium --kiosk https://ya.ru</source><br />
====RDP-киоск====<br />
Файл {{path|/etc/kiosk/rdpkiosk.desktop}}:<br />
<source lang="bash">#!/usr/bin/env xdg-open<br />
[Desktop Entry]<br />
Version=1.0<br />
Type=Application<br />
Terminal=false<br />
Exec=/usr/local/bin/rdpkiosk<br />
Name=RDP-kiosk<br />
Icon=start</source><br />
Файл {{path|/usr/local/bin/rdpkiosk}}:<br />
<source lang="bash"><br />
#!/bin/bash<br />
marco --replace &<br />
xfreerdp /v:192.168.0.250 /t:'TS' /f +clipboard /drives /bpp:32 /gdi:sw /cert-ignore +auto-reconnect -sec-nla<br />
/sbin/poweroff #позволит выключать ПК при выходе из терминального сеанса</source><br />
<br />
[[Категория:HOWTO]]<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Grub&diff=45883Grub2019-08-22T08:27:03Z<p>Корнеечев Евгений: remove mount pts</p>
<hr />
<div>== Что такое GRUB? ==<br />
Wikipedia сообщает "GNU GRUB (англ. GRand Unified Bootloader) — загрузчик операционной системы от проекта GNU. GRUB позволяет пользователю иметь несколько установленных операционных систем и при включении компьютера выбирать одну из них для загрузки."<br />
[[:ruwp:Grub#GRUB_2|GRUB 2]]<br />
<br />
== Зачем нужен GRUB, если есть LILO/ELILO? ==<br />
* Поддержка модулей Raid, LVM файловых систем вкупе с интерактивным интерфейсом позволяют выбрать, что загружать откуда угодно ''' в процессе загрузки ''' (а не установки загрузчика).<br />
* Возможность multiboot (для загрузки, к примеру, XEN)<br />
<br />
== Как установить GRUB? ==<br />
<br />
Установить дистрибутив с GRUB либо мигрировать загрузчик вручную.<br />
<br />
<source lang=bash>apt-get install grub<br />
grub-install /dev/sda # заменить /dev/sda на то устройство, куда хочется установить GRUB<br />
grub-mkconfig -o /boot/grub/grub.cfg</source><br />
<br />
Последний пункт выполняет генерацию конфига GRUB на основе шаблонов/скриптов в /etc/grub.d/. Редактировать полученный конфиг руками не рекомендуется т.к. он будет уничтожен следующей автогенерацией (выполняемой, к примеру, installkernel-ом).<br />
<br />
'''Проверьте содержимое /etc/sysconfig/grub2''': если там нет раскомментированной переменной GRUB_AUTOUPDATE_DEVICE (при смене загрузчика вручную не будет, т.к. она добавляется только alterator-grub), добавьте устройство или их список; '''если root/boot на md raid1, следует задать список дисков, на которых он размещён''' -- например, не '/dev/md0 ', а '/dev/sdb /dev/sda '. После этого стоит выполнить '''grub-autoupdate'''.<br />
<br />
== Как передать свои параметры загрузки ядра? ==<br />
Для однократного изменения таковых при загрузке GRUB следует:<br />
<br />
# нажать "e" при курсоре на цели загрузки, соответствующей используемому экземпляру ALT;<br />
# в открывшемся редакторе отыскать строку, начинающуюся с '''linux /boot/vmlinuz''';<br />
# в её конец дописать требуемые параметры, отделив пробелом;<br />
# нажать F10.<br />
<br />
Если нужно, чтобы эти параметры ядра передавались ядру при каждой загрузке, надо прописать их в {{path|/etc/sysconfig/grub2}} и дать команду {{cmd|update-grub}}; подробнее см. следующий пункт.<br />
<br />
== Где отредактировать параметры ядра? ==<br />
Для постоянного применения иных параметров загрузки следует изменить конфигурацию загрузчика.<br />
<br />
*Параметры ядра содержатся в {{path|/etc/sysconfig/grub2}}<br />
*После редактирования этого файла нужно вызвать {{cmd|grub-mkconfig -o /boot/grub/grub.cfg}}<br />
<br />
В {{path|/etc/sysconfig/grub2}} поддерживаются следующие опции:<br />
<br />
GRUB_AUTOUPDATE_CFG=true/false<br />
обновлять ли конфиг файл из файлтриггера установки/удаления ядер (по умолчанию true)<br />
<br />
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ваш_пукт1 ваш_пункт2"<br />
опции загрузки ядра<br />
<br />
GRUB_AUTOUPDATE_CFGNAME=/boot/grub/grub.cfg<br />
имя автообновляемого конфигфайла. (по умолчанию /boot/grub/grub.cfg)<br />
<br />
GRUB_VMLINUZ_SYMLINKS=true/false/default<br />
добавлять ли симлинки в меню (добавлять, не добавлять, добавлять только /boot/vmlinuz [по умолчанию])<br />
<br />
GRUB_VMLINUZ_FAILSAFE=true/false/default<br />
добавлять ли failsafe-пункты (добавлять, не добавлять, добавлять только для /boot/vmlinuz [по умолчанию])<br />
<br />
== Как дописать свои собственные пункты меню? ==<br />
*Теоретически вам не должно хотеться этого делать. Расскажите (в рассылке sisyphus@, к примеру) зачем вам этого захотелось - возможно, придумается какой-то новый общий случай. <br />
*Если вам всё же хочется - допишите то, что считаете нужным в /etc/grub.d/40_custom<br />
**После редактирования этого файла нужно вызвать grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
== Как выбрать то, что будет загружаться автоматом? ==<br />
''на самом деле этот пункт очень похож на следующий, но на этот пункт есть ссылки''<br />
* Выберите нужный вам пункт один раз при загрузке. savedefault должен сохранять ваш выбор на будущее. <br />
* Не нравится такое поведение? Отключите GRUB_SAVEDEFAULT в /etc/sysconfig/grub2<br />
* NB: в 2.00+ поведение изменилось, теперь дополнительные ядра для того же корня спрятаны в подменю "Advanced options".<br />
<br />
== Как отучить GRUB2 запоминать последний выбранный пункт? ==<br />
Поведение Grub в плане запоминания пунктов зависит от переменных GRUB_DEFAULT и GRUB_SAVEDEFAULT в файле {{path|/etc/sysconfig/grub2}}. GRUB_DEFAULT может содержать пункт меню для загрузки, либо служебное слово 'saved'. В случае, если GRUB_DEFAULT='saved' (в ALT по-умолчанию), загрузка определяется содержимым файла {{path|/boot/grub/grubenv}}: утилита grub-set-default задаёт значение переменной saved_entry, утилита grub-reboot значение переменной next_entry (используется однократно при следующей загрузке, потом очищается). Утилита grub-entries ({{altbug|36048}}) выводит список существующих вариантов (правда неполный с точки зрения допустимых вариантов написания: не выводятся смешанные варианты выбора и выбор на основе ID пунктов меню). В случае, если GRUB_SAVEDEFAULT=true (в ALT по-умолчанию), в пункты меню Grub добавляется команда savedefault, вызывающая изменение переменной saved_entry в файле {{path|/boot/grub/grubenv}}.<br />
=== Способ 1 ===<br />
В файле {{path|/etc/sysconfig/grub2}} изменить значение GRUB_SAVEDEFAULT на false, перегенерировать конфиг grub:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
посмотреть имеющийся список вариантов загрузки утилитой grub-entries:<br />
grub-entries<br />
например<br />
0 ALT p8 starter kit<br />
1>0 Advanced options for ALT p8 starter kit>ALT p8 starter kit, vmlinuz<br />
1>1 Advanced options for ALT p8 starter kit>ALT p8 starter kit, vmlinuz (recovery mode)<br />
1>2 Advanced options for ALT p8 starter kit>ALT p8 starter kit, 4.14.97-un-def-alt0.M80P.1<br />
1>3 Advanced options for ALT p8 starter kit>ALT p8 starter kit, 4.9.154-std-def-alt0.M80P.1<br />
2 Memtest86+-5.01<br />
задать нужный вариант загрузки:<br />
grub-set-default "Advanced options for ALT p8 starter kit>ALT p8 starter kit, 4.14.97-un-def-alt0.M80P.1"<br />
или<br />
grub-set-default "1>2"<br />
цифровой вариант лучше не использовать, так как номера строк меню могут измениться, но его вполне можно использовать для указания варианта на следующую перезагрузку утилитой grub-reboot.<br />
=== Способ 2 ===<br />
В файле {{path|/etc/sysconfig/grub2}} изменить строку<br />
GRUB_DEFAULT='saved'<br />
на<br />
GRUB_DEFAULT=n<br />
где n номер пункта меню, либо на <br />
GRUB_DEFAULT='точное название пункта меню'<br />
Вариант с названием предпочтительнее, поскольку после обновления ядра количество пунктов в меню увеличится и нумерация некоторых пунктов изменится. <br />
'''Внимание!''' Нумерация пунктов начинается с 0.<br />
Список пунктов можно получить по команде<br />
grep menuentry /boot/grub/grub.cfg | nl -v0<br />
Например, пусть мы имеем следующие пункты меню (этот пример не учитывает текущее состояние с подменю; оставлено в качестве примера, удобнее использовать grub-entries, как в первом варианте):<br />
# grep menuentry /boot/grub/grub.cfg | nl -v0<br />
0 menuentry "ALT Linux 6.0.1 KDesktop" --class gnu-linux --class gnu --class os {<br />
1 menuentry "ALT Linux 6.0.1 KDesktop (failsafe mode)" --class gnu-linux --class gnu --class os {<br />
2 menuentry "ALT Linux 6.0.1 KDesktop, 3.0.8-std-def-alt0.M60P.1" --class gnu-linux --class gnu --class os {<br />
3 menuentry "Windows Vista (loader) (on /dev/sda1)" --class windows --class os {<br />
4 menuentry "Memtest86+-4.20" {<br />
# <br />
и хотим, чтобы по умолчанию грузился Windows. Тогда в {{path|/etc/sysconfig/grub2}} пишем<br />
GRUB_DEFAULT='Windows Vista (loader) (on /dev/sda1)'<br />
Потом в терминале от пользователя root:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
Перезагрузка. Так как в GRUB_DEFAULT задано конкретное значение, а не 'saved', переменная GRUB_SAVEDEFAULT значения не имеет.<br />
<br />
== Как однократно выполнить загрузку произвольного пункта меню? ==<br />
Иногда бывает удобно загрузиться с произвольным пунктом меню, но не менять текущий вариант. Это удобно, например, для тестирования нового ядра, когда надо иметь возможность вернуть старое ядро простой перезагрузкой. Для этого надо настроить Grub в соответствии со способом 1 предыдущего пункта, после чего можно задать пункт меню для следующей загрузки командой grub-reboot и запустить команду reboot. В момент начала загрузки конфигурация Grub автоматически вернётся в исходное состояние, и следующая загрузка компьютера произойдёт по-старому. Это аналогично использованию опции -R загрузчика Lilo.<br />
<br />
== Как загрузить Xen? ==<br />
Xen грузится с помощью multiboot:<br />
*проверить, что вы используете grub2 >= 1.98-alt11<br />
*apt-get install xen xen-libs xen-runtime xen-hypervisor<br />
*запустить grub-mkconfig -o /boot/grub/grub.cfg<br />
*выбрать соответствующий пункт при загрузке (savedefault запомнит выбор на будущее)<br />
<br />
== Как включить работу с последовательным портом? ==<br />
Примерно такими строчками в /etc/sysconfig/grub2:<br />
GRUB_TERMINAL='console serial'<br />
GRUB_SERIAL_COMMAND='serial --unit=0 --speed=115200'<br />
(см. [http://www.altlinux.org/SerialLogin#GRUB_.D0.B8_.D0.BF.D0.BE.D1.81.D0.BB.D0.B5.D0.B4.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B9_.D0.BF.D0.BE.D1.80.D1.82 также]). Не забываем про grub-mkconfig.<br />
<br />
== Загрузка Linux и Windows c разных жестких дисков ==<br />
<br />
Grub грузится с основного диска на котором Linux, Windows установлен на дополнительный жесткий диск.<br />
В 40_custom добавляем:<br />
menuentry "Windows XP" {<br />
drivemap -s (hd1) ${root}<br />
set root='(hd1)'<br />
chainloader +1<br />
}<br />
Если жестких дисков больше двух, играемся с hdX.<br />
<br />
<div id="password"></div><br />
<br />
== Как установить пароль на редактирование параметров ядра? ==<br />
<br />
По умолчанию при загрузке любой пользователь может добавить/изменить параметры.<br />
Этого можно избежать, если установить пароль. Проще всего сделать это в центре управления системой. Для этого потребуется пакет {{pkg|alterator-grub}} и выполнить следующие действия:<br />
*Зайдите в ЦУС ({{cmd|acc}}), перейдите в режим эксперта, и в разделе "Система" откройте "Загрузчик GRUB".<br />
*Установите флажок "Установить или сбросить пароль" и введите необходимый пароль. <br />
После нажатия на кнопку "Установить" (переконфигурация GRUB происходит автоматически) при запуске системы и попытке либо изменить параметры загрузки (клавиша Е), либо выбрать другой пункт загрузочного меню, будет требоваться логин/пароль. Логин по умолчанию сейчас '''boot''' ({{altbug|33098}})<br />
{{note|Логин/пароль (последний в хэшированном виде) записываются в файл {{path|/etc/grub.d/50_password}}:<br />
<source lang="sh">#!/bin/sh<br />
cat << EOF<br />
set superusers="boot"<br />
password_pbkdf2 boot grub.pbkdf2.sha512.10000.<hash><br />
EOF</source>}}<br />
<br />
Также для ограничения загрузки (как с изменением параметров, так и без) можно добавить в файл {{path|/etc/grub.d/40_custom}} строки:<br />
set superusers="user"<br />
password user password<br />
{{Attention| В этом случае не забудьте запретить чтение данного файла обычным пользователям (см. {{altbug|33099}}). А лучше всего используйте хэшированные пароли. Для этого следует воспользоваться [http://www.gnu.org/software/grub/manual/grub.html#password_005fpbkdf2 password_pbkdf2] и командой {{cmd|grub-mkpasswd-pbkdf2}}.}}<br />
<br />
В случае дистрибутивов серии 6.0 отключить графику в {{path|/etc/sysconfig/grub2}} (см. {{altbug|26198}}):<br />
GRUB_TERMINAL_OUTPUT='console'<br />
<br />
Для защиты паролем возможности загрузки именно с изменёнными параметрами придётся [https://bugzilla.novell.com/show_bug.cgi?id=821387#c3 добавить] в переменную <tt>CLASS</tt> в скрипте {{path|/etc/grub.d/10_linux}} опцию <tt>--unrestricted</tt> ('''внимание''': этот скрипт по состоянию на версию 2.00-alt20 входит в пакет grub-common и ''не'' помечен как <tt>%config</tt>, поэтому будет перезаписан при обновлении!).<br />
<br />
После подобных операций следует перегенерировать конфигурацию командой {{cmd|grub-mkconfig -o /boot/grub/grub.cfg}} (либо {{cmd|grub-mkconfig}}, в зависимости от дистрибутива). В случае использования {{pkg|alterator-grub}} - это не требуется.<br />
<br />
== Как переустановить GRUB? ==<br />
<br />
После обновления до [http://lists.altlinux.org/pipermail/sisyphus/2012-October/358868.html grub2-pc-2.00-alt1]<br />
операционная система может не загрузиться. В таком случае, необходимо иметь под<br />
рукой любой live disk. Далее:<br />
* Загружаемся с rescue-cd, например [[Rescue|ALT Linux Rescue]]<br />
* Если использован [[Rescue|ALT Linux Rescue]]:<br />
mount-system<br />
chroot /mnt/system1<br />
* Если в используемом LiveCD нет mount-system, делаем самостоятельно (предполагая/зная, что корень на /dev/sda2):<br />
mount /dev/sda2 /mnt <br />
mount -o bind /dev /mnt/dev<br />
mount -o bind /proc /mnt/proc<br />
mount -o bind /run /mnt/run<br />
mount -o bind /sys /mnt/sys<br />
chroot /mnt/ /bin/bash<br />
* Скачиваем предыдущую версию пакета:<br />
http://ftp.altlinux.org/pub/distributions/archive/Sisyphus/2012/10/30/<br />
* Устанавливаем rpm<br />
rpm -Uvh --oldpackage /home/andy/grub2-pc-1.99-alt9.i586.rpm<br />
* Переконфигурируем меню grub<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
После описанного выше, у меня загрузилась операционная система.<br />
<br />
По мотивам: http://edoceo.com/notabene/grub-probe-error-cannot-find-device-for-root<br />
<br />
== Как установить/восстановить загрузочную запись grub ? ==<br />
<br />
Аналогично предыдущему пункту (см. также [[Восстановление_загрузочной_записи#grub]]:<br />
* Если использован [[Rescue|ALT Linux Rescue]]:<br />
mount-system<br />
chroot /mnt/system1<br />
* Если в используемом LiveCD нет mount-system, делаем самостоятельно (предполагая/зная, что корень на /dev/sda2):<br />
mount /dev/sda2 /mnt <br />
mount -o bind /dev /mnt/dev<br />
mount -o bind /proc /mnt/proc<br />
mount -o bind /run /mnt/run<br />
mount -o bind /sys /mnt/sys<br />
chroot /mnt/ /bin/bash<br />
<br />
После того как проведены подготовительные действия и сделан сhroot, необходимо выполнить<br />
<source lang="bash">grub-mkconfig -o /boot/grub/grub.cfg<br />
grub-install /dev/sda # заменить /dev/sda на то устройство, куда хочется установить GRUB</source><br />
<br />
если же используется EFI-режим, может потребоваться восстановить загрузчик в ESP-разделе (EFI System Partition), который монтируется в /boot/efi:<br />
<br />
mount -a # достаточно смонтировать точку монтирования /boot/efi<br />
grub-efi-autoupdate<br />
<br />
== Что за жалобы про BIOS Boot Partition? ==<br />
<br />
При загрузке под PC BIOS используется MBR и небольшая свободная область диска после него (31 килобайт до 63-го сектора) — соответственно первая стадия и core.img; при использовании UEFI ожидается GPT-разбивка загрузочного диска, при которой нет ни MBR, ни этой области. Отсюда возникает необходимость встроить вторую стадию загрузчика куда-то ещё. Таким местом и решили взять определённый в GPT тип раздела BIOS Boot Partition.<br />
<br />
Инструмент разбивки дисков в составе инсталятора ALT Linux сделает такой раздел автоматически под UEFI, если разбиваете вручную или большой диск для BIOS — может потребоваться создать раздел минимального объёма (RED Hat рекомендует 1 мегабайт) с типом «bios boot partition» в терминологии {{pkg|alterator-vm}} либо меткой «bios_grub» в терминологии {{pkg|parted}}.<br />
<br />
См. тж. [http://web.archive.org/web/20100502053927/http://grub.enbug.org/BIOS_Boot_Partition архивную статью].<br />
<br />
== Во время загрузки Windows искажена картинка, что делать? ==<br />
<br />
Если при загрузке, например, Windows 7 часть экрана содержит "шум", возможно, отдалённо напоминающий картинку заставки GRUB -- попробуйте выровнять используемые видеорежимы VESA:<br />
* в файле {{path|/etc/sysconfig/grub2}} поменяйте <tt>GRUB_GFXMODE='800x600'</tt> на <tt>GRUB_GFXMODE='640x480'</tt><ref>возможно, понадобится подобрать разрешение, например, <tt>1024x768</tt> -- см. тж. [https://forums.linuxmint.com/viewtopic.php?t=173945#p1046496 здесь] и [http://askubuntu.com/a/613707/106963 здесь]</ref>;<br />
* выполните команду {{cmd|update-grub}} или {{cmd|grub-mkconfig -o /boot/grub/grub.cfg}}<br />
<br />
Вы можете сделать заставку текстовой, указав <tt>GRUB_GFXMODE='console'</tt>.<br />
<br />
== Где почитать ещё? ==<br />
* Викиучебник (debian-related документация) http://ru.wikibooks.org/wiki/Grub_2, с небольшими изменениями применимо и у нас.<br />
* http://people.apache.org/~skitching/MineOfInformation/linux/Booting_Linux_on_x86_with_Grub2.html (англ.)<br />
* GNU GRUB Manual 2.00 http://www.gnu.org/software/grub/manual/grub.html (англ.)<br />
* дистрибутивные вики: [https://wiki.archlinux.org/index.php/GRUB2 Arch], [https://wiki.frugalware.org/index.php/GRUB2 Frugalware], [http://wiki.gentoo.org/wiki/GRUB2 Gentoo]<br />
<br />
А также в операционной системе:<br />
info grub<br />
info -f grub -n 'Simple configuration'<br />
<br />
== Примечания ==<br />
<references /><br />
<br />
[[Категория:Загрузчики]]<br />
{{Category navigation|title=Загрузчики|category=Загрузчики|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8_%D0%BF%D0%B5%D1%80%D0%B2%D0%BE%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_ZABBIX_PostgreSQL&diff=45556Установка и первоначальная настройка ZABBIX PostgreSQL2019-08-05T10:33:59Z<p>Корнеечев Евгений: /* Установка Web-интерфейса Zabbix */ про 403ю ошибку</p>
<hr />
<div>{{stub}}<br />
== Установка ==<br />
=== Установка PostgreSQL ===<br />
Установим PostgreSQL и создадим пользователя и базу для zabbix. <br><br />
Установим необходимые пакеты:<br />
<pre># apt-get install postgresql9.6-server zabbix-server-pgsql</pre><br />
{{Attention|Перед запуском службы необходимо создать системные базы данных:<br># /etc/init.d/postgresql initdb}}<br />
Добавим в автозапуск и запустим postgresql сервер:<br />
<pre># systemctl enable postgresql<br />
# systemctl start postgresql</pre><br />
Создадим пользователя zabbix:<br />
<pre># su - postgres -s /bin/sh -c 'createuser --no-superuser --no-createdb --no-createrole --encrypted --pwprompt zabbix'</pre><br />
Создадим базу zabbix и дадим права на нее пользователю zabbix:<br />
<pre># su - postgres -s /bin/sh -c 'createdb -O zabbix zabbix'</pre><br />
Добавим в базу данные для web-интерфейса, последовательность команд важна (в разных версиях путь будет отличаться, версия помечена звёздочкой):<br />
<pre>su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-server-pgsql-*/schema.sql zabbix'<br />
# остановитесь здесь, если вы создаете базу данных для Zabbix прокси<br />
su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-server-pgsql-*/images.sql zabbix'<br />
su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-server-pgsql-*/data.sql zabbix'</pre><br />
<br />
=== Установка Apache2 ===<br />
Установим необходимые пакеты:<br />
<pre># apt-get install apache2 apache2-mod_php5</pre><br />
Добавим в автозапуск и запустим apache2:<br />
<pre># systemctl enable httpd2<br />
# systemctl start httpd2</pre><br />
<br />
=== Установка PHP ===<br />
Установим необходимые пакеты:<br />
<pre># apt-get install php5</pre><br />
Установим необходимые zabbix-у пакеты:<br />
<pre># apt-get install php5-mbstring php5-sockets php5-gd2 php5-xmlreader php5-pgsql php5-ldap</pre><br />
Так же необходимо изменить некоторые опции php в файле {{path|/etc/php/5.6/apache2-mod_php/php.ini}}:<br />
<pre>post_max_size = 16M<br />
max_execution_time = 300<br />
max_input_time = 300<br />
date.timezone = Europe/Moscow<br />
always_populate_raw_post_data = -1</pre><br />
Перезапустим apache2:<br />
<pre># systemctl restart httpd2</pre><br />
<br />
=== Установка Web-интерфейса Zabbix ===<br />
Установим необходимый метапакет:<br />
<pre># apt-get install zabbix-phpfrontend-apache2-mod_php5</pre><br />
Включим аддоны в apache2:<br />
<pre># ln -s /etc/httpd2/conf/addon.d/A.zabbix.conf /etc/httpd2/conf/extra-enabled/</pre><br />
Перезагрузим сервис apache2:<br />
<pre># systemctl restart httpd2</pre><br />
Поменяем права доступа к конфигурационной директории web-интерфейса, что бы web-установшик мог записать конфигурационный файл:<br />
<pre># chown apache2:apache2 /var/www/webapps/zabbix/frontends/php/conf</pre><br />
Перейдем на страницу установки zabbix server http://10.10.10.100/zabbix/<br><br />
{{note|Если при входе на страницу у Вас будет 403 ошибка (доступ запрещен), обратитесь к [[Zabbix_заметки#Настройка_Apache2]]}}<br />
Жмём кнопку Next Step и попадаем на страницу проверки предварительных условий.<br><br />
Доустанавливаем то что требуется и переходим на следующую страницу.<br><br />
На следующей странице нас попросят ввести параметры подключения к базе данных, вводим имя базы, пользователя и пароль, которые мы задавали раннее.<br><br />
По умолчанию в качестве Database schema указываем '''public'''.<br><br />
Переходим к следующей странице. На ней мы можем задать имя нашего сервера. Завершаем установку.<br><br />
Параметры доступа по умолчанию:<br />
<pre>Логин: Admin<br />
Пароль: zabbix</pre><br />
<br />
=== Установка Zabbix Server ===<br />
Установим необходимые пакеты:<br />
<pre># apt-get install zabbix-server-pgsql</pre><br />
Добавим zabbix server в автозапуск и запустим его:<br />
<pre># systemctl enable zabbix_pgsql<br />
# systemctl start zabbix_pgsql</pre><br />
=== Установка Zabbix Agent ===<br />
Установим необходимый пакет:<br />
<pre># apt-get install zabbix-agent</pre><br />
Добавим в zabbix agent в автозапуск и запустим его:<br />
<pre># systemctl enable zabbix_agentd<br />
# systemctl start zabbix_agentd</pre><br />
Адрес сервера, которому разрешенно обращаться к агенту задается в файле параметрами:<br />
<pre>Server=127.0.0.1<br />
ServerActive=127.0.0.1</pre><br />
== Мониторинг CEPH ==<br />
=== Настройка ноды ===<br />
Установим на ноду CEPH необходимые пакеты:<br />
<pre># apt-get install zabbix-agent-sudo git</pre><br />
Загрузим необходимые файлы:<br />
<pre># git clone https://github.com/thelan/ceph-zabbix.git</pre><br />
Создадим директорию и скопируем файлы:<br />
<pre># mkdir /etc/zabbix/zabbix_ceph<br />
# cp ceph-status.sh /etc/zabbix/zabbix_ceph/<br />
# cp zabbix_agent_ceph_plugin.conf /etc/zabbix/zabbix_agentd.conf.d/</pre><br />
Изменить путь расположения скрипта в файле {{path|zabbix_agent_ceph_plugin.conf}}:<br />
<pre># sed -i 's/\/opt/sudo \/etc\/zabbix\/zabbix_ceph/' /etc/zabbix/zabbix_agentd.conf.d/zabbix_agent_ceph_plugin.conf</pre><br />
Дадим скрипту права на запуск:<br />
<pre># chmod +x /etc/zabbix/zabbix_ceph/ceph-status.sh</pre><br />
<br />
=== Настройка ZABBIX сервера ===<br />
В web-интерфейсе сервера необходимо перейти на вкладку {{path|Configuration -> Templates -> Import}}<br><br />
Импортировать файлы {{path|zbx_ceph_mon_template.xml}} {{path|zbx_ceph_osd_template.xml}} {{path|zbx_ceph_cluster_template.xml}} {{path|zbx_ceph_mds_template.xml}} из директории {{path|zabbix_templates}}, которая находится в склонированной раннее директории.<br><br />
После импорта шаблонов необходимо их прикрепить к нужному хосту.<br />
<br />
== Возможные проблемы ==<br />
=== Не работает обнаружение при помощи ICMP Ping ===<br />
В журнале /var/log/zabbix/zabbix_server.log присутствуют различные ошибки касающиеся команд fping, fping6. <br />
<br />
*'''failed: /usr/sbin/fping6: can't create raw socket (must run as root?) : Permission denied'''<br />
Для разрешение проблемы необходимо обеспечить запуск программ fping и fping6 с повышением привилегий. Так как сервер запускается от пользователя zabbix входящего в группу zabbix, то <br />
<pre>chown root:zabbix /usr/sbin/fping<br />
chown root:zabbix /usr/sbin/fping6<br />
chmod 710 /usr/sbin/fping<br />
chmod 710 /usr/sbin/fping6<br />
chmod ug+s /usr/sbin/fping<br />
chmod ug+s /usr/sbin/fping6</pre><br />
<br />
*'''ping failed: *.*.*.*: Address family for hostname not supported'''<br />
Если вы не используете полноценно ipv6 в вашей сети, рекомендуется отключить использование fping6. Для этого в конфигурационном файле /etc/zabbix/zabbix_server.conf раскомментируйте и оставьте без значения параметр<br />
<pre>Fping6Location=</pre><br />
Также бывает полезно указать точное нахождение fping, в этом же файле директива:<br />
<pre>FpingLocation=/usr/sbin/fping</pre><br />
Вы всегда можете проверить корректность работы команд fping и fping6 из терминала авторизовавшись пользователем zabbix<br />
<pre># su zabbix -s /bin/sh<br />
$ fping 192.168.0.1<br />
192.168.0.1 is alive<br />
</pre></div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=ActiveDirectory/Login&diff=45531ActiveDirectory/Login2019-08-01T07:35:59Z<p>Корнеечев Евгений: /* Отображение глобальных групп на локальные */ upd</p>
<hr />
<div><br />
Инструкция по вводу рабочей станции под управлением ALT Linux в домен Active Directory (работающий под Windows или под [[SambaAD|Samba в режиме AD DC]]).<br />
Устаревшая инструкция: [[Ввод в домен на базе Windows 2003]]<br />
{{Attention|Если Ваш домен имеет суффикс .local - необходимо отключить avahi-daemon (подробнее [[ActiveDirectory/Login#Примечания|ниже, пункт 2 примечаний]]).}}<br />
<br />
'''Параметры домена'''<br />
{|class="standard"<br />
!Параметр<br />
!Значение<br />
|-<br />
|Имя домена||SCHOOL.ALT<br />
|-<br />
|Рабочая группа||SCHOOL<br />
|-<br />
|Имя компьютера в Netbios||WS<br />
|-<br />
|Имя пользователя-администратора||Administrator<br />
|-<br />
|Пароль администратора||Pa$$word<br />
|}<br />
<br />
<br />
<div id="prep"></div><br />
<br />
= Подготовка =<br />
<br />
== Установка пакетов ==<br />
<br />
{{Attention|Аутентификация через winbind в новых сборках Samba не работает, используйте аутентификацию через {{pkg|task-auth-ad-sssd}}.}}<br />
<br />
С версии {{prg|alterator-auth-0.31-alt1}}<br />
<br />
apt-get install task-auth-ad-sssd<br />
<br />
{{note|Для старых версий: <source lang="text">apt-get install alterator-auth sssd-ad samba-common-tools</source>}}<br />
<br />
Требуемые версии:<br />
* {{pkg|pam-config}} >= 1.7.0-alt1<br />
* {{pkg|alterator-auth}} >= 0.26-alt1<br />
<br />
Возможно, следует [[Обновление ОС#В пределах версии|обновить]] установленный дистрибутив из репозитория.<br />
<br />
== Синхронизация времени ==<br />
<br />
С версии alterator-auth 0.28 синхронизация времени производится автоматически с контроллером домена.<br />
<br />
Для более ранних версий:<br />
<br />
===== Способ 1: Через {{cmd|net time}} =====<br />
<br />
net time set -S <имя домена><br />
<br />
===== Способ 2: По протоколу [https://tools.ietf.org/html/rfc867 RFC 867] =====<br />
<br />
На сервере включается через xinetd daytime-tcp <ref>Cм получение прав root: </ref>:<br />
<br />
# chkconfig --list | grep daytime-tcp<br />
daytime-tcp: вкл<br />
<br />
А на клиенте — служба {{cmd|settime-rfc867}}:<br />
<br />
chkconfig settime-rfc867 on<br />
service settime-rfc867 start<br />
<br />
===== Способ 3: Через Центр управления системой → Дата и время =====<br />
<br />
Включите флажок «Получать точное время с NTP-сервера» и укажите в поле справа {{cmd|pool.ntp.org}}. После этого нажмите кнопку «Применить».<br />
<br />
===== Способ 4: Через {{cmd|ntpdate}} =====<br />
<br />
ntpdate pool.ntp.org<br />
<div id="setup"></div><br />
<br />
= Ввод в домен в Центре управления системой = <br />
<br />
Предварительная настройка - [[PreliminaryActions]]<br />
<br />
В Центре управления системой перейдите в раздел {{path|Пользователи → Аутентификация}}<br />
<br />
Для ввода компьютера в Active Directory потребуется установить пакет {{pkg|task-auth-ad-sssd}} и все его зависимости.<br />
[[Файл:Qwe.png|мини|слева|x400px|Clear|]] <br />
<div style="clear:{{{1|both}}};"></div><br />
<br />
Выберите пункт «Домен Active Directory» и заполните поля. Нажмите кнопку «Применить».<br />
<br />
= Ввод в домен в командной строке =<br />
<br />
<pre># system-auth write ad school.alt host-15 school 'administrator' 'Pa$$word'<br />
Joined 'HOST-15' to dns domain 'school.alt'</pre><br />
<div id="check"></div><br />
= Проверка работы =<br />
<br />
<pre># getent passwd ivan<br />
ivan:*:10005:10002:ivan:/home/SCHOOL/ivan:/bin/bash<br />
<br />
# net ads info<br />
LDAP server: 192.168.1.1<br />
LDAP server name: c228.school.alt<br />
Realm: SCHOOL.ALT<br />
Bind Path: dc=SCHOOL,dc=ALT<br />
LDAP port: 389<br />
Server time: Ср, 22 апр 2015 16:22:47 MSK<br />
KDC server: 192.168.1.1<br />
Server time offset: -1<br />
<br />
# net ads testjoin<br />
Join is OK</pre><br />
<br />
{{Note| Вы не увидите пользователей из AD с помощью команды <code># getent passwd </code> на клиентской машине. Этот функционал отключен по-умолчанию для того чтобы сократить нагрузку на серверы. Поэтому для проверки необходимо точно указать имя пользователя <code># getent passwd имя_пользователя </code>. Список пользователей можно посмотреть на сервере командой <code># samba-tool user list</code>}}<br />
<br />
= Примечания =<br />
# Ограничение: имя домена должно указывать на DC. Если это не так, поправляйте /etc/krb5.conf и вводите вручную, либо в файл /etc/hosts добавьте строку с контроллером домена (кдц) ДОМЕН.local и перезапустите сеть. После этого проверьте из командной строки ping ДОМЕН.local и вводите в домен<br />
# При указании домена, имеющего суффикс '''.local''', потребуется на сервере и подключаемых компьютерах под управлением Linux <u>'''отключить''' службу {{cmd|avahi-daemon}}</u> - <code># chkconfig avahi-daemon off; reboot </code> (доменная зона "local." используется в технологии zeroconf).<br />
# Следите за синхронизацией времени на клиенте и сервере.<br />
# Для предотвращения кэширования имён пользователя отключите службу {{cmd|nscd}}.<br />
# В новых версиях Samba до запуска службы {{cmd|winbind}} должна запускаться служба {{cmd|smb}}.<br />
# Если возникает проблема просмотра билетов Kerberos под доменным пользователем, скопируйте правильный krb5.conf из samba: <source lang="bash">rm -f /etc/krb5.conf<br />
cp /var/lib/samba/smb_krb5/krb5.conf* /etc/krb5.conf</source><br />
# Для возможности входа в ОС под доменным пользователем при его недоступности можно включить опцию кэширования учетных данных в конфиге SSSD (подробнее [https://www.altlinux.org/SSSD/AD#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_sssd-.D0.BC.D0.BE.D0.B4.D1.83.D0.BB.D1.8F тут], опция '''cache_credentials''')<br />
<br />
= Настройка окна входа =<br />
<br />
== Настройка LightDM ==<br />
<br />
В {{path|/etc/lightdm/lightdm.conf}} раскомментируйте строку в группе {{cmd|[SeatDefaults]}}:<br />
greeter-hide-users=true<br />
<br />
Это позволит вводить имя пользователя вручную, а не прокручивать огромный список доступных доменныx пользователей.<br />
<br />
Также полезно выключить выбор языка. В файле {{path|/etc/lightdm/lightdm-gtk-greeter.conf}} в группе {{cmd|[greeter]}} укажите<br />
show-language-selector=false<br />
<br />
В новых версиях lightdm-gtk-greeter можно указать кнопки явно:<br />
show-indicators=a11y;power<br />
<br />
Полный перечень доступных кнопок:<br />
show-indicators=a11y;power;session;language<br />
<br />
= Отображение глобальных групп на локальные =<br />
{{note|Первые два пункта данного раздела выполняются автоматически, если АРМ вводится в домен с помощью {{pkg|task-auth-ad-sssd}}}}<br />
== Установка модуля ролей ==<br />
apt-get install libnss-role<br />
<br />
== Настройка ролей и привилегий ==<br />
Добавляем роль локальных администраторов:<br />
# groupadd -r localadmins<br />
<br />
{{Note|Лучше использовать группу localadmins (вместо admins) по избежание конфликта с группой admins во FreeIPA}}<br />
<br />
Создаём привилегию на право удалённого доступа (по протоколу ssh):<br />
# groupadd -r remote<br />
<br />
Включаем удалённый доступ только для группы remote:<br />
# control sshd-allow-groups enabled<br />
# sed -i 's/AllowGroups.*/AllowGroups = remote/' /etc/openssh/sshd_config<br />
<br />
Настраиваем список привилегий для пользователей (для роли users):<br />
# roleadd users cdwriter cdrom audio proc radio camera floppy xgrp scanner uucp fuse<br />
<br />
Настраиваем список привилегий для администраторов (для роли admins):<br />
# roleadd localadmins wheel remote vboxusers<br />
<br />
Настраиваем отображение локальных привилегий, назначенных локальным ролям, на глобальные группы безопасности:<br />
# roleadd 'Domain Users' users<br />
# roleadd 'Domain Admins' localadmins<br />
<br />
Просматриваем список назначенных ролей и привилегий:<br />
# rolelst<br />
# id ivan<br />
<br />
Данная настройка назначает заданный список локальных групп (привилегий) всем пользователям, входящим в заданные локальные группы (роли). А также назначает локальные роли для глобальных групп в домене.<br />
== Дополнительные роли ==<br />
Соответственно, если надо выдать права администраторов АРМ пользователям, которые не являются Domain Admins,<br />
то нужно завести новую группу в AD (например, PC Admins), добавить туда необходимых пользователей.<br />
Затем на АРМ добавить роль для данной группы:<br />
# roleadd 'PC Admins' localadmins<br />
# rolelst<br />
users: cdwriter cdrom audio video proc radio camera floppy xgrp scanner uucp vboxusers fuse tsusers<br />
localadmins: wheel<br />
domain users: users<br />
domain admins: localadmins<br />
pc admins: localadmins<br />
<br />
После этого (и после разрешения [[sudo]] для группы wheel) под пользователем входящим в группу PC Admins<br />
можно запускать команду повышения прав sudo.<br />
<pre>user@alt8 ~ $ su - petrov<br />
Password: <br />
petrov@alt8 ~ $ id<br />
uid=445010929(petrov) gid=445000513(domain users) группы=445000513(domain users),10(wheel),14(uucp),19(proc),<br />
22(cdrom),71(floppy),80(cdwriter),81(audio),83(radio),100(users),458(tsusers), 459(localadmins),466(fuse),468(video),<br />
480(camera),492(vboxusers),498(xgrp),499(scanner),445010930(pc admins)<br />
petrov@alt8 ~ $ sudo apt-get update<br />
Пароль:<br />
Получено: 1 http://ftp.altlinux.org p8/branch/x86_64 release [880B]<br />
Получено: 2 http://ftp.altlinux.org p8/branch/x86_64-i586 release [537B]<br />
Получено: 3 http://ftp.altlinux.org p8/branch/noarch release [673B]<br />
Получено 2090B за 0s (36,9kB/s).<br />
Найдено http://ftp.altlinux.org p8/branch/x86_64/classic pkglist<br />
Найдено http://ftp.altlinux.org p8/branch/x86_64/classic release<br />
Найдено http://ftp.altlinux.org p8/branch/x86_64-i586/classic pkglist<br />
Найдено http://ftp.altlinux.org p8/branch/x86_64-i586/classic release<br />
Найдено http://ftp.altlinux.org p8/branch/noarch/classic pkglist<br />
Найдено http://ftp.altlinux.org p8/branch/noarch/classic release<br />
Чтение списков пакетов... Завершено<br />
Построение дерева зависимостей... Завершено<br />
</pre><br />
<br />
= Подключение файловых ресурсов =<br />
<br />
Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).<br />
<br />
== Через gvfs ==<br />
<br />
{{note|Способ актуален для дистрибутивов, использующих gvfs (например, Кентавр, Simply Linux, Basealt Workstation, СПТ).}}<br />
<br />
Недостаток такого способа — необходимо открыть ресурс в файловом менеджере (Caja, Pcmanfm). Однако можно открывать любые ресурсы на любых серверах, входящие в домен Active Directory.<br />
<br />
1. Устанавливаем необходимые пакеты (с правами root):<br />
apt-get install fuse-gvfs gvfs-backend-smb gvfs-utils<br />
<br />
2. Включаем для пользователя в группу ''fuse'' (с правами root):<br />
gpasswd -a <пользователь> fuse<br />
<br />
Как включить доменных пользователей в локальную группу см. выше.<br />
<br />
{{Note|Следующий рецепт не работает:<br />
control fusermount public<br />
systemctl restart systemd-udevd<br />
}}<br />
<br />
3. Входим доменным пользователем<br />
<br />
4. Открываем ресурс в файловом менеджере (например, по адресу {{path|smb://server/sysvol}}). Ресурс смонтирован по пути {{path|/var/run/<uid_пользователя>/gvfs}}.<br />
<br />
Другой вариант (полезно для скриптов в автозапуске): <br />
gvfs-mount smb://server/sysvol/<br />
<br />
{{note|Если необходимо открывать что-то с ресурса в WINE, в {{cmd|winecfg}} добавьте диск с путём {{path|/var/run/<uid_пользователя>/gvfs}}.}}<br />
<br />
== Через pam_mount ==<br />
<br />
В этом случае заданный ресурс подключается с заданного сервера <u>автоматически при каждом входе</u> доменным пользователем.<br />
<br />
1. Устанавливаем {{pkg|pam_mount}}:<br />
apt-get install pam_mount<br />
<br />
2. Прописываем pam_mount в схему {{path|/etc/pam.d/system-auth-sss}}:<br />
<br />
(перед {{term|auth required pam_sss.so}})<br />
auth optional pam_mount.so<br />
и в секцию session:<br />
session optional pam_mount.so<br />
<br />
3. Устанавливаем правило монтирования ресурса в файле {{path|/etc/security/pam_mount.conf.xml}} (перед тегом <cifsmount>):<br />
<source lang="xml"><volume uid="10000-2000200000" fstype="cifs" server="c228" path="sysvol" mountpoint="~/share" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /></source><br />
где<br />
* '''uid="10000-2000200000"''' — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD)<br />
* '''server="c228"''' — имя сервера с ресурсом<br />
* '''path="sysvol"''' — имя файлового ресурса<br />
* '''mountpoint="~/share"''' — путь монтирования в домашней папке пользователя<br />
<br />
{{Attention|Обязательно указывайте настоящее имя сервера в параметре {{term|server}}, а не имя домена}}<br />
<br />
== Через autofs ==<br />
<br />
В этом случае заданный ресурс подключается <u>автоматически при каждом входе</u> пользователя.<br />
<br />
1. Устанавливаем {{pkg|kde5-autofs-shares}}:<br />
apt-get install kde5-autofs-shares<br />
<br />
2. Следуем инструкции по подключению в разделе [[Альт_Рабочая_станция_К_8_советы]].<br />
<br />
= Групповые политики =<br />
<br />
Групповые политики (GPO) на Linux применяются только контроль входа через [[SSSD]] и средства Centrify.<br />
<br />
== SSSD ==<br />
<br />
SSSD имеет внутреннюю поддержку следующих групповых политик:<br />
<br />
{|class="standard"<br />
!Политика<br />
|-<br />
|{{term|Allow log on locally}}<br />
|-<br />
|{{term|Allow log on through Remote Desktop Services}}<br />
|-<br />
|{{term|Access this computer from the network}}<br />
|-<br />
|{{term|Allow log on as a batch job}}<br />
|-<br />
|{{term|Allow log on as a service}}<br />
|}<br />
<br />
<br />
{{Note|Планируется поддержка других групповых политик средствами подключаемых модулей}}<br />
<br />
{{примечания}}<br />
<br />
{{note| Получение прав root см. [[root]] }}<br />
<br />
== Ссылки по групповым политикам ==<br />
* https://fedoraproject.org/wiki/Changes/SssdGpoBasedAccessControl<br />
* http://wiki.eri.ucsb.edu/stadm/AD_Samba4<br />
* http://centrifying.blogspot.ru/2014/01/basics-using-group-policy-on-unixlinux.html<br />
* https://www.youtube.com/watch?v=2cJWnUZ8qLI<br />
<br />
= Ссылки =<br />
* https://wiki.archlinux.org/index.php/Active_Directory_Integration<br />
* [[Ввод в домен на базе Windows 2003]]<br />
* https://fedorahosted.org/sssd/wiki/Configuring_sssd_with_ad_server<br />
* https://wiki.samba.org/index.php/Setup_Samba_as_an_AD_Domain_Member<br />
<br />
<br />
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}}<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}<br />
<br />
[[Категория:Active Directory]]</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=ActiveDirectory/Login&diff=45530ActiveDirectory/Login2019-08-01T07:31:22Z<p>Корнеечев Евгений: /* Настройка ролей и привилегий */</p>
<hr />
<div><br />
Инструкция по вводу рабочей станции под управлением ALT Linux в домен Active Directory (работающий под Windows или под [[SambaAD|Samba в режиме AD DC]]).<br />
Устаревшая инструкция: [[Ввод в домен на базе Windows 2003]]<br />
{{Attention|Если Ваш домен имеет суффикс .local - необходимо отключить avahi-daemon (подробнее [[ActiveDirectory/Login#Примечания|ниже, пункт 2 примечаний]]).}}<br />
<br />
'''Параметры домена'''<br />
{|class="standard"<br />
!Параметр<br />
!Значение<br />
|-<br />
|Имя домена||SCHOOL.ALT<br />
|-<br />
|Рабочая группа||SCHOOL<br />
|-<br />
|Имя компьютера в Netbios||WS<br />
|-<br />
|Имя пользователя-администратора||Administrator<br />
|-<br />
|Пароль администратора||Pa$$word<br />
|}<br />
<br />
<br />
<div id="prep"></div><br />
<br />
= Подготовка =<br />
<br />
== Установка пакетов ==<br />
<br />
{{Attention|Аутентификация через winbind в новых сборках Samba не работает, используйте аутентификацию через {{pkg|task-auth-ad-sssd}}.}}<br />
<br />
С версии {{prg|alterator-auth-0.31-alt1}}<br />
<br />
apt-get install task-auth-ad-sssd<br />
<br />
{{note|Для старых версий: <source lang="text">apt-get install alterator-auth sssd-ad samba-common-tools</source>}}<br />
<br />
Требуемые версии:<br />
* {{pkg|pam-config}} >= 1.7.0-alt1<br />
* {{pkg|alterator-auth}} >= 0.26-alt1<br />
<br />
Возможно, следует [[Обновление ОС#В пределах версии|обновить]] установленный дистрибутив из репозитория.<br />
<br />
== Синхронизация времени ==<br />
<br />
С версии alterator-auth 0.28 синхронизация времени производится автоматически с контроллером домена.<br />
<br />
Для более ранних версий:<br />
<br />
===== Способ 1: Через {{cmd|net time}} =====<br />
<br />
net time set -S <имя домена><br />
<br />
===== Способ 2: По протоколу [https://tools.ietf.org/html/rfc867 RFC 867] =====<br />
<br />
На сервере включается через xinetd daytime-tcp <ref>Cм получение прав root: </ref>:<br />
<br />
# chkconfig --list | grep daytime-tcp<br />
daytime-tcp: вкл<br />
<br />
А на клиенте — служба {{cmd|settime-rfc867}}:<br />
<br />
chkconfig settime-rfc867 on<br />
service settime-rfc867 start<br />
<br />
===== Способ 3: Через Центр управления системой → Дата и время =====<br />
<br />
Включите флажок «Получать точное время с NTP-сервера» и укажите в поле справа {{cmd|pool.ntp.org}}. После этого нажмите кнопку «Применить».<br />
<br />
===== Способ 4: Через {{cmd|ntpdate}} =====<br />
<br />
ntpdate pool.ntp.org<br />
<div id="setup"></div><br />
<br />
= Ввод в домен в Центре управления системой = <br />
<br />
Предварительная настройка - [[PreliminaryActions]]<br />
<br />
В Центре управления системой перейдите в раздел {{path|Пользователи → Аутентификация}}<br />
<br />
Для ввода компьютера в Active Directory потребуется установить пакет {{pkg|task-auth-ad-sssd}} и все его зависимости.<br />
[[Файл:Qwe.png|мини|слева|x400px|Clear|]] <br />
<div style="clear:{{{1|both}}};"></div><br />
<br />
Выберите пункт «Домен Active Directory» и заполните поля. Нажмите кнопку «Применить».<br />
<br />
= Ввод в домен в командной строке =<br />
<br />
<pre># system-auth write ad school.alt host-15 school 'administrator' 'Pa$$word'<br />
Joined 'HOST-15' to dns domain 'school.alt'</pre><br />
<div id="check"></div><br />
= Проверка работы =<br />
<br />
<pre># getent passwd ivan<br />
ivan:*:10005:10002:ivan:/home/SCHOOL/ivan:/bin/bash<br />
<br />
# net ads info<br />
LDAP server: 192.168.1.1<br />
LDAP server name: c228.school.alt<br />
Realm: SCHOOL.ALT<br />
Bind Path: dc=SCHOOL,dc=ALT<br />
LDAP port: 389<br />
Server time: Ср, 22 апр 2015 16:22:47 MSK<br />
KDC server: 192.168.1.1<br />
Server time offset: -1<br />
<br />
# net ads testjoin<br />
Join is OK</pre><br />
<br />
{{Note| Вы не увидите пользователей из AD с помощью команды <code># getent passwd </code> на клиентской машине. Этот функционал отключен по-умолчанию для того чтобы сократить нагрузку на серверы. Поэтому для проверки необходимо точно указать имя пользователя <code># getent passwd имя_пользователя </code>. Список пользователей можно посмотреть на сервере командой <code># samba-tool user list</code>}}<br />
<br />
= Примечания =<br />
# Ограничение: имя домена должно указывать на DC. Если это не так, поправляйте /etc/krb5.conf и вводите вручную, либо в файл /etc/hosts добавьте строку с контроллером домена (кдц) ДОМЕН.local и перезапустите сеть. После этого проверьте из командной строки ping ДОМЕН.local и вводите в домен<br />
# При указании домена, имеющего суффикс '''.local''', потребуется на сервере и подключаемых компьютерах под управлением Linux <u>'''отключить''' службу {{cmd|avahi-daemon}}</u> - <code># chkconfig avahi-daemon off; reboot </code> (доменная зона "local." используется в технологии zeroconf).<br />
# Следите за синхронизацией времени на клиенте и сервере.<br />
# Для предотвращения кэширования имён пользователя отключите службу {{cmd|nscd}}.<br />
# В новых версиях Samba до запуска службы {{cmd|winbind}} должна запускаться служба {{cmd|smb}}.<br />
# Если возникает проблема просмотра билетов Kerberos под доменным пользователем, скопируйте правильный krb5.conf из samba: <source lang="bash">rm -f /etc/krb5.conf<br />
cp /var/lib/samba/smb_krb5/krb5.conf* /etc/krb5.conf</source><br />
# Для возможности входа в ОС под доменным пользователем при его недоступности можно включить опцию кэширования учетных данных в конфиге SSSD (подробнее [https://www.altlinux.org/SSSD/AD#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_sssd-.D0.BC.D0.BE.D0.B4.D1.83.D0.BB.D1.8F тут], опция '''cache_credentials''')<br />
<br />
= Настройка окна входа =<br />
<br />
== Настройка LightDM ==<br />
<br />
В {{path|/etc/lightdm/lightdm.conf}} раскомментируйте строку в группе {{cmd|[SeatDefaults]}}:<br />
greeter-hide-users=true<br />
<br />
Это позволит вводить имя пользователя вручную, а не прокручивать огромный список доступных доменныx пользователей.<br />
<br />
Также полезно выключить выбор языка. В файле {{path|/etc/lightdm/lightdm-gtk-greeter.conf}} в группе {{cmd|[greeter]}} укажите<br />
show-language-selector=false<br />
<br />
В новых версиях lightdm-gtk-greeter можно указать кнопки явно:<br />
show-indicators=a11y;power<br />
<br />
Полный перечень доступных кнопок:<br />
show-indicators=a11y;power;session;language<br />
<br />
= Отображение глобальных групп на локальные =<br />
<br />
== Установка модуля ролей ==<br />
apt-get install libnss-role<br />
<br />
== Настройка ролей и привилегий ==<br />
Добавляем роль локальных администраторов:<br />
# groupadd -r localadmins<br />
<br />
{{Note|Лучше использовать группу localadmins (вместо admins) по избежание конфликта с группой admins во FreeIPA}}<br />
<br />
Создаём привилегию на право удалённого доступа (по протоколу ssh):<br />
# groupadd -r remote<br />
<br />
Включаем удалённый доступ только для группы remote:<br />
# control sshd-allow-groups enabled<br />
# sed -i 's/AllowGroups.*/AllowGroups = remote/' /etc/openssh/sshd_config<br />
<br />
Настраиваем список привилегий для пользователей (для роли users):<br />
# roleadd users cdwriter cdrom audio proc radio camera floppy xgrp scanner uucp fuse<br />
<br />
Настраиваем список привилегий для администраторов (для роли admins):<br />
# roleadd localadmins wheel remote vboxusers<br />
<br />
Настраиваем отображение локальных привилегий, назначенных локальным ролям, на глобальные группы безопасности:<br />
# roleadd 'Domain Users' users<br />
# roleadd 'Domain Admins' localadmins<br />
<br />
Просматриваем список назначенных ролей и привилегий:<br />
# rolelst<br />
# id ivan<br />
<br />
Данная настройка назначает заданный список локальных групп (привилегий) всем пользователям, входящим в заданные локальные группы (роли). А также назначает локальные роли для глобальных групп в домене.<br />
<br />
Соответственно, если надо выдать права администраторов АРМ пользователям, которые не будут являться Domain Admins,<br />
то нужно завести новую группу в AD (например, PC Admins), добавить туда необходимых пользователей.<br />
Затем на АРМ добавить роль для данной группы:<br />
# roleadd 'PC Admins' localadmins<br />
# rolelst<br />
users: cdwriter cdrom audio video proc radio camera floppy xgrp scanner uucp vboxusers fuse tsusers<br />
localadmins: wheel<br />
domain users: users<br />
domain admins: localadmins<br />
pc admins: localadmins<br />
<br />
После этого (и после разрешения [[sudo]] для группы wheel) под пользователем входящим в группу PC Admins<br />
можно запускать команду повышения прав sudo.<br />
<pre>user@alt8 ~ $ su - petrov<br />
Password: <br />
petrov@alt8 ~ $ id<br />
uid=445010929(petrov) gid=445000513(domain users) группы=445000513(domain users),10(wheel),14(uucp),19(proc),<br />
22(cdrom),71(floppy),80(cdwriter),81(audio),83(radio),100(users),458(tsusers), 459(localadmins),466(fuse),468(video),<br />
480(camera),492(vboxusers),498(xgrp),499(scanner),445010930(pc admins)<br />
petrov@alt8 ~ $ sudo apt-get update<br />
Пароль:<br />
Получено: 1 http://ftp.altlinux.org p8/branch/x86_64 release [880B]<br />
Получено: 2 http://ftp.altlinux.org p8/branch/x86_64-i586 release [537B]<br />
Получено: 3 http://ftp.altlinux.org p8/branch/noarch release [673B]<br />
Получено 2090B за 0s (36,9kB/s).<br />
Найдено http://ftp.altlinux.org p8/branch/x86_64/classic pkglist<br />
Найдено http://ftp.altlinux.org p8/branch/x86_64/classic release<br />
Найдено http://ftp.altlinux.org p8/branch/x86_64-i586/classic pkglist<br />
Найдено http://ftp.altlinux.org p8/branch/x86_64-i586/classic release<br />
Найдено http://ftp.altlinux.org p8/branch/noarch/classic pkglist<br />
Найдено http://ftp.altlinux.org p8/branch/noarch/classic release<br />
Чтение списков пакетов... Завершено<br />
Построение дерева зависимостей... Завершено<br />
</pre><br />
<br />
= Подключение файловых ресурсов =<br />
<br />
Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).<br />
<br />
== Через gvfs ==<br />
<br />
{{note|Способ актуален для дистрибутивов, использующих gvfs (например, Кентавр, Simply Linux, Basealt Workstation, СПТ).}}<br />
<br />
Недостаток такого способа — необходимо открыть ресурс в файловом менеджере (Caja, Pcmanfm). Однако можно открывать любые ресурсы на любых серверах, входящие в домен Active Directory.<br />
<br />
1. Устанавливаем необходимые пакеты (с правами root):<br />
apt-get install fuse-gvfs gvfs-backend-smb gvfs-utils<br />
<br />
2. Включаем для пользователя в группу ''fuse'' (с правами root):<br />
gpasswd -a <пользователь> fuse<br />
<br />
Как включить доменных пользователей в локальную группу см. выше.<br />
<br />
{{Note|Следующий рецепт не работает:<br />
control fusermount public<br />
systemctl restart systemd-udevd<br />
}}<br />
<br />
3. Входим доменным пользователем<br />
<br />
4. Открываем ресурс в файловом менеджере (например, по адресу {{path|smb://server/sysvol}}). Ресурс смонтирован по пути {{path|/var/run/<uid_пользователя>/gvfs}}.<br />
<br />
Другой вариант (полезно для скриптов в автозапуске): <br />
gvfs-mount smb://server/sysvol/<br />
<br />
{{note|Если необходимо открывать что-то с ресурса в WINE, в {{cmd|winecfg}} добавьте диск с путём {{path|/var/run/<uid_пользователя>/gvfs}}.}}<br />
<br />
== Через pam_mount ==<br />
<br />
В этом случае заданный ресурс подключается с заданного сервера <u>автоматически при каждом входе</u> доменным пользователем.<br />
<br />
1. Устанавливаем {{pkg|pam_mount}}:<br />
apt-get install pam_mount<br />
<br />
2. Прописываем pam_mount в схему {{path|/etc/pam.d/system-auth-sss}}:<br />
<br />
(перед {{term|auth required pam_sss.so}})<br />
auth optional pam_mount.so<br />
и в секцию session:<br />
session optional pam_mount.so<br />
<br />
3. Устанавливаем правило монтирования ресурса в файле {{path|/etc/security/pam_mount.conf.xml}} (перед тегом <cifsmount>):<br />
<source lang="xml"><volume uid="10000-2000200000" fstype="cifs" server="c228" path="sysvol" mountpoint="~/share" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /></source><br />
где<br />
* '''uid="10000-2000200000"''' — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD)<br />
* '''server="c228"''' — имя сервера с ресурсом<br />
* '''path="sysvol"''' — имя файлового ресурса<br />
* '''mountpoint="~/share"''' — путь монтирования в домашней папке пользователя<br />
<br />
{{Attention|Обязательно указывайте настоящее имя сервера в параметре {{term|server}}, а не имя домена}}<br />
<br />
== Через autofs ==<br />
<br />
В этом случае заданный ресурс подключается <u>автоматически при каждом входе</u> пользователя.<br />
<br />
1. Устанавливаем {{pkg|kde5-autofs-shares}}:<br />
apt-get install kde5-autofs-shares<br />
<br />
2. Следуем инструкции по подключению в разделе [[Альт_Рабочая_станция_К_8_советы]].<br />
<br />
= Групповые политики =<br />
<br />
Групповые политики (GPO) на Linux применяются только контроль входа через [[SSSD]] и средства Centrify.<br />
<br />
== SSSD ==<br />
<br />
SSSD имеет внутреннюю поддержку следующих групповых политик:<br />
<br />
{|class="standard"<br />
!Политика<br />
|-<br />
|{{term|Allow log on locally}}<br />
|-<br />
|{{term|Allow log on through Remote Desktop Services}}<br />
|-<br />
|{{term|Access this computer from the network}}<br />
|-<br />
|{{term|Allow log on as a batch job}}<br />
|-<br />
|{{term|Allow log on as a service}}<br />
|}<br />
<br />
<br />
{{Note|Планируется поддержка других групповых политик средствами подключаемых модулей}}<br />
<br />
{{примечания}}<br />
<br />
{{note| Получение прав root см. [[root]] }}<br />
<br />
== Ссылки по групповым политикам ==<br />
* https://fedoraproject.org/wiki/Changes/SssdGpoBasedAccessControl<br />
* http://wiki.eri.ucsb.edu/stadm/AD_Samba4<br />
* http://centrifying.blogspot.ru/2014/01/basics-using-group-policy-on-unixlinux.html<br />
* https://www.youtube.com/watch?v=2cJWnUZ8qLI<br />
<br />
= Ссылки =<br />
* https://wiki.archlinux.org/index.php/Active_Directory_Integration<br />
* [[Ввод в домен на базе Windows 2003]]<br />
* https://fedorahosted.org/sssd/wiki/Configuring_sssd_with_ad_server<br />
* https://wiki.samba.org/index.php/Setup_Samba_as_an_AD_Domain_Member<br />
<br />
<br />
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}}<br />
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}<br />
<br />
[[Категория:Active Directory]]</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=ViPNet_CSP&diff=45529ViPNet CSP2019-08-01T06:07:24Z<p>Корнеечев Евгений: /* Сертификаты */</p>
<hr />
<div>== ViPNet CSP ==<br />
Сведения о продуктах и решениях ViPNet, распространенные вопросы и другая полезная<br />
информация собраны на сайте ОАО «ИнфоТеКС»:<br />
* Веб-портал документации ViPNet http://docs.infotecs.ru.<br />
* Описание продуктов ViPNet http://www.infotecs.ru/products/line/.<br />
* Информация о решениях ViPNet http://www.infotecs.ru/solutions/.<br />
* Сборник часто задаваемых вопросов (FAQ) http://www.infotecs.ru/support/faq/.<br />
* Форум пользователей продуктов ViPNet http://www.infotecs.ru/forum.<br />
* Законодательная база в сфере защиты информации http://www.infotecs.ru/laws/.<br />
<br />
{{Attention|Совет: не пытайтесь использовать Рутокены S под Linux и с ViPNet CSP. Хорошо работают Рутокены ЭЦП и Рутокены Lite.}}<br />
<br />
= Установка =<br />
<br />
Выдержка из руководства пользователя:<br />
<br />
Установка пакетов ViPNet CSP Linux<br />
Пакеты из состава ПО ViPNet CSP Linux следует устанавливать в следующем порядке:<br />
# itcs-licensing<br />
# itcs-entropy-gost itcs-known-path<br />
# itcs-winapi<br />
# itcs-csp-gost<br />
# Остальные пакеты — в любом порядке, при необходимости.<br />
<br />
= Пути к исполняемым файлам =<br />
<br />
Для того, чтобы не вводить полный путь к исполняемым файлам ViPNet CSP, выполните в терминале:<br />
export PATH=/opt/itcs/bin:$PATH<br />
<br />
= Просмотр лицензии =<br />
<br />
<source lang="text" highlight="1">$ license status --product csp_linux<br />
Product ID: csp_linux<br />
Version: 4<br />
S-code: 0x00000011<br />
State: Valid,Trial (14 days left)<br />
</source><br />
<br />
= Контейнеры =<br />
<br />
Контейнеры пользователя находятся в {{path|~/.itcs/vipnet-csp/containers/}}.<br />
<br />
Просмотр контейнеров:<br />
<source lang="text" highlight="1">$ csp-gost print_containers<br />
Printing available containers (for user):<br />
<br />
0. /home/user/.itcs/vipnet-csp/containers/le-b324dba8-7f71-45ad-b9f6-021ea2e9c924<br />
1. /home/user/.itcs/vipnet-csp/containers/12345678<br />
<br />
SUCCESSED</source><br />
<br />
= Сертификаты =<br />
<br />
Добавить сертификат удостоверяющего центра '''в хранилище CA''' из контейнера:<br />
<source lang="text" highlight="1">$ certmgr add_certificate --store CA --container le-b324dba8-7f71-45ad-b9f6-021ea2e9c924</source><br />
<br />
Добавить сертификат пользователя '''в хранилище My''' из контейнера:<br />
<source lang="text" highlight="1">$ certmgr add_certificate --store My --container 12345678</source><br />
<br />
Просмотреть свои сертификаты:<br />
<br />
<source lang="text" hightlight="1">$ certmgr print_certificates --store My | sed '/Fingerprint/ s/ //g'<br />
<br />
Enumerating certificates. Location=CurrentUser, store=My.<br />
<br />
Index: 0<br />
Issuer: БУ ВО "ЦИТ"<br />
Subject: БУ ВО ЦИТ тестовая<br />
Serial: 01 d4 6a ea f3 93 5e 80 00 00 08 f2 1a 89 00 0e <br />
Subject key identifier: 1e 90 ba cd 5a 98 e2 b5 f2 fd 59 26 e7 f6 48 bf 1a eb e6 1d <br />
Not before: 23-10-2018 19:11:00<br />
Not after: 23-10-2019 19:11:00<br />
Fingerprint(SHA1hash):4810535c95ecdf0f5814d6b36444b916fc3f232b<br />
<br />
<br />
Enumeration completed. 1 certificate(s) found.</source><br />
<br />
Обратите внимание, мы убрали пробелы для отпечатка ключа (он нам пригодится для подписи).<br />
<br />
В свежих версиях появилась графическая утилита certmgr-gui, упрощающая описанные выше операции с сертификатами.<br />
<br />
= Электронная подпись =<br />
<br />
== Создание ==<br />
<br />
Создание подписи для файла {{path|file}} в формате DER:<br />
<source lang="text" highlight="1">$ cryptofile sign --in=file --out=file.sig --fingerprint="4810535c95ecdf0f5814d6b36444b916fc3f232b" --nodetach --DER<br />
File to sign: file<br />
Signed output file: file.sig<br />
Hash algorithm OID (signer 0): 1.2.643.2.2.9<br />
ASN.1 encoding: DER<br />
Block size in bytes: 1024<br />
Signer's certificates: <br />
0 - Issuer: "ул. Ленина, д. 1", 003525249297, 1103525015593, RU, Урюпинск, 35 Волгоградская область, gos@gov1111.ru, "БУ ВО ""ЦИТ""", "БУ ВО ""ЦИТ""" Serial Number: 01d46aeaf3e80000008f21a89000e<br />
Before the end of the trial period less than 14 days, please register the product.<br />
<br />
SUCCESSED (6871.6197 ms)</source><br />
<br />
В результате появится запакованный файл с подписью {{path|file.sig}}.<br />
<br />
== Проверка ==<br />
<br />
<source lang="text" highlight="1">$ cryptofile verify --in=file.sig --out=file<br />
File to verify: file.sig<br />
Output data file: file<br />
Block size in bytes: 1024<br />
Progress:<br />
[100%]<br />
<br />
CMS SignedData v1<br />
<br />
* Signer 0<br />
<br />
Issuer: БУ ВО "ЦИТ"<br />
Subject: БУ ВО ЦИТ тестовая<br />
Serial: 01 d4 6a ea f3 93 5e 80 00 00 08 f2 1a 89 00 0e <br />
Subject key identifier: 1e 90 ba cd 5a 98 e2 b5 f2 fd 59 26 e7 f6 48 bf 1a eb e6 1d <br />
Not before: 23-10-2018 19:11:00<br />
Not after: 23-10-2019 19:11:00<br />
Fingerprint (SHA1 hash): 48 10 53 5c 95 ec df 0f 58 14 d6 b3 64 44 b9 16 fc 3f 23 2b <br />
<br />
Signature: CAdES-BES with signing time, SignerInfo v1<br />
<br />
Signing time: 04-04-2019 16:19:37 (local)<br />
<br />
Hash algorithm: 1.2.643.2.2.9<br />
<br />
Hash encryption algorithm: 1.2.643.2.2.19<br />
<br />
Signature is valid<br />
<br />
Certificate status: revocation status unknown, offline revocation check, partial chain (0x1010040)<br />
<br />
Certification path (building time 13.6710 ms)<br />
{<br />
Issuer: БУ ВО "ЦИТ"<br />
Subject: БУ ВО ЦИТ тестовая<br />
Serial: 01 d4 6a ea f3 93 5e 80 00 00 08 f2 1a 89 00 0e <br />
Subject key identifier: 1e 90 ba cd 5a 98 e2 b5 f2 fd 59 26 e7 f6 48 bf 1a eb e6 1d <br />
Not before: 23-10-2018 19:11:00<br />
Not after: 23-10-2019 19:11:00<br />
Fingerprint (SHA1 hash): 48 10 53 5c 95 ec df 0f 58 14 d6 b3 64 44 b9 16 fc 3f 23 2b <br />
---<br />
Certificate status: revocation status unknown, offline revocation check (0x1000040)<br />
}<br />
<br />
SUCCESSED (571.0904 ms)</source><br />
<br />
Будет распакован файл {{path|file}}.<br />
<br />
[[Категория:Enterprise Software]]</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=VipNet_Client&diff=45528VipNet Client2019-08-01T05:59:42Z<p>Корнеечев Евгений: </p>
<hr />
<div>VipNet Client — клиент VPN с шифрованием по алгоритмам ГОСТ производства компании ИнфоТеКС.<br />
<br />
Сайт производителя: https://infotecs.ru/product/vipnet-client-.html<br />
<br />
{{Attention|На дистрибутивах Альт работает только VipNet версии 4.5 или более поздней.}}<br />
<br />
= Установка =<br />
<br />
1. Получите дистрибутив {{path|Client for Linux 4.5.zip}} от ИнфоТеКС. С июля 2019 года есть новая версия - 4.6 с GUI.<br />
<br />
2. Распакуйте из архива пакет {{path|vipnetclient-4.5.0-3771.x86_64.rpm}}.<br />
<br />
3. Установите распакованный пакет RPM, кликнув на него.<br />
<br />
= Установка ключей = <br />
Откройте терминал и установите ключи для VipNet Сlient из файла dst:<br />
vipnetclient installkeys file.dst<br />
<br />
= Запуск =<br />
Запустите vipnetclient командой<br />
vipnetclient start<br />
<br />
= Просмотр состояния =<br />
vipnetclient info<br />
<br />
[[Категория:Enterprise Software]][[Категория:HOWTO]]</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=Sudo&diff=45527Sudo2019-08-01T05:56:31Z<p>Корнеечев Евгений: /* Специфика ALT Linux */</p>
<hr />
<div>{{DISPLAYTITLE:sudo}}<br />
== Введение ==<br />
Команда {{cmd|sudo}} используется<ref>Существует рекомендация известного эксперта в области ИТ-безопасности Александра Песляка (Solar Designer) [http://www.opennet.ru/openforum/vsluhforumID3/73378.html#18 ''не'' использовать sudo]</ref> для выполнения обычным<sup>*</sup> пользователем какой-либо другой команды с правами суперпользователя (root).<br />
<br />
== Специфика ALT Linux ==<br />
В ALT Linux {{pkg|sudo}} используется фреймворк [[control]] и штатное его состояние соответствует {{cmd|control sudo wheelonly}}, однако все равно необходимо<br />
раскоментировать (убрать '#' в начале строки) в нем строчку:<br />
<pre>WHEEL_USERS ALL=(ALL) ALL</pre> <br />
<br />
Также может понадобиться:<br />
* либо внесение требуемых пользователей в группу <tt>wheel</tt> (созданный при установке системы аккаунт добавляется в неё автоматически, иначе см. {{path|/etc/group}}),<br />
* либо при необходимости повыдавать какие-либо повышенные привилегии всем пользователям — выполнение команды {{cmd|control sudo public}} (не рекомендуется!).<br />
<br />
== Настройка ==<br />
Для того, чтобы настроить работу {{cmd|sudo}}, необходимо с применением административных привилегий отредактировать файл {{path|/etc/sudoers}} при помощи специальной команды {{cmd|visudo}}<ref>Любителям {{cmd|mcedit}}: всё-таки базовое знание {{cmd|vi}} весьма полезно, но если очень хочется — переопределите переменную окружения <tt>EDITOR</tt></ref> и внести туда записи о том, каким пользователям какие команды можно выполнять.<br />
<br />
Пример:<br />
user ALL = (ALL) ALL<br />
aptu ALL = NOPASSWD: /usr/bin/apt-get update<br />
<br />
Позволяет пользователю {{cmd|user}} запускать все приложения с правами суперпользователя (root), а пользователю {{cmd|aptu}} — только {{cmd|apt-get update}} притом пользователь {{cmd|user}} при выполнении команд должен будет вводить пароль от своей учётной записи, а у пользователя {{cmd|aptu}} пароль не будет спрашиваться при выполнении {{cmd|sudo apt-get update}}.<br />
<br />
Полная документация по формату конфигурационного файла находится в man-странице <tt>sudoers</tt>, начинать читать может быть проще с секции EXAMPLES.<br />
<br />
== Примечания ==<br />
{{примечания}}<br />
<br />
== Ссылки ==<br />
* [[su]]<br />
* http://wiki.debian.org/sudo<br />
{{Category navigation|title=root|category=root|sortkey={{SUBPAGENAME}}}}<br />
{{Category navigation|title=FAQ|category=FAQ|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=QuickStart/%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B&diff=45512QuickStart/Обновление системы2019-07-30T14:29:14Z<p>Корнеечев Евгений: </p>
<hr />
<div>== Обновление системы до актуального состояния ==<br />
<br />
После [[QuickStart/Install|установки системы]], её лучше сразу обновить до актуального состояния. Можно не обновлять и сразу приступать к работе только в том случае, если вы не планируете подключаться к сети или Интернету, не собираетесь устанавливать дополнительных программ, если всё железо успешно работает. Открываем терминал и вводим:<br />
<br />
<pre>$ su-</pre><br />
<br />
{{note|Здесь и далее по тексту используются общепринятые обозначения. Команды, выполняемые с рутовыми привилегиями, отмечены символом приглашения «'''#'''». Команды, выполняемые с правами обычного пользователя, отмечены символом приглашения «'''$'''». Эти символы набирать конечно же не надо! Всё, что этими символами не отмечено – результат выполнения команды, выводимый в ответ.}}<br />
{{attention|Прежде, чем двигаться дальше, посмотрите [[Su|эту статью]]. Наиболее часто встречающаяся ошибка новичков – работа с рутовыми привилегиями в среде обычного пользователя, когда вместо «'''su-'''» или «'''su -'''» дают команду «'''su'''».}}<br />
Получив рутовую консоль, набираем в ней:<br />
<br />
<pre><br />
# apt-get update<br />
# apt-get dist-upgrade<br />
# update-kernel<br />
# apt-get clean<br />
# reboot<br />
</pre><br />
<br />
После успешной загрузки на новом ядре (update-kernel) снова открываем терминал:<br />
<br />
<pre><br />
$ su-<br />
# remove-old-kernels<br />
</pre><br />
<br />
Такова общая схема обновления в пределах текущего бранча. А теперь подробнее со всеми тонкостями. Смотрим, какие репозитории сейчас подключены:<br />
<br />
<pre><br />
# apt-repo<br />
rpm [p8] ftp://ftp.altlinux.org/pub/distributions/ALTLinux p8/branch/x86_64 classic<br />
rpm [p8] ftp://ftp.altlinux.org/pub/distributions/ALTLinux p8/branch/x86_64-i586 classic<br />
rpm [p8] ftp://ftp.altlinux.org/pub/distributions/ALTLinux p8/branch/noarch classic<br />
</pre><br />
<br />
Допустим, нас это не устраивает. Допустим, в '''локальной сети''' уже есть NFS-сервер с зеркалом и мы хотим переключиться на него. Делаем следующее:<br />
<br />
<pre><br />
# apt-repo rm all<br />
# apt-repo<br />
# cat >> /etc/apt/sources.list <<-EOF<br />
rpm [p8] file:/ALT/p8 x86_64 classic<br />
rpm [p8] file:/ALT/p8 x86_64-i586 classic<br />
rpm [p8] file:/ALT/p8 noarch classic<br />
EOF<br />
# apt-repo<br />
rpm [p8] file:/ALT/p8 x86_64 classic<br />
rpm [p8] file:/ALT/p8 x86_64-i586 classic<br />
rpm [p8] file:/ALT/p8 noarch classic<br />
</pre><br />
<br />
Тем самым мы указали APT'у искать репозиторий на локальном диске в каталоге {{path|/ALT/p8}}, однако такого каталога ещё нет. Делаем следующее:<br />
<br />
<pre><br />
# mkdir /mnt/space<br />
# echo "NFSSERVER:/space /mnt/space nfs noauto,ro,soft,intr,nolock 0 0" >>/etc/fstab<br />
# mount /mnt/space && ls /mnt/space/<br />
</pre><br />
<br />
Здесь вместо '''NFSSERVER''' нужно вписать '''имя''' или '''IP-адрес''' сервера в своей локальной сети. По аналогии замените '''space''' своим названием экспортируемого каталога NFS. Если последняя команда отработала успешно, вы увидите содержимое этого каталога, иначе – смотрите '''dmesg'''. Обратите внимание: каждый раз после перезагрузки компьютера для обновления системы придётся заново набирать:<br />
<br />
<pre># mount /mnt/space</pre><br />
<br />
Так задумано! Не убирайте параметр '''noauto''', если не хотите внезапно получить не загружаемую систему, когда начнутся проблемы в локальной сети. Осталось связать каталог {{path|/ALT}} с тем, что мы только что смонтировали:<br />
<br />
<pre><br />
# ln -sf /mnt/space/ALTLinux /ALT<br />
# ls /ALT/p8/<br />
</pre><br />
<br />
Здесь {{path|/mnt/space/ALTLinux}} – каталог с зеркалом репозиториев, {{path|/mnt/space/ALTLinux/p8}} – каталог с зеркалом бранча [[P8]]. Пути конечно же вымышленные, замените их своим вариантом.<br />
<br />
На этом – ВСЁ, разовая подготовка завершена! Теперь все обновления пойдут не через Интернет, а с локального зеркала. Приступаем:<br />
<br />
<pre><br />
# apt-get update<br />
# apt-get dist-upgrade<br />
</pre><br />
<br />
{{attention|Не торопитесь нажимать {{button|ENTER}} или {{button|Y}}! Внимательно изучите, что APT предлагает удалить, заменить, обновить и установить нового. Вы правда согласны с его предложением!? Обратите внимание на форму второй команды. Никогда не добавляйте «'''-y'''», [[APT в ALT Linux/Советы по использованию#apt-get_upgrade|никогда не используйте]] «'''apt-get upgrade'''»: '''ALT''' – это не '''Debian''' и не '''Ubuntu'''! Не обновляйте систему, находясь в графической среде – в редких случаях это может привести к негативным последствиям. Надёжнее завершить сеанс и перейти в текстовый терминал ({{button|Ctrl-Alt-F2}}...{{button|Ctrl-Alt-F6}}), как вариант: в рутовой консоли дать команду «'''init 3'''», снова залогиниться под рутом в открывшемся на весь экран терминале и запускать вторую команду из него.}}<br />
Первая команда («'''apt-get update'''») только обновит индексы. Её надо давать всегда перед второй командой, а также перед тем, как что-либо устанавливать. Вторая команда («'''apt-get dist-upgrade'''») обновит систему, но ядро и образ диска начальной загрузки останутся нетронутыми. Так задумано! Если хотите обновить сразу и ядро, сначала загляните [[Kernels|СЮДА]] и дайте команду:<br />
<br />
<pre># update-kernel</pre><br />
<br />
другие варианты (обусловлены тем, что в актуальных дистрибутивах АЛЬТ преимущественно используется два типа ядер – '''std-def''' и '''un-def'''):<br />
<br />
<pre><br />
# update-kernel -t std-def<br />
# update-kernel -t un-def<br />
</pre><br />
<br />
Новое ядро загрузится только после перезапуска системы, который рекомендуется выполнить немедленно. Если с новым ядром что-то пойдёт не так, вы сможете вернуться к предыдущему варианту, выбрав его в начальном меню загрузчика. Если с новым ядром всё в порядке, не копите старые ядра, удаляйте их (только после перезагрузки):<br />
<br />
<pre># remove-old-kernels</pre><br />
<br />
другие варианты (с параметром «'''-n'''» ничего не изменится, вам только покажут, что будет удалено):<br />
<br />
<pre><br />
# remove-old-kernels -n -t std-def<br />
# remove-old-kernels -n -t un-def<br />
# remove-old-kernels -t std-def<br />
# remove-old-kernels -t un-def<br />
</pre><br />
<br />
Если пакеты ставились из сети и кэш больше не требуется, можно освободить место на диске, дав команду:<br />
<br />
<pre># apt-get clean</pre><br />
<br />
[[Категория:Руководства]]<br />
[[Категория:FAQ]]</div>Корнеечев Евгенийhttps://www.altlinux.org/index.php?title=%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B4%D1%80%D0%B0&diff=45511Обновление ядра2019-07-30T14:25:25Z<p>Корнеечев Евгений: +remove-old-kernels</p>
<hr />
<div>APT в дистрибутивах ALT Linux и в Sisyphus автоматом не обновляет ядра вместе с обновлением системы (см. настройки [[hold]] в apt.conf), поскольку обновление такого критичного компонента системы может привести к нежелательным последствиям. Вместо этого в систему могут быть поставлены пакеты нескольких ядер и модулей к разным ядрам одновременно. И LiLo, и [[Grub#Как_однократно_выполнить_загрузку_произвольного_пункта_меню?|Grub]] можно настроить таким образом, что простая перезагрузка (в том числе по reset) будет возвращать старое ядро.<br />
=update-kernel=<br />
{{Attention| Запуск утилиты {{prg|update-kernel}} должен производиться с [[Su|правами root]]}}<br />
<br />
Для обновления ядра предлагается использовать утилиту {{prg|update-kernel}}, находящуюся в одноимённом пакете. Установка, если ещё не установлено:<br />
<br />
<source lang="bash"><br />
apt-get update<br />
apt-get install update-kernel<br />
</source><br />
<br />
Пример использования (не забываем про {{cmd|apt-get update}}, если индексы сегодня ещё не обновлялись):<br />
<br />
<source lang="bash"><br />
update-kernel <br />
</source><br />
или, если хотите обновить/установить [[Kernel/Flavours|другой тип ядра]] (например un-def):<br />
<source lang="bash"><br />
update-kernel -t un-def<br />
</source><br />
<br />
{{note| Ключ -t и тип ядра (std-def, un-def и т.п.) надо указывать только если вы решили обновить ядро другого типа, т.к. по умолчанию обновляется текущий тип ядра.}}<br />
<br />
{{prg|update-kernel}} обновляет и пакеты с модулями ядра, но исходя из списка установленных для текущего ядра пакетов. Следует понимать, что у ядер разных типов модули могут быть собраны по-разному, и, тогда, {{prg|update-kernel}} может не доустановить нужное. Например, если у текущего ядра модуль собран в составе пакета с ядром, а у нового отдельно, то пакет с нужным модулем не будет доустановлен автоматически.<br />
<br />
В некоторых дистрибутивах apt по умолчанию не содержит подключенных репозитариев. Для проверки и/или настройки можно воспользоваться утилитой [[Apt-repo|apt-repo]] или просто проверить и отредактировать конфиги в [[Управление_пакетами|/etc/apt/]].<br />
<br />
=Обновление модулей ядра=<br />
<br />
{{prg|update-kernel}} обновляет и модули ядра, если в репозитории обновилось что-то из модулей без обновления ядра. Запуск как при обновлении ядра.<br />
<br />
=Доустановка модулей ядра=<br />
<br />
Иногда возникает необходимость доустановить модули. Сложностей нет, но есть ряд нюансов.<br />
<br />
{{Важно|Частая ошибка пользователей -- установка модуля от более нового ядра. Проблема возникает, когда установлено более старое ядро, чем в репозитории, а пользователь устанавливает необходимый модуль ядра, не обновив ядро. В результате в систему устанавливается новое ядро с одним-единственным модулем, установка которого запрошена. Для того, чтобы не было такой проблемы, надо вначале обновить ядро, а потом доустанавливать необходимые модули ядра. Если необходимо установить модули именно для старого ядра, можно воспользоваться [[archive|архивом репозитория]] аналогично ситуации с установкой старого ядра.}}<br />
<br />
{{Важно|Более редкая ошибка -- это установка модуля ядра другой сборочной ветки (std-def, un-def и т.п.) называемой в жаргоне флейвором (тип, вариант сборки ядра). Для предотвращения этого (если модуль есть только в другой ветке) надо перейти сначала на другую сборочную ветку с помощью команды {{prg|update-kernel}}.}}<br />
<source lang="bash"><br />
update-kernel -t <новый Flavour><br />
</source><br />
где <br />
<новый flavour> = std-def, un-def и т.п. См. [[kernel/Flavours]] <br />
<br />
После этого уже можно обновлять модуль ядра. Например, мы хотим перейти на ветку un-def и установить модуль fglrx:<br />
<br />
<source lang="bash"><br />
update-kernel -t un-def<br />
apt-get install kernel-modules-fglrx-un-def<br />
</source><br />
<br />
=Установка старого ядра=<br />
Иногда требуется установить старое ядро. [[FAQ#RET_OLD_KERNEL | Описание процесса]].<br />
<br />
=Удаление старых версий ядра=<br />
После успешной загрузки на обновленном ядре можно удалить старое:<br />
<source lang="bash"><br />
remove-old-kernels<br />
</source><br />
=Ссылки=<br />
* [https://bugzilla.altlinux.org/show_bug.cgi?id=35390 #35390]: Обновление ядра на Таволге требует ручной доработки<br />
<br />
{{Category navigation|title=Kernel|category=Kernel}}<br />
[[Категория:Upgrade]]<br />
{{Category navigation|title=Обновление|category=Upgrade|sortkey={{SUBPAGENAME}}}}</div>Корнеечев Евгений