Задача: Разобрать как на Lubuntu 22.04 Desktop
настроить клиент Remmina
дабы подключаться по SSH
к VPS
, а уже с нее через проброс порта до офисной системы с защитой по источнику.
Итак, ранее я для себя задокумментировал, как на рабочую систему Lubuntu 22.04 Desktop
установить пакет Remmina
, разобрал как подключаться к системам по RDP
и по связке RDP+NLA
, но так как выставлять правило на брандмаэуере на доступ по RDP
к серверу ни в коем случае нельзя из вне. Почему нельзя? — Подберут пароль, будут блокировать если определят учетную запись, раскроют информацию об имени хоста. Не хорошо. А потому сделаем, что доступ к хосту в офисной сети по RDP
возможен только с подконтрольного хоста Ubuntu 18.04.3
. В качестве подконтрольного хоста может выступать любая Ubuntu
система (другие не администрирую)
Схема будет следующая:
Шаг №1:
На офисном шлюзе создаем правило, что любой трафик RDP
подключения с хоста vpn.ekzorchik.ru
может взаимодействовать с хостом "Офисная система Windows"
. См. схему выше
К примеру, если офисный шлюз это TMG
или pfSense
, на шлюзе настраивается правило проброс порта, т.е. при подключении на внешнее имя офисного шлюза, к примеру mail.ekzorchik.ru:40000
-> происходит перенаправление на 192.168.10.2:3389
(Офисная система). И обязательно источник подключения указываем хост vpn.ekzorchik.ru
Шаг №2:
На подконтрольной системе VPS
, к примеру vpn.ekzorchik.ru
устанавливается брандмауэер (у меня это firewalld & ufw
), устанавливается пакет openssh-server
, где порт подключения по SSH
вместо 22
порта меняем на 44200
)
root@ekzorchik:~# nano /etc/ssh/sshd_config Port 44200 PermitRootLogin yes AllowGroups sshauth root@vpn:~# systemctl restart sshd
Шаг №3:
Чтобы заработало туннелирование через ssh
активируем настройку:
root@vpn:~# sudo nano /etc/ssh/sshd_config AllowTcpForwarding yes root@vpn:~# systemctl restart sshd
Шаг №4:
Настраивается брандмауэр (у меня это firewalld & ufw
) на вход в систему только по SSH:
sudo ufw disable sudo apt-get install -y firewalld sudo systemctl enable firewalld sudo systemctl start firewalld sudo firewall-cmd --state ip r | awk '{print $5}' | head -n1 ens18 sudo firewall-cmd --zone public --change-interface=ens18 --permanent sudo firewall-cmd --reload sudo firewall-cmd --zone=public --list-all public (active) target: default icmp-block-inversion: no interfaces: ens18 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: ekzorchik@srv-bionic:~$
а после добавляем порт 44200
на подключение из вне, а сервис ssh
убираем
sudo firewall-cmd --zone=public --add-port=44200/tcp --permanent sudo firewall-cmd --remove-service={ssh} --permanent sudo firewall-cmd --reload
Шаг №5:
Также на подконтрольной VPS
устанавливаем и настраиваем защиту вашего сервиса SSH
через fail2ban
дабы пресечь попытки подбора логина и пароля, хотя лучше использовать доступ по ключу если есть такая возможность.
За основу данного шага берем заметку "Настройка связки Fail2ban + firewalld на Ubuntu 18.04"
Все выше работает, сам применяю во многих местах.
Шаг №6:
На рабочей системе Lubuntu 22.04 Desktop
установлен пакет Remmina
опираясь на заметку "Как установить Remmina на Lubuntu 22.04 Desktop"
По итогу пакет Remmina
должен быть версии 1.4.27
Шаг №7:
Настраиваю подключение через туннелирование к vpn.ekzorchik.ru
, а уже после к шлюзу, а после к офисной системе:
нажимаю клавишу Win - Internet - Remmina
— нажимаю в левом верхнем углу программ на иконку "+"
(всплывающее сообщение "Add a new connection profile"
)
Name: work(sshtunnelrdpnla)
Protocol: RDP - Remote Desktop Protocol
вкладка Basic
Server: mail.ekzorchik.ru:40000
Username: ekzorchik
Password: 712mbddr@
Domain: polygon
Resolution: Use client resolution
Colour depth: True colour (24 bpp)
вкладка Advanced
Quality: Poor (fastest)
Security protocol negotiation: NLA protocol security
Gateway transport type: HTTP
TLS Security Level: 0 - Windows 7 compatible
вкладка SSH Tunnel
нажимаю на Enable SSH Tunnel
и выбираю custom
, указываю адрес
root@vpn.ekzorchik.ru:44200
Authentication type: Password
и нажимаю Save
Шаг №8:
Проверяю созданное подключение:
в первый раз при подключении возникает окно запроса аутентификационных данных для SSH
туннеля. Указываем
Username: нельзя указать, т.к. я предопределил в элементе настроек Custom
Password: указываю пароль для учетной записи root
Save password: перевожу в положение включено
и нажимаю ОК
и если все указано верно и настроено верно, подключение должно осуществиться, но сперва соглашаюсь с сертификатом удаленной системы путем нажатия на запрос — Yes
Certificate details:
Subject: CN=srv-backup03.polygon.local
Issuer: CN=srv-backup03.polygon.local
Fingerprint: отпечаток удаленной системы
Accept certificate? нажимаю Yes
И вот я внутри своей офисной системы
у меня это Windows Server 2012 R2
с сервисом бекапирования DPM
С этой системы или по аналогии на любую другую настраивается подключение устанавливаются все необходимые утилиты для офисного Администрирования инфраструктурой, а доступ к ней получается в полной безопасности. Так подключаюсь я, а офисные сотрудники через сервис Remote Desktop Gateway
с двойной доменной аутентификацией.
Такие сложности в моем случае нужны чтобы, когда я обновляю сертификат Let's Encrypt
на сервисе Remote Desktop Gateway
я не отвалился и не пришлось ехать на работу ночью чтобы все поправить, т.к. никто из сотрудников на удаленке не сможет работать.
Итого, заметка работоспособна и работает, на этом у меня все, с уважением автор блога Олло Александр aka ekzorchik.