В
Съдържание:
Инсталиране на графичната среда
Ще вземем виртуална машина с Ubuntu Server 18.04 LTS с две изчислителни ядра, четири гигабайта RAM и двадесет гигабайтов твърд диск (HDD). По-слабата конфигурация не е подходяща за графичен работен плот, въпреки че това зависи от задачите, които се решават. Не забравяйте да използвате промо код Habrahabr10, за да получите 10% отстъпка от поръчката си.
Инсталирането на работната среда с всички зависимости се извършва със следната команда:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Както и в предишния случай, избрахме XFCE поради сравнително ниските му изисквания за изчислителни ресурси.
Русификация на сървъра и инсталиране на софтуер
Често виртуалните машини се разполагат само с английска локализация. На работния плот може да ви трябва руски език, който е лесен за настройка. Първо, нека инсталираме преводи за системни програми:
sudo apt-get install language-pack-ru
Нека да настроим локализацията:
sudo update-locale LANG=ru_RU.UTF-8
Същият ефект може да се постигне чрез ръчно редактиране на /etc/default/locale.
За локализиране на GNOME и KDE, хранилището разполага с пакетите language-pack-gnome-ru и language-pack-kde-ru - ще ви трябват, ако използвате програми от тези десктоп среди. В XFCE преводите се инсталират с приложения. След това можете да инсталирате речниците:
# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru
# Тезаурус для LibreOffice
sudo apt-get install mythes-ru
# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict
Освен това може да се изисква инсталиране на преводи за някои приложни програми:
# Браузер Firefox
sudo apt-get install firefox firefox-locale-ru
# Почтовый клиент Thunderbird
sudo apt-get install thunderbird thunderbird-locale-ru
# Офисный пакет LibreOffice
sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ru
Това завършва подготовката на работната среда, остава само да конфигурирате RDP сървъра.
Инсталиране и конфигуриране на RDP сървър
Репозиториите на Ubuntu имат свободно разпространяван Xrdp сървър, който ще използваме:
sudo apt-get install xrdp
Ако всичко върви добре, сървърът трябва да стартира автоматично:
sudo systemctl status xrdp
Xrdp сървърът работи с xrdp потребителски права и по подразбиране приема /etc/ssl/private/ssl-cert-snakeoil.key сертификат, който може да бъде заменен с ваш собствен. За да имате достъп за четене на файла, трябва да добавите потребителя към групата ssl-cert:
sudo adduser xrdp ssl-cert
Настройките по подразбиране могат да бъдат намерени във файла /etc/default/xrdp, а всички останали сървърни конфигурационни файлове се намират в директорията /etc/xrdp. Основните параметри са във файла xrdp.ini, който не трябва да се променя. Конфигурацията е добре документирана и съответните страници с ръководство са включени:
man xrdp.ini
man xrdp
Всичко, което остава, е да редактирате скрипта /etc/xrdp/startwm.sh, който се изпълнява при инициализиране на потребителската сесия. Първо, нека направим резервно копие на скрипта от разпространението:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh
За да стартирате средата на работния плот XFCE, ще ви е необходим скрипт нещо подобно:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4
Моля, обърнете внимание: в скриптовете е по-добре да напишете пълния път до изпълнимите файлове - това е добър навик. Нека направим скрипта изпълним и в този момент настройката на Xrdp сървъра може да се счита за завършена:
sudo chmod 755 /etc/xrdp/startwm.sh
Рестартирайте сървъра:
sudo systemctl restart xrdp
Настройка на защитна стена
По подразбиране Xrdp слуша TCP порт 3389 на всички интерфейси. В зависимост от конфигурацията на виртуалния сървър може да се наложи да конфигурирате защитна стена на Netfilter. В Linux това обикновено се прави с помощната програма iptables, но в Ubuntu е по-добре да използвате ufw. Ако IP адресът на клиента е известен, конфигурацията се извършва със следната команда:
sudo ufw allow from IP_Address to any port 3389
Можете да разрешите връзки от всеки IP като този:
sudo ufw allow 3389
RDP протоколът поддържа криптиране, но излагането на Xrdp сървъра на обществени мрежи е лоша идея. Ако клиентът няма фиксиран IP, сървърът трябва да слуша само localhost, за да увеличи сигурността. Най-добре е да получите достъп до него чрез SSH тунел, който сигурно ще пренасочи трафика от клиентския компютър. Имаме подобен подход
Свързване към RDP сървър
За да работите с работната среда, по-добре е да създадете отделен непривилегирован потребител:
sudo adduser rdpuser
Нека добавим потребителя към групата sudo, за да може да изпълнява задачи, свързани с администриране. Ако няма такава нужда, можете да пропуснете тази стъпка:
sudo gpasswd -a rdpuser sudo
Можете да се свържете със сървъра, като използвате всеки RDP клиент, включително вградения клиент за услуги за отдалечен работен плот на Windows. Ако Xrdp слуша външния интерфейс, няма да са необходими допълнителни действия. Достатъчно е да посочите VPS IP адреса, потребителското име и паролата в настройките за връзка. След като се свържем, ще видим нещо подобно:
След първоначалната настройка на работната среда ще получим пълноценен работен плот. Както можете да видите, той не консумира много ресурси, въпреки че всичко ще зависи от използваните приложения.
Ако Xrdp сървърът слуша само localhost, трафикът на клиентския компютър ще трябва да бъде пакетиран в SSH тунел (sshd трябва да работи на VPS). В Windows можете да използвате графичен SSH клиент (например PuTTY), а в UNIX системи имате нужда от помощната програма ssh:
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip
След като тунелът се инициализира, RDP клиентът вече няма да се свързва с отдалечения сървър, а с локалния хост.
По-трудно е с мобилни устройства: SSH клиенти, способни да издигат тунел, ще трябва да бъдат закупени, а в iOS и iPadOS фоновата работа на приложения на трети страни е трудна поради твърде добрата оптимизация на потреблението на енергия. На iPhone и iPad няма да можете да създадете тунел в отделно приложение; ще ви трябва приложение за комбайн, което може само да установи RDP връзка чрез SSH. Като напр
Мениджър на сесии и потребителски сесии
Възможността за многопотребителска работа е внедрена директно в Xrdp сървъра и не изисква допълнителна конфигурация. След стартиране на услугата чрез systemd, един процес работи в режим на демон, слуша на порт 3389 и комуникира чрез localhost с мениджъра на сесии.
ps aux |grep xrdp
sudo netstat -ap |grep xrdp
Мениджърът на сесии обикновено не се вижда от потребителите, тъй като потребителското име и паролата, посочени в настройките на клиента, се прехвърлят към него автоматично. Ако това не се случи или има грешка по време на удостоверяване, вместо работния плот ще се появи интерактивен прозорец за влизане.
Автоматичното стартиране на мениджъра на сесиите е указано във файла /etc/default/xrdp, а конфигурацията се съхранява в /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]
Не е нужно да променяте нищо тук, просто трябва да деактивирате влизането с root права (AllowRootLogin=false). За всеки потребител, упълномощен в системата, се стартира отделен xrdp процес: ако прекъснете връзката, без да прекратите сесията, потребителските процеси ще продължат да се изпълняват по подразбиране и можете да се свържете отново със сесията. Настройките могат да се променят във файла /etc/xrdp/sesman.ini (секция [Сесии]).
Превключване на клавиатурни подредби
Обикновено няма проблеми с двупосочен клипборд, но с руската клавиатурна подредба ще трябва да си поиграете малко (руският локал трябва да е вече
sudo nano /etc/xrdp/xrdp_keyboard.ini
Трябва да добавите следните редове в края на конфигурационния файл:
[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru
[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru
Всичко, което остава, е да запазите файла и да рестартирате Xrdp:
sudo systemctl restart xrdp
Както можете да видите, не е трудно да настроите RDP сървър на Linux VPS, но
Източник: www.habr.com