Rdesktop

Содержание:

EXIT VALUES

RDP session terminated normally
1
Server initiated disconnect (also returned for logoff by XP joined to a domain)
2
Server initiated logoff
3
Server idle timeout reached
4
Server logon timeout reached
5
The session was replaced
6
The server is out of memory
7
The server denied the connection
8
The server denied the connection for security reason
9
The user cannot connect to the server due to insufficient access
privileges
10
The server does not accept saved user credentials and requires that
the user enter their credentials for each connection
11
Disconnect initiated by administration tool
12
Disconnect initiated by user
16
Internal licensing error
17
No license server available
18
No valid license available
19
Invalid licensing message
20
Hardware id doesn’t match software license
21
Client license error
22
Network error during licensing protocol
23
Licensing protocol was not completed
24
Incorrect client license enryption
25
Can’t upgrade license
26
The server is not licensed to accept remote connections
62
The local client window was closed
63
Some other, unknown error occured
64
Command line usage error
69
A service or resource (such as memory) is unavailable
70
An internal software error has been detected
71
Operating system error
76

Protocol error or unable to connect to remote host.

Сценарий 1

Использование OMI сервера, работа по WinRM (PSRP) (детали ниже).

Установка последней версии PowerShell в Windows

Устанавливается одной командой:

После установки запускается командой (Ctrl +R):

pwsh

Смотрим детали по установленному релизу PS:

$PSVersionTable

Установка PowerShell в Linux

Устанавливается досточно просто, необходимо скопировать MS репо-конфиг из официального репозитория:

curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/microsoft.repo

Установить PowerShell:

yum install powershell -y

Запустить командой:

pwsh

Проверить версию:

$PSVersionTable

Установка PSRP в CentOS

Что такое PSRP — PowerShell Remoting Protocol который используется в Открытой Инфраструктуре Управления (Open Management Infrastructure (OMI))

  • Что такое PSRP
  • Что такое OMI

В данном случае достаточно будет установить в наш CentOS — PSRP Server. Rpm пакет можно загрузить из официльного репозитория PSRP, в моем случае на момент написание статьи этот вариант так-же работоспособен:

yum install https://github.com/PowerShell/psl-omi-provider/releases/download/v1.4.1-28/psrp-1.4.1-28.universal.x64.rpm

После установки в системе появляется и запускается новый system unit — omid:

systemctl status omid
● omid.service - OMI CIM Server
   Loaded: loaded (/usr/lib/systemd/system/omid.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-04-19 09:18:08 EDT; 13min ago
  Process: 4558 ExecStart=/opt/omi/bin/omiserver -d (code=exited, status=0/SUCCESS)
  Process: 4457 ExecStartPre=/opt/omi/bin/support/installssllinks (code=exited, status=0/SUCCESS)
...

Появляется новый листенер на порту 5986 (кто не знает, это WinRM):

×В моем случае используется IPv4 (по умолчанию OMI сервер использует IPv6, если он включен. На всякий случай — как отключить IPv6 в CentOS)

Разрешаем порт в firewalld:

firewall-cmd --permanent --add-port=5986/tcp
firewall-cmd --reload

Подключение PowerShell SSH (Windows > Linux)

Создаем объект для хранения SSH кред:

$creds = Get-Credential

Объект с параметрами подключения:

$opt = New-PSSessionOption -SkipCACheck -SkipRevocationCheck -SkipCNCheck

Подключаемся к Linux машине:

Enter-PSSession -ComputerName 'xxx.xxx.xx.x' -Credential $creds -Authentication basic -UseSSL -SessionOption $opt

Пример удаленного вызова команды

Здесь подразумеваю Invoke-Command:

Invoke-Command -ComputerName xxx.xxx.xx.x -ScriptBlock { Get-Process } -Authentication Basic -SessionOption $opt -Credential $creds -UseSSL | Select-Object -First 5

Удаленный запуск скриптов

На стороне Windows можно создать скрипт и исполнить его на удаленной Linux машине, например PS скрипт, который отображает информацию о сетевых интерфейсах:

function Get-IPConfig {
    ::GetAllNetworkInterfaces() | ForEach-Object {
        $ipProperties = $_.GetIPProperties()

        $addresses = $ipProperties.UnicastAddresses |
            Where-Object {
                $_.Address.AddressFamily -eq 'InterNetwork'
            } | ForEach-Object {
                "$($_.Address) $($_.IPv4Mask)"
            }

        $gateway = $ipProperties.GatewayAddresses.Address |
            Where-Object {
                $_.AddressFamily -eq 'InterNetwork' -and
                $_ -ne '0.0.0.0'
            }

        @{
            Name      = $_.Name
            Id        = $_.Id
            Addresses = $addresses
            Gateway   = $gateway
        }
    } | Where-Object { $_.Addresses }
}
Get-IPConfig

Далее можно вызвать этот скрипт используя Invoke-Command:

Invoke-Command -ComputerName xxx.xxx.xx.x -FilePath 'c:\test\get-linuxip.ps1' -Authentication Basic -SessionOption $opt -Credential $creds -UseSS

Проблемы OMID SSL

На одной из тестовых машин, во время подключения стало возникать сообщение о том, что срок действия сертификата истек, решение — перейти в каталог:

cd /etc/opt/omi/ssl/

Создаем резервные копии, того, что есть:

mv omikey.pem omikey.pem.bak
mv omi.pem omi.pem.bak
mv ssl.cnf.pem ssl.cnf.bak

В конфиг ssl.conf добавляем следующие параметры:

basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName = DNS: Linux-Server-Name, IP:xxx.xxx.xx.x

Генерируем SSL сертификаты:

openssl genrsa -out omikey.pem 2048
openssl req -new -key omikey.pem -out Request.csr -config ssl.cnf
openssl x509 -req -days 365 -signkey omikey.pem -in Request.csr -out omi.pem -extensions v3_req -extfile ssl.cnf

Перезапускаем omid:

systemctl restart omid

Монтируем Windows Share (сетевой ресурс)

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

Создадим на нашем Linux директорию, к которой мы будем монтировать сетевой ресурс. Назовем ее myshare и расположена она будет в каталоге /mnt

$ sudo mkdir /mnt/myshare

Сетевой ресурс (шара) Windows может быть примонтирован к ОС Ubuntu или Debian с помощью следующей команды:

$ sudo mount -t cifs -o username=user,password=Passw0rd //WINDOWS_HOST_IP/share /mnt/myshare

Где:

WIN_HOST_IP — это IP адрес хоста Windows, на котором расположена общая папка

share — имя сетевого ресурса

user — наш пользователь и Passw0rd — пароль с которыми мы подключемся к шаре.

Если пользователь доменный, то необходимо в опциях (-o) указать домен.

$ sudo mount -t cifs -o username=user,password=Passw0rd,domain=domain_name //WIN_HOST_IP/share /mnt/myshare

По-умолчанию сетевой ресурс монтируется с полными правами (rwx или 777). Если Вы хотите установить иные права, используйте опции dir_mode и file_mode.

$ sudo mount -t cifs -o username=user,password=Passw0rd,dir_mode=0755,file_mode=0755 //WIN_HOST_IP/share /mnt/myshare

Так же Вы можете установить владельцев uid (id пользователя) и gid (id группы).

$ sudo mount -t cifs -o username=user,password=Passw0rd,uid=1000,gid=1000,dir_mode=0755,file_mode=0755 //WIN_HOST_IP/share /mnt/myshare

Если после выполнения предыдущих команд Вы не получили никаких ошибок, то можете с помощью команды df -h убедиться, что сетевой ресурс успешно примонтирован к нашему ПК на Linux. В примере WIN_HOST_IP = 192.168.1.100 и имя общей папки share

$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
udev                       3,9G     0  3,9G   0% /dev
tmpfs                      787M  2,2M  785M   1% /run
/dev/sda2                  450G   23G  405G   6% /
tmpfs                      3,9G  705M  3,2G  18% /dev/shm
tmpfs                      5,0M  4,0K  5,0M   1% /run/lock
tmpfs                      3,9G     0  3,9G   0% /sys/fs/cgroup
//192.168.1.100/share  1000G  108G  82G   11% /mnt/myshare

Rdesktop

touch /usr/share/rdesktop/keymaps/rus_mod

И заполняем этот файл:

editor  /usr/share/rdesktop/keymaps/rus_mod

вот этим содержанием:

include modifiers
#
# Arrow keys
#
Left 0xcb localstate
Up 0xc8 localstate
Down 0xd0 localstate
Right 0xcd localstate

#
# Numpad
#
Num_Lock 0x45
KP_Divide 0xb5 localstate
KP_Multiply 0x37 localstate
KP_Subtract 0x4a localstate
KP_Add 0x4e localstate
KP_Enter 0x9c localstate
KP_Decimal 0x53 numlock
KP_Separator 0x53 numlock
KP_Delete 0x53
KP_0 0x52 numlock
KP_Insert 0x52 localstate
KP_1 0x4f numlock
KP_End 0x4f localstate
KP_2 0x50 numlock
KP_Down 0x50 localstate
KP_3 0x51 numlock
KP_Next 0x51 localstate
KP_4 0x4b numlock
KP_Left 0x4b localstate
KP_5 0x4c numlock
KP_Begin 0x4c localstate
KP_6 0x4d numlock
KP_Right 0x4d localstate
KP_7 0x47 numlock
KP_Home 0x47 localstate
KP_8 0x48 numlock
KP_Up 0x48 localstate
KP_9 0x49 numlock
KP_Prior 0x49 localstate
  

#
# Esc and Function keys
#
Escape 0x1 localstate
F1 0x3b localstate
F2 0x3c localstate
F3 0x3d localstate
F4 0x3e localstate
F5 0x3f localstate
F6 0x40 localstate
F7 0x41 localstate
F8 0x42 localstate
F9 0x43 localstate
F10 0x44 localstate
F11 0x57 localstate
F12 0x58 localstate


#
# Insert - PgDown
#
Insert 0xd2 localstate
Delete 0xd3 localstate
Home 0xc7 localstate
End 0xcf localstate
Page_Up 0xc9 localstate
Page_Down 0xd1 localstate
# generated from XKB map ru - patch 
include common
map 0x419
grave 0x29
asciitilde 0x29 shift
asciicircum 0x07 shift
backslash 0x2b
bar 0x2b shift
apostrophe 0x28
greater 0x34 shift
less 0x33 shift

Строка для правильного подключения удаленного рабочего стола- скрипт bash:

#!/bin/bash
rdesktop -f -u username -k rus_mod -p passw -r printer:hplj1018 -N -b 10.10.10.1

пример параметров:

-T "Winxp"
-a 16
-k en-gb
-g 1024x768
-x l
-n TC
-r usbrdr
-r sound:local=alsa
-r disk:usb=/media
-r printer:LP1= "EpsonLQ2180"
-r lptport:LPT1=/dev/bus/usb/004/002
10.11.10.5:3389

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

/etc/cups/printer.conf

* ! Внимание, для правильной печати через rdesktop необходимо установить CUPS-BSD…

INFO

Тонкие клиенты не требовательны к железу (поскольку все вычисления выполняет
мощный сервер) и заточены для работы в бездисковом режиме (без FDD/CDROM/HDD).

В качестве тонкого клиента под управлением Thinstation может выступать
любой компьютер на базе архитектуры x86 с процессором не ниже Pentium 100 и
объемом оперативной памяти не менее 16 Мб.

Как правило, на терминальных серверах используется общесистемное программное
обеспечение Windows, Linux, xBSD, Solaris, а тонкие клиенты функционируют под
управлением Windows CE, Linux или xBSD.

Thinstation — мини-дистрибутив Linux, позволяющий превратить старые
компы в полноценные бездисковые тонкие клиенты, поддерживающие все основные
протоколы подключения: RDP, VNC, ICA, X11, Telnet, SSH и т.п.

Thinstation можно загружать по сети с помощью Etherboot/PXE или со
стандартного носителя — FDD/CD/HDD/CF/USB-flash.

PXE (Pre-boot eXecution Environment) — среда предзагрузочного выполнения.

О том, как настроить сервер терминалов в Win2k3, можно узнать из статьи «Один
на всех и все на одного», опубликованной вавгустовском номере ][
за 2007 год.

Как установить TeamViewer на Ubuntu?

По этой ссылке можно скачать нужный пакет для Ubuntu и установить его одним щелчком. Единственная трудность возникает у владельцев 64 битных систем. У меня программа не устанавливалась ни в какую, постоянно какие то несовместимости зависимостей. Как решить проблему.

Ставим дополнительные пакеты такой командой:

sudo apt-get install libxtst6:i386 libxrandr2:i386

Далее скачиваем 32 битный пакет и устанавливаем его без проблем. А если буду проблемы, то можно установить его примерно такой командой:

sudo dpkg -i teamviewer_linux*.deb

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

Не нашли ответ на свой вопрос? Воспользуйтесь поиском…

В чем разница Ubuntu Desktop или Server

1. Графический интерфейс

Основные отличия Ubuntu Desktop от Server — это графический интерфейс и окружение рабочего стола. Первая имеет графический интерфейс, а вторая — нет. Это происходит потому, что большинство серверов работают без графического интерфейса. Вместо классической клавиатуры и мыши всё взаимодействие с сервером выполняется удалённо по сети. Для этого используется утилита SSH. Подробнее про SSH читайте в статье «как пользоваться SSH».

Конечно, в большинство дистрибутивов для сервера можно установить графическую оболочку, но по умолчанию её там нет. А некоторые вовсе не рассчитаны на использование вместе с графическим интерфейсом. Например, дистрибутив CoreOS для контейнеров имеет только командную строку.

2. Приложения

Версия Ubuntu Desktop по умолчанию содержит приложения для общего использования. Это офисные приложения, мультимедиа, веб-браузеры. Также у редакции Desktop есть несколько версий с различными окружениями рабочего стола. Тогда как версия для сервера содержит только базовый набор приложений плюс программы, необходимые для работы сервера. Сюда входят почтовый сервер, файловый сервер, веб-сервер, а также DNS-сервер, например bind9. Вы можете установить все эти программы в обычной версии Ubuntu, и многие так и делают, но здесь они есть по умолчанию.

Кроме того, в серверной версии предустановленны пакеты для управления облачной инфраструктурой (cloud-init, cloud-guest-utils), утилита curl, утилиты для работы с файловыми системами btrfs и xfs, библиотеки для организации lvm, гипервизор контейнеров lxd и программы для настройки RAID.

3. Процесс установки

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

Ubuntu Server не имеет графического установщика. Здесь инсталляция выполняется в псевдографическом установщике, в котором вы даже не можете пользоваться мышкой. Только клавиатура.

Настройка DHCP- и TFTP-сервера

Для загрузки PXE-образа с удаленной машины нам потребуется корректно
работающие DHCP- и TFTP-сервисы. ОС значения не имеет, – это может быть *nix или
Windows, главное, чтобы кто-то корректно ответил на DHCP-запрос, отправленный
сетевой картой, и выдал файлы по TFTP. Первым делом инсталлируем нужные пакеты
(пример для Ubuntu):

Затем обеспечиваем автозапуск сервисов. Для запуска TFTP через xinetd создаем
конфиг на основе шаблона:

Правим:

В /etc/xinetd.conf комментируем строку «only_from = localhost». Не забываем
по окончании настроек перезапустить xinetd:

Копируем PXE-образ, ядро, initrd и каталог с настройками, созданный по
окончании работы build скрипта, в /srv/tftp:

Проверяем работоспособность TFTP:

Если файл получен, значит, все в порядке. Переходим к настройке DHCP:

В каталоге boot-images/pxe находится готовый шаблон dhcpd.sample, который
можно использовать при создании своего конфига DHCP-сервера:

Чтобы внесенные изменения вступили в силу, перезапускаем DHCP-сервер:

Удаленный рабочий стол чрез RealVNC Viewer

Это родительская программа для TigerVNC, но содержит наименьшее количество опции. Тем не менее, приложение умеет автоматом определять VNC сервера, упрощая и ускоряя подключение. Изберите “Опции”, и Вы сможете изменять размер окна, прививая его под ваш монитор, работать в полноэкранном режиме и переопределять самодействующие параметры сжатия для принудительного отображения более 256 красок.

Подключение выполняется быстро и просто, но продуктивность отстает от других просмотрщиков VNC в данном тесте. Закреплялись существенные замедления при работе с рабочим столом и при пуске Armegatron, которые оценивались примерно в полсекунды. Технологические процессы матричного растрирования или дизеринга затрудняли работу, когда происходили глюки, во время тестирования это наблюдалось немного раз. Аналогичные проблемы наблюдались и с копиями RealVNC, какие включают меньшее количество опций.

TigerVNC представляется отдельной ветвью развития кодовой базы VNC, потому содержит участки кода из RealVNC и TightVNC, впрочем процесс разработки последних продолжается. Таким образом, RealVNC подсказывает менее эффективную версию TigerVNC и сработал в исследованиях не лучшим образом. Возможно поддержка передачи аудио струи улучшила бы мнение о продукте. Как бы то ни было, в случае негаданных обстоятельств, портативный автономный клиент будет хорошей вариантом.

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

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