Как известно, Сбербанк потерял возможность продлевать свои сертификаты из-за санкций еще весной. Новые сертификаты выписываются одним из национальных УЦ, чьего корневого сертификата в операционных системах нет. Решить проблему можно двумя путями: установив себе рутовый сертификат в систему или установив Яндекс.Браузер. Устанавливать рутовый сертификат не хотелось, а Яндекс.Браузер у нас запрещен политикой компании даже на BYOD (своих ПК, которые используются для работы). И не потому что в каждом ЯБраузере живёт товарищ майор с КДПВ, а потому что там предустановлено 100500+ плагинов, которые сливают данные при каждом включении браузера в неустановленное количество получателей. Поставить виртуальную машину, в неё воткнуть сертификат Поставить виртуальную машину, в неё установить Я.Браузер     100% рабочий план, казалось бы. Даже два! Но есть проблема: в моём ноуте SSD накопитель на 250 гигов, разделенный на Windows раздел и Linux раздел, и в Linux'e свободно меньше 5 гигов. Еще один нюанс заключается в том, что виртуалки любят есть ОЗУ, и оперативки может и не хватить, когда уже запущена Intellij IDEA (две), Firefox с десятками вкладок (два), KeePass (два), Obsidian, и т.д. Своп мало того что медленный, так еще и некуда. Засада.Надо как-то сэкономить ресурсы, которых и так в обрез. Но как?     А что если завернуть Яндекс Браузер в Docker контейнер? Звучит неплохо... Получаем контролируемое окружение, из которого относительно сложно сбежать... ИМХО, с точки зрения безопасности не так хорошо, как VM, но зато можно уменьшить футпринт на диске, а это мне и нужно.     Тут я должен был подорваться писать Dockerfile, но как человек ленивый, решил на всякий случай проверить, а не сделал ли это кто-то до меня? И, о бинго, поиск нашёл проект https://github.com/QGB/yandex. Скачанный с Dockerhub'a образ оказался не совсем рабочим и очень старым (3 года). Окей, в проекте есть инструкция, решил собрать по ней... и она оказалась вполне себе рабочей. В Dockerfile 5-ая строчка содержит ENV VNC_SCREEN_SIZE 1366x768 - там нужно подставить удобное вам разрешение экрана. Собираем: docker build --tag yandex:1.0 . Запускаем: sudo docker run -p 127.0.0.1:5900:5900 --name yandex -d yandex:1.0 Либо запускаем из Docker Hub'a: sudo docker run -p 127.0.0.1:5900:5900 --name yandex -d aresox/yandex:1.0 Автор проекта предлагает две опции: подключение по VNC подключение через Chrome Remote Desktop     С этим вариантом всё очевидно. Ставим на хост клиент VNC, к примеру, я поставил Remmina, при подключении указываем localhost 5900 Однако, у этого варианта есть один недостаток: даже локальное соединение ощущается как небыстрое и весьма "желейное". Для меня это не фатальный недостаток, но если вы любите моментальный отклик - то этот вариант не для вас.     Насколько мне известно, данный вариант в локальном запуске должен обеспечивать гораздо лучший отклик. Увы, Dockerfile оригинального проекта сейчас его не поддерживает.    В моём форке добавлены все необходимые зависимости:1) пакет xserver-xorg-video-dummy2) копирование и установка https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb из папки с проектом.Устанавливается, но не работает. К сожалению, есть два момента, которые могут помешать зайти в столь нужный мне СБОЛ: местный провайдер может решить поиграть в блокировки доступа к сайтам подсанкционных компаний (да, этим "грешат" не только в России и Казахстане) СБОЛ решит, что сейчас кругом враги идёт DDoS, и просто закроет доступ к сайту из той или иной страны. Или всех стран, кроме России. Оба пункта от меня практически не зависят, и случаются с завидной регулярностью, но решаются довольно очевидно: нужен VPN или какое-нибудь другое решение прокидывания траффика в Россию. Для этого я поднял виртуалку у провайдера Serverspace. После регистрации вам начислят 10 рублей, чего достаточно потестить виртуалки. Самая маленькая ест 60 копеек в час. К сожалению, у провайдера в списке доступных "приложений" нет openvpn сервера, поэтому надо ставить руками. Ну как руками — другие админы уже давно написали скрипт автоматизации, так что воспользуемся им: через сокращатор ссылок: wget https://git.io/vpn -O openvpn-install.shили полный путь: wget https://raw.githubusercontent.com/Nyr/openvpn-install/master/openvpn-install.sh -O openvpn-install.sh Накидываем права на исполнение и собственно запускам: sudo chmod +x openvpn-install.shsudo bash openvpn-install.sh далее жмём Enter несколько раз, вводим имя первого клиента, пусть будет sbol, и получаем конфиг /root/sbol.ovpn копируем себе содержимое файла либо файл целиком, со своей машины: cd ~ scp root@<<ipaddr>>:/root/sbol.ovpn sbol.ovpn На машине должен быть установлен клиент openvpn, если вдруг нет: sudo apt install openvpn И, опционально, плагин для GUI sudo apt-get install network-manager-openvpn-gnome     Альтернатива - поднять SSH туннель, и тогда нам ничего не нужно устанавливать на поднятую виртуалку, вот совсем.      Поскольку я ленив чуть менее, чем полностью, то предлагаю воспользоваться замечательным приложением sshuttle. Приложение нуждается в установленном Питоне на клиенте, а на целевом сервере не нуждается ни в чем (как минимум, Убунта от хостера подходит "из коробки" в качестве удаленного хоста): export vm_ip=<<vm_ip>> sudo sshuttle -r root@$vm_ip -x $vm_ip 0/0 --dns --no-latency-control --ssh-cmd 'ssh -i /home/<<username>>/.ssh/id_rsa' N.B.: <<username>>  нужно поменять на имя вашего пользователя! Обратите внимание на ключи: --dns - прокидывает DNS запросы внутрь виртуалки (на случай, если провайдер занимается DNS спуфингом) --no-latency-control - ощутимо бустит пропускную способность туннеля --ssh-cmd - позволяет прописать алиас для нижележащей ssh команды, чтобы вместо интерактивного ввода пароля ходить по ключам До своих постоянных серверов я просто прописал alias в ~/.bashrc , чтобы gnome terminal их подхватывал при открытии нового окна или вкладки: alias sshuttle_nj='sudo sshuttle -r root@<<ipaddress>> -x <<ipadress>> 0/0 --dns --no-latency-control К сожалению,  если VPN доступен изнутри докера контейнера нативно и без лишних телодвижений, то вот с SSH tunnel'ем это не так. Как часто бывает, тут тоже есть больше одного решения. Простой вариант: добавить ключ --net=host, и убрать -p 127.0.0.1:5900:5900Итоговая строка создания и запуска будет выглядеть вот так: sudo docker run --name yandex --net=host -d aresox/yandex:1.0 Второй вариант заключается в bind'инге портов между docker0 и целевым хостом с помощью ключа -L, когда подымается туннель. Результат: На этом всё, я пошёл "тратить" деньги.  Айтишник. Люблю игры и жизнь. Наношу добро. ♥DBaaS