Настройка терминального сервера RDP для работы с 1С

Материал из Wiki МИАЦ ВО
Версия от 12:07, 31 мая 2016; Misha (обсуждение | вклад) (Компиляция пакетов XRDP)
Перейти к навигации Перейти к поиску

Статья в разработке
Взято тут и тут
Встал выбор при обновлении сервера 1С: Или покупать Windows 2012R2 + Клиентские + терминальные лицензии. Итого около 100круб или настроить терминальный сервер под Linux. Благо компания 1С выпустила версию под него.
Статей в инете очень много, но я попытаюсь обобщить свой опыт.
И так начнем.

Установка ОС

  1. Для ОС выбираем 16.04 server)
  2. Устанавливаем ОС.
  3. Делаем все обновления.
sudo apt update && sudo apt upgrade -y && reboot

Установим mc

sudo apt install mc

Настраиваем сеть.

Правим /etc/network/interfaces:

auto enp0s3
iface enp0s3 inet static
address 172.16.130.99
netmask 255.255.255.0
gateway 172.16.130.25
dns-nameservers 172.16.130.1 8.8.8.8

Перезапускам сетевой интерфейс и проверяем настройки сети:

sudo ifdown -a && sudo ifup -a
$ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:172.16.130.99  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:126785 errors:0 dropped:0 overruns:0 frame:0
          TX packets:135453 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:116474217 (116.4 MB)  TX bytes:102473947 (102.4 MB)

lo        Link encap:Локальная петля (Loopback)
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:104371 errors:0 dropped:0 overruns:0 frame:0
          TX packets:104371 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:720253620 (720.2 MB)  TX bytes:720253620 (720.2 MB)

Устанавливаем графический стол Xubuntu

sudo apt install xubuntu-desktop

Компиляция пакетов XRDP

Устанавливаем недостающие пакеты

sudo apt-get install subversion libtool automake  automake1.9 git libssl-dev libpam0g-dev libx11-dev libxfixes-dev xxkb libpam-mount clamtk \ 
python-software-properties pulseaudio-esound-compat paprefs git lib32z1 -y

С сайта http://scarygliders.net/ берем адрес скрипта для автоматической компиляции XRDP из исходников самой последней доступной версии.

git clone https://github.com/scarygliders/X11RDP-o-Matic.git

создается в домашнем каталоге папка X11RDP-o-Matic
Для 16.04 я скачивал архив пропаченного пакета с https://github.com/metalefty/X11RDP-o-Matic/tree/ubuntu-16.04 и распаковывал его в папку ~/install/

cd X11RDP-o-Matic
sudo su
./X11rdp-o-matic.sh –justdoit

Для 16.04

cd ~/install/X11RDP-o-Matic-ubuntu-16.04
sudo su
./X11rdp-o-matic.sh –justdoit

стартует долгий процесс скачивания, проверки и компиляции модулей для xrdp, обязательно нужно дождаться завершения процедуры.
После сборки пакетов, в папке /X11RDP-o-Matic/packages/ лежат уже готовые собранные пакеты x11rdp_X.X.X-X_amd64.deb, xrdp_X.X.X-X_amd64.deb, пригодятся при переинсталированнии сервера без необходимости еще раз компилировать и собирать xrdp из исходников.
Проверяем установку xrdp:

sudo /etc/init.d/xrdp restart
netstat -lntp |grep 3389

В 16.04 сервис не стартовал, выдав такую строку.

$ sudo service xrdp restart
A dependency job for xrdp.service failed. See 'journalctl -xe' for details.

Решение нашел тут
Меняем строку /etc/sysconfig/xrdp на /etc/default/xrdp в файлах /lib/systemd/system/xrdp.service и /lib/systemd/system/xrdp-sesman.service.
После этого

# service xrdp start
Warning: xrdp.service changed on disk. Run 'systemctl daemon-reload' to reload units.
A dependency job for xrdp.service failed. See 'journalctl -xe' for details.
# systemctl daemon-reload
# service xrdp start

Ставим xrdp в автозагрузку:

sudo update-rc.d xrdp defaults
sudo update-rc.d xrdp enable
exit

Установка модуля HASP

Идем сюда и качаем пакеты HASP для нашей версии xubuntu

cd ~
mkdir /hasp
cd hasp
wget wget http://download.etersoft.ru/pub/Etersoft/HASP/3.3/x86_64/Ubuntu/14.04/haspd-modules_3.3-eter10ubuntu_amd64.deb
wget http://download.etersoft.ru/pub/Etersoft/HASP/3.3/x86_64/Ubuntu/14.04/haspd_3.3-eter10ubuntu_amd64.deb

Устанавливаем пакеты

sudo dpkg -i haspd_3.3-eter10ubuntu_amd64.deb
sudo dpkg -i haspd-modules_3.3-eter10ubuntu_amd64.deb

Проверяем работу модуля

sudo /etc/init.d/haspd restart
Stopping hasplmd...                                                     [PASSED]
Stopping hasplm...                                                      [PASSED]
Stopping winehasp...                                                    [PASSED]
Stopping aksusbd...                                                     [PASSED]
Stopping skeyd...                                                       [PASSED]
Stopping usbsentinel...                                                 [PASSED]
Stopping SntlKeysSrvrlnx...                                             [PASSED]
Stopping workaround for /proc/bus/usb                                   [ DONE ]
Unloading HASP LPT kernel module...                                     [PASSED]
Loading HASP LPT kernel module...  (/dev/lp0 device has not found)      [PASSED]
Check kernel for CONFIG_USB_DEVICEFS...                                 [PASSED]
Enable workaround for /proc/bus/usb (bind from /dev/bus/usb)            [ DONE ]
                                                                        [ DONE ]
Running aksusbd...                                                      [ DONE ]
Running winehasp...                                                     [ DONE ]
Running hasplm...                                                       [ DONE ]
Running hasplmd...                                                      [ DONE ]
We have no built usbkeytest, so run all possible services
Running skeyd...                                                        [ DONE ]

Если вставляете HASP уже после загрузки сервера, перезапустите демон hasp

service haspd restart

Установка 1С

Распаковываем файлы deb64.tar.gz и client.deb64.tar.gz из дистрибутива 1С 8.3 в одну папку.
Устанавливаем:

sudo dpkg -i 1c*.deb
sudo apt-get -f install
sudo apt-get install ttf-mscorefonts-installer
sudo apt-get install imagemagick

До настройка системы

Добавляем индикатор клавиатуры в верхнюю панель.

Правая кнопка мыши по панели. Выбираем Панель -> Параметры панели
Вкладка Элементы. Жмем Плюс и добавляем Раскладки клавиатуры.

Добавляем иконки

В панели нажимаем кнопку списка программ (самая левая в панели) и в поиске напираем 1С. И перетаскиваем иконку 1С клиент на рабочий стол.
Таким же образом добавляем все нужные программы на рабочий стол.

Настраиваем «скелеты» для пользователей

Выполняем с правами рута

cd /home/Настроенный_Пользователь
cp -R -f -b .config/ /etc/skel/ # настройки lxde
cp -R -f -b Рабочий\ стол/ /etc/skel/ # Содержимое рабочего стола

Добавляем пользователей терминалов

sudo adduser term1 
sudo adduser term2 

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

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

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

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

в файл /etc/X11/Xsession после строки: set -e - не получилось.
Пока сделал костыль: На рабочем столе создал файл klav.sh

#!/bin/sh
setxkbmap -layout "us,ru" -model "pc105" -option "grp:alt_shift_toggle,grp_led:scroll"

И запускаю его, после входа в терминал.

Еще некоторые ссылки

  1. Настройка звука в XRDP для Linux Ubuntu
  2. Решение проблемы запуска сессий новых пользователей в XRDP
  3. Генерация штрих-кода для вставки его в 1С при работе в Linux
  4. Генерация изображения штрих-кода в 1С при работе в Linux.
  5. Вывод отладочной информации запуска 1С8.3 в Linux
  6. Настройка окружения LXDE для терминальных пользователей XRDP в Linux Ubuntu
  7. Создание кросс-платформенной и кросс-браузерной карты Google, выводящей много точек через 1С
  8. Снятие терминальной сессии пользователя в XRDP (Linux) и 1C
  9. Простейший способ создания штрих-кода в формате PNG из командной строки в Linux Ubuntu