Терминальный сервер по RDP на Opensuse

Здесь обсуждаются все вопросы, не попадающие под другие категории
Аватара пользователя
alecs
Интересующийся
Сообщения: 45
Зарегистрирован: 25 мар 2009, 10:42
Контактная информация:

Терминальный сервер по RDP на Opensuse

Сообщение alecs »

Всем привет!
Нужен терминальный сервер по RDP протоколу - другие варианты не подходят! использую opensuse 12.3 с LXDE. Установил пакет XRDP (ставил как из репозитория, так и собирал из исходников), сделал линки для нужных библиотек, запустил - xrdp, xrdp-sesman. Результат один - не работает толком.
Если выбирать в меню соедниение "sesman-Xvnc" сессия только с XTERM. Оттуда можно запускать программы, но все работает очень криво, окна не открыть, ни закрыть, не поменять размер, выхода на рабочий стол нет.
Если использовать "sesman-X11rdp", то происходит коннект, система какое-то время думает, а потом вылетает, в логах SESMAN пишет следующее:

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

[20130704-15:25:44] [INFO ] listening...
[20130704-15:26:09] [INFO ] scp thread on sck 7 started successfully
[20130704-15:26:10] [INFO ] ++ created session (access granted): username aleks, ip 192.168.10.107:2668 - socket: 7
[20130704-15:26:10] [INFO ] starting X11rdp session...
[20130704-15:26:10] [CORE ] error starting X server - user aleks - pid 2434
[20130704-15:26:10] [DEBUG] errno: 2, description: No such file or directory
[20130704-15:26:10] [DEBUG] execve parameter list: 11
[20130704-15:26:10] [DEBUG] argv[0] = X11rdp
[20130704-15:26:10] [DEBUG] argv[1] = :10
[20130704-15:26:10] [DEBUG] argv[2] = -geometry
[20130704-15:26:10] [DEBUG] argv[3] = 1680x1050
[20130704-15:26:10] [DEBUG] argv[4] = -depth
[20130704-15:26:10] [DEBUG] argv[5] = 24
[20130704-15:26:10] [DEBUG] argv[6] = -bs
[20130704-15:26:10] [DEBUG] argv[7] = -ac
[20130704-15:26:10] [DEBUG] argv[8] = -nolisten
[20130704-15:26:10] [DEBUG] argv[9] = tcp
[20130704-15:26:10] [DEBUG] argv[10] = (null)
[20130704-15:26:19] [ERROR] X server for display 10 startup timeout
[20130704-15:26:19] [INFO ] starting xrdp-sessvc - xpid=2434 - wmpid=2433
[20130704-15:26:20] [ERROR] X server for display 10 startup timeout
[20130704-15:26:20] [ERROR] another Xserver is already active on display 10
[20130704-15:26:20] [DEBUG] aborting connection...
я так понял - не хватает ей X11 сервера. пробовал собрать x11rdp из изходников - не получилось. Весь прикол в том, что для УБУНТЫ все получилось, хотя тоже пришлось потанчить с бубном, главное - собрался x11rdp. Кто может поделиться опытом, как получить нормальный рабочий стол по RDP для opensuse?
я не фанат - я просто предлагаю разумные решения

Аватара пользователя
alecs
Интересующийся
Сообщения: 45
Зарегистрирован: 25 мар 2009, 10:42
Контактная информация:

Re: Терминальный сервер по RDP на Opensuse

Сообщение alecs »

Мда - тема развития не получила, возможно вопрос не сильно актуален. Ну тогда продолжу, что у меня получилось.
Глава 1: Частичное решение проблемы.
Решение оказалось крайне простое до безобразия - ставишь xrdp (причем его надо собрать из исходников, а не ставить имеющийся пакет в репозитариях), в файле "/etc/xrdp/startwm.sh" прописываешь в функции wm_start() запуск любимой графической оболочки (я прописал startlxde), запускаешь сервер (под рутом - xrdp, xrdp-sesman), подключаешься "sesman-Xvnc" - и все прекрасно работает. По крайней мере под локальными пользователями, о прикручивании доменных пользователей речь пойдет ниже.
Насчет X11rdp, то я ее почти собрал - до конца доводить идею лениво, когда уже есть готовое решение, тем более что способ достаточно извращенный и затратный в плане времени. Если кратко то качаешь сборку "github.com/FreeRDP/xrdp". В папке "xrdp/xorg/X11R7.6", есть файл "buildx.sh", его надо запустить ... в ходе установки он скачает 102 исходника и постоянно будет что-то просить - дайте ему все :-) В результате создаться папка для CHROOT и папка "build_dir" с исходниками X11rdp. Там порядка 45 папок. Дальше чисто теория - зайти Chroot и собрать исходники (в каждую папку зайти и configure --wiht prefix папка куда будете ставить, make, make install). Я так понял должен собраться сам сервак и потом сделать на него ссылку. Кароче занялся я садо-мазо и собрал это X11rdp, но он у меня так и не заработал. Обидно - потому как на Debian у нас все получилось.

Глава 2: Обходное решение
Пишу продолжение, и надеюсь мой опыт пригодится кому-либо еще. Вообщем в ходе решения проблем без полноценного x11rdp не получилось менять раскладку клавиатуры. Решать дальше не стал так как нашел другой вариант, который мне больше подошел - передача не рабочего стола, а отдельного окна приложения на рабочую машину с виндой - очень красиво. Подробности описаны здесь - http://system-administrators.info/?p=1857. В данном случае все равно пришлось решать проблему с доменной авторизацией, решение оказалось достаточно простым, только нигде не прописано для моего любимого дистрибутива. В файле конфигурации kerberos (/etc/krb5.conf) надо было дописать одну строчку в секции [domain_realm]. Привожу полный текст моего файла:

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

[libdefaults]
default_realm = MYDOMAIN.BY
clockskew = 300
#	default_realm = EXAMPLE.COM
[realms]
MYDOMAIN.BY = {
kdc = srv-main.mydomain.by
default_domain = mydomain.by
admin_server = srv-main.mydomain.by
}
#	EXAMPLE.COM = {
# kdc = kerberos.example.com
#	 admin_server = kerberos.example.com
#	}

[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON
[domain_realm]
.mydomain.by = MYDOMAIN.BY
mydomain.by = MYDOMAIN.BY
[appdefaults]
pam = {
ticket_lifetime = 1d
renew_lifetime = 1d
forwardable = true
proxiable = false
minimum_uid = 1
clockskew = 300
external = sshd
use_shmem = sshd
}
Обидно, что на OPENSUSE задачу до конца довести не удалось. Всем удачи.
я не фанат - я просто предлагаю разумные решения

Аватара пользователя
alecs
Интересующийся
Сообщения: 45
Зарегистрирован: 25 мар 2009, 10:42
Контактная информация:

В продолжение темы

Сообщение alecs »

Итак, в целом у меня все получилось, я выиграл спор у коллеги - ярого дебианщика - в том плане, что на openSUSE у меня все заработает, и РДП сервер, и доменная авторизация, и смена раскладки ... вообщем все решилось не очень красиво ... но решилось. Сделал следующее:
1. для подключения по mstsc (rdp) я поставил вот эти пакеты (на 12.2 и 12.3 чуть с бубном встают)
xorg-x11-server-dmx-7.3.99-29.8.i586.rpm
xorg-x11-server-rdp-7.3.99-12.7.i586.rpm
xrdp-0.4.1-85.1.i586.rpm
скачать можно ТУТ
в YAST запуск xrdp включил, firewall отключил и все... главное при подключении 24 или 32 бита на графику обязательно
2. Для смены языка в файл /etc/X11/xdm/Xsession (есть еще один файл Xsession, но от него толку не было) после строки "set +e > /dev/null 2>&1" добавить

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

setxkbmap -layout "us,ru(winkeys)" -model "pc105" -option "grp:ctrl_shift_toggle,grp_led:scroll"
с виджетом индикатора клавиатуры работало не очень корректно, но языки переключались
3. Для доменной авторизации я уже писал выше, но дополнительно необходимо в файл /etc/samba/smb.conf в секцию [CLOBAL] добавить строчку

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

winbind use default domain = yes
тогда при авторизации после имени доменного пользователя не надо будет писать @ДОМЕН.
4. Может кто знает, как сделать переключение раскладок клавиатуры при использовании "sesman-Xvnc", потому как описанный способ для xrdp тут не работает.
Всем удачи
я не фанат - я просто предлагаю разумные решения

Ответить