Установка KIOSK для отображения web страницы

 Делаем простой киоск отображающий веб-страницу

* необходимо, чтобы видеокарта поддерживала 3d, иначе будет тупо серый (в mir-kiosk оранжевый и потом черный) экран (в virtualbox включить /в qemu на vds не работает)


Ставим Ubuntu Server 22.04, убеждаемся в работе ssh-сервера, далее всё ставим через него, используется в качестве основы ubuntu-frame (также есть устаревший mir-kiosk, но на его замену пришел ubuntu-frame)


Далее заходим по ssh и выполняем установку ubuntu-frame

snap install ubuntu-frame

snap set ubuntu-frame daemon=true


#snap start ubuntu-frame (данный снап сам запускается после хука для daemon=true)


экран светится серым - всё хорошо, вейланд запустился


Ставим webkit приложение которое будет работать в ubuntu-frame

snap install wpe-webkit-mir-kiosk

snap connect wpe-webkit-mir-kiosk:wayland


snap set wpe-webkit-mir-kiosk daemon=true

snap set wpe-webkit-mir-kiosk url=https://mir-server.io


snap start wpe-webkit-mir-kiosk


Смотреть логи

snap logs wpe-webkit-mir-kiosk


Настроить разрешение экрана (если необходимо)

cp /var/snap/ubuntu-frame/current/frame.display /root/

vi /root/frame.display

mode:1920x1080@60.0


snap set ubuntu-frame display="$( cat /root/frame.display )"


Настраиваем vnc-сервер (внимание, он без пароля, слушает localhost)

snap install ubuntu-frame-vnc

/snap/ubuntu-frame-vnc/current/bin/setup.sh

snap set ubuntu-frame-vnc daemon=true


Делаем доступным vnc из вне (без пароля!)

sysctl -w net.ipv4.conf.all.route_localnet=1

iptables -t nat -I PREROUTING -p tcp --dport 5900 -j DNAT --to 127.0.0.1:5900


echo "net.ipv4.conf.all.route_localnet=1" >> /etc/sysctl.conf

apt install iptables-persistent

iptables-save > /etc/iptables/rules.v4


Полезные ссылки

https://www.opennet.ru/opennews/art.shtml?num=55933
https://mir-server.io/docs/make-a-secure-ubuntu-web-kiosk
https://mir-server.io/docs/how-to-use-remote-assistance-with-ubuntu-frame
https://superuser.com/questions/661772/iptables-redirect-to-localhost
https://linuxconfig.org/how-to-make-iptables-rules-persistent-after-reboot-on-linux

KDE в Ubuntu 20.04 через x2goserver проблемы и их решения

Проблема: Не запускается сессия, не выполняется startkde, ошибка error: unable to execute: startkde в клиенте x2goclient на клиентском компьютере

Решение: Создать симлинк 

# ln -s /usr/bin/startplasma-x11 /usr/bin/startkde

Источник: https://bytexd.com/x2go-ubuntu/


Проблема: Постоянно Network Manager запрашивает пароль для повышения прав, сообщение вида Authentication Required PolicyKit1 KDE Agent

Решение: Настроить правила в polkit (хотя по идее NM вообще удалить можно, сеть статически на серверах в interfaces настраивается, но вроде ничего не ломает NM)

# vi /etc/polkit-1/localauthority/50-local.d/50-allow-network-manager.pkla
[Network Manager all Users]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.network-control
ResultAny=no
ResultInactive=no
ResultActive=yes

Источник: https://unix.stackexchange.com/questions/534469/system-policy-prevents-control-of-network-connections


Проблема: Запускается графическая оболочка на физической консоли сервера, стало после apt install kubuntu-desktop, она там не нужна, расходует ресурсы

Решение: Поменять target запуска системы в systemd

# systemctl set-default multi-user.target

обратно

# systemctl set-default graphical.target

посмотреть какой сейчас

# systemctl get-default


Проблема: x2goclient на клиентском компьютере запускает ssh-сервер, понижается безопасность.

Решение: Таков механимзм работы проброса протокола x11. Отредактируйте /etc/ssh/sshd_config и пропишите ListenAddress 127.0.0.1

Настраиваем VPN L2TP IPsec сервер для подключения с мобильных устройств (на Debian 10)

# apt install xl2tpd libreswan

# vi /etc/ipsec.conf
config setup
        nat_traversal=yes
        virtual_private=%v4:10.1.2.0/24
        oe=off
        protostack=netkey
conn L2TP-PSK-NAT
        rightsubnet=vhost:%priv
        also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
        authby=secret
        pfs=no
        auto=add
        keyingtries=3
        rekey=no
        ikelifetime=8h
        keylife=1h
        type=transport
        left=внешний.ip.адрес.сервера
        leftprotoport=17/1701
        right=%any
        rightprotoport=17/%any


# vi /etc/ipsec.d/my.secrets
внешний.ip.адрес.сервера %any: PSK "секрет_для_ipsec_символов_20" 

# vi /etc/xl2tpd/xl2tpd.conf
[global]
ipsec saref = yes

[lns default]
ip range = 10.1.2.2-10.1.2.255
local ip = 10.1.2.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

# vi /etc/ppp/options.xl2tpd
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 1.1.1.1
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name VPN
proxyarp
mtu 1200
mru 1200
lcp-echo-interval 30
lcp-echo-failure 4

# vi /etc/ppp/chap-secrets
user    VPN    пароль_символов_20_для_l2tp    *

# systemctl enable ipsec ; systemctl start ipsec
# systemctl enable xl2tpd ; systemctl start xl2tpd

Настроим NAT в интернет, примерно так (где eth0 внешний интерфейс, имя узнать ip a)
# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# crontab -e
@reboot /sbin/iptables -t nat -A POSTROUTING -s 10.1.2.0/24 -o eth0 -j MASQUERADE

# sysctl net.ipv4.ip_forward=1 ; iptables -t nat -A POSTROUTING -s 10.1.2.0/24 -o eth0 -j MASQUERADE



Настроим IOS-устройство, перейти в меню
Настройки - VPN - Добавить конфигурацию VPN
Тип – L2TP
Описание – на ваше усмотрение (VPN)
Сервер – домен или IP-адрес VPN-сервера
Учетная запись – имя пользователя VPN
Пароль – пароль пользователя VPN (файл /etc/ppp/chap-secrets)
Общий ключ – секрет IPsec (файл /etc/ipsec.d/my.secrets)

На Android добавляется аналогично в сетевых подключениях

ntp сервера stratum 1 для рф сервера и европейского

server -4 ntp.ix.ru iburst
server -4 ntp4.vniiftri.ru iburst
server -4 ntp3.aas.ru iburst
server -4 ntp.kaluga.net iburst
server -4 ntp.zev.su iburst
server -4 ntp3.stratum1.ru iburst
server -4 atomic.zxlab.ru iburst
server -4 ntp.arity.ru iburst
server -4 rt.swl.su iburst
server -4 ntp0.nl.uu.net iburst
server -4 ntp2.fau.de iburst
server -4 ntp.nic.kz iburst


server -4 time.esa.int iburst
server -4 ntp5.leontp.com iburst
server -4 ntp.ripe.net iburst
server -4 ntp0.nl.uu.net iburst
server -4 ntp1.time.nl iburst
server -4 time.t3kkit.com iburst
server -4 ntp2.oma.be iburst 
server -4 ntp-p1.obspm.fr iburst
server -4 gbg1.ntp.se iburst
server -4 time2.stupi.se iburst
server -4 ntp2.fau.de iburst
server -4 ntp2.inrim.it iburst



Полезные ссылки:

Установка NTP сервера для включения его в pool.ntp.org https://habr.com/ru/post/536436/