FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD

Обсуждаем сайт и форум.

Модератор: f0s

Аватара пользователя
Lazy caT
мл. сержант
Сообщения: 101
Зарегистрирован: 2008-09-11 9:59:17
Откуда: Местные мы...
Контактная информация:

FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD

Непрочитанное сообщение Lazy caT » 2020-02-15 22:48:22

Установка производится на чистый FreeBSD сервер.
Пересобрано ядро с опциями

Код: Выделить всё

options NETSMB
options LIBMCHAIN
options LIBICONV
options SMBFS
и закомментированы ненужные устройства.
Так же, в процессе установки добавляется пользователь (у меня это user) в группу wheel от которого будут производится большинство настроек.

Устанавливаем Xorg, оболочку xfce4 и xfce4-xkb-plugin (xfce4-xkb-plugin по умолчанию не устанавливается)

Код: Выделить всё

pkg install -y xorg
и

Код: Выделить всё

pkg install -y xfce xfce4-xkb-plugin
Остальные плагины к xfce4 устанавливаются по желанию.

Установка и настройка xRDP

Код: Выделить всё

pkg install -y xrdp
xrdp.ini (коментарии оставлены только к некоторым полям)

Код: Выделить всё

[Globals]
ini_version=1
fork=true
port=3389
use_vsock=false
tcp_nodelay=true
tcp_keepalive=true
security_layer=rdp
crypt_level=high
autorun=

allow_channels=true
allow_multimon=true
bitmap_cache=true
bitmap_compression=true
bulk_compression=true
hidelogwindow=true
max_bpp=32
new_cursors=true
use_fastpath=both
#require_credentials=true
#pamerrortxt=change your password according to policy at http://url

;; colors used by windows in RGB format
blue=1d87cd
grey=dedede
#black=000000
#dark_grey=808080
#blue=08246b
#dark_blue=08246b
#white=ffffff
#red=ff0000
#green=00ff00
#background=626c72

;; configure login screen
; данные здесь параметры максимально приближены окну авторизации win2003
; Login Screen Window Title
ls_title=Авторизация
; top level window background color in RGB format
ls_top_window_bg_color=3a6ea5
; width and height of login screen
ls_width=427
ls_height=250
; 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
; картинка размером 420x90x8bpp
ls_logo_filename=/usr/local/etc/xrdp/bsd_xrdp_splash.bmp
ls_logo_x_pos=3
ls_logo_y_pos=23
; for positioning labels such as username, password etc
ls_label_x_pos=35
ls_label_width=100
; for positioning text and combo boxes next to above labels
ls_input_x_pos=135
ls_input_width=240
; y pos for first label and combo box
ls_input_y_pos=135
; OK button
ls_btn_ok_x_pos=250
ls_btn_ok_y_pos=215
ls_btn_ok_width=60
ls_btn_ok_height=24
; Cancel button
ls_btn_cancel_x_pos=315
ls_btn_cancel_y_pos=215
ls_btn_cancel_width=60
ls_btn_cancel_height=24

[Logging]
LogFile=xrdp.log
LogLevel=DEBUG
EnableSyslog=true
SyslogLevel=DEBUG

[Channels]
rdpdr=true
rdpsnd=true
drdynvc=true
cliprdr=true
rail=true
xrdpvr=true
tcutils=true

#port=/tmp/.xrdp/xrdp_display_10
#chansrvport=/tmp/.xrdp/xrdp_chansrv_socket_7210

; Session types
[DOMAIN]
name=DOM.LOC
lib=libxup.so
username=ask
password=ask
pamsessionmng=127.0.0.1
ip=127.0.0.1
port=-1
code=20

[LOCAL]
name=localhost
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20

#channel.rdpdr=true
#channel.rdpsnd=true
#channel.drdynvc=true
#channel.cliprdr=true
#channel.rail=true
#channel.xrdpvr=true
Картинка используемая в окне авторизации.
<ATTACHMENT filename="bsd_xrdp_splash.gif" index="2">
bsd_xrdp_splash.gif
</ATTACHMENT>

Собственно сама картинка, используемая в конфиге.
<ATTACHMENT filename="bsd_xrdp_splash.zip" index="0">
bsd_xrdp_splash.zip
</ATTACHMENT>


sesman.ini

Код: Выделить всё

[Globals]
ListenAddress=127.0.0.1
ListenPort=3350

; Включить исполнение скриптов входа/выхода
EnableUserWindowManager=true
; Скрипт, в пользовательской директории, выполняющийся после успешной авторизации
UserWindowManager=.startwm.sh
; Скрипт, в пользовательской директории, выполняющийся после завершения сеанса
; !!!! Используется ТОЛЬКО в измененном xRDP
;UserLogoutScript=.logoutwm.sh

; Give in full path or relative path to /usr/local/etc/xrdp
DefaultWindowManager=startwm.sh
; Give in full path or relative path to /usr/local/etc/xrdp
ReconnectScript=reconnectwm.sh

[Security]
AllowRootLogin=false
MaxLoginRetry=4

TerminalServerUsers=ts_users
TerminalServerAdmins=wheel
; When AlwaysGroupCheck=false access will be permitted if the group TerminalServerUsers is not defined.
; Выставлено в false, т. к. за авторизацию пользователей из определенной группы отвечает pam_winbind.so 
AlwaysGroupCheck=false

[Sessions]
X11DisplayOffset=10
MaxSessions=100
KillDisconnected=false
DisconnectedTimeLimit=0
IdleTimeLimit=0
Policy=Default

[Logging]
LogFile=xrdp-sesman.log
LogLevel=DEBUG
EnableSyslog=false
SyslogLevel=DEBUG

;; Session definitions - startup command-line parameters for each session type
[DOMAIN]
param=Xorg
param=-config
param=xrdp/xorg.conf
param=-noreset
param=-nolisten
param=tcp

[LOCAL]
param=Xorg
param=-config
param=xrdp/xorg.conf
param=-noreset
param=-nolisten
param=tcp

[Chansrv]
FuseMountName=thinclient_drives

[SessionVariables]
PULSE_SCRIPT=/usr/local/etc/xrdp/pulse/default.pa
xrdp_keyboard.ini, добавляем возможность переключения на русский по Ctrl+Shift

Код: Выделить всё

[default]
keyboard_type=0
keyboard_subtype=0

rdp_layouts=default_rdp_layouts
layouts_map=default_layouts_map

[default_rdp_layouts]
rdp_layout_us=0x00000409
rdp_layout_ru=0x00000419

[default_layouts_map]
rdp_layout_us=us
rdp_layout_ru=ru

[rdp_keyboard_ru]
keyboard_type=4
keyboard_subtype=1
model=pc105
options=grp:ctrl_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru
В пользовательской директории создаем файл .startwm.sh с таким содержимым:

Код: Выделить всё

#!/bin/sh
export LANG=ru_RU.UTF-8
/usr/local/bin/setxkbmap -model "pc105" -layout "us,ru" -option "grp:ctrl_shift_toggle"
exec startxfce4
Что позволит, при запуске RDP сессии устанавить язык, параметры клавиатуры и запустить xfce4.
Добавляем в /etc/rc.conf

Код: Выделить всё

xrdp_enable="YES"
xrdp_sesman_enable="YES"
И запускаем, service xrdp allstart, которая запустит ещё и сервис xrdp_sessman.

Проверяем

Код: Выделить всё

root@Test-BSD-Term:/home/user# sockstat -4l | grep xrdp
root     xrdp       650   10 tcp4   *:3389                *:*
root     xrdp-sesma 647   7  tcp4   127.0.0.1:3350        *:*
Всё ОК, сервисы запущены и принимают входящие подключения.

Настройка Samba410
Во время установки Xorg/XFCE4 была установлена samba410. Её будет достаточно для ввода сервера в домен. Нам собственно именно для этих целей она и нужна.
smb4.conf

Код: Выделить всё

# Global parameters
[global]
    netbios name = Test-BSD-Term
    realm = DOM.LOC
    workgroup = DOM
    security = ADS

    log level = 10
    log file = /var/log/samba4/log.%m

    template shell = /bin/sh
    template homedir = /usr/home/%D/%U

    load printers = No
    disable spoolss = Yes

#    username map = /usr/local/etc/samba4/user.map

    winbind enum groups = Yes
    winbind enum users = Yes
    winbind nested groups = Yes
    winbind nss info = rfc2307
#    winbind use default domain = Yes
    winbind refresh tickets = Yes

    idmap config * : range = 2000-9999
    idmap config * : backend = tdb

    # idmap config for the SAMDOM domain
    idmap config DOM.LOC:backend = ad
    idmap config DOM.LOC:schema_mode = rfc2307
    idmap config DOM.LOC:range = 10000-999999
Ввод в домен с учетной записью доменного администратора

Код: Выделить всё

net ads join -UDOM\\admin
Если всё ОК, появится сообщение

Код: Выделить всё

Enter DOM\admin's password:
Using short domain name -- DOM
Joined 'Test-BSD-Term' to dns domain 'dom.loc'
Добавляем в /etc/rc.conf

Код: Выделить всё

samba_server_enable="YES"
winbindd_enable="YES"
И запускаем service samba_server start, которая запустит ещё и сервис winbind

Проверка работоспособности в домене
wbinfo -u – выведет список доменных пользователей
wbinfo -g — выведет список доменных групп

Добавляем в /etc/pam.d/system модуль авторизации pam_winbind.so

Код: Выделить всё

# auth
auth		sufficient	pam_opie.so		no_warn no_fake_prompts
auth		requisite	pam_opieaccess.so	no_warn allow_local
auth		sufficient	/usr/local/lib/pam_winbind.so require_membership_of=DOM\\пользователи\ 1с
#auth		sufficient	pam_krb5.so		no_warn try_first_pass
#auth		sufficient	pam_ssh.so		no_warn try_first_pass
auth		required	pam_unix.so		no_warn try_first_pass nullok

# account
account		sufficient	/usr/local/lib/pam_winbind.so
#account	required	pam_krb5.so
account		required	pam_login_access.so
account		required	pam_unix.so

# session
#session	optional	pam_ssh.so		want_agent
session		required	pam_lastlog.so		no_fail
session		required	pam_mkhomedir.so	umask=0077 skel=/usr/share/skel/

# password
password	sufficient	/usr/local/lib/pam_winbind.so
#password	sufficient	pam_krb5.so		no_warn try_first_pass
password	required	pam_unix.so		no_warn try_first_pass
Так как необходимо работать пользователям допущенным до работы в 1С (входящие в группу DOM\пользователи 1с), в строке auth, в параметрах модуля, указываем что авторизуются пользователи входящие только в эту группу (спц.символы и пробелы экранируются).

Изменяем в /etc/nsswitch.conf group и passwd на files winbind

Код: Выделить всё

#group: compat
group: files winbind
group_compat: nis
hosts: files dns
netgroup: compat
networks: files
#passwd: compat
passwd: files winbind
passwd_compat: nis
shells: files
services: compat
services_compat: nis
protocols: files
rpc: files
Установка pam_mkhomedir
Чтобы автоматически создавались домашние директории, при подключении доменного пользователя, необходимо: в директории /usr/home создать директорию с наименованием домена (в данном случае DOM), и даем на неё права на чтение и запись chmod 0777 /usr/home/DOM, установить pam_mkhomedir и прописать его /etc/pam.d/system.

Код: Выделить всё

pkg install -y pam_mkhomedir
Данный модуль предназначен для первоначального создания пользовательской домашней директории, после установки прописываем его в /etc/pam.d/system, и указываем в качестве параметров маску umask=0077 и путь к шаблону домашней директории skel=/usr/share/skel/ (см. выше)

Настройка рабочего стола шаблон для пользователей.
Теперь можно попробовать подключиться к терминалке по RDP. Для конфигурации рабочего стола который потом послужит дефолтным для доменных пользователей, зайдем под пользователем user, и уже настройки из его профиля будут использованы в дальнейшем.
IMG
После настройки внешнего оформления рабочего пространства можно скопировать из папки .config, домашней директории пользователя под чьим именем производились настройки, в директорию /usr/share/skel/dot.config (все скрытые файлы и директории в skel, начинающиеся с точки, имеют префикс dot).

Так же, есть вариант отредактировать конфигурационные файлы в директории /usr/local/etc/xdg.

!!! ВНИМАНИЕ !!! Т. к. это дефолтные настройки, это необходимо делать с осторожностью и до начала каких-либо изменений ОБЯЗАТЕЛЬНО сделать резервную копию файлов.

В этом случае, правда, будет возможно внесение изменений в настройки со стороны пользователя.
Чтобы этого не происходило, параметры конфигурации необходимо заблокировать от изменений.
К примеру, если в заголовке (channel) конфигурационного файла /usr/local/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml вписать locked="*" unlocked="user" то редактирование параметров будет возможно ТОЛЬКО для пользователя user, для всех остальных
редактирование будет невозможно и будут применяться настройки по умолчанию.

Код: Выделить всё

<channel name="xfwm4" version="1.0" locked="*" unlocked="user" >
Пользователь windows
Чтобы не плодить PERFIX’ы WINE, для каждого пользователя, было решено запускать его только из одного PREFIX’а, для этого необходимо добавить пользователя без пароля.

Код: Выделить всё

root@vTerm-BSD:/# adduser
Username: windows
Full name: WINE User
Uid (Leave empty for default):
Login group [windows]:
Login group is windows. Invite window into other groups? []:
Login class [default]: russian
Shell (sh csh tcsh bash rbash nologin) [sh]: csh
Home directory [/home/windows]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]: no
Lock out the account after creation? [no]:
Username   : windows
Password   : <disabled>
Full Name  : WINE User
Uid        : 2243
Class      : russian
Groups     : window
Home       : /home/windows
Home Mode  :
Shell      : /bin/csh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (windows) to the user database.
Add another user? (yes/no): no
Goodbye!
Как именно будет называться пользователь и группа совершенно не важно, у меня он windows.

Установка sudo
В дальнейшем для запуска 1С в WINE от имени пользователя windows, нам понадобится sudo.

Код: Выделить всё

pkg install -y sudo
В конфиге sudoers раскомментируем строку %wheel ALL=(ALL) ALL

Так же, добавляем в sudoers

Код: Выделить всё

# пользовательский алиас, в который входят локальная группа wheel и доменная DOM\domain users
User_Alias WINDOWS_USERS = %wheel, %DOM\\domain\x20users
# Список команд которые смогут выполнять пользователи из алиаса WINDOWS_USERS
Cmnd_Alias WINDOWS = /usr/local/bin/wine,/usr/local/bin/winecfg
# Список сессионных переменных которые будут передаваться в сессию пользователя windows
Defaults:WINDOWS_USERS env_reset
Defaults:WINDOWS_USERS env_keep += "DISPLAY XRDP_SESSION SESSION_MANAGER WINDOWID"
# и, собственно, что, как и от какой учетной записи смогут запускать пользователи из алиаса WINDOWS_USERS
WINDOWS_USERS ALL = (windows) NOPASSWD: WINDOWS
Установка WINE
Для работы установим wine. А для конфигурации WINE установим cabextract, wget и zenity (можно из RDP сессии в терминале).

Код: Выделить всё

pkg install -y i386-wine-devel cabextract wget zenity
Устанавливаем именно devel, под обычным i386-wine, я не сумел заставить работать 1С с MSSQL сервером. При подключении к MSSQL вываливалась Ошибка безопасности SSL, как лечить, способ не был найден.

Из под root’a качаем и устанавливаем winetricks

Код: Выделить всё

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
cp winetricks /usr/local/bin
Запуск и конфигурирование WINE
Т.к. пользователь windows создан, sudo установлено и в sudoers добавлены необходимые параметры, можно настраивать WINE непосредственно из-под пользователя windows, от чьей учетной записи, в дальнейшем, будет запускаться 1С.

На время конфигурации WINE, в файле sudoers, меняем строку

Код: Выделить всё

WINDOWS_USERS ALL = (windows) NOPASSWD: WINDOWS
на

Код: Выделить всё

WINDOWS_USERS ALL = (windows) NOPASSWD: ALL
!!! ВНИМАНИЕ !!! после конфигурации, строку необходимо поменять обратно.


Разрешаем пользователю windows локально подключаться к сессии

Код: Выделить всё

user@Test-BSD-Term:~ % xhost +local:windows
non-network local connections being added to access control list
и даем в терминале команду

Код: Выделить всё

user@Test-BSD-Term:~ % sudo -u windows -H sh
$ id
uid=2243(windows) gid=2243(windows) groups=2243(windows)
$ 
запускаем

Код: Выделить всё

$ wine winecfg
Начнется процесс инициализации PERFIX‘а WINE для пользователя windows.

Далее, устанавливаем необходимые библиотеки

Код: Выделить всё

winetricks dotnet45
При первом запуске спросит установить моно - нет, установить gesko - да. Устанавливаем до конца dotnet45

Код: Выделить всё

winetricks corefonts tahoma
winetricks mfc42 mdac28 
<I>P.S. Я устанавливал ещё VCRUN‘ы и DirectX‘ы но, для работы 1С они не особо нужны.
Winetricks vcrun2005 vcrun2008 vcrun2010 vcrun2012 vcrun2013 vcrun2015
winetricks vcrun6 vcrun6sp6
winetricks d3dx10 vb5run vb6run vcrun2003
winetricks d3dx9_43 d3dxof devenum dinput8 directmusic directplay d3dx11_43 dxdiag
winetricks mfc40
</I>

После конфигурации PERFIX’а WINE, уже установленная и «вылеченная» 1С копируется в папку /home/windows/.wine/drive_c/Program Files, (у меня 1C отучена от HASP, поэтому я её просто скопировал. К тому же, многие говорят что «в случае чего» к пропатченным версиям особо не придираются. Главное, наличие ключа).

На этом, конфигурация WINE для запуска под WINE собственно и закончена, можно запускать 1C в «песочнице», т. е. от пользователя windows.

Можно менять в файле sudoers строки обратно с

Код: Выделить всё

WINDOWS_USERS ALL = (windows) NOPASSWD: ALL
на

Код: Выделить всё

WINDOWS_USERS ALL = (windows) NOPASSWD: WINDOWS
В терминале набираем команду

Код: Выделить всё

user@Test-BSD-Term:~ % sudo -u windows -H wine "c:\Program Files\1Cv77\BIN\1cv7s.exe"
Должно появится окно запуска 1С с выбором конфигурации.

Теперь 1С’ке необходимо предоставить каталог с конфигурацией.
<I>Изначально в нашей 1С’ке конфигурация находилась на диске D: нашего сервака с MSSQL.
P.S. не знаю на сколько это правильно, не я это придумал, так было ещё со времен «царя гороха»
</I>

Подключаем этот диск как smb шару и прописываем в fstab для автоматического монтирования.

Для того чтобы постоянно не вводить пароль, правим файл /etc/nsmb.conf

Код: Выделить всё

# Внимание названия серверов, имена пользователей и т.п. должно быть написано ПРОПИСНЫМИ буквами!
# Секция по умолчанию, здесь рекомендуется прописать рабочую группу или домен.
[default]
workgroup=DOM

# Параметры принадлежащие монтированию к серверу FSERVER
# The 'FSERVER' is an NT server.
[DBSERVER]
# Правильная кодировка русских букв
charsets=UTF8:CP1251
# DNS имя сервера или его ip адрес
addr=192.168.10.201

[DBSERVER:SQLSERVER]
# Параметры принадлежащие монтированию к серверу FSERVER для пользователя joe
# use persistent password cache for user 'joe'
# Пароль можно писать и в открытом виде, но можно и зашифровать с помощью команды smbutil crypt <Пароль>
# Учтите, что это очень слабое криптование и легко ломается, поэтому права на файл должны быть 0600.
# Например: smbutil crypt testing_password
password=$$17c5a5325393d1d29e0fefbccdda6b4af
и добавляем в /etc/fstab строку подключения виндовой шары

Код: Выделить всё

//SQLSERVER@DBSERVER/d$    /media/sqlserver_d/    smbfs    rw,-N    0    0
Заранее создав директорию /media/sqlserver_d, куда будет подключаться виндовая системная шара с конфигурациями . (пользователь от чьего имени подключается шара с конфигурациями должен иметь права на запись в подключенные папки, у меня он в группе локальных админов на сервере c конфигурациями)

монтируем и делаем символическую ссылку в PREFIX сконфигурированного WINE

Код: Выделить всё

mount -a
ln -s /media/sqlserver_d/ /home/windows/.wine/dosdevices/d:
Теперь можно прописывать конфигурацию в , указав в качестве источника конфигурации диск d:\директория с кофигурацией и запускать.

Чтобы все пользователи запускали 1С из под учетной записи windows, необходимо при запуске сессии выполнить команду xhost +local:windows,тем самым разрешаем пользователю windows локально подключаться к запущеной сессии

Код: Выделить всё

user@Test-BSD-Term:~ % xhost +local:windows
non-network local connections being added to access control list
Чтобы эту команду, каждый раз, не выполнять вручную, можно создать ярлык автозапуска.
Первый вариант. Создать в директории /usr/local/etc/xdg/autostart файл, например startup.desktop, с таким содержимым:

Код: Выделить всё

[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=Startup
Comment=(xhost)
Exec=xhost +local:windows
OnlyShowIn=XFCE;
RunHook=0
StartupNotify=false
Terminal=false
Hidden=false
Второй вариант. Зайти в Приложения > Настройки > Сеансы и запуск переключиться на закладку «Автозапуск приложений» и добавить приложение с командой xhost +local:windows
После создания ярлыка автозапуска его можно будет переместить в директорию общей конфигурации /usr/local/etc/xdg/autostart и эта команда будет запускаться для всех пользователей.

Печать из 1С
В качестве сервиса печати будем использовать CUPS. Хоть i386-wine-devel напрямую c CUPS’ом не работает, он работает с LPD, всё таки есть возможность печатать настроить печать в CUPS.

Устанавливаем CUPS, если он не установился ранее

Код: Выделить всё

pkg install -y cups
Если нет необходимости добавлять принтеры удаленно, в конфиге можно ничего не менять.
Если есть, правим конфиг CUPS, меняем Listen localhost:631 на Listen *:631 (если конфигурация предполагается не с localhost'а)
и в разделы

Код: Выделить всё

<Location />
  Order allow,deny
  Allow from localhost
  Allow from 127.0.0.1
  Allow from 192.168.10.222
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow from localhost
  Allow from 127.0.0.1
  Allow from 192.168.10.222
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow from localhost
  Allow from 127.0.0.1
  Allow from 192.168.10.222
</Location>

# Restrict access to log files...
<Location /admin/log>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow from localhost
  Allow from 127.0.0.1
  Allow from 192.168.10.222
</Location>
Добавляется localhost, 127.0.0.1 и IP хоста или подсети откуда предполагается подключаться к web-интерфейсу CUPS.

Теперь, чтобы добиться печати на принтеры из 1C из WINE, подменим файлы стандартного сервиса lpd на lpd CUPS’а

Код: Выделить всё

cd /usr/bin

mv lp lp.bak
mv lpq lpq.bak
mv lpr lpr.bak
mv lprm lprm.bak

ln -s /usr/local/bin/lp /usr/bin/lp
ln -s /usr/local/bin/lpq /usr/bin/lpq
ln -s /usr/local/bin/lpr /usr/bin/lpr
ln -s /usr/local/bin/lprm /usr/bin/lprm
Добавляем в /etc/rc.conf

Код: Выделить всё

cupsd_enable="YES"
И запускаем CUPS, service cupsd start

В принципе всё, можно попробовать распечатать что-либо из 1С.

XRDP пока ещё (и не известно, будет ли когда-нибудь) не научился пробрасывать, и добавлять в CUPS, принтеры подключенные к локальному компьютеру. Поэтому, это приходится делать вручную, добавляя принтер по протоколу LPD/LPR. Для этого в windows к которому подключен принтер и откуда идет подключение по RDP, необходимо добавить Службу печати LPD в Windows Vista и выше
или Службу печати UNIX в Windows XP, Windows Server 2003

А дальше по стандартому сценарию, расшариваем принтер и добавляем его в CUPS, с тем именем которое было указано при расшаривании.


Ну, вот как-то так.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Lazy caT
мл. сержант
Сообщения: 101
Зарегистрирован: 2008-09-11 9:59:17
Откуда: Местные мы...
Контактная информация:

FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD

Непрочитанное сообщение Lazy caT » 2020-02-16 7:18:34

Небольшое дополнение.

Код: Выделить всё

mv /etc/printcap /etc/printcap.bak
ln -s /usr/local/etc/printcap /etc/printcap
Это чтобы 1С из WINE "видел" все принтеры добавленные в CUPS.

Аватара пользователя
Lazy caT
мл. сержант
Сообщения: 101
Зарегистрирован: 2008-09-11 9:59:17
Откуда: Местные мы...
Контактная информация:

FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD

Непрочитанное сообщение Lazy caT » 2020-02-21 9:46:45

И ещё одно "небольшое" дополнение.
В самом начале должно быть:

Установка производится на чистый FreeBSD сервер, у меня 12.1 amd64.

Код: Выделить всё

FreeBSD Test-BSD-Term 12.1-RELEASE-p2 FreeBSD 12.1-RELEASE-p2 vTerm-BSD  amd64
Ядро пересобрано с опциями

Код: Выделить всё

options NETSMB
options LIBMCHAIN
options LIBICONV
options SMBFS
и закомментированы ненужные устройства.

...и дальше по тексту.

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD

Непрочитанное сообщение snorlov » 2020-02-21 11:17:07

А это то зачем, самбу все равно ставите, а драйвера устройств, которых нет, будут выгружены...

Аватара пользователя
Lazy caT
мл. сержант
Сообщения: 101
Зарегистрирован: 2008-09-11 9:59:17
Откуда: Местные мы...
Контактная информация:

FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD

Непрочитанное сообщение Lazy caT » 2020-02-21 12:21:32

А х.з., это видимо осталось от моих предыдущих изысканий, на тему ошибки mount_smbfs при монтировании шары, от пользователя, в процессе логина.

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

Код: Выделить всё

mount_smbfs -N -E UTF8:CP1251 //user@SERVER/SHARE /HOME/DOM/USER/SHARE
Вываливалась ошибка mount_smbfs: can not setup kernel iconv table и vfs.usermount=1 не помогало в принципе.
Где-то вычитал что если подгрузить в ядро LIBICONV, процесс перекодировки будет доступен и от юзера...
Но... Увы...

В итоге, проблему решил другим способом...

densan
ст. сержант
Сообщения: 370
Зарегистрирован: 2007-12-06 10:02:02
Откуда: Penza
Контактная информация:

FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD

Непрочитанное сообщение densan » 2020-02-23 23:27:27

1C 7.7.
С 8.3.* такой способ пройдет?

Аватара пользователя
Lazy caT
мл. сержант
Сообщения: 101
Зарегистрирован: 2008-09-11 9:59:17
Откуда: Местные мы...
Контактная информация:

FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD

Непрочитанное сообщение Lazy caT » 2020-02-25 12:51:41

densan писал(а):
2020-02-23 23:27:27
1C 7.7.
С 8.3.* такой способ пройдет?
К сожалению, не в курсе.
Изначально, была мысль заставить работать 1С 7.7

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD

Непрочитанное сообщение snorlov » 2020-02-25 13:29:41

так а в чем дело, здесь запуск 1С осуществляется через wine... Если все делать по лицензии, т.е. не отламывать ключи, то в любом случае понадобится HASP loader для ключей...

Аватара пользователя
Духовитин
мл. сержант
Сообщения: 125
Зарегистрирован: 2014-12-17 8:46:05

FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD

Непрочитанное сообщение Духовитин » 2020-05-21 10:16:46

Принесите 2! Т.е. 3!
Да сколько угодно пива этому Товарищу!
Кто не рискует - тот не пьёт шампанского.

Аватара пользователя
Lazy caT
мл. сержант
Сообщения: 101
Зарегистрирован: 2008-09-11 9:59:17
Откуда: Местные мы...
Контактная информация:

FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD

Непрочитанное сообщение Lazy caT » 2020-05-31 13:06:16

То, что не поцепилось в статье...
Вложения
bsd_xrdp_splash.zip
(22.48 КБ) 55 скачиваний
bsd_xrdp_splash.gif