Сервер терминалов XRDP на Debian 9.

Автор: | 23.01.2018

Установим терминальный сервер XRDP на OC Debian и настроим его для удобной работы пользователей. Саму систему мы уже установили по этой статье, теперь произведем необходимые настройки. Заходим в консоль и редактируем сетевые соединения, у нас сервер и нужен постоянный IP.

nano /etc/network/interfaces

и вносим изменения (все данные даны для примера, у вас будут свои)

auto eth0
iface eth0 inet static
address 192.168.1.200
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1

Сохраняем и перезагружаем сеть

service networking restart

Устанавливаем XRDP.

apt install xrdp xorgxrdp
Выполняем команду
dpkg-reconfigure xserver-xorg-legacy

Перезагружаем сервис
service xrdp restart

Запрет выключения системы пользователем XRDP

Делаем необходимые изменения.

nano /usr/share/polkit-1/actions/org.freedesktop.login1.policy

= вместо yes указываем auth_admin_keep =
<action id="org.freedesktop.login1.power-off">
 <description>Power off the system</description>
 <description xml:lang="de">Das System ausschalten</description>
 <description xml:lang="el">Σβήσιμο του συστήματος</description>
 <description xml:lang="fr">Éteindre le système</description>
 <description xml:lang="it">Spegnere il sistema</description>
 <description xml:lang="pl">Wyłączenie systemu</description>
 <description xml:lang="ru">Выключить систему</description>
 <message>Authentication is required for powering off the system.</message>
 <message xml:lang="de">Legitimierung ist zum Ausschalten des Systems notwendig.</message>
 <message xml:lang="el">Απαιτείται πιστοποίηση για την σβήσιμο του συστήματος.</message>
 <message xml:lang="fr">Authentification requise pour éteindre le système.</message>
 <message xml:lang="it">Autenticazione richiesta per spegnere il sistema.</message>
 <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby wyłączyć system.</message>
 <message xml:lang="ru">Чтобы выключить систему, необходимо пройти аутентификацию.</message>
 <defaults>
 <allow_any>auth_admin_keep</allow_any>
 <allow_inactive>auth_admin_keep</allow_inactive>
 <allow_active>auth_admin_keep</allow_active>
 </defaults>
 </action>

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

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

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

nano /etc/xrdp/sesman.ini

= вывод команды с необходимыми настройками =
[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh

[Security]
AllowRootLogin=true
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false

[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=true

;; IdleTimeLimit - when to disconnect idle sessions
; Type: integer
; Default: 0
; if not zero, the seconds without mouse or keyboard input before disconnect
; not complete yet
IdleTimeLimit=0

;; DisconnectedTimeLimit - when to kill idle sessions
; Type: integer
; Default: 0
; if not zero, the seconds before a disconnected session is killed
; min 60 seconds
DisconnectedTimeLimit=0

;; Policy - session allocation policy
; Type: enum [ "Default" | "UBD" | "UBI" | "UBC" | "UBDI" | "UBDC" ]
; Default: Xrdp:<User,BitPerPixel> and Xvnc:<User,BitPerPixel,DisplaySize>
; "UBD" session per <User,BitPerPixel,DisplaySize>
; "UBI" session per <User,BitPerPixel,IPAddr>
; "UBC" session per <User,BitPerPixel,Connection>
; "UBDI" session per <User,BitPerPixel,DisplaySize,IPAddr>
; "UBDC" session per <User,BitPerPixel,DisplaySize,Connection>
Policy=Default

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

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

[Xvnc]
param=Xvnc
param=-bs
param=-nolisten
param=tcp
param=-localhost
param=-dpi
param=96

[Chansrv]
; drive redirection, defaults to xrdp_client if not set
FuseMountName=thinclient_drives

[SessionVariables]
PULSE_SCRIPT=/etc/xrdp/pulse/default.pa

 

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

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

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

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

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

nano /etc/xrdp/xrdp.ini редактируем: ; ; colors used by windows in RGB format ; blue=352309 grey=dedede #black=000000 #dark_grey=808080 #blue=08246b #dark_blue=08246b #white=ffffff #red=ff0000 #green=00ff00 #background=626c72 ; ; configure login screen ; ; Login Screen Window Title ls_title=XRDP server ; 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
 В итоге получим вот такой результат.

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

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

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

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

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

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

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

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

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

В разделе выше мы ограничили пользователям возможность выключать и перезагружать сервер осталось сделать запрет на редактирование системных настроек. Делается это на удивление просто. В папке /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:
nano /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml = вывод команды с необходимыми изменениями = <channel name="xfce4-panel" version="1.0" locked="*" unlocked="local">

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

Запрет на изменения настрое XFCE делаем по аналогии:

cp -v /home/настроенный пользователь/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/

= вывод команды =

«/home/настроенный пользователь/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml» -> «/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml»

mcedit /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml

= вывод команды с необходимыми изменениями =

<channel name=”xfce4-panel” version=”1.0″ locked=”*” unlocked=”local”>

 

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

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

mkdir /etc/xdg/xfce4/kiosk

mcedit /etc/xdg/xfce4/kiosk/kioskrc

= вывод команды с необходимыми изменениями =

[xfce4-session]

# Указываем пользователей кто может перегрузить сервер или разрешение группе

%root

Shutdown=root,local

 

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

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

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

cd /home/Базовый пользователь cp -R -f -b .config/ /etc/skel/ cp -R -f -b Рабочий\ стол/ /etc/skel/
Теперь все новые пользователи при авторизации будут иметь те же настройки и информацию на рабочем столе что и базовый пользователь.

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

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

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» нет больше членов.

Готово.

 
No votes yet.
Please wait...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *