- Терминальный сервер 1С под Linux
- Схема терминального сервера 1C под Linux.
- Установка FreeNX.
- Настройка SSH.
- Настройка FreeNX.
- Добавление пользователей.
- Установка wine@Etersoft.
- Настройка wine@Etersoft.
- Подробно о каталоге с базами 1С.
- Настройка Samba и CIFS от Etersoft.
- Проверка работоспособности 1С под wine@etersoft
- Настройка Xfce в NX.
- Сервер терминалов для 1С по протоколу RDP на linux: рекомендации по настройке с учетом опыта реальной эксплуатации
- Небольшое, но важное отступление
- Рекомендации по установке операционной системы
- Установка и настройка сервера xrdp with xorgxrdp backend
- Установка клиента 1С: Предприятие версии 8.3.9
- Корректная настройка с временными файлами, создаваемыми платформой 1С
- Решение проблемы с невозможностью выгрузки деклараций из баз ЗУП 2.5 и Бух 2.0
- Рекомендации по организации обмена файлами и печати с удаленных офисов
- Возможные альтернативы
- Заключение
Терминальный сервер 1С под Linux
Создаём терминальный сервер 1C под Ubuntu Linux. 1С официально предоставляет пакеты rpm и поэтому наилучший вариант для терминального сервера — это rpm дистрибутивы Linux, например CentOS. Данная статья призвана помочь тем, кто по ряду причин использует дистрибутивы Linux, основанные на пакете deb.
Терминальный сервер позволит запускать 1С множеству пользователей, которые будут использовать базу 1С локально, чем достигнеться большая скорость работы 1С и безопасность.
Терминальный сервер 1С под Linux дешевле терминального сервера 1С под MS Windows, из-за дороговизны последней и её клиентских и терминальных лицензий.
Вышла 1С с полной поддержкой Linux и данная статья перестала быть актуальной.
Схема терминального сервера 1C под Linux.
Установка FreeNX.
Добавить репозиторий FreeNX. Читаем и пользуемся FreeNX. Кратко так:
sudo nano /etc/apt/sources.list
Заменить VERSION на имя своего дистрибутива Ubuntu.
deb http://ppa.launchpad.net/freenx-team/ppa/ubuntu VERSION main
добавляем ключ 2a8e3034d018a4ce, если со временем ключ измениться, то apt-get update напомнит вам об этом
sudo apt-key adv —recv-keys —keyserver keyserver.ubuntu.com 2a8e3034d018a4ce
sudo apt-get update
sudo apt-get install freenx
Настройка SSH.
Нужно сменить дефолтный порт 22 на другой, например 8888 в целях дополнительной безопасности.
Читаем дальше FreeNX. Кратко так
sudo nano /etc/ssh/sshd_config
меняем Port 22 на Port 8888 и рестартуем ssh
/etc/init.d/ssh restart
Настройка FreeNX.
Указываем FreeNX использовать порт 8888 вместо 22
sudo nano /etc/nxserver/node.conf . Находим SSHD_PORT=22 и меняем на SSHD_PORT=8888 и убираем комментарий #
Убираем комментарий у параметра ENABLE_PASSDB_AUTHENTICATION и меняем 0 на 1
ENABLE_PASSDB_AUTHENTICATION=»1″ . Этим мы разрешаем аутентификацию при помощи базы паролей nxserver.
Изменяем параметр ENABLE_SHOW_RUNNING_SESSIONS с 1 на 0 и убираем комментарий #.
ENABLE_SHOW_RUNNING_SESSIONS=»0″ . При этом будет автоматом запускаться новый сеанс, а при наличии приостановленных сессий — будет выводиться окошко со списком этих самых сессий. После изменений перезапускаем службу nxserver sudo nxserver —restart
Добавление пользователей.
Нужно добавить системных пользователей с помощью adduser buh1 и терминальных пользователей в базу nxserver с помощью sudo nxserver —adduser buh1 . Чтобы не было проблем, лучше чтобы имена и пароли совпадали! Например,
#adduser buh1
…. вбили пароль pass1
#sudo nxserver —adduser buh1
…. вбили пароль pass1
Cменить пароль системному пользователю можно с помощью passwd, например passwd buh1 . Терминальному пользователю можно сменить пароль так, nxserver —passwd buh1 . Следить за одинаковостью паролей!
Установка wine@Etersoft.
Ставить нужно пакеты wine*.deb и libwine*.deb от EterSoft. Так же необходима реализация CIFS (протокол виндовых шар) etercifs*.deb, при смене ядер убунту, нужна переустановка пакета etercifs*.deb, так как DKMS там не используется.
Настройка wine@Etersoft.
В этом месте много читать отсюда etersoft.ru/products/wine/manual/
Прежде всего потребуется определить пользователя, который будет администратором WINE. Этого пользователя нужно добавить в группу wineadmin (такая группа создаётся при установке WINE).
Технически в группу wineadmin могут входить несколько пользователей. В этом случае все они смогут равноправно изменять общее win-окружение. Хорошим решением будет создать отдельную учётную запись, которая будет играть роль администратора WINE.
При работе нескольких администраторов с общим win-окружением следует избегать одновременного изменения данных в нём (установки/удаления программ и т. п.). Это может привести к возникновению конфликтов и ошибок в реестре win-окружения.
После того как администратор WINE определён, следует создать каталог, который будет играть роль общего win-окружения. Рекомендуется в качестве общего каталога использовать /var/lib/wine/default. При установке пакета wine сразу создаётся /var/lib/wine с необходимыми правами (root:wineadmin rw-rw-r—), позволяющими администратору WINE создавать там каталоги.
Подготовка административной системы выполняется командой wine —admin /путь/к/общему/каталогу. Если на момент выполнения этой команды указанного каталога ещё не существует, он будет создан. Если выполнить эту команду без указания каталога, будет использован каталог по умолчанию /var/lib/wine/default.
После настройки среды через wine —admin администратор устанавливает необходимые программы обычным способом. Чтобы пользователи по умолчанию подключались к общему win-окружению при первом запуске, следует воспользоваться настройками в файле /etc/wine/config:
ATTACH_MODE=»yes» # включает режим общего win-окружения
WINEADMIN=»default» # путь к общему win-окружению
Подробно о каталоге с базами 1С.
Читать об этом etersoft.ru/products/wine/manual/. Пример привожу для каталога /1c/bases. Права нужно выставить следующие:
#chmod 2770 /1c/bases
Чтобы все создаваемые в нём файлы принадлежали той же группе, что и каталог, а не группе создавшего файл пользователя. Владельца и группу можно выставить так
#chown -R vasilisc:1c /1c/bases/
Группа 1с — это созданная в /etc/group группа, в которую включены все пользователи, которые будут запускать 1с в терминале.
Настройка Samba и CIFS от Etersoft.
Читать etersoft.ru/products/wine/manual/. Кратко все сводится к тому, что пользователи в терминале будут работать с БД 1С через CIFS, то есть как бы через сеть, хотя базы лежат на этом же компьютере. Только таким способом блокировки будут нормально работать. Необходимо для работы CIFS поставить etercifs_*.deb.
Оптимальные настройки Самбы в /etc/samba/smb.conf
kernel oplocks = no
use sendfile = yes
log level = 0
Папка, расшаренная в доступ по сети, должна быть описана примерно так
[1c_bases]
path = /1c
public = yes
force user = vasilisc
force group = 1c
writeable = yes
guest ok = yes
Параметры force* заставляют самбу создавать и читать файлы от заданного пользователя. Терминальные пользователи должны юзать базы через CIFS и для этого нужно каталог, расшаренный самбой, примонтировать в каталог и использовать этот каталог как хранилище 1С. Делаем это примерно так mount -t cifs //192.168.0.120/1c_bases /1c_cifs -o noperm,user=vasilisc,forcedemand,direct
Подробнее о монтировании папки в локальный каталог для терминальных пользователей читать etersoft.ru/products/wine/manual/. Параметры forcedemand, direct ОБЯЗАТЕЛЬНЫ для корректной работы блокировок.
Проверка работоспособности 1С под wine@etersoft
Проверена работа под wine@etersoft следующих компонент:
1. USB сканер штрих-кодов
2. печать в терминале на USB принтере
3. шрифт, изображающий штрих-коды
4. компонент для 1С — Библиотечный модуль печати налоговых документов с двухмерных штриховым кодом PDF417.
Настройка Xfce в NX.
Можно заменить среду на легковесный Xfce, чтобы меньше занимать ресурсы терминального сервера. Для этого выставить в свойствах соединения Custom и далее exec xfce4-session . KDE и Gnome выставляются там же с помощью соответствующих пунктов.
Изображение иллюстрирует работу в 1С (файловый режим) в терминале под управлением Linux, терминальная сессия запущена из ОС MS Windows XP. Можно запустить терминальную сессию под Linux и не тратить деньги на рабочих местах.
Рассмотреть другие схемы запуска 1C под Linux и цены можно в статье «1С под Linux»
Источник
Сервер терминалов для 1С по протоколу RDP на linux: рекомендации по настройке с учетом опыта реальной эксплуатации
В статье рассматриваются нюансы установки и настройки терминального сервера по протоколу RDP для работы с базами 1с на платформе 8.3 на базе дистрибутива Xubuntu 14.04 с учетом возможностей последней версии сервера xrdp и опыта реальной эксплуатации.
Не так давно (в конце декабре 2016 года) вышел в свет очередной релиз сервера xrdp версии 0.9.1. Одновременно с этим была выпущена стабильная версия одного из «бекендов» xrdp — xorgxrdp v 0.2.0. Эти версии мы и будем использовать далее при установке.
Небольшое, но важное отступление
В составе дистрибутивов linux в-основном содержится устаревшая версия сервера xrdp версии 0.6.x, в которой имеются баги, которые мешают нормально работать с 1с (например, не работает нормально буфер обмена с русскими символами).
В основном, когда рассматривается установка терминального сервера на базе протокола rdp на linux, рассматриваются варианты установки сервера xrdp со сборкой X11Rdp бекенда с помощью специальных скриптов, например, X11RDP-o-Matic (для ubuntu) — статья на хабре, статья на infostart.
Использование бекэнда X11Rdp несет в себе несколько минусов:
- Достаточно долгое время сборки
- Сложно решить проблему с переключением языков. После переподключения к сеансу переключение языков может перестать работать. Автор регестрировал проблему на сайте разработчиков — гарантированное решение было найдено автором только для бекенда xorgxrdp правкой исходно кода (далее этот метод используется в статье)
- Скорость отрисовки может оказаться недостаточно быстрой для комфортной работы пользователей
Использование бекэнда xorgxrdp позволяет указанных проблем избежать.
В статье рассматривается установка на Xubuntu версии 14.04 LTS, а не более свежей версии 16.04 LTS, по причине падения производительности при прорисовке удаленного экрана. Есть зарегистрированная проблема по данной ситуации. Кому-то помогало отключение compositor в настройках, но автору статьи не удалось добиться такой же скорости прорисовки, как на версии Xubuntu 14.04.
Рекомендации по установке операционной системы
Для установки используем 32-битную версию ОС Xubuntu 14.04. Ссылка на образ.
Система может быть установлена как на хост, на и в виртуальную среду. Я обычно предпочитаю виртуализацию KVM, рабочие сервера ставились на ней.
При разбивке дисков использовалась классическая схема (не LVM), файловая система ext4. В виртуальную машину подключено 3 диска фиксированного размера:
- 22 Гбайта: 18 Гигабайт точка монтирования /, остальное под swap
- 5 Гбайт: точка монтирования /var
- 5 Гбайт: точка монтирования /tmp
Данное разбиение — это предпочтение автора с учетом удобства эксплуатации. В любом случае, при планировании дискового пространства необходимо учитывать возможную нагрузку на файловую систему. При использовании файловых баз данных желательно использовать SSD диск(и).
Для сервера необходимо установить статический IP-адрес.
Для удобства ввода команд для последующей установки необходимо установить OpenSSH-сервер:
При активированном firewall открываем порт 22:
Установка и настройка сервера xrdp with xorgxrdp backend
На сайте разработчиков есть инструкция для установки на debian 8, используем ее за основу.
Устанавливаем необходимые зависимости:
Создаем каталог для загрузки дистрибутивов:
Клонируем из репозитория текущую последнюю сборку xrdp и собираем с кодеком rfxcodec:
Устанавливаем xrdp в систему:
Скачиваем дистрибутив xorg-xrdp бекенда:
Устанавливаем жесткое правило переключения раскладки с русского на английский язык сочетанием клавиш Ctrl+Shift для решения проблемы переключения раскладок. Корректность проверяется созданием сессии — 1-я проверка, отключаемся, подключаемся еще раз в ту же сессию — заново еще раз проверяем.
В терминале присваиваем значения временных переменных:
Делаем замену кода в исходном файле:
Компилируем и устанавливаем в систему xorg-xrdp бекэнд:
Желательно в файле /etc/xrdp/xrdp.ini поменять местами блоки [X11rdp] и [Xorg], чтобы у пользователя по умолчанию был правильный бэкэнд. При подключении к серверу нужно выбирать Xorg в списке сессий.
При необходимости изменения порта по умолчанию с 3389 на другой, редактируем файл /etc/xrdp/xrdp.ini: в разделе [Globals] меняем значение переменной port=3389 на требуемый.
При активированном firewall открываем порт 3389(либо тот, на который стандартный был изменен):
После настроек перезапускаем службу
Теперь можете подключиться к серверу через стандартного клиента с windows либо с linux любым клиентом, который поддерживает протокол rdp.
Внимание: перед подключением необходимо убедиться, что раскладка клавиатуры на клиентской машине установлена в английский язык, иначе не получится ввести имя пользователя и пароль в окне выбора сессий сервера xrdp.
После установки желательно проверить, что нормально работает буфер обмена с кириллическими символами в обе стороны. Также можно убедиться, что работает копирование файлов через буфер обмена с русскими символами (это одни из основных проблем, которые были устранены в последних сборках сервера xrdp и которые раньше мешали нормально использовать в рабочей среде сервер терминалов на базе xrdp).
Установка клиента 1С: Предприятие версии 8.3.9
В связи с тем, что в последних версиях платформы компания 1с довела нативного клиента для ОС на базе linux до состояния, с которым можно более менее комфортно работать, будем использовать именно его, а не пытаться установить wine, а поверх клиента для ОС Windows.
Устанавливаем дополнительные компоненты, необходимые для корректной работы:
Скачиваем в папку с сайта 1с дистрибутив клиента и сервера:
Так как компонеты сервера 1с нужны были только для удовлетворения зависимостей, отключаем службу:
Если используется сетевой hasp-ключ, то пропишем параметры поиска:
Если используются программные лицензии, то их необходимо активировать через конфигуратор (можно на пустой файловой базе данных).
Корректная настройка с временными файлами, создаваемыми платформой 1С
В процессе работы столкнулись с проблемой, когда у одного пользователя внешняя обработка заполнения табличной части работает, а у другого нет — выдается сообщение о нарушении прав доступ. Проблема заключается в том, что платформа 1С создает временные файл /tmp/PrnForm.tmp, т.е. путь до файла одинаковый у разных пользователей. Соответственно, первый пользователь, который воспользовался обработкой, неявно создал во временной папке файл, на который есть доступ на изменение только у него. Другой пользователь уже не может переписать файл.
Решение заключается в правильной настройке общесистемной umask, отнесение пользователей к одинаковой группе, а также правильной настройкой прав на временную папку /tmp.
Редактируем общесистемную маску. Правим файл:
в нем меняем значение на:
Всех терминальных пользоватлей относим в группу Users (если не были отнесены ранее, можно и в другую группу).
Меняем права на папку tmp
Если используется обмен с сайтом Битрикс, то аналогичные настройки нужно сделать для папки /var/log/bitrix.
Вариант решения подобной проблемы применительно 1С описан в статье.
Решение проблемы с невозможностью выгрузки деклараций из баз ЗУП 2.5 и Бух 2.0
Есть одна неприятная особенность, которая может помешать бухгалтерам на клиенте 1C для linux выгружать декларации из зарплатной базы и бухгалтерии — после выбора файла и попытке выгрузить будет выдаваться сообщение вида «Нет доступа к каталогу [НазваниеКаталога]. Проверьте корректность имени каталога выгрузки!
Решение найдено и заключается в необходимости замены кода „Кат = Новый Файл(ПутьДляВыгрузки + “NUL»);» на «Кат = Новый Файл(ПутьДляВыгрузки);» в «Обработка.ОбщиеОбъектыРегламентированнойОтчетности.Форма.НастройкаПараметровСохраненияРегламентированногоОтчета.Форма.Модуль». К сожалению, для таких изменений придется конфигурацию снимать с поддержки.
Рекомендации по организации обмена файлами и печати с удаленных офисов
В случае, если с сервером работа ведется только в рамках локальной сети, проблем никаких нет — samba работает хорошо.
В случае, если у предприятия сеть распределенных офисы, то часто встает вопрос об организации удобного обмена файлами и настройки печати.
Для обмена файлами удобно использовать выделенный аккаунт dropbox — выделенная папка на сервере синхронизируется с облаком, а на клиентах либо через предоставление общего доступа к папке dropbox либо с тем же самым аккаунтом настраивается клиент.
Для печати на удаленные принтеры удобно использовать схему построения виртуальной частной сети, в этом случае решается проблема даже с теми удаленными точками, на которых нет фиксированного IP-адреса. Доступ к принтеру будет доступен по IP-адресу внутри VPN-сети. Как вариант, предлагаю использовать NeoRouter Free. Настройка данного продукта выходит за рамки данной статьи.
Возможные альтернативы
К сожалению, стабильно работающих бесплатных альтернатив на текущий момент я не вижу. Был достаточно успешный опыт использования связки OpenSuse 11.2+FreeNX (от etersoft) + WineEtersoft (купленный) для работы с конфигурациями на базе платформ 8.1, но на текущий момент такая связка для новых установок потеряла актуальность — не все пакеты можно найти для установки, на более свежих версиях ОС Linux и конфигурациях 1С скорость отрисовки ужасная.
Было достаточно много времени потрачено на тестирование других продуктов типа x2Go, но там также есть много НО: при подключении со свежих версий ОС типа Windows 8, Windows 10 есть артефакты при отрисовке изображения и т.п. В общем, если для административных функций альтернативные решения еще как-то подходят, то для реальной работы с решениями фирмы 1С не очень.
Заключение
При рассмотрении возможности перехода не рассмотренное решение нужно учесть такой фактор, как наличие торгового оборудования. Не все торговое оборудование поддерживается в linux, а тем более мало, что можно запустить через RDP.
В целом же при желании сэкономить на лицензиях Windows можно обойтись и решениями на базе LINUX, тем более в последнее время разработка XRDP идет ударными темпами. В марте этого года планируется выпуск версии 0.9.2 — это следует из опубликованных Release notes.
Источник