Архив метки: xrdp

1С:Предприятие 8.3 на Astra Linux

Установим и настроим 1С:Предприятие 8.3 на OC Astra Linux. Работать программа может на свободном терминальном сервере XRDP для удобного подключения по протоколу RDP.  Из всех вариантов этот вариант меня порадовала больше всего.

Введение

Произведём установку и настройку программы «1С:Предприятие 8.3» c конфигурацией «Бухгалтерия предприятия (базовая)» с программной и аппаратной лицензией. Установка будет производиться на сервер работающий под управлением Astra Linux Common Edition 2.12.44. Сделаем удаленный доступ с помощью XRDP который позволит одновременно сидеть на сервере нескольким пользователям по протоколу RDP.

Требования, которые предъявляет разработчик к системам на которых может работать их продукты, вы можете найти на странице Системные требования «1С:Предприятия 8».

После установки программы, в справке по пути: «1С:Предприятие» — «Работа пользователя» — «Особенности работы в Linux», можно ознакомиться с нюансами работы системы.

Многие компании, занимающиеся 1С, будут советовать вам приобрести для работы в системе именно систему Windows, обосновывая это большей надежностью и удобством. Имейте в виду, что при продаже Windows продавец, согласно политике компании, получает приличное вознаграждение, что вызывает у многих естественное желание продать побольше. В ряде случаев действительно придется использовать систему Windows, но не факт, что она подойдёт именно вам.

Платформа и конфигурация 1С:Предприятие для Linux

В документах, которые вы получили после приобретения программного продукта семейства 1С, вы найдете регистрационные данные которые необходимы для регистрации на портале поддержки 1C:Портал поддержки. После регистрации и активации своего продукта, вы получите доступ для скачивания всего необходимого.

Иногда компании, в которых вы приобретаете продукт, может зарегистрировать продукт за вас. Уточните этот момент перед тем, как зарегистрируетесь сами.

Различие Базовой и Проф конфигурации

К выбору версии надо подходить очень аккуратно и четко понимать, что и в каком виде нужно именно вам. Не стоит идти на уловки компаний — дилеров, не спешить с приобретением ПРОФ версии и подписки ИТС.

Рассмотрим кратко основные отличия:

  • Базовая версия — при этом выборе вы можете вести только одну организацию в одной базе. Таких баз можно вести сколько угодно, но для каждой организации будет своя база. Плюс заключается в том, что вы всегда сможете сами обновляться с официального сайта поддержки, не прибегая к помощи сторонних специалистов. Но есть и минус — работать сможет только один пользователь. Ни о какой совместной работе в базе нескольких человек, не может быть и речи.

Если вы не планируйте вносить изменения в конфигурацию, то и нет необходимости работать с базой одновременно нескольким пользователям. В этом случае базовая версия именно то, что вам и нужно.

  • ПРОФ версия — как только вы перешли на эту версию, обновления будут доступны только при подписке ИТС. Появится возможность вносить изменения в конфигурацию, работать нескольким пользователям и вести несколько фирм в одной базе.

Важно иметь в виду, что при переходе на ПРОФ версию, вы полностью будете зависеть от той компании, в которой оформили подписку ИТС. Таких компаний много, важно выбрать хорошую и надёжную. Лучше, если эту компанию вам порекомендуют те, которым вы доверяете.

Вот вопрос-ответ службы поддержки 1С на два моих вопроса.

Версию ПРОФ в отличии от БАЗОВОЙ можно обновлять только при активной подписке на ИТС? — Да.

В моем случае, для тестирования без приобретения подписки ИТС, я не смогу обновлять версию ПРОФ легальными способами? — Да.

В практике мне приходилось сталкиваться с тем, что иногда компания использует старую версию программы (например 8.1) и хочет перейти и обновиться до новой версии 8.3, но продавец у которого они приобретали продукт говорит, что надо купить новую версию. Каково же было их удивление, когда я обновлял им программу до последней версии и показывал, как надо обновляться в дальнейшем.

Программная и аппаратная лицензия 1С:Предприятие

Это, пожалуй, один из самых важных моментов, который нужно учесть сразу. Программная лицензия стоит дешевле, но вызывает много проблем при смене оборудования. Как правило, отдел лицензирования всегда идёт на встречу и может предоставить даже большее количество активаций при определенных условиях, но это не всегда удобно. Использование USB ключей всё упрощает и развязывает руки при обновлении оборудования.

В практике встречался случай, когда компания приобрела программную лицензию на 5 пользователей и активировала её не для сервера, а для каждого пользовательского компьютера. Поначалу все было нормально, но когда база увеличилась, начались проблемы со скоростью. Использование скоростного диска SSD и перевода сети на 1 Gbit сильно улучшило ситуацию.

Варианты разворачивания сети 1С:Предприятие

Все хотят работать в программе 1С быстро, как на предприятии, так и дома. Все это возможно оптимально настроить различными способами.

Существует два вида работы базы данных:

  1. Файловая база данных — самый простой вариант и подходит для небольших организаций идеально. Этот вариант мы и рассмотрим в данной статье.
  2. База данных SQL — более сложный вариант и ориентирован на большое количество пользователей. При небольшом количестве пользователей нет смысла использовать такой вариант. Для работы будет нужна серверная лицензия, она стоит около 80 000 рублей.

Внимание!
Сервер 1С:Предприятия 8.3 под Linux может запуститься и без лицензии, при этом он позволяет иметь в кластере только один рабочий процесс, который допускает не более 12 клиентских соединений. Однако такая работа сервера не дает права использования программного обеспечения сервера 1С:Предприятия без покупки продукта «1С:Предприятие 8.3 Лицензия на сервер». Об этом сказано в лицензионном соглашении любой основной поставки 1С:Предприятия.

Оптимальное использование файловой базы данных 1C:Предприятие

Когда вы используйте файловую базу данных, расположенную в локальной сети, и клиенты подключаются к ней, скорость работы в программе будет зависеть от скорости локальной сети и от мощности самого компьютера. Для небольших баз такой вариант приемлем, но очень быстро базы увеличиваются и работа в программе становится все медленней и медленней, за исключением компьютера на котором расположена сама база.

Существует два варианта улучшения скорости работы в файловой базе данных:

  • Использование локальной сети 1 Gbit и диска SSD для базы данных — на какой-то момент это улучшит положение, но как показывает практика -ненадолго.
  • Использование терминального сервера — при таком варианте приобретается один мощный компьютер, на котором устанавливается программа, а все пользователи удалено подключаются к компьютеру используя свой профиль. Получится, что на одном компьютере будет одновременно несколько пользователей, не видя друг друга. По сети передается только картинка, а вся работа производится на сервере. Можно настроить удаленный доступ из интернета, и тогда избранные пользователи смогут используя медленный интернет спокойно работать в программе с домашнего компьютера.

Конечно, вы можете приобрести серверную версию Windows, так как только там легально можно использовать терминальный режим. Некоторые, по многочисленным советам в сети, переводят обычные версии Windows в терминальный режим, используя нелегальные варианты. Мой выбор — терминальный сервер Linux, который удовлетворил все мои требования и пожелания.

Установка терминального сервера XRDP

Устанавливаем сервер для возможности удаленного доступа к серверу несколькими пользователями:

apt install xrdp xorgxrdp

Проверяем статус:

# systemctl status xrdp
 xrdp.service - xrdp daemon
   Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2022-04-19 20:59:44 MSK; 2min 27s ago
      Docs: man:xrdp(8)
            man:xrdp.ini(5)
 Main PID: 2443 (xrdp)
   CGroup: /system.slice/xrdp.service
           └─2443 /usr/sbin/xrdp --nodaemon

апр 19 20:59:44 1c systemd[1]: Starting xrdp daemon...
апр 19 20:59:44 1c systemd[1]: Started xrdp daemon.
апр 19 20:59:44 1c xrdp[2443]: [INFO ] starting xrdp with pid 2443
апр 19 20:59:44 1c xrdp[2443]: [INFO ] address [0.0.0.0] port [3389] mode 1
апр 19 20:59:44 1c xrdp[2443]: [INFO ] listening to port 3389 on 0.0.0.0
апр 19 20:59:44 1c xrdp[2443]: [INFO ] xrdp_listen_pp done

Всё работает и добавлено на автозагрузку при запуске системы.

Используя протокол RDP подключаемся к серверу и работаем.

Так быстро я еще никогда не разворачивал XRDP. Всё работает из коробки и не требует никаких дополнительных действий.

Установка 1С Предприятие 8.3 на Astra Linux

Пошагово пройдем путь установки программы на систему Astra Linux.

Предварительная подготовка

Для установки необходимо в консоли зайти под пользователем root:

sevo44@orel-astra:~$ su -
Пароль: 
root@orel-astra:~#

В случае если вы забыли пароль или его просто нет, необходимо выполнить в консоли команду которая создаст новый пароль:

passwd root

Создадим папки на сервере, в которую разместим файлы для установки платформы, программного обеспечения для работы с Hasp ключами USB и папку баз данных:

mkdir /root/srv1cv83-install
mkdir /home/base1c

Установим пакеты, которые необходимы для установки и корректной работы программы:

apt install libwebkitgtk-3.0.0 imagemagick unixodbc libgsf-bin t1utils

Установка 1С:Предприятие 8.3

Скачиваем с сайта поддержки 1С  «Технологическая платформа 1С:Предприятия (64-bit) для Linux».

Распаковываем архив в папку srv1cv83-install с помощью консоли:

cd /root/srv1cv83-install 
tar xvzf server64_8_3_20_1789.tar.gz 
ls
= вывод команды =
LibericaJDK-8-9-10-licenses.pdf Liberica-Notice.txt setup-full-8.3.20.1789-x86_64.run server64_8_3_20_1789.tar.gz

Запускаем установку:

./setup-full-8.3.20.1789-x86_64.run

Работа с 1С:Предприятие в системе Linux

Проверим какие процессы запущены:

ps aux|grep 1c
= вывод команды =
root 3391 0.0 0.0 12788 932 pts/0 S+ 01:02 0:00 grep 1c

= вывод команды ! при запущенной программе =
root 3399 15.3 4.6 635036 146160 ? Ssl 01:04 0:01 /opt/1cv8/x86_64/8.3.20.1789/1cv8s
root 3432 0.0 0.0 12788 932 pts/0 S+ 01:04 0:00 grep 1c

Активирование программной лицензии 1С:Предприятие

В активировании программной лицензии есть один нюанс. Когда вы запустите программу, она сообщит вам о необходимости её активировать, если вы начнете вводить пин-код ,то он окажется на 1 знак больше, чем требуемое количество.

Для активации однопользовательской программной лицензии, необходимо запустить программу 1С:Предприятие под пользователем root, только тогда при активации появится необходимое поле.

Установка HASP для работы с USB ключом

Программное обеспечение для работы с USB ключом будем использовать от компании Etersoft.

Смотрим какая есть последняя версия на сайте и скачиваем последнюю.

Перейдем в папку и скачаем туда пакет:

cd /root/srv1cv83-install
wget http://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/AstraLinux/orel/haspd_8.23-eter2astra_amd64.deb

Установим:

dpkg -i haspd_*.deb 
= вывод команды =
Выбор ранее невыбранного пакета haspd.
(Чтение базы данных … на данный момент установлено 217439 файлов и каталогов.)
Подготовка к распаковке haspd_8.23-eter2astra_amd64.deb …
Распаковывается haspd (8.23-eter2astra) …
Настраивается пакет haspd (8.23-eter2astra) …
Обрабатываются триггеры для systemd (232-25+deb9u12astra.ce9) …

Запустим и проверим статус:

service haspd start
service haspd status
= вывод команды =
 haspd.service - LSB: Hasp keys support
   Loaded: loaded (/etc/init.d/haspd; generated; vendor preset: enabled)
   Active: active (running) since Tue 2022-04-19 01:12:33 MSK; 9s ago
      Docs: man:systemd-sysv-generator(8)
  Process: 3629 ExecStart=/etc/init.d/haspd start (code=exited, status=0/SUCCESS)
    Tasks: 10 (limit: 4915)
  CGroup: /system.slice/haspd.service
          ├─3634 aksusbd
          └─3645 hasplmd -s

апр 19 01:12:33 orel-astra systemd[1]: Starting LSB: Hasp keys support...
апр 19 01:12:33 orel-astra aksusbd[3634]: loaded, daemon version: 8.23.1.119312, key API (USB) version: 3
апр 19 01:12:33 orel-astra haspd[3629]: Running aksusbd... [ DONE ]
апр 19 01:12:33 orel-astra hasplmd[3645]: HASP LM v25.2.1.119312 loaded
апр 19 01:12:33 orel-astra haspd[3629]: Running hasplmd... [ DONE ]
апр 19 01:12:33 orel-astra systemd[1]: Started LSB: Hasp keys support.

Все хорошо. Осталось подключить USB ключ.

В системе Proxmox проброс нужного порта в виртуальную машину делается очень просто:

Для проверки работы ключа откроем браузер по ссылке http://127.0.0.1:1947 и смотрим появление нашего ключа в списке:

Создание файловой базы данных 1C:Предприятие

В Linux для создания баз из шаблона вначале необходимо установить шаблон в необходимую папку, а потом указать в настройке откуда брать шаблоны.

Для этих действий необходимо чтобы в системе была установлена Wine. К сожалению, без этого нельзя запустить файлы exe. Других способов установки базы из шаблона в системе Linux я не нашел.

В моем случае, я скопировал папку с базой в нужное место и выдал необходимые права:

chmod -R 777 /home/base1c

Права надо выдавать только после того, как скопируете все необходимые базы 1С!

Запуск 1C:Предприятие

В меню появилась ссылка на запуск программы:

При первом запуске появляется сообщение о необходимости установки шрифтов. В моем случае все шрифты уже были и отображались корректно, но при сохранении документов в PDF были проблемы с отображением шрифтов.

Переходим в необходимое место и смотрим информацию которая там указывается.

Проблемы со шрифтами

Не сразу заметил проблему со шрифтами при экспорте в pdf файл. Часть текста обрезалась, и информация была не полной. Можно ставить пакеты со шрифтами, но достаточно иметь шрифты по пути /usr/share/fonts/msttcorefonts.

Скачиваем и распаковываем архив в нужное место под пользователем root:

cd /usr/share/fonts
wget https://sevo44.ru/sevo44/download/msttcorefonts.tar.gz
tar xvzf msttcorefonts.tar.gz

Можно установить специальный пакет, который установит необходимые шрифты:

wget https://download.etersoft.ru/pub/Etersoft/WINE@Etersoft/2.1.4/fonts/x86_64/AstraLinux/orel/fonts-ttf-ms_1.0-eter4astra_all.deb
dpkg -i fonts-ttf-ms_1.0-eter4astra_all.deb

Какой вариант выбрать, решать вам. Надеюсь, разработчики рано или поздно для версии Linux перестанут использовать эти шрифты.

Вот так это выглядит, когда мы еще не установили необходимые шрифты:

С установленными шрифтами видно, что шрифт стал другой, но это малозаметно:

Обновление платформы 1С:Предприятие в Linux

Обновление производится по тому же принципу установки программы, описанному выше. Скачиваем новые пакеты и заново устанавливаем.

Обновление базовой конфигурации 1C:Предприятие в Linux

Обновление для ПРОФ — это совсем другая история.

Обновлять конфигурацию необходимо в режиме конфигуратора базы. Конфигурация — Обновить конфигурацию — Поиск доступных обновлений указываем наш логин и пароль от личного кабинета пользователя, и обновляемся.

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

Резервное копирование

Механизм резервного копирования в самой программе не работает.

Общий план резервного копирования следующий:

  • Останавливаем все запущенные процессы 1С;
  • Делаем резервную копию методом архивирования папки с базой.

Обычно я держу на сервере только 3 последние резервных копии, так как другой сервер забирает резервные копии и хранит их за гораздо больший период.

Смотрим, какие процессы запущены

ps aux|grep 1cv8
= вывод команды =
sevo44 1626 105 45.3 3634576 1825392 ? Sl 10:10 14:38 /opt/1cv8/x86_64/8.3.20.1789/1cv8c ENTERPRISE /IBName"Информационная база" /AppAutoCheckMode
root 1801 0.0 0.0 12788 968 pts/0 S+ 10:23 0:00 grep 1cv8

Создадим необходимые папки:

mkdir /root/{bin,backup1c}

Создаем скрипт, который будет выполнять все необходимые действия:

vim /root/bin/backup1c.sh
= необходимый код =
#!/bin/sh
# Дата в формате 2015-09-29_04-10
date_time=`date +"%Y-%m-%d_%H-%M"`
# Путь сохранения копии
bk_dir='/root/backup1c'

# Вначале смотрим в Диспетчер задач название приложения
# затем смотрим вывод -> ps aux | grep 1cv8c
# Выполняем команду, которая завершит все процессы
# Если не писать никакого сигнала, то команда выполнит
# SIGTERM - немедленно завершает процесс, но обрабатывается программой,
# поэтому позволяет ей завершить дочерние процессы и освободить все ресурсы.
# killall - завершит все имеющиеся процессы с таким именем

# Закрываем 1с
killall 1cv8c

# Создаем файл с датой создания базы
echo `date +"%Y-%m-%d_%H-%M"` > /root/backup1c/timestamp

# Создаем базу через 10 секунд
sleep 10
/bin/tar -cvzf $bk_dir/dolotov1cbase_$date_time.tar.gz /home/base1c/dolotov1cbase/*
# Удаляем копии старше 3-x дней
/usr/bin/find $bk_dir -type f -mtime +1 -exec rm {} \;

После создания скрипта делаем его исполнительным:

chmod +x /root/bin/backup1c.sh

Для проверки обязательно запустим и проверим, как он отработает:

sh /root/bin/backup1c.sh
= вывод команды =
/bin/tar: Удаляется начальный `/' из имен объектов
/home/base1c/dolotov1cbase/1CHelpIndex/
/home/base1c/dolotov1cbase/1CHelpIndex/userVocabulary_ru.bin
/home/base1c/dolotov1cbase/1CHelpIndex/userDocs_ru.bin
/home/base1c/dolotov1cbase/1CHelpIndex/userPostings_ru.bin
/home/base1c/dolotov1cbase/1Cv8.1CD
/home/base1c/dolotov1cbase/1Cv8.1CD.cfl
/home/base1c/dolotov1cbase/1Cv8.1CL
/home/base1c/dolotov1cbase/1Cv8.1CL.cfl
/home/base1c/dolotov1cbase/1Cv8.cgr.cfl
/home/base1c/dolotov1cbase/1Cv8FTxt/
/home/base1c/dolotov1cbase/1Cv8FTxt/checkoutReasonProtect.dat
/home/base1c/dolotov1cbase/1Cv8FTxt/checkout.dat
/home/base1c/dolotov1cbase/1Cv8FTxt/checkoutReasonFile.dat
/home/base1c/dolotov1cbase/1Cv8IntegSrvc/
/home/base1c/dolotov1cbase/1Cv8IntegSrvc/exec.lck.cfl
/home/base1c/dolotov1cbase/1Cv8JobScheduler/
/home/base1c/dolotov1cbase/1Cv8JobScheduler/exec.lck.cfl
/home/base1c/dolotov1cbase/1Cv8JobScheduler/jobs.dat
/home/base1c/dolotov1cbase/1Cv8JobScheduler/jobs.dat.cfl
/home/base1c/dolotov1cbase/1Cv8JobScheduler/exec.lck
/home/base1c/dolotov1cbase/1Cv8Log/
/home/base1c/dolotov1cbase/1Cv8Log/1Cv8.lgd
/home/base1c/dolotov1cbase/1Cv8Temp/
/home/base1c/dolotov1cbase/1Cv8tmp.1CD
/home/base1c/dolotov1cbase/1Cv8tmp.1CD.cfl
/home/base1c/dolotov1cbase/1Cv8tmp.1CL
/home/base1c/dolotov1cbase/1Cv8tmp.1CL.cfl
/home/base1c/dolotov1cbase/default.vrd
/home/base1c/dolotov1cbase/logcfg.xml

После успешной проверки добавляем скрипт на автоматическое выполнение по расписанию.

Открываем необходимый файл и добавляем нужный код:

vim /etc/crontab
= необходимый код =
### Backup1С
# ежедневно в 3 часа
00 3 * * * root /root/bin/backup1c.sh >/dev/null 2>&1

Согласно команде каждый день в 3:00 будет выполняться скрипт для создания ежедневного бэкапа.

Заключение

Установку и настройку 1С:Предприятие я выполнял на разных системах, но установка на Astra Linux была самая простая. Настройка терминального сервера XRDP для подключения пользователей по протоколу RDP оказалась беспроблемной, так как всё заработало без дополнительного вмешательства в настройку.

Может быть в системе Astra Linux из коробки и не так много программ в репозиториях, но то, что они все работают и стабильные — это факт. Графическая оболочку Fly, которая используется только в этом дистрибутиве, очень хорошо сделана, и все продумано максимально, но самое главное в этом то, что куда бы я не заходил, всё работает и нет ошибок.

Считаю, что использование Astra Linux под 1C:Предприятие — самый лучший вариант.

1С:Предприятие 8.3 на Linux

Установим и настроим 1С:Предприятие 8.3 на OC Debian. Работать программа будет на свободном терминальном сервере XRDP для удобного подключения с любой системы. Прощай популярный нелегальный перевод систем Windows в терминальный сервер.

Введение

Произведем установку и настройку программы «1С:Предприятие 8.3» c конфигурацией «Бухгалтерия предприятия (базовая)» с программной и аппаратной лицензией. Установка будет производится на подготовленный сервер терминалов работающий под управлением XRDP в операционной системе Debian 8.

В системе Debian 9 все настраивается аналогичным образом. Единственное что необходимо это выбрать правильный пакет для HASP.

Многие конторы занимающиеся 1С будут советовать вам приобретать для работы в системе именно систему Windows обосновывая это большей надежностью и удобством. Имейте в виду что при продаже Windows продавец, согласно политике компании, получает приличное вознаграждение что вызывает у многих буйное желание продать побольше товаров МайкраСофака. Вам ведь никто не скажет что в системе Linux люди не используют антивирусы 🙂 там вирусы не живут.

Все действия производятся с учетом настройки сервера терминалов рассмотренной в статье «XRDP терминальный сервер Linux«.

Платформа и конфигурация 1С:Предприятие для Linux

В документах, которые вы получили после приобретения программного продукта семейства 1С, вы найдете регистрационные данные которые необходимы для регистрации на портале поддержки 1C:Портал поддержки. После регистрации и активирования своего продукта вы получите доступ для скачивания всего необходимого.

Иногда компании, в которых вы приобретаете продукт, может зарегистрировать продукт за вас. Уточните этот момент перед тем как регистрироваться самим.

Различие Базовой и Проф конфигурации

К выборе версии надо подходить очень аккуратно и не идти на развод торгующих компаний на подписку ИТС.

Компании обслуживающие 1С заинтересованы склонить вас на подписку и получать ежемесячный доход ничего не делая.

Рассмотрим кратко основные отличия:

  • Базовая версия — при этом выборе вы можете вести только одну организацию в одной базе. Можно таких баз вести сколько угодно но для каждой организации будет своя база. Плюс в том что вы всегда сможете сами обновляться с официального сайта поддержки не прибегая к помощи сторонних специалистов.

Если вы не планируйте вносить изменения в конфигурацию и пользоваться проверенной и стабильно работающей версией то это именно то что вам надо.

  • ПРОФ версия — как только вы перешли на эту версию про обновления можете забыть так как они будут доступны только при подписке ИТС. Появится возможность вносить изменения в конфигурацию и вести несколько фирм в одной базе но надо ли вам это решайте сами.

Самое главное имейте в виду что при переходе на ПРОФ вы полностью зависите от той компании в которой оформили подписку ИТС и от тех специалистов которые будут работать с вашей программой. Компаний много и тут важно выбрать хорошую. Лучше если это будет по рекомендации людей которым вы доверяете.

Вот вопрос-ответ службы поддержки 1С на два моих вопроса.

Версию ПРОФ в отличии от БАЗОВОЙ можно обновлять только при активной подписке на ИТС? — Да.

В моем случае для тестирования без приобретения подписки ИТС я не смогу обновлять верию ПРОФ легальными способами? — Да.

В практике сталкивался с тем что иногда компания сидит в старой версии программы (например 8.1) и хотят перейти и обновится до новой версии 8.3 но продавец у которого они приобретали продукт говорит что надо покупать новую версию. Какое было у них удивление когда я обновлял и ставил им последнюю версию и показывал как надо обновляться. Конечно я не затрагиваю момент обновление конфигурации с обновлением всех данных хотя и это при грамотном подходе возможно сделать с сохранением всех основных данных.

Программная и аппаратная лицензия 1С:Предприятие

Это пожалуй один из важных моментов которые нужно учесть сразу. Программная лицензия стоит дешевле но вызывает кучу проблем при смене оборудования. Не скрою что отдел лицензирование всегда идёт на встречу и может предоставить даже большее количество активаций при определенных условиях, но это не всегда удобно. Использование USB ключей всё упрощает и развязывает руки при обновлении оборудования  или оптимизации работы с 1С.

В практике был случай когда компания приобрела программную лицензию на 5 пользователей и активировало её не для сервера а для каждого пользовательского компьютера. По началу все было нормально но когда база увеличилась начались проблемы со скоростью работы и даже использование скоростного диска SSD и перевода сети на 1 Gbit не сильно улучшило ситуацию.

Варианты разворачивания сети 1С:Предприятие

Все хотят работать в программе 1С быстро как на предприятии так и дома. Все это можно оптимально настроить разными способами с учетом требований эксплуатирующей организации.

Существует два вида работы базы данных:

  1. Файловая база данных — самый простой вариант и подходит идеально для небольших организаций. Этот вариант мы и рассмотрим в этой статье.
  2. База данных SQL — более сложный вариант и ориентирован на большое количество пользователей. При небольшом количестве пользователей нет смысла использовать такой вариант. Для работы будет нужна серверная лицензия которая стоит в районе 80 000 рублей.

Внимание!
Сервер 1С:Предприятия 8. под Linux может запуститься и без лицензии, при этом он позволяет иметь в кластере только один рабочий процесс, который допускает не более 12 клиентских соединений. Однако, такая работа сервера не дает права использования программного обеспечения сервера 1С:Предприятия без покупки продукта «1С:Предприятие 8. Лицензия на сервер». Об этом сказано в лицензионном соглашении любой основной поставки 1С:Предприятия.

Оптимальное использование файловой базы данных 1C:Предприятие

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

Существует два варианта улучшения скорости работы в файловой базе данных:

  • Использование локальной сети 1 Gbit и диска SSD для базы данных — на какой то момент это улучшит положение но как показала практика не на долго. Очень быстро пользователи привыкают к улучшению скорости и начинаются опять жалобы на зависания в работе.
  • Использование терминального сервера — при этом варианте в организацию приобретается один мощный компьютер на котором устанавливается программа и все пользователи удалено подключаются к компьютеру использую свой профиль. Получится что на одном компьютере будет одновременно сидеть несколько пользователей не видя друг друга. По сети передается только картинка а вся работа производится на сервере. Возможно настроить удаленный доступ из интернета и тогда избранные пользователи смогут используя медленный интернет спокойно работать в программе с домашнего компьютера.

Конечно вы можете приобрести серверную версию Windows так как только там легально можно использовать терминальный режим. Некоторые по многочисленным советам в сети переводят обычные версии Windows в терминальный режим используя нелегальные варианты. Мой выбор пал но терминальный сервер Linux который удовлетворил все мои пожелания и требования.

Установка 1С Предприятие 8.3 на Linux

Пошагово пройдем путь установки программы на систему Debian 8.

Предварительная подготовка

Создадим папки на сервере куда разместим все необходимые файлы для установки платформы,программного обеспечения для работы с Hasp ключами USB и для баз данных программы:

mkdir /root/1с
mkdir /root/1c/deb
mkdir /root/1c/hasp
mkdir /base1c

Установим пакеты которые необходимы для установки и корректной работы программы:

apt-get install imagemagick libwebkitgtk-1.0-0 libc6-i386 libgsf-bin libgsf-1-common

Изменим файл /etc/hosts для правильной работы с базами PostgreSQL если нам потребуется:

mcedit /etc/hosts
= вывод команды с необходимыми изменениями =
127.0.0.1 localhost
127.0.1.1 xrdp1c.sevo44.loc xrdp1c
# без этой строки базы в PostgreSQL из шаблона создаваться не будут
192.168.0.105 xrdp1c.sevo44.loc xrdp1c

# The following lines are desirable for IPv6 capable hosts
#::1 localhost ip6-localhost ip6-loopback
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters

Установка 1С:Предприятие 8.3

Скачиваем с сайта поддержки 1С два необходимых архива:

  • Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем
  • Клиент 1С:Предприятия (64-bit) для DEB-based Linux-систем

 Распаковываем архивы и кладём всё что там есть в папку /root/1c/deb:

cd /root/1c/deb 
ls -l
= вывод команды =
итого 734240
-rw-rw-r-- 1 root root 234390780 апр 27 04:18 1c-enterprise83-client_8.3.10-2252_amd64.deb
-rw-rw-r-- 1 root root 21241724 апр 27 04:18 1c-enterprise83-client-nls_8.3.10-2252_amd64.deb
-rw-rw-r-- 1 root root 38098736 апр 27 04:18 1c-enterprise83-common_8.3.10-2252_amd64.deb
-rw-rw-r-- 1 root root 6994234 апр 27 04:18 1c-enterprise83-common-nls_8.3.10-2252_amd64.deb
-rw-rw-r-- 1 root root 205387286 апр 27 04:18 1c-enterprise83-server_8.3.10-2252_amd64.deb
-rw-rw-r-- 1 root root 69034756 апр 27 04:18 1c-enterprise83-server-nls_8.3.10-2252_amd64.deb
-rw-rw-r-- 1 root root 160004354 апр 27 04:18 1c-enterprise83-thin-client_8.3.10-2252_amd64.deb
-rw-rw-r-- 1 root root 16330304 апр 27 04:18 1c-enterprise83-thin-client-nls_8.3.10-2252_amd64.deb
-rw-rw-r-- 1 root root 347850 апр 27 04:18 1c-enterprise83-ws_8.3.10-2252_amd64.deb
-rw-rw-r-- 1 root root 15056 апр 27 04:18 1c-enterprise83-ws-nls_8.3.10-2252_amd64.deb

Пакеты с thin — это тонкий клиент. Нам он не нужен и можно удалить эти пакеты.
Пакеты nls нужно использовать в случае использования языков кроме русского.

Удалив всё лишнее, запустим установку:

dpkg -i *.deb
= вывод команды =
Выбор ранее не выбранного пакета 1c-enterprise83-client.
(Чтение базы данных … на данный момент установлено 89244 файла и каталога.)
Подготовка к распаковке 1c-enterprise83-client_8.3.10-2252_amd64.deb …
Распаковывается 1c-enterprise83-client (8.3.10-2252) …
Выбор ранее не выбранного пакета 1c-enterprise83-common.
Подготовка к распаковке 1c-enterprise83-common_8.3.10-2252_amd64.deb …
Распаковывается 1c-enterprise83-common (8.3.10-2252) …
Выбор ранее не выбранного пакета 1c-enterprise83-server.
Подготовка к распаковке 1c-enterprise83-server_8.3.10-2252_amd64.deb …
Распаковывается 1c-enterprise83-server (8.3.10-2252) …
Выбор ранее не выбранного пакета 1c-enterprise83-ws.
Подготовка к распаковке 1c-enterprise83-ws_8.3.10-2252_amd64.deb …
Распаковывается 1c-enterprise83-ws (8.3.10-2252) …
Настраивается пакет 1c-enterprise83-common (8.3.10-2252) …
Настраивается пакет 1c-enterprise83-server (8.3.10-2252) …
Настраивается пакет 1c-enterprise83-ws (8.3.10-2252) …
Настраивается пакет 1c-enterprise83-client (8.3.10-2252) …
Обрабатываются триггеры для desktop-file-utils (0.22-1) …
Обрабатываются триггеры для mime-support (3.58) …
Обрабатываются триггеры для hicolor-icon-theme (0.13-1) …
Обрабатываются триггеры для systemd (215-17+deb8u7) …

Работа с сервером 1С:Предприятие в системе Linux

Программа установлена осталось проверить некоторые моменты.

Установим необходимый пакет:

apt-get install net-tools

Проверим:

netstat -atn|grep 0.0.0.0:15
= вывод команды =
tcp 0 0 0.0.0.0:1560 0.0.0.0:* LISTEN 
tcp 0 0 0.0.0.0:1540 0.0.0.0:* LISTEN 
tcp 0 0 0.0.0.0:1541 0.0.0.0:* LISTEN

Должны быть открыты 3 порта! Если открыт будет только один создать базу PostgreSQL не удастся из за ошибки в соединении с сервером базы данных!

Проверим всели процессы сервиса запущены:

ps aux|grep 1c
= вывод команды =
ps aux|grep 1c
avahi 597 0.0 0.0 32220 2824 ? Ss 17:53 0:00 avahi-daemon: running [xrdp1c.local]
usr1cv8 1502 0.0 0.0 35632 3836 ? Ss 18:04 0:00 /lib/systemd/systemd --user
usr1cv8 1503 0.0 0.0 52184 2124 ? S 18:04 0:00 (sd-pam) 
usr1cv8 1509 0.4 0.9 639868 37568 ? Ssl 18:04 0:00 /opt/1C/v8.3/x86_64/ragent -daemon
usr1cv8 1517 1.7 2.6 1469848 105816 ? Sl 18:04 0:03 /opt/1C/v8.3/x86_64/rmngr -port 1541 -host xrdp1c -range 1560:1591 -clstid 647987d4-4ac9-11e7-d489-12508af76120
usr1cv8 1591 2.0 5.7 1186824 227684 ? Sl 18:04 0:03 /opt/1C/v8.3/x86_64/rphost -range 1560:1591 -reghost xrdp1c -regport 1541 -pid 67059b5a-4ac9-11e7-d489-12508af76120
root 1623 0.0 0.0 12756 2208 pts/0 S+ 18:07 0:00 grep 1c

Все стартовало и работает как надо. Команды управления сервером 1С:Предприятие:

service srv1cv83 start
service srv1cv83 stop
service srv1cv83 restart
service srv1cv83 status

Создание файловой базы данных 1C:Предприятие

При первом запуске вылезет сообщение о необходимости установки шрифтов. В моем случае все шрифты были и отображаются  корректно.

В Linux для создания баз из шаблона вначале необходимо установить шаблон в необходимую папку а потом указать в настройке откуда брать шаблоны.

Для этих действий необходимо чтобы в системе была установлена Wine. К сожалению без этого нельзя запустить файлы exe. Других способов установки базы из шаблона в системе Linux я не нашел.

В моем случае я скопировал папку с базой в нужное место и дал необходимые права:

chmod -R 777 /base1c

Права надо давать только после того как копируйте все необходимые базы 1С!

Активирование программной лицензии 1С:Предприятие

В активировании программной лицензии есть один нюанс. Если вы запустите программу она напишет что необходимо активировать и вы начнете вводить пин код то он окажется на 1 знак больше чем требуемое количество.

Для активации обнопользовательской программной лицензии необходимо запустить программу 1С:Предприятие под пользователем root и только тогда при активации появится необходимое поле.

Установка HASP для работы с USB ключом

Программное обеспечение для работы с USB ключом будем использовать от компании Etersoft. Посмотрим какие последние версии для Debiam 8 есть на сайте перейдя по ссылке ftp://ftp.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Debian/8/ В моем случае последняя версия haspd_7.40-eter10debian_amd64.deb.

Для Debian 9 выберите пакет для этой системы.

Перейдем в папку, скачаем туда пакет:

cd /root/1c/hasp
wget ftp://ftp.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Debian/8/haspd_7.40-eter10debian_amd64.deb
= часть вывода команды =
2017-06-01 17:04:10 (2,25 MB/s) - «haspd_7.40-eter10debian_amd64.deb» сохранён [3261640]

Установим:

dpkg -i haspd_7.40-eter10debian_amd64.deb 
= вывод команды =
Выбор ранее не выбранного пакета haspd.
(Чтение базы данных … на данный момент установлено 41583 файла и каталога.)
Подготовка к распаковке haspd_7.40-eter8debian_amd64.deb …
Распаковывается haspd (7.40-eter8debian) …
Настраивается пакет haspd (7.40-eter8debian) …
insserv: warning: script 'haspd.outformat' missing LSB tags and overrides
Обрабатываются триггеры для systemd (215-17+deb8u3) …
Обрабатываются триггеры для man-db (2.7.0.2-5) …

Запустим и проверим статус:

service haspd start
service haspd status
= вывод команды =
● haspd.service - LSB: Hasp keys support
Loaded: loaded (/etc/init.d/haspd)
Active: active (running) since Вт 2016-03-29 16:22:46 MSK; 1s ago
Process: 6521 ExecStart=/etc/init.d/haspd start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/haspd.service
├─6557 aksusbd
├─6568 winehasp
├─6577 hasplm -c /etc/haspd/hasplm.conf
└─6586 hasplmd -s

мар 29 16:22:46 vm008srv1c8 haspd[6521]: Enable workaround for /proc/bus/usb (bind from /dev/bus/usb)[ DONE ]
мар 29 16:22:46 vm008srv1c8 haspd[6521]: [ DONE ]
мар 29 16:22:46 vm008srv1c8 aksusbd[6557]: loaded, daemon version: 7.40.1.50292, key API (USB) version: 3.88 (parallel driver not available)
мар 29 16:22:46 vm008srv1c8 haspd[6521]: Running aksusbd... [ DONE ]
мар 29 16:22:46 vm008srv1c8 winehasp[6568]: winehasp 2.00 loaded
мар 29 16:22:46 vm008srv1c8 haspd[6521]: Running winehasp... [ DONE ]
мар 29 16:22:46 vm008srv1c8 hasplm[6577]: HASP LM v8.30 loaded
мар 29 16:22:46 vm008srv1c8 haspd[6521]: Running hasplm... [ DONE ]
мар 29 16:22:46 vm008srv1c8 hasplmd[6586]: HASP LM v18.0.1.55506 loaded
мар 29 16:22:46 vm008srv1c8 haspd[6521]: Running hasplmd... [ DONE ]

Все хорошо. Осталось подключить USB ключ или как в нашем случае пробросить его в системе Proxmox до нужной виртуальной машины.

Проброс USB устройства в системе виртуализации Proxmox

Рассказано для 4 версии Proxmox в 5 всё делается в веб интерфейсе!

Более подробно о вариантах проброса USB устройств в системе Proxmox вы можете узнать из статьи «USB проброс в Proxmox«.

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

Все действия на сервере Proxmox!

lsusb
= вывод команды с пояснениями =
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
# Вот наш ключ
Bus 002 Device 003: ID 0529:0001 Aladdin Knowledge Systems HASP v0.06
Bus 002 Device 004: ID 0665:5161 Cypress Semiconductor USB to Serial
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
lsusb -t
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
 |__ Port 1: Dev 4, If 0, Class=Human Interface Device, Driver=usbfs, 1.5M
 |__ Port 2: Dev 3, If 0, Class=Vendor Specific Class, Driver=usbfs, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M

Видим что шина 2 и порт 2. Пропишем в параметры виртуальной машины:

mcedit /etc/pve/qemu-server/ID виртуальной машины.conf
= необходимое дополнение =
# Добавляем в конце строку. При изменении параметров vm эта строка останется!
usb0: 2-2

После перезагрузки сервера виртуализации Proxmox устройство будет работать в нужной виртуальной системе.

Проблемы со шрифтами

Сразу не заметил проблему со шрифтами при экспорте в pdf файл. Часть текста обрезалась и информация была не полной. Можно ставить пакеты со шрифтами но я вычислил, что достаточно иметь шрифты по пути /usr/share/fonts/msttcorefonts.

Создадим нужную папку:

mkdir /usr/share/fonts/msttcorefonts

И скопируйте туда шрифты которые можете скачать msttcorefonts.tar

Уменьшение нагрузки на сервер 1C:Предприятие

Очень рекомендую сразу отключить проверку на обновление системы в настройках программы. Отключить можно в разделе Администрирование — Интернет-поддержка пользователей. Обновлять спокойней и удобней через конфигуратор.

Обновление платформы 1С:Предприятие в Linux

Обновление производится по принципу установки программы пройденной в статье выше. Скачиваем новые пакеты и заново устанавливаем.

Обновление базовой конфигурации 1C:Предприятие в Linux

Обновление для ПРОФ это совсем другая песня.

Обновлять конфигурацию можно двумя способами:

  1. Автоматическое обновление — в режиме конфигуратора базы. Конфигурация — Обновить конфигурацию.. — Поиск доступных обновлений указываем наш логин и пароль от личного кабинета пользователя и обновляемся.
  2. Ручное обновление — вначале скачиваем все необходимые обновления в зависимости от версий обновления в личном кабинете и дальше в конфигураторе базы. Конфигурация — Обновить конфигурацию.. — Выбор файла обновление

Результат

После всех выполненных действий у нас будет работать терминальный сервер в котором удобно и конформно работать с программным комплексом 1С:Предприятие 8 для пользователей и администраторов. Лично для меня это развязало руки от привязки к компьютеру куда я установил программу и активировал программный ключ. В следующих статьях на тему 1С расскажу как я настроил резервное копирование файловых баз даныx и произведу установку базы на PostgreSQL c публикацией на Web сервере.

XRDP терминальный сервер Linux

Установим терминальный сервер XRDP на OC Debian. Настроим все основные требования для удобной работы с сервером для пользователей и администраторов. В последствии рассмотрим установку на сервер программу из семейства 1С Предприятие 8.

Введение

Из статьи вы узнаете о том как настроить терминальный сервер на базе операционной системы Linux. Настраивать будем используя дистрибутив Debian 10 Buster.

Ранее в этой статье я расказывал как производится настройка на Debian 8 и 9 версии и какие нюансы настройки. В новой версии большенсово проблем прошлых версий исправлено, но появились новые с решением которых я с вами и поделюсь.

Совершенно нет желания захломлять ресурс старыми не актуальными статьями. XRDP он всегда один и лучше использовать его на новых стабильных версиях. При желании всегда можно мигрировать со старой версии Debian на новую. Например, я вполне успешно делаю обновления начиная с 7 версии.

Вариант с нелегальным переводом системы Windows в терминальный сервер используя патчи я сразу отбросил в сторону. Не занимаюсь воровством программ и не буду.

Требования для терминального сервера:

  • Работа буфера обмена в обоих направлениях,
  • Переключение раскладки клавиатуры на русский язык,
  • Работа пользователей по сертификату,
  • Монтирование сетевых ресурсов,
  • Подключение локальной папки на сервер,
  • Создание одной сессии для пользователя,
  • Подключение принтеров.

Главная задача чтобы сессия пользователя оставалась на сервере и можно было к ней подключиться с любого места.

Графическую оболочку лучше использовать легковесную. Например, LXDE или XFCE. В моем примере рассматривается использование XFCE.

Все дальнейшие действия описаны с учетом стандартной усатновки сервера с выбором окружения XFCE и установкой ssh сервера.

Если вам хочется почитать «Как скачать и установить Debian 10 Buster» вы можете это сделать на сайте который стал для меня отправной точкой в изучении Linux. Все статьи на этом ресурсе написаны понятным языком и проверены автором перед тем как выкладывать в сеть.

Неудачная попытка настройки XRDP на CentOS 7

В репозитории Epel присутствует свежая версия xrdp.x86_64 1:0.9.2-10.el7 что сразу порадовало. Установка проходит без проблем и все сразу работает после старта службы.

В CentOS, как я понял, работают в основном над своим рабочим окружением Gnomе и стараются поддерживать KDE. Для терминального сервера окружение Gnome и KDE тяжеловаты. Можно установить XFCE, LXDE или MATE но они в урезанном виде и пришлось поковыряться, чтобы настроить нужные элементы на панели не говоря уже о других неудобных моментах в настройке.

Дальше я мучатся с настройкой этой системы не стал, так как в Debian все для меня настроилось гораздо проще и удобней.

Предварительна подготовка

Для своего удобства я всегда устанавливаю файловый редактор vim и файловый менеджер mc. Установим выполнив команду:

apt install vim mc

В статье в командах будут использоваться именно эти программы.

По умолчанию считается что действия в консоли выполняются из под пользователя root.

Установка XRDP на Debian 10

К сожалению вы не сможете впоследствии установить на эту систему 1C:Предприятие по причине долгой задержки в поддержке этой версии от разработчиков. Команды и действия полностью эдентичны для установки на Debian 9.

Системные требования «1С:Предприятия 8»

Установка производится следующей командой:

apt install xrdp xorgxrdp

Настройка произведена и можно подключатся по протоколу RDP.

Для запуска X сервера (отображение экрана) существуют разные права доступа. По умолчанию запуск разрешен всем пользователям с доступом к консоли.

Для изменения прав доступа к запуску X сервера необходимо выполнить следующую команду:

dpkg-reconfigure xserver-xorg-legacy

Перезагружаем сервис:

service xrdp restart

Настройка новых правил применнена и можно подключатся по протоколу RDP используя новые параметры.

Настройка XRDP

Вначале настроим пользователя которого создали при установке и на основе этих настроек создадим в последствии шаблон (скелет) для добавления новых пользователей.

Скелет (Skel) позволит при добавлении нового пользователя скопировать все параметры настроенного пользователя.

Двухсторонний буфер обмена XRDP

Буфер сразу работает и не требует настроек. Все проблемы могут быть связанны с раскладкой клавиатуры которые мы решим дальше.

Перезагрузка системы пользователем XRDP

Остановился на варианте когда простому пользователю для выполнения перезагрузки не надо указывать пароль root.

Будем использовать сервис PolicyKit. Все параметры разбиты на секции где есть описание на английском языке. Для применения политик в нужных параметрах указывается необходимое значение.

Откроем нужный файл и сделаем необходимые изминения:

vim /usr/share/polkit-1/actions/org.freedesktop.login1.policy
= часть вывода команды и необходимые изменения =
= вместо auth_admin_keep указываем yes =
<action id="org.freedesktop.login1.reboot">
<description gettext-domain="systemd">Reboot the system</description>
<message gettext-domain="systemd">Authentication is required for rebooting the system.</message>
                <defaults>
                        <allow_any>yes</allow_any>
                        <allow_inactive>yes</allow_inactive>
                        <allow_active>yes</allow_active>
                </defaults>
<annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.set-wall-message</annotate>
</action>

Теперь при перезагрузке система не будет запрашивать пароль root.

Одна сессия для пользователя XRDP

Мне было необходимо сделать чтобы у пользователя при подключении создавалась только одна сессия и чтобы она сохранялась на сервере. Всегда удобно уйдя с работы и закрыв терминал придти домой подключиться по RDP и увидеть свой рабочий стол со всеми открытыми документами и программами.

Для настройки нам необходимо открыть файл и сделать там необходимые изменения:

vim /etc/xrdp/sesman.ini
= вывод части команды с необходимыми настройками =
[Sessions]
;; X11DisplayOffset - x11 display number offset
; Type: integer
; Default: 10
X11DisplayOffset=10

;; MaxSessions - maximum number of connections to an xrdp server
; Type: integer
; Default: 0
# Выставляем количество пользователей для одновременной работе на сервере 
MaxSessions=3

;; KillDisconnected - kill disconnected sessions
; Type: boolean
; Default: false
; if 1, true, or yes, kill session after 60 seconds
# Не разрываем сеанс при отключении пользователя чтобы потом попасть в туже сессию 
KillDisconnected=false

Запрет авторизации ROOT

По умолчанию разрешен вход под пользователем root. В целях безопасности отключим такую возможность:

vim /etc/xrdp/sesman.ini
= необходимое изменение =
[Security]
# Авторизация root. true - разрешено false - запрещено
AllowRootLogin=false

Название подключенной локальной папки

Изменим название подключаемой локальной папки при подключению к серверу терминалов на свое имя:

vim /etc/xrdp/sesman.ini
= необходимое изменение =
[Chansrv]
; drive redirection, defaults to xrdp_client if not set
# Название монтируемой папки
FuseMountName=Mount_FOLDER

Сертификат при работе сервера XRDP

По умолчанию система работает с сертификатами созданными при установке о чем свидетельствует информация в логе xrdp:

cat /var/log/xrdp.log
= необходимая информация =
[INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[ERROR] Cannot read private key file /etc/xrdp/key.pem: Permission denied

К сожалению мы видим ошибку доступа к файлу, хотя подключиться и работать мы сможем.

Для исправления ошибки выполним команду которая добавит учетную запись пользователя с именем xrdp в группу с именем ssl-cert.

adduser xrdp ssl-cert

После перезагрузки системы и подключившись по rdp вы не увидите информации в логе про ошибку. Информация о том что вы используйте сертификаты по умолчанию будет показана как прежде.

Выпуск собственого сертификата для XRDP

Выпустим свой сертификат по команде указанном в файле настройки xrdp.  Изменим только действие сертификата с 1 года до 10 лет. Создадим папку, перейдем туда и запустим команду генерации ключа:

mkdir /etc/xrdp/certificate/
cd /etc/xrdp/certificate/
openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650
= будут заданы вопросы на которые ответьте по аналогии =
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Kostroma
Locality Name (eg, city) []:Kostroma
Organization Name (eg, company) [Internet Widgits Pty Ltd]:sevo44
Organizational Unit Name (eg, section) []:sevo44
Common Name (e.g. server FQDN or YOUR name) []:Administrator
Email Address []:info@sevo44.ru

Отредактируем файл настройки:

vim /etc/xrdp/xrdp.ini
= часть кода с необходимые изменениями =
; security layer can be 'tls', 'rdp' or 'negotiate'
; for client compatible layer
security_layer=negotiate
; minimum security level allowed for client
; can be 'none', 'low', 'medium', 'high', 'fips'
crypt_level=high
; X.509 certificate and private key
; openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365
certificate=/etc/xrdp/certificate/cert.pem 
key_file=/etc/xrdp/certificate/key.pem
; set SSL protocols
; can be comma separated list of 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3'
ssl_protocols=TLSv1.2, TLSv1.3
; set TLS cipher suites
#tls_ciphers=HIGH

Дадим необходимые права для файлов созданного сертификата выполнив команду:

chown -R xrdp:xrdp /etc/xrdp/certificate/

После перезагрузки сервера и подключения к нему по XRDP cообщений больше в логе об использовании сертификатов по умолчанию нет и сервис работает с нашим сертификатом.

Настройка вида окна авторизации XRDP

Отредактируем параметры отвечающие за отображение формы авторизации пользователей. Отредактируем параметры в файле:

vim /etc/xrdp/xrdp.ini
= часть кода с необходимыми изменениями =

; Login Screen Window Title
ls_title=XRDP server 1C

; top level window background color in RGB format
# Фон
ls_top_window_bg_color=000000

; width and height of login screen
ls_width=350
ls_height=430

; login screen background color in RGB format
ls_bg_color=dedede

; optional background image filename (bmp format).
#ls_background_image=

; logo
; full path to bmp-file or file in shared folder
# Свой логотип в формате bmp размера 240х140
ls_logo_filename=/etc/xrdp/logo_xrdp.bmp
ls_logo_x_pos=55
ls_logo_y_pos=50

; for positioning labels such as username, password etc
ls_label_x_pos=30
ls_label_width=60

; for positioning text and combo boxes next to above labels
ls_input_x_pos=110
ls_input_width=210

; y pos for first label and combo box
ls_input_y_pos=220

; OK button
ls_btn_ok_x_pos=142
ls_btn_ok_y_pos=370
ls_btn_ok_width=85
ls_btn_ok_height=30

; Cancel button
ls_btn_cancel_x_pos=237
ls_btn_cancel_y_pos=370
ls_btn_cancel_width=85
ls_btn_cancel_height=30

= Оставляю сессию только Xorg а остальные коментирую =

;
; Session types
;

; Some session types such as Xorg, X11rdp and Xvnc start a display server.
; Startup command-line parameters for the display server are configured
; in sesman.ini. See and configure also sesman.ini.
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20

Результат моих изменений.

Перезагрузим сервис xrdp для применения всех сделанных настроек:

service xrdp restart

Отключение screensaver

Вначале хотел отключать его у пользователей но подумав решил удалить:

apt-get remove xscreensaver

В системе Debian 10 после базовой установки я не обнаружил пакета xscreensaver.

Для того чтобы к системе всегда можно было подключиться в менеджере питания настройте необходимые параметры.

Настройка базового пользователя

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

Раскладка клавиатуры в XFCE

С раскладками в XRDP приходилось возится больше всего. После добавления нового элемента «Раскладка клавиатуры» на панель и его настройки все работает как положено.

Проблема с отсутствием русской раскладки возникает только в том случае если пользователь не закрывает свой сеанс на сервера а просто закрывает программу подключения и при повторном заходе русская раскладка отсутствует. Невозможно добиться того чтобы пользователи всегда закрывали сеанс да и к тому же это не удобно в работе.

Что я только не перепробовал, куда только не писал рекомендованный код, по рекомендациям с разных статей но проблема эта никуда не уходила. Показать пользователю как каждый раз настраивать «Раскладка клавиатуры» не серьезно. Вариант есть дубовый но рабочий на 100 % и при любых обстоятельствах.

Добавил элемент на панель «Запуск приложения» указал там «Терминал Xfce» и внёс туда код:

setxkbmap -layout "us,ru" -model "pc105" -option "grp:alt_shift_toggle,grp_led:scroll"

Обратите внимание на клавиши смены раскладки!

Разместил рядом с флагами поменяв иконку на понравившуюся мне. 

Теперь если переключение не работает тыкаем по кнопке и раскладка снова работает.

Решение проблемы с раскладкой клавиатуры

Мне на почту прислал решение Михаил с сайта admin1c.ru
Посл проверки с радостью делись с вами этим решением!

Необходимо в файле /etc/xrdp/xrdp_keyboard.ini добавить необходимый код и переключение работает прекрасна при любых вариантах работы с системой.

vim /etc/xrdp/xrdp_keyboard.ini
= необходимые проверки и дополнения =
В моем случае эти коды были, но лучше проверить их наличие
[default_rdp_layouts]
rdp_layout_us=0x00000409
rdp_layout_ru=0x00000419

Всё что ниже добавляем в конце не забывая что переключение происходит сочетанием  клавиш alt+shift
[layouts_map_ru]
rdp_layout_us=ru,us
rdp_layout_ru=ru,us

[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
; model=pc105 при необходимости
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

После перезагрузки XRDP проверяем результат.

service xrdp restart

Блокировка настроек XFCE пользователям

В статье выше мы разрешили простым пользователям перезагружать сервер без ввода пароля root. Cделаем запрет на редактирование системных настроек. В папке /etc/xdg/xfce4/xfconf лежат базовые настройки и по умолчанию они не работают так как работают настройки самого пользователя. Добавив параметр в эти файлы пользователь будет использовать именно их.

Вначале настроим вид панели и все настройки что нам необходимо и перенесем их в нужное место с внесением необходимых изменений.

Cделаем запрет на редактирование панели. Скопируем параметры настроенного пользователя:

cp -v /home/настроенный пользователь/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/
= вывод команды =
«/home/настроенный пользователь/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml» -> «/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml»

Откроем и отредактируем файл указав запрет на изменения всем кроме пользователя local:

mcedit /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
= вывод команды с необходимыми изменениями =
<channel name="xfce4-panel" version="1.0" locked="*" unlocked="local">

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

Запрет на изменения настрое XFCE делается редактированием файла:

mcedit /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
= вывод команды с необходимыми изменениями =
<channel name="xsettings" version="1.0" locked="*" unlocked="local">

Настройки XFCE сделанные пользователем не будут применяться но никаких предупреждающих сообщений пользователь не увидит!

Мы настроили запрет на выключение пользователю но значки показываются и можно выполнить действие указав пароль root. Такой вариант решает проблему но захотелось сделать эти кнопки не активными.

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

mkdir /etc/xdg/xfce4/kiosk
mcedit /etc/xdg/xfce4/kiosk/kioskrc
= вывод команды с необходимыми изменениями =
[xfce4-session]
# Указываем пользователей кто может перегрузить сервер или разрешение группе %root
Shutdown=root,sevo44

Обычно я в панели вывожу элемент «Системные действия» и там выбираю только «Перезагрузка» и «Завершение сеанса».

В итоге мы даём возможность всем пользователям выходить из сеанса а перезагрузку разрешаем только избранным пользователям.

Для применения всех параметров перезагрузим сервер:

reboot

Так выглядит выход из системы у пользователей с разрешением.

У всех остальных будет такой вид.

 Создание skel (скелета) для новых пользователей

Еще раз все проверив и убедившись в правильности всех настроек настала пора создать шаблон настроек который будет применяться на всех вновь создаваемых пользователей.

Я использую настройки самой XFCE, рабочего стола и списка баз 1С:Предприятие. Выполним действия:

cd /home/Базовый пользователь
 cp -R -f -b .config/ /etc/skel/
 cp -R -f -b Рабочий\ стол/ /etc/skel/
# В случае использования 1С:Предприятие
 cp -R -f -b .1C/ /etc/skel/

Последняя строка кода скопирует настройку окна «Запуск 1С:Предприятие» в которой указываются параметры всех баз.

Теперь все новые пользователи при авторизации будут иметь те же настройки и информацию на рабочем столе что и базовый пользователь.

В последствии по этой схеме можно менять настройки любого пользователя перенося необходимое с папки настроенного пользователя в папку необходимого. Для большого количества пользователей можно написать несложный скрипт который автоматизирует этот процесс.

В одной из статей я подробно рассмотрел установку и настройку 1С:Предприятие на сервер терминалов который рассматриваем в этом материале.

Управление пользователями Debian

Для доступа будем использовать обычных пользователей которых создадим на сервере. Можно конечно настроить авторизацию по доменным пользователям, но мне такие сложности пока не требовались к тому же это приведет к необходимости настраивать VPN для пользователей которым необходимо работать удалённо.

Добавление новых пользователей

Добавление производится командой:

adduser user007
= вывод команды с информацией для заполнения =
Добавляется пользователь «user007» ...
Добавляется новая группа «user007» (1007) ...
Добавляется новый пользователь «user007» (1006) в группу «user007» ...
Создаётся домашний каталог «/home/user007» ...
Копирование файлов из «/etc/skel» ...
Введите новый пароль UNIX: 
Повторите ввод нового пароля UNIX: 
passwd: пароль успешно обновлён
Изменение информации о пользователе user007
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
 Полное имя []: user007 
 Номер комнаты []: 
 Рабочий телефон []: 
 Домашний телефон []: 
 Другое []: 
Данная информация корректна? [Y/n] y

Изменении пароля пользователя

passwd user007
= вывод команды =
Введите новый пароль UNIX: 
Повторите ввод нового пароля UNIX: 
passwd: пароль успешно обновлён

Удаление пользователя

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

deluser --remove-home user007
= вывод команды =
Идёт поиск файлов для сохранения/удаления ...
Удаляются файлы ...
Удаляется пользователь «user007» ...
Предупреждение: в группе «user007» нет больше членов.
Готово.

Список пользователей

Посмотреть всех пользователей и их параметры можно посмотрев  необходимый файл:

cat /etc/passwd
= часть вывода команды =
test:x:1001:1001:test,,,:/home/test:/bin/bash
sevo44:x:1002:1002:sevo44,,,:/home/sevo44:/bin/bash
usr1cv8:x:999:1003:1C Enterprise 8 server launcher:/home/usr1cv8:/bin/sh
geoclue:x:119:127::/var/lib/geoclue:/bin/false
davfs2:x:120:128::/var/cache/davfs2:/bin/false

В файле указаны все основные параметры пользователя и вы можете их редактировать в случае необходимости.

Подключение локального диска на сервер терминалов

Подключение было проверено на стандартном клиенте Windows и программах LInux Remmina и KRDC. Монтирование и работа с локальным диском подключаемого клиента происходит без проблем.

В случае проблем с подключением дисков необходимо в настройках подключения в локальных ресурсах отключать галочку “Принтеры»

Подключение с Windows

При подключении c систем Windows на странице авторизации не получится переключить раскладку клавиатуры для требуемого языка ввода. В большинстве случаев по умолчанию стоит Русская раскладка а вводит надо на Английском.

Перед подключением с Windows необходимо вначале перейти на раскладку в которой вводится логин и пароль, как правило это EN.

Добавление принтеров

К принтерам у меня особое отношение. Эти аппараты вечно приносят кучу проблем и слава богу что все больше и больше их делают сетевыми что облегчает настройку. Настроить сетевой принтер не вызовет проблем даже у начинающего администратора. С usb принтерами придется повозится до получения бубна мастера по подключению принтера в системах Linux. Подключение  локального принтера используя программу RDP клиента у меня никогда не получалось а по словам опытных программистов работает коряво и не стабильно. Ладно еще если в одном офисе всё а если разные или вообще с дома хотят подключить принтер вообще жжжж….

Для меня есть два варианта решения проблемы для удаленных от офиса пользователей:

  1. В случаях когда принтере не требуется я в семействе бухгалтерских программ 1С настраиваю нормальное сохранения в PDF и все это сохраняется в локальную папку которая без проблем подключается к серверу терминалов во всех популярных клиентах.
  2. Если нужен принтере в работе то необходимо настраивать VPN чтобы удавленный клиент попал в туже сеть.

Управление XRDP

Управление службой стандартное для систем Debian.

service xrdp restart
service xrdp start
service xrdp stop
service xrdp status

Так выглядит статус после старта службы:

service xrdp status
● xrdp.service - xrdp daemon
 Loaded: loaded (/lib/systemd/system/xrdp.service; enabled)
 Active: active (running) since Вт 2017-05-23 15:05:32 MSK; 32s ago
 Docs: man:xrdp(8)
 man:xrdp.ini(5)
 Process: 759 ExecStart=/usr/sbin/xrdp $XRDP_OPTIONS (code=exited, status=0/SUCCESS)
 Process: 730 ExecStartPre=/bin/sh /usr/share/xrdp/socksetup (code=exited, status=0/SUCCESS)
 Main PID: 949 (xrdp)
 CGroup: /system.slice/хrdp.service
 └─949 /usr/sbin/хrdp

май 23 15:05:31 хrdp systemd[1]: PID file /run/xrdp/xrdp.pid not readable (yet?) after start.
май 23 15:05:32 хrdp systemd[1]: Started xrdp daemon.
май 23 15:05:33 хrdp xrdp[949]: (949)(140156439295744)[INFO ] starting хrdp with pid 949
май 23 15:05:45 хrdp xrdp[949]: (949)(140156439295744)[INFO ] listening to port 3389 on 0.0.0.0

Просмотр активных пользователей XRDP

У каждого подключенного пользователя создается одна сессия, их то нам и надо посмотреть выполнив необходимую команду:

ps aux | grep xrdp | grep xorg
= вывод команды =
local      694  3.7  1.9 571540 76992 ?        Sl   22:47   0:29 /usr/lib/xorg/Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log

Вот мы видим что подключен только один пользователь с логином local и PID 694.

Просто снять этот процесс не достаточно, чтобы полностью завершить работу пользователя на сервере. Выведем список всех процессов сервиса XRDP:

ps aux | grep xrdp
= вывод команды =
root       447  0.0  0.0  13860  3640 ?        S    22:45   0:00 /usr/sbin/xrdp-sesman
xrdp       471  0.0  0.0  12248  2044 ?        S    22:45   0:00 /usr/sbin/xrdp
root       692  0.0  0.0  13616  2300 ?        S    22:47   0:00 /usr/sbin/xrdp-sesman
local      694  3.8  1.9 571540 76992 ?        Sl   22:47   0:36 /usr/lib/xorg/Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
local      697  0.0  0.0  99512  3412 ?        Sl   22:47   0:00 /usr/sbin/xrdp-chansrv
xrdp       903  4.1  0.6  40076 28176 ?        S    22:47   0:37 /usr/sbin/xrdp
root       982  0.0  0.0   6224   828 pts/0    S+   23:02   0:00 grep xrdp

Теперь мы можем отключить пользователя указав команду, которая завершит все процессы пользователя:

pkill -9 -u local

Ротация логов xrdp

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

Откроем файл и добавим необходимые логи:

mcedit /etc/logrotate.d/rsyslog
=вывод команды с необходимыми дополнениями =
/var/log/syslog
{
 rotate 7
 daily
 missingok
 notifempty
 delaycompress
 compress
 postrotate
 invoke-rc.d rsyslog rotate > /dev/null
 endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
/var/log/хrdp-sesman.log
/var/log/хrdp.log
{
 rotate 4
 weekly
 missingok
 notifempty
 compress
 delaycompress
 sharedscripts
 postrotate
 invoke-rc.d rsyslog rotate > /dev/null
 endscript
}

Результат

Все требуемые мной параметры получились. Дальнейшее использование покажет какие проблемы могут быть в работе, но это обыденно и любая система требует вмешательства администратора. Все проблемы и их решения будут тут отражены. Радует что с каждой новой версией идут улучшения а значит проект живой и активно развивающийся.

Вся эта статья была лишь прелюдия для того чтобы рассказать как можно используя Linux настроить легально и надежно стабильную работу сервера  «1С:Предприятие 8.3 на Linux» работающего с файловой базой. Минимальные вложения и максимальная производительность.