Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
xrdp.ini(5)							     xrdp.ini(5)

NAME
     xrdp.ini - Configuration file for xrdp(8)

DESCRIPTION
     This  is the man page for xrdp.ini, xrdp(8) configuration file.  It is com-
     posed by a number of sections, each one composed by  a  section  name,  en-
     closed by square brackets, followed by a list of <parameter>=<value> lines.

     xrdp.ini supports the following sections:

     [Globals] - sets some global configuration settings for xrdp(8).

     [Logging] - logging subsystem parameters

     [Channels] - channel subsystem parameters

     All  options and values (except for file names and paths) are case insensi-
     tive, and are described in detail below.

GLOBALS
     The options to be specified in the [Globals] section are the following:

     port=port_specification [ port_specification ... ]
	    Specify the port(s) that xrdp should listen  on.  More  instructions
	    and examples can be found within xrdp.ini itself.

     instance_name=<arbitrary-string>
	    Specify  an arbitrary name for the xrdp instance that can be used to
	    identify sessions that this xrdp instance  started,  or  which  were
	    spun  up with the same name using xrdp-sesrun. When using the N pol-
	    icy in sesman.ini these sessions are kept distinct and can be recon-
	    nected to by connecting to the respective xrdp instance.

     vmconnect=[true|false]
	    (Hyper-V VMs only). Enables a wider support  of  security  protocols
	    when  a  virtual  machine running xrdp is hosted on Hyper-V, and the
	    user connects to it via the vmms service on TCP port 2179.	In  this
	    configuration,  RDP security is handled by the vmms service, and se-
	    curity features which are not yet added to xrdp itself can	be  sup-
	    ported.

	    This  parameter  is  required  in  environments which do not support
	    'classic' RDP encryption.

	    The parameter is ignored for connections which are not made  to  the
	    virtual machine over the vsock transport.

     autorun=session_name
	    Section  name  for	automatic  login. If set and the client supplies
	    valid username and password, the user will be  logged  in  automati-
	    cally using the connection specified by session_name.

	    If	session_name  is empty, the LOGIN DOMAIN from the client with be
	    used to select the section. If no domain name is supplied, the first
	    suitable section will be used for automatic login.

     bitmap_cache=[true|false]
	    If set to 1, true or yes  this  option  enables  bitmap  caching  in
	    xrdp(8).

     bitmap_compression=[true|false]
	    If	set  to 1, true or yes this option enables bitmap compression in
	    xrdp(8).

     bulk_compression=[true|false]
	    If set to 1, true or yes this option  enables  compression	of  bulk
	    data in xrdp(8).

     certificate=/path/to/certificate

     key_file=/path/to/private_key
	    Set  location of TLS certificate and private key. They must be writ-
	    ten  in  PEM  format.   If	not  specified,  defaults  to	/usr/lo-
	    cal/etc/xrdp-devel/cert.pem, /usr/local/etc/xrdp-devel/key.pem.

	    This  parameter is effective only if security_layer is set to tls or
	    negotiate.

     tls_pms_log_file=<path-to-log-file>
	    Logs TLS pre-master secrets  to  the  specified  file.  This  allows
	    packet capture tools (e.g. Wireshark) to decrypt captured PDUs.

	    The  file  must be writeable by xrdp and readable by the packet cap-
	    ture tool.	A good way to achive this is to create a  temporary  di-
	    rectory with permissions 2750 owned by the user running xrdp, and in
	    the group used by the packet sniffer.

	    SETTING THIS OPTION IS A SECURITY RISK. ONLY SET THIS OPTION FOR DE-
	    BUGGING COMMUNICATIONS BETWEEN XRDP AND A CLIENT.

     channel_code=[true|false]
	    If	set to 0, false or no this option disables all channels xrdp(8).
	    See section CHANNELS below for more fine grained options.

     crypt_level=[low|medium|high|fips]
	    Regulate encryption level of Classic RDP Security.	 This  parameter
	    is effective only if security_layer is set to rdp or negotiate.

	    Encryption	in  Classic  RDP Security is controlled by two settings:
	    Encryption Level and Encryption Method.  The only supported  Encryp-
	    tion  Method  are  40BIT_ENCRYPTION and 128BIT_ENCRYPTION. 56BIT_EN-
	    CRYPTION is not supported.	 This  option  controls  the  Encryption
	    Level:

	     low    All  data sent from the client to the server is protected by
		    encryption based on the maximum key  strength  supported  by
		    the client.  This is the only level that the traffic sent by
		    the server to client is not encrypted.

	     medium
		    All data sent between the client and the server is protected
		    by encryption based on the maximum key strength supported by
		    the client (client compatible).

	     high   All data sent between the client and the server is protected
		    by	encryption  based  on  the server's maximum key strength
		    (sever compatible).

	     fips   All data sent between the client and server is protected us-
		    ing Federal Information Processing Standard 140-1  validated
		    encryption	methods.  Note that FIPS 140-1 is no longer con-
		    sidered secure.  This level is required for Windows  clients
		    (mstsc.exe)  if the client's group policy enforces FIPS-com-
		    pliance mode.

     fork=[true|false]
	    If set to 1, true or yes for each incoming connection xrdp(8)  forks
	    a sub-process instead of using threads.

     hidelogwindow=[true|false]
	    If	set  to 1, true or yes, xrdp will not show a window for log mes-
	    sages.  If not specified, defaults to false.

     max_bpp=[8|15|16|24|32]
	    Limit the color depth by specifying the maximum number of  bits  per
	    pixel.  If not specified or set to 0, unlimited.

     pamerrortxt=error_text
	    Specify  additional  text displayed to user if authentication fails.
	    The maximum length is 256.

	    The use of 'pam' in the name of this option is historic

     port=port
	    Specify TCP port and interface to listen  on  for  incoming  connec-
	    tions.   Specifying only the port means that xrdp will listen on all
	    interfaces.  The  default  port  for  RDP  is  3389.   Multiple  ad-
	    dress:port	instances  must  be separated by spaces or commas. Check
	    the .ini file for examples.  Specifying interfaces requires said in-
	    terfaces to be UP before xrdp starts.

     runtime_user=username

     runtime_group=groupname
	    User name and group to run the xrdp daemon under.

	    After xrdp starts, it sets its UID and GID to  values  derived  from
	    these settings, so that it's running without system privilege.

	    The  runtime_group	MUST  be  set  to the same value as SessionSock-
	    dirGroup in sesman.ini if you want to run sessions.

	    A suitable user and group can be added  with  a  command  like  this
	    (Linux):-

	    useradd xrdp -d / -c 'xrdp daemon' -s /usr/sbin/nologin

	    In order to establish secure connections, the xrdp daemon needs per-
	    mission  to access sensitive cryptographic files. After changing ei-
	    ther or both of these values, check that xrdp has access to required
	    files by running this script:-

	    /usr/local/share/xrdp/xrdp-chkpriv

     enable_token_login=[true|false]
	    If set to 1, true or yes, xrdp will scan the user name  provided  by
	    the  client  for the ASCII field separator character (0x1F). It will
	    then copy over what is after the separator as the password	supplied
	    by	the  user and treats it as autologon. If not specified, defaults
	    to false.

     domain_user_separator=separator
	    If specified the domain name supplied by the client is  appended  to
	    the username separated by separator.

     require_credentials=[true|false]
	    If	set to 1, true or yes, xrdp requires clients to include username
	    and password initial connection phase. In other words, xrdp  doesn't
	    allow  clients to show login screen if set to true.  It follows that
	    an incorrect password will cause the login to immediately fail with-
	    out displaying the login screen.   If  not	specified,  defaults  to
	    false.

     security_layer=[tls|rdp|negotiate]
	    Regulate security methods. If not specified, defaults to negotiate.

	     tls    Enhanced  RDP Security is used. All security operations (en-
		    cryption,  decryption,  data  integrity  verification,   and
		    server authentication) are implemented by TLS.

	     rdp    Classic  RDP Security is used. The encryption level of Clas-
		    sic RDP Security is controlled  by	crypt_level.   Use  this
		    setting for testing only.

	     negotiate
		    Negotiate these security methods with clients.

     ssl_protocols=[SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2] [TLSv1.3]
	    Enables  the specified SSL/TLS protocols. Each value should be sepa-
	    rated by comma.  SSLv2 is always disabled.	At  least  one	protocol
	    should be given to accept TLS connections.	This parameter is effec-
	    tive only if security_layer is set to tls or negotiate.

     tcp_keepalive=[true|false]
	    Regulate  if  the  listening socket uses socket option SO_KEEPALIVE.
	    If set to 1, true or yes and the network connection disappears with-
	    out closing messages, the connection will be closed.

     tcp_nodelay=[true|false]
	    Regulate if the listening socket uses socket option TCP_NODELAY.  If
	    set to 1, true or yes, no buffering will be  performed  in	the  TCP
	    stack.

     tcp_send_buffer_bytes=buffer_size

     tcp_recv_buffer_bytes=buffer_size
	    Specify  send/recv buffer sizes in bytes.  The default value depends
	    on the operating system. It is recommended not to set these on  sys-
	    tems with dynamic TCP buffer sizing

     tls_ciphers=cipher_suite
	    Specifies  TLS cipher suite. The format of this parameter is equiva-
	    lent to which openssl(1) ciphers subcommand accepts.

	    (ex. $ openssl ciphers 'HIGH:!ADH:!SHA1')

	    This parameter is effective only if security_layer is set to tls  or
	    negotiate.

     use_fastpath=[input|output|both|none]
	    If not specified, defaults to none.

     black=000000

     grey=c0c0c0

     dark_grey=808080

     blue=0000ff

     dark_blue=00007f

     white=ffffff

     red=ff0000

     green=00ff00

     background=000000
	    These options override the colors used internally by xrdp(8) to draw
	    the  login	and log windows.  Colors are defined using a hexadecimal
	    (hex) notation for the combination of Red,	Green,	and  Blue  color
	    values  (RGB).   The  lowest  value  that can be given to one of the
	    light sources is 0 (hex 00).  The highest value is 255 (hex FF).

     fv1_select=130:sans-18.fv1,0:sans-10.fv1
	    Selects a default fv1 font.  This  parameter  is  a  comma-separated
	    list of DPI:name pairs.  The list is scanned from left-to-right. The
	    font used is the first font whose DPI value is less-than-or-equal to
	    the vertical DPI of the monitor used for the login screen.

     default_dpi=96
	    Default  DPI used for a monitor if the client does not send physical
	    size information.

LOGGING
     The following parameters can be used in the [Logging] section:

     LogFile=/var/log/xrdp.log
	    This options contains the path to logfile. It can be either absolute
	    or relative. If set to <stdout>, log will go to stdout. Use for  de-
	    bugging only

     LogLevel=level
	    This option can have one of the following values:

	    CORE  or  0  -  Log  only core messages. these messages are _always_
	    logged, regardless the logging level selected.

	    ERROR or 1 - Log only error messages

	    WARNING, WARN or 2 - Logs warnings and error messages

	    INFO or 3 - Logs errors, warnings and informational messages

	    DEBUG or 4 - Log everything. If xrdp-sesman  is  compiled  in  debug
	    mode,  this  options will output many more low-level message, useful
	    for developers

     EnableSyslog=[true|false]
	    If set to 1, true or yes this option enables logging to syslog. Oth-
	    erwise syslog is disabled.

     SyslogLevel=level
	    This option sets the logging level for syslog. It can have the  same
	    values  of	LogLevel.  If  SyslogLevel is greater than LogLevel, its
	    value is lowered to that of LogLevel.

     EnableConsole=[true|false]
	    If set to 1, true or yes, this option enables logging to the console
	    (ie. stdout).

     ConsoleLevel=level
	    Logging level for the console.  It	can  have  the	same  values  as
	    LogLevel. Defaults to DEBUG.

     EnableProcessId=[true|false]
	    If set to 1, true or yes, this option enables logging the process id
	    in all log messages. Defaults to false.

CHANNELS
     The  Remote  Desktop  Protocol supports several channels, which are used to
     transfer additional data like sound, clipboard data  and  others.	 Channel
     names  not  listed here will be blocked by xrdp.  Not all channels are sup-
     ported in all cases, so setting a value to true is a prerequisite, but does
     not force its use.
     Channels can also be enabled or disabled on a per connection basis by  pre-
     fixing each setting with channel. in the channel section.

     rdpdr=[true|false]
	    If	set  to 1, true or yes using the RDP channel for device redirec-
	    tion is allowed.

     rdpsnd=[true|false]
	    If set to 1, true or yes using the RDP channel for sound is allowed.

     drdynvc=[true|false]
	    If set to 1, true or yes using the RDP  channel  to  initiate  addi-
	    tional dynamic virtual channels is allowed.

     cliprdr=[true|false]
	    If	set  to 1, true or yes using the RDP channel for clipboard redi-
	    rection is allowed.

     rail=[true|false]
	    If set to 1, true or yes using the RDP channel for	remote	applica-
	    tions integrated locally (RAIL) is allowed.

     xrdpvr=[true|false]
	    If	set  to  1,  true  or  yes  using the RDP channel for XRDP Video
	    streaming is allowed.

CONNECTIONS
     A connection section is made of a section name, enclosed in  square  brack-
     ets, and the following entries:

     name=<session name>
	    The name displayed in xrdp(8) login window's combo box.

     lib=../vnc/libvnc.so
	    Sets the library to be used with this connection.

     username=<username>|{base64}<base64-encoded-username>|ask
	    Specifies  the  username  used for authenticating in the connection.
	    If set to ask, user name should be provided in the login window.

	    If the username includes comment out symbols such as  '#',	or  ';',
	    the username can be provided in base64 form prefixing "{base64}".

     password=<password>|{base64}<base64-encoded-password>|ask
	    Specifies  the  password  used for authenticating in the connection.
	    If set to ask, password should be provided in the login window.

	    This parameter can be provided in base64 form as well  as  username.
	    See also examples below.

     ip=127.0.0.1
	    Specifies the ip address of the host to connect to.

     port=<number>|-1
	    Specifies  the  port number to connect to. If set to -1, the default
	    port for the specified library is used.

     xserverbpp=<number>
	    Specifies color depth of the backend X server. The	default  is  the
	    color depth of the client. Only Xvnc uses that setting. Xorg runs at
	    24 bpp.

     disabled_encodings_mask=<number>
	    Set  this  bitmask to a non-zero value to prevent xrdp(8) requesting
	    some features from the Xvnc server. You should only need to set this
	    to	a non-zero value to work around bugs in your  Xvnc  server.  The
	    bit  values  supported for a particular release of xrdp(8) are docu-
	    mented in xrdp.ini.

     code=<number>|0
	    Specifies the session type. 0 is Xvnc over TCP, 1  is  Xvnc  over  a
	    UNIX  domain  socket, and 20 is Xorg with xorgxrdp modules.  The de-
	    fault is 0 on non-FIPS systems, and 1 on FIPS systems.

     chansrvport=DISPLAY(n)|DISPLAY(n,u)||/path/to/domain-socket
	    Asks xrdp to connect to a manually	started  xrdp-chansrv  instance.
	    This  can  be  useful if you wish to use to use xrdp to connect to a
	    VNC session which has been started other than by xrdp-sesman, as you
	    can then make use of xrdp-chansrv facilities in the VNC session.

	    Either the first or second form of this setting is recommended.  Re-
	    place n with the X11 display number of the session, and (if applica-
	    ble)  u  with the numeric ID of the session. The second form is only
	    required if xrdp is unable to determine the  session  uid  from  the
	    other values in the connection block.

	    If	you  use  this setting, you must also set SessionSockdirGroup in
	    sesman.ini to be the same as runtime_group in  this  file.	This  is
	    necessary to give xrdp the privilege to connect to xrdp-chansrv.

     keycode_set=<string>
	    [Xorg  only]  Asks for the specified keycode set to be used by the X
	    server.  Normally "evdev" or "base". The default should  be  correct
	    for your system.

     h264_frame_interval=<integer>
	    [Xorg  only]  Specify  frame  capture interval for H.264 captures in
	    milliseconds.

     rfx_frame_interval=<integer>
	    [Xorg only] Specify frame capture interval for RemoteFX captures  in
	    milliseconds.

     normal_frame_interval=<integer>
	    [Xorg  only]  Specify  frame capture interval for normal captures in
	    milliseconds.

EXAMPLES
     This is an example xrdp.ini:

     [Globals]
     bitmap_cache=true
     bitmap_compression=true

     [Xorg]
     name=Xorg
     lib=libxup.so
     username=ask
     password=ask
     ip=127.0.0.1
     port=-1
     code=20
     h264_frame_interval=16
     rfx_frame_interval=32
     normal_frame_interval=40

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

FILES
     /usr/local/etc/xrdp-devel/xrdp.ini

SEE ALSO
     xrdp(8), xrdp-chansrv(8), xrdp-sesman(8), xrdp-sesrun(8), sesman.ini(5)

     For more info on xrdp see http://www.xrdp.org/

xrdp team		   0.10.80.b20260702-3af31df3		     xrdp.ini(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=xrdp.ini&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help