Skip to main content

настройка xrdp

Ставим пакеты:

apt install xorg fly-dm xorgxrdp xrdp fly-all-main libreoffice

Удаляем лишнее:

apt remove pavucontrol-qt fly-scan

Заменяем конфиги:

cp /etc/xrdp/startwm.sh /etc/xrdp/startwm.sh_old; mcedit /etc/xrdp/startwm.sh

#!/usr/bin/env bash
# xrdp X session start script (c) 2015, 2017 mirabilos
# published under The MirOS Licence

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR


if [ -f /etc/xrdp/switchsession.sh ]; then
  source /etc/xrdp/switchsession.sh
fi

if test -r /etc/default/locale; then
        . /etc/default/locale
        test -z "${LANG+x}" || export LANG
        test -z "${LANGUAGE+x}" || export LANGUAGE
        test -z "${LC_ADDRESS+x}" || export LC_ADDRESS
        test -z "${LC_ALL+x}" || export LC_ALL
        test -z "${LC_COLLATE+x}" || export LC_COLLATE
        test -z "${LC_CTYPE+x}" || export LC_CTYPE
        test -z "${LC_IDENTIFICATION+x}" || export LC_IDENTIFICATION
        test -z "${LC_MEASUREMENT+x}" || export LC_MEASUREMENT
        test -z "${LC_MESSAGES+x}" || export LC_MESSAGES
        test -z "${LC_MONETARY+x}" || export LC_MONETARY
        test -z "${LC_NAME+x}" || export LC_NAME
        test -z "${LC_NUMERIC+x}" || export LC_NUMERIC
        test -z "${LC_PAPER+x}" || export LC_PAPER
        test -z "${LC_TELEPHONE+x}" || export LC_TELEPHONE
        test -z "${LC_TIME+x}" || export LC_TIME
        test -z "${LOCPATH+x}" || export LOCPATH
fi

if test -r /etc/profile; then
        . /etc/profile
fi


test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession

cp /etc/xrdp/sesman.ini /etc/xrdp/sesman.ini_old; mcedit /etc/xrdp/sesman.ini

[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=false
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh
ReconnectScript=reconnectwm.sh

[Security]
AllowRootLogin=false
MaxLoginRetry=10
TerminalServerUsers=astra-xrdp
AlwaysGroupCheck=true
RestrictOutboundClipboard=false
RestrictInboundClipboard=false

[Sessions]
X11DisplayOffset=10
MaxSessions=15
#KillDisconnected=true
#DisconnectedTimeLimit=30
IdleTimeLimit=0
Policy=Default
AllowMultipleConnectionsPerSession=true

[Logging]
LogFile=xrdp-sesman.log
LogLevel=INFO
EnableSyslog=true

[LoggingPerLogger]

[Xorg]
param=/usr/lib/xorg/Xorg
param=-config
param=xrdp/xorg.conf
param=-noreset
param=-nolisten
param=tcp
param=-logfile
param=.xorgxrdp.%s.log

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

[Chansrv]
FuseMountName=Mount_FOLDER
FileUmask=077

[ChansrvLogging]
LogLevel=INFO
EnableSyslog=true

[ChansrvLoggingPerLogger]

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

cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini_old; mcedit /etc/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
certificate=
key_file=
ssl_protocols=TLSv1.2, TLSv1.3
autorun=
allow_channels=true
allow_multimon=true
bitmap_cache=true
bitmap_compression=true
bulk_compression=true
max_bpp=32
new_cursors=true
use_fastpath=both
blue=009cb5
grey=dedede
ls_top_window_bg_color=009cb5
ls_width=350
ls_height=430
ls_bg_color=dedede
ls_logo_filename=
ls_logo_x_pos=55
ls_logo_y_pos=50
ls_label_x_pos=30
ls_label_width=65
ls_input_x_pos=110
ls_input_width=210
ls_input_y_pos=220
ls_btn_ok_x_pos=142
ls_btn_ok_y_pos=370
ls_btn_ok_width=85
ls_btn_ok_height=30
ls_btn_cancel_x_pos=237
ls_btn_cancel_y_pos=370
ls_btn_cancel_width=85
ls_btn_cancel_height=30

[Logging]
LogFile=xrdp.log
LogLevel=INFO
EnableSyslog=true
[LoggingPerLogger]

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

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

[Xvnc]
#name=Xvnc
#lib=libvnc.so
#username=ask
#password=ask
#ip=127.0.0.1
#port=-1

[vnc-any]
name=vnc-any
lib=libvnc.so
ip=ask
port=ask5900
username=na
password=ask

[neutrinordp-any]
name=neutrinordp-any
lib=libxrdpneutrinordp.so
ip=ask
port=ask3389
username=ask
password=ask

[xrdp8]
name=Reconnect
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=5910

cp /etc/X11/trusted /etc/X11/trusted_old; mcedit /etc/X11/trusted

/usr/bin/fly-dm(MAC_R|HOST_R)
/usr/bin/fly-dm_greet(MAC_R)
/usr/bin/fly-orientation(MAC_R)
/usr/bin/fly-wm(WM_R)
/usr/bin/kwin_x11(WM_R)
/usr/bin/ksmserver(KBD_R)
/usr/bin/spice-vdagent(MAC_R|PROP_R)
/usr/bin/Xephyr(NESTED_R|MAC_R|KBD_R)
/usr/bin/Xnest(NESTED_R|MAC_R|KBD_R)
/usr/bin/fly-vkbd(KBD_R|MAC_R)
/usr/bin/kglobalaccel5(KBD_R)
/usr/bin/numlockx(KBD_R)
/usr/bin/synergys(KBD_R)
/usr/bin/ibus-daemon(KBD_R)
/usr/bin/xneur(KBD_R)
/usr/bin/kwin_wayland(SNAP_R|KBD_R)
/usr/bin/picom(SNAP_R)
/usr/bin/compton(SNAP_R)
/usr/bin/fly-kompmgr(SNAP_R)
/usr/bin/krdc(KBD_R)
/usr/lib/kauth/libexec/kioskhelper(HOST_R)
/usr/bin/spectacle(SNAP_R)

cp /etc/X11/fly-dm/fly-dmrc /etc/X11/fly-dm/fly-dmrc_old; mcedit /etc/X11/fly-dm/fly-dmrc

[General]
ConfigVersion=2.4
ConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6
DefaultSession=fly
GreeterUID=fly-dm
OneGUISessionPerUser=false
PidFile=/var/run/fly-dm.pid
ReserveServers=:1,:2,:3,:4,:5
ServerVTs=-7
StaticServers=:0

[Xdmcp]
EnableAll=true

[Shutdown]
BootManager=None
HaltCmd=/bin/systemctl poweroff
RebootCmd=/bin/systemctl reboot

[X-*-Core]
AllowNullPasswd=false
AllowRootLogin=false
AllowSdForceNow=Root
AllowShutdown=Root
AutoReLogin=false
ClientLogFile=.xsession-errors-%d
DefaultSdMode=ForceNow
NoPassEnable=false
NoPassUsers=
Reset=/etc/X11/fly-dm/Xreset
ScheduledSd=Optional
Session=/etc/X11/fly-dm/Xsession
SessionsDirs=/etc/X11/fly-dm/sessions,/usr/share/fly-dm/sessions,/etc/X11/sessions,/usr/share/xsessions,/usr/share/wayland-sessions
Setup=/etc/X11/fly-dm/Xsetup
Startup=/etc/X11/fly-dm/Xstartup

[X-*-Greeter]
AntiAliasing=true
DefaultUser=cmp-svc-cfgadmin
Domains=
FaceDir=/usr/share/fly-dm/faces
FaceSource=PreferAdmin
FailFont=PT Astra Fact,10,-1,5,75,0,0,0,0,0,Bold
FirstScreen=auto
FocusPasswd=true
ForgingSeed=1707384112
GreetFont=PT Astra Fact,12,-1,5,75,0,0,0,0,0,Bold
GreetString=Добро пожаловать в %n
GreeterFullTimeout=90
GreeterPos=50,50
HiddenUsers=root
LogoArea=Logo
LogoPixmap=/usr/share/fly-dm/pics/logo.gif
MaxShowUID=29999
MinShowUID=1000
NumLock=On
PluginOptions=DefaultDomain=<local>,Domains=
PluginsLogin=modern
PluginsShutdown=classic
PreselectUser=Previous
SelectedUsers=
ShowUsers=NotHidden
ShowVkbd=auto
SortUsers=true
StdFont=PT Astra Fact,10,-1,5,50,0,0,0,0,0,Regular
SuspendTimeout=0
Theme=/usr/share/fly-dm/themes/fly-modern
UseTheme=true
UserCompletion=false
UserList=true

[X-:*-Core]
AllowNullPasswd=true
AllowShutdown=Root
NoPassEnable=false
NoPassUsers=
ServerArgsLocal=
ServerCmd=/usr/lib/xorg/Xorg -br -novtswitch -quiet -keeptty

[X-:*-Greeter]
AllowClose=true
DefaultUser=cmp-svc-cfgadmin
FocusPasswd=true
LoginMode=DefaultLocal
PreselectUser=Previous

[X-:0-Core]
AllowSuspend=All
AutoLoginAgain=false
AutoLoginDelay=0
AutoLoginEnable=false
AutoLoginLocked=false
AutoLoginUser=
ClientLogFile=.xsession-errors

[X-:0-Greeter]
DefaultUser=cmp-svc-cfgadmin
FocusPasswd=true
PreselectUser=Previous

[Xdmcp]
Enable=true
EnableAll=true
Willing=/etc/X11/fly-dm/Xwilling

cp /etc/X11/fly-dm/Xaccess /etc/X11/fly-dm/Xaccess_old; mcedit /etc/X11/fly-dm/Xaccess

*                                       #any host can get a login window
*               CHOOSER BROADCAST       #any indirect host can get a chooser

Создаем скрипт следующего содержимого:

mcedit ./add_user_to_group.sh

#!/bin/bash
GROUP="astra-xrdp"
USERS=""
groupadd "$GROUP"

for USERS in $USERS; do
 gpasswd -a "$USERS" "$GROUP"
done

Переменной USERS указываем список пользователей через пробел. Скрипт пропишет пользователей в группу xrdp иначе по rdp на сервер не попасть.

Прописываем УЗ t1w!

Делаем systemctl restart fly-dm, должно все работать. Если не заработает, ребутните ОС.