/cert-ignore is not applied when using rdp file with authentication level set · Issue #3199 · FreeRDP/FreeRDP · GitHub

/cert-ignore is not applied when using rdp file with authentication level set · Issue #3199 · FreeRDP/FreeRDP · GitHub Сертификаты

Что такое rdp

Remote Desktop Protocol — протокол удаленного рабочего стола от Microsoft. С его помощью вы можете установить соединение с удаленным компьютером и управлять его операционной системой, используя графический интерфейс.

На Windows протокол доступен «из коробки». Клиент RDP называется «Подключение к удаленному рабочему столу» или Remote Desktop Connection. Исполняемый файл клиента называется mstsc.exe. 

RDP можно использовать не только на Windows. Для macOS, Android и iOS есть официальное приложение, на Ubuntu и Debian можно установить сторонние клиенты.

/cert-ignore is not applied when using rdp file with authentication level set · issue #3199 · freerdp/freerdp

Hello,

With latest master, this is what I get using xfreerdp and a rdp file to connect to a Windows 2021-R2 RDS farm:

the culprit is the authentication level:i:2 in the rdp file.
If set to 1 or 2, it fails with the following error.
If set to 0, there is no error.

But I have set /cert-ignore in my command line, which is ignored.

echo ‘password’ | xfreerdp file.rdp -toggle-fullscreen /cert-ignore compression /compression-level:2 heartbeat /d:DOM /u:user /f /sec:nla /from-stdin /kbd:french auto-reconnect /client-hostname:myhost multitouch /sound:sys:pulse,quality:high,rate:44100 /sound:latency:50 async-update async-transport
[14:14:07:962] [20529:20530] [INFO][com.freerdp.client.common.cmdline] – loading channel rdpdr
[14:14:07:963] [20529:20530] [INFO][com.freerdp.client.common.cmdline] – loading channel rdpsnd
[14:14:07:963] [20529:20530] [WARN][com.freerdp.core.client] – Skipping, channel already loaded
[14:14:07:964] [20529:20530] [INFO][com.freerdp.client.common.cmdline] – loading channel rdpsnd
[14:14:07:965] [20529:20530] [INFO][com.freerdp.client.common.cmdline] – loading channel cliprdr
[14:14:07:965] [20529:20530] [INFO][com.freerdp.client.common.cmdline] – loading channel drdynvc
Certificate details:
Subject: C = FR, O = MYO, OU = MYOU, CN = BROKER.DOM, emailAddress = certificats@dom.fr
Issuer: C = FR, O = MYO, OU = MYOU, CN = BROKER.DOM, emailAddress = certificats@dom.fr
Thumbprint: 67:3e:4e:6b:dc:45:2c:1e:f5:78:16:17:eb:5b:65:9a:ad:61:c6:39
The above X.509 certificate could not be verified, possibly because you do not have
the CA certificate in your certificate store, or the certificate has expired.
Please look at the documentation on how to create local certificate store for a private CA.
[14:14:07:017] [20529:20530] [ERROR][com.freerdp.crypto] – certificate not trusted, aborting.
[14:14:07:017] [20529:20530] [ERROR][com.freerdp.core] – freerdp_set_last_error ERRCONNECT_CONNECT_CANCELLED [0x2000B]
[14:14:07:017] [20529:20530] [ERROR][com.freerdp.core.connection] – Error: protocol security negotiation or connection failure
[14:14:07:017] [20529:20530] [ERROR][com.freerdp.client.x11] – Freerdp connect error exit status 1

Добавляем А запись

/cert-ignore is not applied when using rdp file with authentication level set · Issue #3199 · FreeRDP/FreeRDP · GitHub

Просто добавляем A запись и вписываем в неё IP адрес сервера. На этом работа с доменом окончена.

Качаем WinAcme

. Архив лучше всего распаковать туда, куда вы не доберетесь, исполняемые файлы и скрипты вам еще пригодятся в будущем для автоматического обновления сертификата. Лучше всего вытряхнуть архив в C:WinAcme.

Открываем 80 порт

/cert-ignore is not applied when using rdp file with authentication level set · Issue #3199 · FreeRDP/FreeRDP · GitHub

Разрешаем выполнение скриптов

Чтобы WinAcme смог без проблем импортировать новый сертификат, нужно разрешить выполнение скриптов. Для этого переходив в папку /Scripts/

Перед запуском WinAcme нам нужно разрешить выполнение двух скриптов. Для этого двойным кликом запустите PSRDSCerts.bat из папки со скриптами.

Устанавливаем сертификат

/cert-ignore is not applied when using rdp file with authentication level set · Issue #3199 · FreeRDP/FreeRDP · GitHub

Дальше скопируйте строку ниже и введите имя домена, по которому хотите подключатсяь к серверу и выполните команду.

Freerdp параметры подключения | xaxatyxa

/cert-ignore is not applied when using rdp file with authentication level set · Issue #3199 · FreeRDP/FreeRDP · GitHub

Я уже рассказывал про установку FreeRDP на Ubuntu. Теперь пришло время описать параметры подключения.

Набирая в консоли «xfreerdp –help» получаем краткое описание параметров. Попробую описать всё более детально.

xaxatyxa@xaxatyxa-desktop:~$ xfreerdp –help

FreeRDP — A Free Remote Desktop Protocol Client
See http://freerdp.sourceforge.net for more information

Usage: xfreerdp [options] server:port
— a: color depth (8, 15, 16, 24 or 32)
— u: username
— p: password
— d: domain
— k: keyboard layout ID
— kbd-list: list all keyboard layout IDs
— s: shell
— c: directory
— g: geometry, using format WxH, default is 1024×768
— t: alternative port number, default is 3389
— n: hostname
— o: console audio
— 0: console session
— f: fullscreen mode
— z: enable bulk compression
— x: performance flags (m, b or l for modem, broadband or lan)
— no-tls: disable TLS encryption
— plugin: load a virtual channel plugin
— no-osb: disable off screen bitmaps, default on
— version: Print out the version and exit
— h: show this help

Описание параметров:

-a: Глубина цвета монитора. Возможные значения: 8, 15, 16, 24, 32 бита
-u: Имя пользователя для авторизации на сервере
-p: Пароль пользователя для авторизации на сервере
-d: Домен для авторизации на сервере
-k: Раскладка клавиатуры. Пример: -k en_US или -k 0×00000409
–kbd-list: Список всех возможных раскладок.

xaxatyxa@xaxatyxa-desktop:~$ xfreerdp --kbd-list

Keyboard Layouts
0x00000401	Arabic (101)
0x00000402	Bulgarian
0x00000404	Chinese (Traditional) - US Keyboard
0x00000405	Czech
0x00000406	Danish
0x00000407	German
0x00000408	Greek
0x00000409	US
0x0000040A	Spanish
0x0000040B	Finnish
0x0000040C	French
0x0000040D	Hebrew
0x0000040E	Hungarian
0x0000040F	Icelandic
0x00000410	Italian
0x00000411	Japanese
0x00000412	Korean
0x00000413	Dutch
0x00000414	Norwegian
0x00000415	Polish (Programmers)
0x00000416	Portuguese (Brazilian ABNT)
0x00000418	Romanian
0x00000419	Russian
0x0000041A	Croatian
0x0000041B	Slovak
0x0000041C	Albanian
0x0000041D	Swedish
0x0000041E	Thai Kedmanee
0x0000041F	Turkish Q
0x00000420	Urdu
0x00000422	Ukrainian
0x00000423	Belarusian
0x00000424	Slovenian
0x00000425	Estonian
0x00000426	Latvian
0x00000427	Lithuanian IBM
0x00000429	Farsi
0x0000042A	Vietnamese
0x0000042B	Armenian Eastern
0x0000042C	Azeri Latin
0x0000042F	FYRO Macedonian
0x00000437	Georgian
0x00000438	Faeroese
0x00000439	Devanagari - INSCRIPT
0x0000043A	Maltese 47-key
0x0000043B	Norwegian with Sami
0x0000043F	Kazakh
0x00000440	Kyrgyz Cyrillic
0x00000444	Tatar
0x00000445	Bengali
0x00000446	Punjabi
0x00000447	Gujarati
0x00000449	Tamil
0x0000044A	Telugu
0x0000044B	Kannada
0x0000044C	Malayalam
0x0000044E	Marathi
0x00000450	Mongolian Cyrillic
0x00000452	United Kingdom Extended
0x0000045A	Syriac
0x00000461	Nepali
0x00000463	Pashto
0x00000465	Divehi Phonetic
0x0000046E	Luxembourgish
0x00000481	Maori
0x00000804	Chinese (Simplified) - US Keyboard
0x00000807	Swiss German
0x00000809	United Kingdom
0x0000080A	Latin American
0x0000080C	Belgian French
0x00000813	Belgian (Period)
0x00000816	Portuguese
0x0000081A	Serbian (Latin)
0x0000082C	Azeri Cyrillic
0x0000083B	Swedish with Sami
0x00000843	Uzbek Cyrillic
0x0000085D	Inuktitut Latin
0x00000C0C	Canadian French (legacy)
0x00000C1A	Serbian (Cyrillic)
0x00001009	Canadian French
0x0000100C	Swiss French
0x0000141A	Bosnian
0x00001809	Irish
0x0000201A	Bosnian Cyrillic

Keyboard Layout Variants
0x00010401	Arabic (102)
0x00010402	Bulgarian (Latin)
0x00010405	Czech (QWERTY)
0x00010407	German (IBM)
0x00010408	Greek (220)
0x00010409	United States-Dvorak
0x0001040A	Spanish Variation
0x0001040E	Hungarian 101-key
0x00010410	Italian (142)
0x00010415	Polish (214)
0x00010416	Portuguese (Brazilian ABNT2)
0x00010419	Russian (Typewriter)
0x0001041B	Slovak (QWERTY)
0x0001041E	Thai Pattachote
0x0001041F	Turkish F
0x00010426	Latvian (QWERTY)
0x00010427	Lithuanian
0x0001042B	Armenian Western
0x00010439	Hindi Traditional
0x0001043A	Maltese 48-key
0x0001043B	Sami Extended Norway
0x00010445	Bengali (Inscript)
0x0001045A	Syriac Phonetic
0x00010465	Divehi Typewriter
0x0001080C	Belgian (Comma)
0x0001083B	Finnish with Sami
0x00011009	Canadian Multilingual Standard
0x00011809	Gaelic
0x00020401	Arabic (102) AZERTY
0x00020405	Czech Programmers
0x00020408	Greek (319)
0x00020409	United States-International
0x0002041E	Thai Kedmanee (non-ShiftLock)
0x0002083B	Sami Extended Finland-Sweden
0x00030408	Greek (220) Latin
0x00030409	United States-Dvorak for left hand
0x0003041E	Thai Pattachote (non-ShiftLock)
0x00040408	Greek (319) Latin
0x00040409	United States-Dvorak for right hand
0x00050408	Greek Latin
0x00050409	US English Table for IBM Arabic 238_L
0x00060408	Greek Polytonic
0xB0000407	German Neo
Keyboard Input Method Editors (IMEs)
0xE0010404	Chinese (Traditional) - Phonetic
0xE0010411	Japanese Input System (MS-IME2002)
0xE0010412	Korean Input System (IME 2000)
0xE0010804	Chinese (Simplified) - QuanPin
0xE0020404	Chinese (Traditional) - ChangJie
0xE0020804	Chinese (Simplified) - ShuangPin
0xE0030404	Chinese (Traditional) - Quick
0xE0030804	Chinese (Simplified) - ZhengMa
0xE0040404	Chinese (Traditional) - Big5 Code
0xE0050404	Chinese (Traditional) - Array
0xE0050804	Chinese (Simplified) - NeiMa
0xE0060404	Chinese (Traditional) - DaYi
0xE0070404	Chinese (Traditional) - Unicode
0xE0080404	Chinese (Traditional) - New Phonetic
0xE0090404	Chinese (Traditional) - New ChangJie
0xE00E0804	Chinese (Traditional) - Microsoft Pinyin IME 3.0
0xE00F0404	Chinese (Traditional) - Alphanumeric

-s: Запуск приложения при подключении. Указываем путь до нужного приложения.
-c: Рабочий каталог. Используется в сочетании с параметром «-s».

параметры «-s» и «-с» соответствуют параметрам в mstsc windows 

/cert-ignore is not applied when using rdp file with authentication level set · Issue #3199 · FreeRDP/FreeRDP · GitHub

-g: Разрешение экрана. Указывается в формате WxH. По умолчанию используется 1024×768
-t:  Номер порта сервера. По умолчанию это стандартный RDP порт 3389. Можно также указать как «: <port>» после ip-адреса или имени сервера.

-n: Имя клиента, которое будет передано серверу. freerdp автоматически получает имя хоста клиента.
-o: Воспроизводить звук на стороне сервера. Соответствует аналогичному параметру в windows «Проигрывать на этом компьютере»

/cert-ignore is not applied when using rdp file with authentication level set · Issue #3199 · FreeRDP/FreeRDP · GitHub

-0:  (ноль) Присоединиться на сервере к консоли администратора . Это параметр включается автоматически если сервер лицензирования сервера терминалов  недоступен. Аналог в windows /admin (пример: mstsc.exe /admin /v:192.168.0.1)

-f: Удаленный рабочий стол открывается на весь экран. Переключиться обратно в linux можно с помощью сочетания клавиш «Ctrl Alt Enter»
-zВключить сжатие внутри зашифрованного потока данных RDP.
-x: Производительность канала (Аналог в windows вкладка”Дополнительно”). Имеет три параметра:

  1. b (broadband) — широкополосный канал. Включает «Визуальные эффекты при отображении меню и окон» и «Отображать содержимое окна при перетаскивании»
  2. l (lan) — Локальная сеть. Включает ещё и «Фоновый рисунок рабочего стола»
  3. m (modem) — отключает всё. 

Если вы не используете этот параметр при подключении, то по умолчанию будут включены только «Стили оформления».

/cert-ignore is not applied when using rdp file with authentication level set · Issue #3199 · FreeRDP/FreeRDP · GitHub
–no-tlsОтключить TLS шифрования.
–plugin: Подключить дополнительные плагины

формат использования: –plugin <pluginname> [–data <plugindata> –]

пример: –plugin drdynvc –data audin —

Параметр «–plugin» может быть указан несколько раз, если вы подключаете несколько плагинов. Параметр «–data» после указания аргументов должен закрываться символами «–»

В версии 0.8.2 поддерживаются следующие плагины:

–plugin cliprdr
Синхронизация буфера обмена. Поддерживается: обычный текст, Unicode текст, HTML и изображения.

Про сертификаты:  Выгодный бизнес: производство наполнителей для кошачьих туалетов. Оборудование для производства наполнителей для кошачьих туалетов ::

–plugin rdpsnd
Перенаправление звука, генерируемого на сервере клиента.

–plugin rdpdr –data <subplugin> [<subplugin> …] —
Перенаправление устройств файловой системы вашего клиента к серверу.<subplugin> может принимать значение одно или несколько из следующих:

disk:<sharename>:<path>

Перенаправление <path> на сервер в качестве общей папки \tsclient<sharename>.

printer[:<printername>[:<driver>]]

Перенаправление принтера на сервер. Если параметры <printername> и <driver> не будут указаны, автоматически будут перенаправляться все принтеры.

serial:<sharename>:<device>

Перенаправление последовательного порта (serial port или COM-порт) на сервер.

parallel:<sharedname>:<lptdevice>

Перенаправление параллельного порта на сервер.

–plugin drdynvc –data <subplugin> [<subplugin> …] —
Перенаправление звука на сервер и с него. Потдерживается в RDP версии 7.0 (Windows 7, Windows 2008 and Windows 2008 R2).

–no-osb: Отключить кеширование графики, по умолчанию включено.  Позволяет значительно повысить производительность.
–version: Узнать версию FreeRDP

xaxatyxa@xaxatyxa-desktop:~$ xfreerdp --version
This is FreeRDP version 0.8.2

-h: Показать помощь. 

xaxatyxa@xaxatyxa-desktop:~$ xfreerdp -h

FreeRDP - A Free Remote Desktop Protocol Client
See http://freerdp.sourceforge.net for more information
Usage: xfreerdp [options] server:port
	-a: color depth (8, 15, 16, 24 or 32)
	-u: username
	-p: password
	-d: domain
	-k: keyboard layout ID
	--kbd-list: list all keyboard layout IDs
	-s: shell
	-c: directory
	-g: geometry, using format WxH, default is 1024x768
	-t: alternative port number, default is 3389
	-n: hostname
	-o: console audio
	-0: console session
	-f: fullscreen mode
	-z: enable bulk compression
	-x: performance flags (m, b or l for modem, broadband or lan)
	--no-tls: disable TLS encryption
	--plugin: load a virtual channel plugin
	--no-osb: disable off screen bitmaps, default on
	--version: Print out the version and exit
	-h: show this help

Xfreerdp man page – freerdp – general commands | mankier

/a:addin[,options], /addin:addin[,options]

Addin

/action-script:file-name

Action script (default:~/.config/freerdp/action.sh)

/admin,  /console

Admin (or console) session

aero

desktop composition (default:off)

/app:path or ||alias

Remote application program

/app-cmd:parameters

Remote application command-line parameters

/app-file:file-name

File to open with remote application

/app-guid:app-guid

Remote application GUID

/app-icon:icon-path

Remote application icon for user interface

/app-name:app-name

Remote application name for user interface

/app-workdir:workspace path

Remote application workspace path

/assistance:password

Remote assistance password

/auto-request-control:

Automatically request remote assistance input control

async-channels

Asynchronous channels (experimental) (default:off)

async-input

Asynchronous input (default:off)

async-update

Asynchronous update (default:off)

/audio-mode:mode

Audio output mode

auth-only

Authenticate only (default:off)

-authentication

Authentication (experimental) (default:on)

auto-reconnect

Automatic reconnection (default:off)

/auto-reconnect-max-retries:retries

Automatic reconnection maximum retries, 0 for unlimited [0,1000]

bitmap-cache

bitmap cache (default:off)

/bpp:depth

Session bpp (color depth) (default:16)

/buildconfig

Print the build configuration

/cert:[deny,ignore,name:name,tofu,fingerprint:hash:hash as hex[,fingerprint:hash:another hash]]

Certificate accept options. Use with care! * deny … Automatically abort connection if the certificate does not match, no user interaction. * ignore … Ignore the certificate checks altogether (overrules all other options) * name … Use the alternate <name> instead of the certificate subject to match locally stored certificates * tofu … Accept certificate unconditionally on first connect and deny on subsequent connections if the certificate does not match * fingerprints … A list of certificate hashes that are accepted unconditionally for a connection

[deprecated, use /cert:deny] Automatically abort connection for any certificate that can not be validated.

/client-build-number:number

Client Build Number sent to server (influences smartcard behaviour, see [MS-RDPESC])

/client-hostname:name

Client Hostname to send to server

/clipboard:[use-selection:atom]

Redirect clipboard. * use-selection:<atom> … (X11) Specify which X selection to access. Default is CLIPBOARD. PRIMARY is the X-style middle-click selection. (default:on)

/codec-cache:[rfx|nsc|jpeg]

Bitmap codec cache

-compression,  -z

compression (default:on)

/compression-level:level

Compression level (0,1,2)

credentials-delegation

credentials delegation (default:off)

/d:domain

Domain

-decorations

Window decorations (default:on)

/disp

Display control

/drive:name,path

Redirect directory <path> as named share <name>. Hotplug support is enabled with /drive:hotplug,*. This argument provides the same function as “Drives that I plug in later” option in MSTSC.

drives

Redirect all mount points as shares (default:off)

/dvc:channel[,options]

Dynamic virtual channel

/dynamic-resolution

Send resolution updates when the window is resized

/echo, /echo

Echo channel

-encryption

Encryption (experimental) (default:on)

/encryption-methods:[40,][56,][128,][FIPS]

RDP standard security encryption methods

/f

Fullscreen mode (<Ctrl> <Alt> <Enter> toggles fullscreen)

-fast-path

fast-path input/output (default:on)

fipsmode

FIPS mode (default:off)

/floatbar[:sticky:[on|off],default:[visible|hidden],show:[always|fullscreen||window]]

floatbar is disabled by default (when enabled defaults to sticky in fullscreen mode)

-fonts

smooth fonts (ClearType) (default:on)

/frame-ack:number

Number of frame acknowledgement

/from-stdin[:force]

Read credentials from stdin. With <force> the prompt is done before connection, otherwise on server request.

/g:gateway[:port]

Gateway Hostname

/gateway-usage-method:[direct|detect], /gum:[direct|detect]

Gateway usage method

/gd:domain

Gateway domain

/gdi:sw|hw

GDI rendering

/geometry

Geometry tracking channel

gestures

Consume multitouch input locally (default:off)

/gfx[:RFX]

RDP8 graphics pipeline

gfx-progressive

RDP8 graphics pipeline using progressive codec (default:off)

gfx-small-cache

RDP8 graphics pipeline using small cache mode (default:off)

gfx-thin-client

RDP8 graphics pipeline using thin client mode (default:off)

glyph-cache

Glyph cache (experimental) (default:off)

/gp:password

Gateway password

-grab-keyboard

Grab keyboard (default:on)

/gt:[rpc|http[,no-websockets]|auto[,no-websockets]]

Gateway transport type

/gu:[[domain]user|user[@domain]]

Gateway username

/gat:access token

Gateway Access Token

/h:height

Height (default:768)

-heartbeat

Support heartbeat PDUs (default:on)

/help,  /?

Print help

home-drive

Redirect user home as share (default:off)

/ipv6,  /6

Prefer IPv6 AAA record over IPv4 A record

/kbd:0xid or name

Keyboard layout

/kbd-lang:0xid

Keyboard active language identifier

/kbd-fn-key:value

Function key value

/kbd-list

List keyboard layouts

/kbd-lang-list

List keyboard languages

/kbd-remap:List of key=value,… pairs to remap scancodes

Keyboard scancode remapping

/kbd-subtype:id

Keyboard subtype

/kbd-type:id

Keyboard type

/load-balance-info:info-string

Load balance info

/log-filters:tag:level[,tag:level[,…]]

Set logger filters, see wLog(7) for details

/log-level:[OFF|FATAL|ERROR|WARN|INFO|DEBUG|TRACE]

Set the default log level, see wLog(7) for details

/max-fast-path-size:size

Specify maximum fast-path update size

/max-loop-time:time

Specify maximum time in milliseconds spend treating packets

menu-anims

menu animations (default:off)

/microphone[:[sys:sys,][dev:dev,][format:format,][rate:rate,][channel:channel]], /mic[:[sys:sys,][dev:dev,][format:format,][rate:rate,][channel:channel]]

Audio input (microphone)

/monitor-list

List detected monitors

/monitors:id[,id[,…]]

Select monitors to use

-mouse-motion

Send mouse motion (default:on)

/multimon[:force]

Use multiple monitors

multitouch

Redirect multitouch input (default:off)

multitransport

Support multitransport protocol (default:off)

-nego

protocol security negotiation (default:on)

/network:[modem|broadband|broadband-low|broadband-high|wan|lan|auto]

Network connection type

/nsc,  /nscodec

NSCodec support

offscreen-cache

offscreen bitmap cache (default:off)

/orientation:[0|90|180|270]

Orientation of display in degrees

old-license

Use the old license workflow (no CAL and hwId set to 0) (default:off)

/p:password

Password

/parallel[:name[,path]]

Redirect parallel device

/parent-window:window-id

Parent window id

password-is-pin

Use smart card authentication with password as smart card PIN (default:off)

/pcb:blob

Preconnection Blob

/pcid:id

Preconnection Id

/pheight:height

Physical height of display (in millimeters)

/play-rfx:pcap-file

Replay rfx pcap file

/port:number

Server port

-suppress-output

suppress output when minimized (default:on)

print-reconnect-cookie

Print base64 reconnect cookie after connecting (default:off)

/printer[:name[,driver]]

Redirect printer device

/proxy:[proto://][user:password@]host:port

Proxy settings: override env. var (see also environment variable below). Protocol “socks5” should be given explicitly where “http” is default.

/pth:password-hash, /pass-the-hash:password-hash

Pass the hash (restricted admin mode)

/pwidth:width

Physical width of display (in millimeters)

/rdp2tcp:executable path[:arg…]

TCP redirection

/reconnect-cookie:base64-cookie

Pass base64 reconnect cookie to the connection

/redirect-prefer:FQDN|IP|NETBIOS,[…]

Override the preferred redirection order

/relax-order-checks, /relax-order-checks

Do not check if a RDP order was announced during capability exchange, only use when connecting to a buggy server

Про сертификаты:  Помощь - АстМаркет
/restricted-admin,  /restrictedAdmin

Restricted admin mode

/rfx

RemoteFX

/rfx-mode:[image|video]

RemoteFX mode

/scale:[100|140|180]

Scaling factor of the display (default:100)

/scale-desktop:percentage

Scaling factor for desktop applications (value between 100 and 500) (default:100)

/scale-device:100|140|180

Scaling factor for app store applications (default:100)

/sec:[rdp|tls|nla|ext]

Force specific protocol security

sec-ext

NLA extended protocol security (default:off)

-sec-nla

NLA protocol security (default:on)

-sec-rdp

RDP protocol security (default:on)

-sec-tls

TLS protocol security (default:on)

/serial[:name[,path[,driver[,permissive]]]], /tty[:name[,path[,driver[,permissive]]]]

Redirect serial device

/shell:shell

Alternate shell

/shell-dir:dir

Shell working directory

/size:widthxheight or percent%[wh]

Screen size (default:1024×768)

/smart-sizing[:widthxheight]

Scale remote desktop to window size

/smartcard[:str[,str…]]

Redirect the smartcard devices containing any of the <str> in their names.

/smartcard-logon

Activates Smartcard Logon authentication. (EXPERIMENTAL: NLA not supported)

/sound[:[sys:sys,][dev:dev,][format:format,][rate:rate,][channel:channel,][latency:latency,][quality:quality]], /audio[:[sys:sys,][dev:dev,][format:format,][rate:rate,][channel:channel,][latency:latency,][quality:quality]]

Audio output (sound)

/span

Span screen over multiple monitors

/spn-class:service-class

SPN authentication service class

/ssh-agent, /ssh-agent

SSH Agent forwarding channel

/t:title, /title:title

Window title

-themes

themes (default:on)

/timeout:time in ms, /timeout:time in ms

Advanced setting for high latency links: Adjust connection timeout, use if you encounter timeout failures with your connection (default:9000)

/tls-ciphers:[netmon|ma|ciphers]

Allowed TLS ciphers

/tls-seclevel:level

TLS security level – defaults to 1 (default:1)

-toggle-fullscreen

Alt Ctrl Enter to toggle fullscreen (default:on)

[experimental] directly manipulate freerdp settings, use with extreme caution! (default:)

Альтернативные клиенты на ubuntu

Если приложение Remmina работает нестабильно, попробуйте другие клиенты для подключения по RDP:

  • Freerdp — бесплатная реализация RDP.
  • Rdesktop — клиент с открытым исходным кодом.

Чтобы установить freerdp, запустите терминал и выполните команду

sudo apt install freerdp2-x11 freerdp2-shadow-x11

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

xfreerdp /f /u:ИМЯ-ПОЛЬЗОВАТЕЛЯ /p:ПАРОЛЬ /v:ХОСТ[:ПОРТ]

Здесь /f — это указание на то, что удаленный рабочий стол нужно открыть в полноэкранном режиме. Если хотите открыть его в оконном режиме, просто не указывайте эту опцию. Остальные опции понятные: имя и пароль учетной записи, IP-адрес и порт компьютера, к которому вы подключаетесь.

Например, если вы хотите подключить общие папки, используйте опцию /drive:<ИМЯ>,<ПУТЬ> или drives. В первом случае вы подключаете конкретную директорию, а во втором включаете перенаправление всех точек монтирования как совместных папок.

При первом подключении в терминале появится предупреждение о недоверенном сертификате. Чтобы принять его, введите на клавиатуре Y и нажмите на Enter.

Клиент rdesktop устанавливается командой:

sudo apt install rdesktop

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

rdesktop -u ПОЛЬЗОВАТЕЛЬ -p ПАРОЛЬ ХОСТ

При первом подключении появится предупреждение о недоверенном сертификате. Введите с клавиатуры yes, чтобы принять его. 

Для работы с rdesktop на сервере должны быть настроена аутентификация на уровне сети. Иначе при подключении будет вылетать ошибка. О настройках аутентификации на уровне сети мы говорили в разделе «Безопасность».

Безопасность rdp

RDP такой же безопасный, как и другие протоколы удаленного доступа. Но для сохранения конфиденциальности его надо правильно настроить. 

Основные уязвимости:

  • Слабые учетные данные пользователей. Например, часто встречаются одинаковые пароли для локальной работы и удаленного подключения, использование пустых паролей.
  • Открытый порт 3389, который используется для подключения по умолчанию.

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

Блокировка подключений учетных записей с пустыми паролями

Для усиления безопасности можно также запретить подключаться учетным записям с пустым паролем. 

  1. Нажмите сочетание Win R и выполните secpol.msc.
  2. Перейдите по пути «Локальные политики» –- «Параметры безопасности».
  3. Включите параметр «Учетные записи: разрешить использование пустых паролей только при консольном входе».

Запуск протокола на сервере

Через окно «Выполнить»:

  1. Используйте сочетание клавиш Win R и выполните SystemPropertiesRemote.
  2. Во вкладке «Удаленный доступ» отметьте опцию «Разрешить удаленные подключения».

Можно указать конкретных пользователей, которым доступ разрешен. Чтобы сделать это, нажмите «Выбрать пользователей». Пользователи, которые входят в группу «Администраторы», могут подключаться по умолчанию. Вы можете добавить других пользователей.

Через графический интерфейс (на примере Windows 10):

  1. Откройте «Параметры».
  2. Перейдите в раздел «Система».
  3. Откройте вкладку «Удаленный рабочий стол» и переведите ползунок в положение «Вкл.».
  4. Подтвердите действие.

После включения удаленного рабочего стола появятся дополнительные настройки. Вы можете оставлять компьютер в режиме бодрствования для подключения, когда он подключен к электросети. Также можно сделать так, чтобы компьютер был доступен для обнаружения в частных сетях.

Ссылка «Дополнительные параметры» ведет к настройкам безопасности, про которые мы говорили выше. Здесь можно включить аутентификацию на уровне сети и посмотреть, какой порт используется для подключения.

Изменение имени администратора

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

Чтобы переименовать учетную запись:

  1. Нажмите сочетание Win X и выберите пункт «Управление компьютером».
  2. Раскройте разделы «Служебные программы» — «Локальные пользователи» — «Пользователи».
  3. Выберите в списке пользователя «Администратор».
  4. Кликните правой кнопкой и выберите «Переименовать».
  5. Укажите любое другое имя.

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

Настройка клиента rdp на windows

Чтобы запустить встроенное приложение, нажмите клавиши Win R и выполните команду mstsc. Также можно использовать системный поиск. Программа называется «Подключение к удаленному рабочему столу» или Remote Desktop Connection.

В запущенном окне пропишите IP-адрес сервера с настроенным RDP. Если у хоста настроено несколько IP-адресов, используйте для соединения любой. Чтобы установить связь, нажмите «Подключить». Укажите имя учетной записи и пароль пользователя.

При попытке установить соединение может появиться уведомление о недоверенном сертификате. Поставьте галочку возле опции «Больше не выводить…» и нажмите на кнопку «Да». После успешного подключения на экране появится окно, внутри которого будет удаленный рабочий стол.

Клиент mstsc также имеет дополнительные параметры. С их помощью можно, например, использовать общие принтер, диски, буфер обмена. Это удобно для обмена информацией. Допустим, вы можете копировать фрагмент текста на удаленном компьютере, а затем вставлять его в документ на локальной машине. Эти настройки выставляются до подключения на вкладке «Локальные ресурсы».

На других вкладках тоже есть полезные параметры. На пример, в разделе «Экран» вы можете настроить размер удаленного рабочего стола. Если нужен полноэкранный режиме, передвиньте ползунок в крайнюю правую позицию.

Здесь также можно включить использование всех мониторов для удаленного сеанса, указать глубину цвета и включить/выключить отображение панели управления в полноэкранном режиме. С ее помощью можно:

  • Проверять качество соединения.
  • Сворачивать удаленный рабочий стол без разрыва соединения — как любое другое приложение.
  • Менять размер экрана удаленного компьютера (полноэкранный режим, режим окна).
  • Разрывать соединение с удаленным компьютером.

Этих возможностей достаточно для базового управления подключением. 

Во вкладке «Взаимодействие» доступны настройки для оптимизации соединения. По умолчанию качество соединения определяется автоматически. Но вы можете его повысить или понизить и гибко настроить используемые функции вроде фона рабочего стола и сглаживания шрифтов.

Во вкладке «Дополнительно» скрываются настройки безопасности. Здесь можно включить/выключить предупреждение о том, что подлинность удаленного сервера не удается подтвердить. Можно подключаться без предупреждения или не соединять при обнаружении проблем.

Подключение на debian

На Debian для соединения с сервером через RDP тоже можно взять приложение Remmina. Чтобы его установить:

  1. Запустите менеджер инсталляции пакетов.
  2. В поисковой строке введите «Remmina».
  3. Выделите все результаты для инсталляции и нажмите «Применить изменения».
  4. Запустите программу после установки.
  5. Нажмите «Создать», чтобы указать данные нового подключения.
  6. Укажите имя соединения. Оно может быть любым.
  7. В поле «Сервер» пропишите IP-адрес удаленного хоста.
  8. Укажите юзернейм и пароль.
  9. Вы можете настроить дополнительные параметры подключения. Например, выбрать источник звука и настройки безопасности.
  10. Нажмите Save, чтобы сохранить соединение.
Про сертификаты:  Онлайн-процедура анализ состояния производства и отбора образцов для сертификации - Новости

Все сохраненные подключения хранятся в одном списке. Найдите нужное и нажмите на него для старта. На экране появится предупреждение о недоверенном сертификате. Щелкните «Ок» или «Принять». После удачного соединения вы попадете на рабочий стол удаленного хоста.

На Debian тоже можно использовать клиенты freerdp и rdesktop вместо Remmina. Устанавливаются они теми же командами, что и на Ubuntu. Процесс настройки соединений также не отличается.

Подключение на macоs

Для macOS Microsoft выпустила официальный клиент для подключения к серверу по RDP. Он называется Microsoft Remote Desktop и доступен для скачивания в App Store.

Подключение настраивается так же просто, как на Windows.

  1. Запустите программу и нажмите на кнопку New для создания нового подключения.
  2. Укажите произвольное название в поле Connection name.
  3. В поле PC name введите IP-адрес сервера.
  4. Впишите имя пользователя и пароль для подключения.

После завершения настройки новое подключение сохранится в списке. Чтобы запустить его, кликните дважды левой кнопкой. После запуска появится уведомление о недоверенном сертификате. Это не страшно. Нажмите на кнопку «Показать сертификат» и отметьте опцию «Всегда доверять … при подключении к …». 

После принятия самоподписанного сертификата вы увидите в отдельном окне рабочий стол удаленного компьютера.

Подключение на ubuntu

В отличие от Windows и macOS на Ubuntu нет официального клиента для подключения к серверу по RDP. Однако это не проблема. Зато разработаны неофициальные приложения. Многие хостеры в своих базах знаний советуют использовать для подключения программу Remmina.

Для установки Remmina запустите терминал и выполните три команды.

Установите пакет Remmina:

sudo apt-add-repository ppa:remmina-ppa-team/remmina-next

Установите обновления:

sudo apt-get update

Установите плагин:

sudo apt-get install remmina remmina-plugin-rdp libfreerdp-plugins-standard

Если ранее вы устанавливали и запускали Remmina, нужно перезапустить программу. Для этого убейте процесс:

sudo killall remmina

Если эта команда вернет ошибку с сообщением о том, что ничего похожего в списке запущенных процессов нет, то это тоже хорошие новости — значит можно запускать программу.

  1. Найдите Remmina в списке инсталлированных приложений.
  2. Чтобы добавить соединение, нажмите на значок плюса.
  3. В поле Name впишите название соединения. Оно может быть любым.
  4. В поле Protocol выберите RDP.
  5. Ниже на вкладке Basic укажите IP-адрес сервера, имя пользователя и пароль.
  6. Чтобы параметры сохранились, нажмите Save.

Все соединения сохраняются в одном списке. Выберите нужное подключение. При первой попытке установить соединение появится сообщение о недоверенном сертификате. Чтобы использовать его, нажмите «ОК». После успешного соединения вы увидите рабочий стол удаленного компьютера.

Подключение на windows

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

Подключение со смартфона

Для соединения с удаленными хостами по RDP Microsoft выпустила приложения для двух основных мобильных ОС:

  • Удаленный рабочий стол на iOS
  • Remote Desktop 8 на Android

Подключение в этих приложениях настраиваются по одному принципу. Сначала вам нужно добавить новое соединение:

Подключение через графический интерфейс

Если вы предпочитаете все делать через консоль, то используйте утилиту mstsc без графического интерфейса. Для гибкой настройки соединения можно использовать опции, описанные в таблице ниже.

* Ограниченное администрирование — в этом режиме учетные данные не отправляются на удаленную машину. Благодаря этому повышается безопасность даже при подключение к компьютеру, который был скомпрометирован.В то же время такие подключения могут не проходить проверку подлинности со стороны других компьютеров, что может влиять на функциональность.

** Remote Guard — инструмент предотвращает отправку учетных данных на удаленный компьютер. В отличие от ограниченного администрирования, здесь поддерживается соединение с удаленного компьютера (все запросы перенаправляются обратно на устройство).

Принцип работы

RDPl основан на протоколе TCP. Порядок его работы в общих чертах выглядит так:

  1. Устанавливается соединение на транспортном узле.
  2. Происходит инициализация сессии, определяется порядок передачи данных.
  3. Сервер начинает передавать клиенту графический вывод. В ответ он ожидает, что пользователь введет входные данные.

Приоритетный способ — передача вывода графическими примитивами: прямоугольниками, линиями, текстами, эллипсами и так далее. Это позволяет экономить трафик. Если договориться о параметрах передачи примитивов не удалось, то клиенту передается изображение графического экрана.

RDP-клиент обрабатывает команды от сервера терминалов и использует собственную графическую подсистему для для вывода изображения. Пользовательский ввод передается благодаря скан-кодам. Сигналы нажатий и отпусканий кнопок передаются отдельно с помощью специального флага.

Remote Desktop Protocol поддерживает несколько виртуальных каналов внутри одной сессии. Это дает доступ к дополнительным возможностям для управления. Можно использовать принтер или порты, перенаправлять файловую систему, работать с единым буфером, использовать подсистему аудио для передачи звука.

Режим подключений

Есть два режима, в которых применяется протокол:

  • Администрирование.
  • Подключение к серверу приложений.

В режиме администрирования RDP есть во всех версиях Windows. На серверных версиях  доступны два подключения и один локальный вход, на клиентских версиях — один вход.

Для подключения к серверу протокол можно использовать только в серверных версиях Windows. На количество подключений лимита нет. Но для работы нужен активированный сервер лицензий.

Смена порта

По умолчанию в RDP ports установлен порт 3389. Оставлять его небезопасно. Изменить порт можно через редактор реестра.

  1. Нажмите Win R и выполните команду regedit.
  2. Откройте ветку HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp.
  3. Найдите PortNumber.
  4. Нажмите «Редактировать» — «Изменить».
  5. Выберите пункт «Десятичное».
  6. Укажите другой порт и нажмите «ОК» для сохранения.
  7. Закройте редактор реестра и перезагрузите систему.

Теперь для подключения к этому компьютеру нужно будет указывать другой порт, который вы указали в реестре, а не 3389. 

Кроме того, не следует открывать доступ к указанному порту за пределами своей сети. Используйте брандмауэр для ограничения. Если нужно открыть порт за пределами сети, используйте VPN в качестве альтернативы.

Шифрование

  1. Нажмите сочетание Win R и запустите файл gpedit.msc.
  2. Перейдите по пути «Конфигурация компьютера» — «Административные шаблоны» — «Компоненты Windows» — «Службы удаленных рабочих столов» — «Узел сеансов удаленных рабочих столов» — «Безопасность».
  3. Включите параметр «Требовать использования специального уровня безопасности для удаленных подключений по методу RDP». 
  4. Выберите уровень «SSL».

Эта настройка просто включает шифрование. Теперь нужно выбрать, какой алгоритм будет применяться.

  1. Откройте параметр «Установить уровень шифрования для клиентских подключений».
  2. Выберите уровень шифрований «Высокий уровень».

Теперь соединение будет защищено 128-битным шифрованием. Если этого мало, можно использовать стандарт FIPS 140-1.

  1. Перейдите по пути «Конфигурация компьютера» — «Конфигурация Windows» — «Параметры безопасности» — «Локальные политики» — «Параметры безопасности».
  2. Включите параметр «Системная криптография: использовать FIPS-совместимые алгоритмы для шифрования, хэширования и подписывания».

Напоследок нужно установить такие же высокие требования безопасности ко всем клиентам, которые будут подключаться к удаленному серверу.

  1. Перейдите по пути «Конфигурация компьютера» — «Административные шаблоны» — «Компоненты Windows» — «Службы удаленных рабочих столов» — «Безопасность».
  2. Включите параметр «Требовать безопасное RPC-подключение».

Итоги

RDP — удобный инструмент для создания удаленного подключения. Он позволяет быстро и гибко настроить соединение в локальной сети или через интернет. Невзирая на то, что протокол разработан корпорацией Microsoft, использовать его можно и на других платформах: macOS, Ubuntu, Debian, Android, iOS.

Чтобы еще раз повторить, как настраивается подключение в среде Windows, посмотрите это видео. Оно на английском, но каждый шаг очень наглядно продемонстрирован: 

А из этого видео вы узнаете, как настроить RDP на мобильном устройстве и управлять с него компьютером: 

Оцените статью
Мой сертификат
Добавить комментарий