В данной статье будет рассказано как подключиться к операционной системе Mac по протоколу RDP. Как вы все наверняка знаете, операционная система Mac имеет встроенный VNC сервер, к которому можно подключаться через VNC клиента. Но я подумал, почему-бы не использовать стандартный RDP client в Microsoft Windows для подключения к операционной системе Mac? Немного погуглив, я обнаружил, что есть бесплатный RDP сервер на Mac и называется он xRDP. Данный сервер легко устанавливается на ОС Linux/Unix. Об установке и настройке этого сервера я и хотел рассказать.
Установку я производил на свой Macbook с ОС Mac Big Sur. Для начала нам необходимо установить инструменты командной строки Xcode. Для этого выполняем команду в ПО терминала
xcode-select --install
Далее установим менеджер сторонних пакетов Homebrew командой
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Установим библиотеку OpenSSL командой
brew install openssl
После установки OpenSSL, присвоим переменной CPPFLAGS путь к библиотеке, чтобы компилятор смог данную библиотеку найти. Выполним команду
export CPPFLAGS="-I/usr/local/opt/openssl/include"
Установим необходимые пакеты командами
brew install automake
brew install libtool
brew install pkgconfig
brew install nasm
Установим XQuartz – программное средство системы X Window System.Необходимо установить версию 2.7.11. Скачать программу можно с официального сайта https://www.xquartz.org/
После установки необходимо перезайти в систему.
Для удобства работы откроем терминал и создадим отдельную папку как на рисунке 1 ниже:
mkdir /Users/administrator/Documents/xrdp/
Рис. 1
Теперь включим встроенный VNC сервер. Для этого перейдём в «Системные настройки» как на рисунке 2
Рис.2
Далее выбираем "общий доступ" как на рисунке 3
Рис.3
Включите функцию “Общий экран” и перейдите в настройки компьютера как на рисунке 4
Рис. 4
Включите опцию “любой пользователь может запросить разрешение управлять экраном” и задайте пароль в пункте “Пользователи VNC могут получить управление экраном по паролю” как на рисунке 5
Рис. 5
Теперь загрузим необходимые пакеты
Нам требуются xRDP и xOrgRDP в формате исходного кода.
Загрузить их можно с сайта http://xrdp.org/. Загрузим сначала xrdp.Переходим на сайт и нажимаем “View xrdp releases" как на рисунке 6
Рис. 6
Находим “xrdp” версии 0.9.11 и нажимаем “кнопку” выделенную красным прямоугольником на рисунке 7
Рис. 7
Далее нажимаем “кнопку” выделенную красным прямоугольником на рисунке 8
Рис. 8
Далее необходимо нажать “кнопку” “Code” и скопировать ссылку “кнопкой” выделенной красным квадратиком на рисунке 9
Рис. 9
Склонируем репозиторий на Mac внутри созданной нами папки “xrdp” выше с помощью “git” командой как на рисунке 10 ниже:
git clone https://github.com/neutrinolabs/xrdp.git
Рис. 10
Теперь загрузим пакет xorgrdp.Переходим на главную страницу сайта и нажимаем “кнопку” “View xorgrdp releases” как на рисунке 11
Рис. 11
Находим версию 0.2.11 и нажимаем кнопку выделенную красным прямоугольником на рисунке 12
Рис. 12
Далее нажимаем “кнопку” выделенную красным прямоугольником на рисунке 13
Рис. 13
Далее необходимо нажать “кнопку” “CODE” и скопировать ссылку как показано на рисунке 14 ниже
Рис. 14
Склонируем репозиторий xorgxrdp как показано на рисунке 15 на Mac OS внутри созданной нами папки “xrdp” выше с помощью “git” командой:
git clone https://github.com/neutrinolabs/xorgxrdp.git
Рис. 15
Сборка xRDP
Перейдём в каталог с “xrdp" репозиторием командой:
cd /Users/administrator/Documents/xrdp/xrdp
Запустим Bootstrapper
./bootstrap
сконфигурируем сборку с помощью OpenSSL
./configure PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
Запустим make
make
Затем запустим make установщик
sudo make install
Если вы получаете ошибку на этом шаге, то скорей всего это связано с неправильным экспортом OpenSSL CPPFLAGS.
Сборка xOrgRDP
Перейдём в каталог с "xorgrdp" репозиторием командой:
cd /Users/administrator/Documents/xrdp/xorgrdp
Для сборки нам также понадобится репозиторий xrdp.Скопируем репозиторий xrdp в репозиторий xorgrdp командой:
cp –R /Users/administrator/Documents/xrdp/xrdp /Users/administrator/Documents/xrdp/xorgrdp
Запустим Bootstrapper и сконфигурируем сборку так, чтоб она происходила при помощи OpenSSL. Затем запустим make установщик:
./bootstrap
./configure PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig
make
sudo make install
Если вы столкнулись с ошибкой, убедитесь, что вы перезапустили сессию после установки сервера xQuartz X11. Если вы получаете ошибку /opt/X11/include/xorg/dixfontstr.h:30:10:fatal error ‘X11/fonts/libxfont2.h’ file not found, необходимо поправить файл dixfontstr.h , а именно, прописать #include “/opt/X11/fonts/libxfont2.h” вместо #include “/X11/fonts/libxfont2.h”
Наш xRDP сервер почти готов. Теперь необходимо настроить его. Давайте откроем наш файл xrdp.ini.
sudo vi /etc/xrdp/xrdp.ini
Найдём секцию в файле со всеми типами сессий
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000
[vnc-any]
name=vnc-any
lib=libvnc.so
ip=ask
port=ask5900
username=na
password=ask
#pamusername=asksame
#pampassword=asksame
#pamsessionmng=127.0.0.1
#delay_ms=2000
[neutrinordp-any]
name=neutrinordp-any
lib=libxrdpneutrinordp.so
ip=ask
port=ask3389
username=ask
password=ask
Я буду подключаться через модуль Xvnc. Используем библиотеку libvnc.dylib вместо libvnc.so. Я закомментирую все модули, которые не буду использовать. Вот так будет выглядеть изменённая секция с типами сессий в файле xrdp.ini
#[Xorg]
#name=Xorg
#lib=libxup.so
#username=ask
#password=ask
#ip=127.0.0.1
#port=-1
#code=20
[Xvnc]
name=Xvnc
lib=libvnc.dylib
username=ask
password=ask
ip=127.0.0.1
port=5900
xserverbpp=24
#delay_ms=2000
#[vnc-any]
#name=RDP to VNC Connector
#lib=libvnc.so
#ip=127.0.0.1
#port=5900
#username=ask
#password=ask
#xserverbpp=24
#pamusername=asksame
#pampassword=asksame
#pamsessionmng=127.0.0.1
#delay_ms=2000
#[neutrinordp-any]
#name=neutrinordp-any
#lib=libxrdpneutrinordp.so
#ip=ask
#port=ask3389
#username=ask
#password=ask
Примечание: В редакторе vi нажмите клавишу «i», чтобы войти в режим редактирования. Чтобы сохранить и выйти, нажмите «ESC» и введите :wq!.
Теперь запустим демоны xRDP и xRDP-sesman. Они находятся по пути /usr/local/sbin/.
Выполним следующие команды
sudo /usr/local/sbin/xrdp
sudo /usr/local/sbin/xrdp-sesman
Нстройка со стороны операционной системы закончена
Теперь необходимо настроить вашь edge
Для RDP доступа в настройках EDGE Вам необходимо прописать правила firewell и nat.
1. В настройках firewall должны быть правила разрешающие сетевой трафик.
2. В настройках NAT.
2.1. Создаем правило DNAT:
- в original IP, прописываете IP Edge. Есть выбор через "Select";
- в графе Original port, прописываете номер по которому разрешаете подключение;
- в графе Protocol выбираем TCP;
- в графе Translated IP, прописываете IP виртуальной машины к которой необходим RDP доступ.
- в графе Translated Port: 3389
- в графе Source IP/Source port: any/any
После настроек нажимаете Keep и сохраняете настройки NAT'а.
Пробуем подключиться по RDP.Подключаться надо под учётной записью администратора.Вводим пароль Администратора, нажимаем ENTER
В следующем появившемся окне также вводим пароль Администратора и нажимаем ENTER
Если у вас появилось окно авторизации Mac OS, значит, всё работает правильно.
Если у вас возникают какие-либо ошибки, смотрите логи. Они находятся по пути:
/var/logs/xrdp.log
/var/logs/xrdp-sesman.log
Вот таким способом можно предоставить доступ на Mac OS по протоколу RDP.