- Удаленный рабочий стол на Ubuntu
- Подготовка системы
- Установка и настройка VNC сервера
- Если используем XFCE
- Установка
- Настройка
- Если используем Gnome
- Установка
- Настройка
- Подключаемся к удаленному рабочему столу
- Автозапуск сервиса
- Смена пароля
- xRDP для подключения из Windows
- Сменить порт xRDP
- Установка и настройка L2TP VPN-сервера на Ubuntu Server
- Настройка IPSEC
- L2TP
- PPP
- Настройка клиента
- Доступ в Интернет и локальную сеть
- Диагностика проблем
Удаленный рабочий стол на Ubuntu
Обновлено: 28.07.2022 Опубликовано: 22.09.2018
В статье рассказано о настройке возможности подключения к Ubuntu по удаленному рабочему столу (аналогично RDP в Windows). Примеры команд проверены на Linux Ubuntu 16.04 и 18.04.
Мы рассмотрим реализацию с помощью сервера VNC (подключиться к нашему компьютеру можно будет как с помощью клиента VNC, который доступен как для Linux, так и Windows). Также мы рассмотрим возможность использования клиента RDP из Windows, настроив xRDP.
Подготовка системы
Все действия описанные ниже мы будем выполнять с правами суперпользователя. Для этого переходим в режим sudo:
* по умолчанию, в Ubuntu не задан пароль от root и данная команда не сработает. В этом случае сначала задаем пароль руту — passwd root.
Если используется брандмауэр, добавляем правило:
iptables -A INPUT -p tcp —dport 5901 -j ACCEPT
* в данном примере, мы разрешаем входящие соединения на порту 5901. Для работы с несколькими портами, добавляем их по аналогии.
Установка и настройка VNC сервера
Рассмотрим два варианта использования графической оболочки — xfce и gnome.
Если используем XFCE
Установка
Установку выполняем следующей командой:
apt install xfce4 xfce4-goodies tightvncserver
Задаем пароль для доступа по удаленному рабочему столу. Для этого вводим команду:
. на запрос пароля вводим его дважды.
* Если система не затребует второй раз пароль, проверьте внимательно сообщение. Сервер может выдать ошибку, если пароль будет короткий.
После будет предложено ввод пароля для гостевого доступа — можно согласиться (y) и ввести пароль или отказаться (n).
Настройка
Для начала, останавливаем экземпляр VNC сервера:
* экземпляр :1, по умолчанию, слушает на порту 5900+1 (5901).
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4
Снова запускаем vncserver:
Если используем Gnome
Установка
Установку выполняем следующей командой:
apt install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal vnc4server
Задаем пароль для доступа по удаленному рабочему столу. Для этого вводим команду:
. на запрос пароля вводим его дважды.
* Если система не затребует второй раз пароль, проверьте внимательно сообщение. Сервер может выдать ошибку, если пароль будет короткий.
После будет предложено ввод пароля для гостевого доступа — можно согласиться (y) и ввести пароль или отказаться (n).
Настройка
Для начала, останавливаем экземпляр VNC сервера:
* экземпляр :1, по умолчанию, слушает на порту 5900+1 (5901).
Настраиваем VNC сервер для текущего пользователя:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80×24+10+10 -ls -title «$VNCDESKTOP Desktop» &
x-window-manager &
gnome-panel &
gnome-settings-daemon &
metacity &
Снова запускаем vncserver:
Подключаемся к удаленному рабочему столу
Запускаем клиент VNC. Например, в Linux — Remmina, в Windows — TightVNC Viewer или RealVNC. Вводим IP-адрес компьютера с VNC и номер порта:
Будет запрошен пароль — вводим тот, что устанавливали при настройке.
Автозапуск сервиса
Чтобы VNC сервер запускался после перезагрузки, создаем новый юнит в systemd:
[Unit]
Description=VNC server
After=syslog.target network.target
[Service]
Type=forking
User=root
PAMName=login
PIDFile=/root/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :1 > /dev/null 2>&1
ExecStart=/usr/bin/vncserver
ExecStop=/usr/bin/vncserver -kill :1
Разрешаем автозапуск сервиса:
systemctl enable vncserver
Смена пароля
Для смены пароля на подключения к VNC, вводим команду:
Система напишет, в каком файле на данный момент хранится пароль и запросит ввод нового:
Using password file /root/.vnc/passwd
Password:
Warning: password truncated to the length of 8.
Verify:
Would you like to enter a view-only password (y/n)? n
* как видим, файл для хранения пароля в данном примере — /root/.vnc/passwd; требование по минимальной длине пароля — 8 символов; также после ввода нового пароля система предложит ввод пароля на режим «только для чтения».
Если необходимо указать конкретный файл, в котором должен хранится пароль, вводим, например, такую команду:
xRDP для подключения из Windows
Если мы не хотим устанавливать на Windows никакого дополнительного программного обеспечения, а хотим использовать стандартное подключение к удаленному рабочему столу (mstsc), можно установить на Linux xRDP. Для этого вводим:
Создаем пользователя xrdp и добавляем его в группу ssl-cert:
* по умолчанию, сервис xrdp будет запускаться от пользователя xrdp и для доступа к системным сертификатам нужно, чтобы он был в группе ssl-cert. Сами же сертификаты используются для шифрования RDP-соединения.
Открываем файл и приводим его к виду:
Мы открываем конфигурационный файл для текущего пользователя. Но если нам нужно ввести настройку для другого пользователя, под которым будем подключаться по RDP, путь должен вести на его домашнюю директорию.
Например для пользователя dima:
* как правило, домашние директории находятся в каталоге /home, но не всегда. Проверить можно командой getent passwd dima | awk -F ‘:’ », где dima — имя учетной записи.
Разрешаем автозагрузку сервиса и перезапускаем его:
Если в нашей системе используется брандмауэр, не забываем добавить порт 3389:
iptables -I INPUT -p tcp —dport 3389 -j ACCEPT
iptables -I INPUT -p udp —dport 3389 -j ACCEPT
Для сохранения правил исполььзуем iptables-persistent:
apt install iptables-persistent
Запускаем «Подключение к удаленному рабочему столу» — вводим IP-адрес нашего сервера:
В открывшемся окне вводим логин и пароль от нашего пользователя, например:
Сменить порт xRDP
Если нам нужно, чтобы сервис работал на другом порту, открываем конфигурационный файл xRDP:
Находим и редактируем опцию:
* в данном примере мы задали порт 3390.
Установка и настройка L2TP VPN-сервера на Ubuntu Server
Обновлено: 18.05.2020 Опубликовано: 18.01.2020
- VPN-сервер, использующий туннельный протокол L2TP.
- Защита соединения посредством общего ключа + аутентификация пользователя.
- Доступ к локальной сети.
Мы выполним следующие настройки:
Настройка IPSEC
Для управления IPSec используется пакет strongswan — установим его командой:
apt-get install strongswan
Открываем конфигурационный файл для настройки ipsec:
Для config setup добавим:
config setup
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
protostack=netkey
* где virtual_private для нас является наиболее важным параметром и определяет приватные сети. В данном примере просто перечислены сети, зарезервированные под локальные — мы можем указать и другие.
conn l2tpvpn
type=transport
authby=secret
pfs=no
rekey=no
keyingtries=2
left=%any
leftprotoport=udp/l2tp
leftid=@l2tpvpnserver
right=%any
rightprotoport=udp/%any
auto=add
- type — тип соединения. Возможны варианты tunnel ( хост-хост, хост-подсеть или подсеть-подсеть); transport (хост-хост); passthrough (без обработки IPsec).
- authby — способы аутентификации двух узлов. Возможны варианты secret (по паролю) или rsasig (цифровые подписи RSA).
- pfs — расшифровывается как Perfect Forward Secrecy. Позволяет активировать совершенную секретность в канале ключей соединения.
- rekey — перепроверить соединение, когда оно истекает.
- keyingtries — число попыток, чтобы «договориться» о соединении или его замене.
- left — IP-адрес левого участника (сервера). %any означает, что адрес может быть любой.
- leftprotoport — определяет протокол и порт, на котором будет работать левая сторона (сервер). В данном примере указан UDP и порт 1701.
- leftid — идентификация левого участника соединения.
- right — IP-адрес правого участника (клиента). %any означает, что адрес может быть любой.
- rightprotoport — определяет протокол и порт, на котором будет работать правая сторона (клиент). В данном примере указан UDP и любой порт.
- auto — операция, которая должна запуститься автоматически при старте IPsec.
Создаем секретный ключ — для этого открываем на редактирование файл:
%any %any : PSK «my_key_password»
* в данном примере мы устанавливаем общий пароль my_key_password для соединений с любого IP.
Разрешаем автозапуск strongswan и перезапускаем службу:
systemctl enable strongswan
systemctl restart strongswan
L2TP
Устанавливаем сервер L2TP:
Открываем файл настройки сервера:
[global]
port = 1701
access control = no
ipsec saref = yes
force userspace = yes
auth file = /etc/ppp/chap-secrets
[lns default]
ip range = 176.16.10.10-176.16.10.200
local ip = 176.16.10.1
name = l2tpserver
pppoptfile = /etc/ppp/options.xl2tpd
flow bit = yes
exclusive = no
hidden bit = no
length bit = yes
require authentication = yes
require chap = yes
refuse pap = yes
- port — порт UDP, на котором работает VPN. По умолчанию, 1701.
- access control — принимать или нет запросы только от клиентов с определенными IP, перечисленными в настройках клиентов.
- ipsec saref — указывает использовать или нет ipsec Security Association, позволяющий отслеживать несколько клиентов с одинаковыми IP-адресами.
- force userspace — повышает производительность за счет декапсуляции пакетов L2TP.
- auth file — путь к файлу аутентификации.
- ip range — диапазон адресов, которые назначаются подключенным клиентам.
- local ip — IP-адрес сервера в сети VPN.
- name — имя сервера для процесса согласования.
- pppoptfile — путь к файлу с настройкой pppd.
- flow bit — позволяет добавлять в пакеты порядковые номера.
- exclusive — если поставить в yes, сервер разрешит только одно соединение с клиентом.
- hidden bit — скрывать или нет AVP.
- length bit — использовать ли бит длины, указывающий полезную нагрузку.
- require authentication — требовать ли аутентификацию.
- require chap — требовать ли аутентификацию PPP по протоколу CHAP.
- refuse pap — требовать ли аутентификацию PPP по протоколу PAP.
Разрешаем автозапуск vpn-сервера и перезапускаем его:
PPP
Открываем на редактирование конфигурационный файл:
noccp
auth
crtscts
mtu 1410
mru 1410
nodefaultroute
lock
noproxyarp
silent
modem
asyncmap 0
hide-password
require-mschap-v2
ms-dns 77.88.8.8
ms-dns 8.8.8.8
Создаем пользователя. Для этого открываем файл:
«user1» l2tpserver «password1» «172.16.10.10»
«user2» l2tpserver «password2» *
Настройка клиента
В параметрах сети и Интернет в разделе VPN создаем новое соединение:
- Имя подключения — произвольное имя.
- Имя или адрес сервера — адрес сервера VPN, к которому мы будем подключаться.
- Тип VPN — для нашего случая, выбираем L2TP/IPsec с предварительным ключом.
- Общий ключ — ключ, который мы задали в файле /etc/ipsec.secrets.
- Тип данных для входа — выбираем пользователь и пароль.
- Имя пользователя и пароль — логин и пароль, которые мы задали в файле /etc/ppp/chap-secrets.
Доступ в Интернет и локальную сеть
После подключения к сети VPN мы не сможем ни выйти в Интернет, ни подключиться к узлам локальной сети. Чтобы это исправить, открываем на редактирование файл:
* мы разрешили форвард сетевых запросов и настроили сервер в качестве шлюза.
После применяем настройку:
sysctl -p /etc/sysctl.d/99-sysctl.conf
Добавляем правило в iptables:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
* данное правило включает маскарадинг на интерфейсе eth0. Вам необходимо подставить в команду значение своего сетевого адаптера.
В случае с единым сетевым интерфейсом больше ничего делать не потребуется — Ubuntu начнет работать как Интернет-шлюз.
В случае с несколькими сетевыми адаптерами, настраиваем сетевой экран:
iptables -A FORWARD -i eth1 -o eth0 -m state —state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
* предполагается, что eth1 используется для внутренней сети, а eth0 — внешней.
Диагностика проблем
Описанная выше настройка не предполагает наличие лога. Для этого открываем конфигурационный файл для ppp:
.
logfile /var/log/xl2tpd/xl2tpd.log
debug
Создадим каталог для лога:
Перезапускаем сервис xl2tpd:
Пробуем подключиться к серверу — в случае наличия проблем, наблюдаем за логом:
tail -f /var/log/xl2tpd/xl2tpd.log
Настройка L2TP VPN-сервера на Ubuntu для возможности подкючения стандартными средствами Windows