В русском сегменте Интернета все чаще начинают использовать криптографический алгоритм ГОСТ Р 34.10-2012 (или проще говоря — ГОСТ2012), который является утвержденным государством стандартом для шифрования данных. В данном материале будет приведен пример настройки веб-киоска на основе Debian 11, с минимальным набором установленных программ. В качестве целевого сайта будет использоваться сайт, работающий по использующий шифрование ГОСТ TLS.
Установка необходимых программ
apt install openssh-server
При желании, так же можно включить удаленный доступ через SSH для пользователя root.
Установим X.Org Server и Openbox:
apt install openbox xorg
Если у вас установлена английская версия Debian, без поддержки русского языка, то добавим возможность его ввода. Для этого, отредактируем файл /etc/default/keyboard:
nano /etc/default/keyboard
И приведем его к следующему виду (для удобства, внесенные в данный файл изменения выделены синим):
# KEYBOARD CONFIGURATION FILE # Consult the keyboard(5) manual page. XKBMODEL="pc105" XKBLAYOUT="us,ru" XKBVARIANT="" XKBOPTIONS="grp:alt_shift_toggle" BACKSPACE="guess"
Установка Chromium GOST
Поскольку нам нужно настроить не просто веб-киоск, а тот, который сможет ходить на сайты, использующие шифрование ГОСТ2012, то выбор браузеров сужается до единственного адекватного кандидата в виде Chromium GOST.
Сперва установим необходимые пакеты для Chromium GOST:
apt install fonts-liberation libcurl3-gnutls libnspr4 libnss3 xdg-utils wget
А затем скачиваем, и устанавливаем сам Chromium GOST с нужной разрядностью (актуальную ссылку брать здесь). Для скачивания его непосредственно на веб-киоск, нужно выполнить следующую команду:
wget https://github.com/deemru/Chromium-Gost/releases/download/102.0.5005.61/chromium-gost-102.0.5005.61-linux-amd64.deb
Устанавливаем скачанный deb пакет:
dpkg -i chromium-gost-102.0.5005.61-linux-amd64.deb
Установка КриптоПро
Хоть и был установлен браузер, с поддержкой работы с сайтами, использующими шифрование ГОСТ2012, еще потребуется криптопровайдер КриптоПро CSP как минимум версии 4.0. Скачать его можно только с официального сайта, где требуется регистрация. Сам по себе КриптоПро CSP не бесплатен и требует приобретения, но позволяет работать в течении 90-дневного срока в качестве пробной версии.
Для Debian, КриптоПро скачивается в tgz архиве, по этому, сперва требуется его распаковать:
tar -xvf linux-amd64_deb.tgz
Перейдем в получившуюся после распаковки директорию, и выполним установочный скрипт:
cd linux-amd64_deb ./install.sh
После чего, установка КриптоПро CSP пройдет в автоматическом режиме. По её завершению, можно будет сразу активировать лицензию КриптоПро, используя следующую команду:
/opt/cprocsp/sbin/amd64/cpconfig -license -set [СЕРИЙНЫЙ НОМЕР]
Установка корневых сертификатов
С большей долей вероятности, сайт, использующий шифрование по ГОСТ2012 имеет свои ГОСТ2012 сертификаты, которые не будут известны вашей системе. По этому, для устранения ошибки о сертификате, нужно установить нужные корневые сертификаты, используя КриптоПро:
/opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file CryptoPro.cer
Утилита попросит подтвердить установку сертификата, после чего, при успешной установке, будет выведен текст [ErrorCode: 0x00000000].
Настройка openbox
Настроим контекстное меню Openbox, чтобы через него можно было совершить только два действия — выключение и перезагрузку киоска. Для этого, откроем файл конфигурации меню /etc/xdg/openbox/menu.xml в любом текстовом редакторе, и приведем его к следующему виду:
<?xml version="1.0" encoding="UTF-8"?> <openbox_menu xmlns="http://openbox.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://openbox.org/ file:///usr/share/openbox/menu.xsd"> <menu id="root-menu" label="Openbox 3"> <item label="Shutdown"> <action name="Execute"> <execute>sudo /usr/bin/systemctl poweroff</execute> </action> </item> <item label="Restart"> <action name="Execute"> <execute>sudo /usr/bin/systemctl reboot</execute> </action> </item> </menu> </openbox_menu>
Настройка автозапуска
Создадим нового пользователя, под которым будет происходить работа веб-киоска:
useradd -m -g users kiosk
Настроим автологин этого пользователя.
mkdir -p /etc/systemd/system/getty@tty1.service.d/
nano /etc/systemd/system/getty@tty1.service.d/autologin.conf
Пишем следующее:
[Service] ExecStart= ExecStart=-/sbin/agetty -a kiosk --noclear %I $TERM
Поскольку мы не используем никакой экранный менеджер, то настроим автозапуск X сервера самостоятельно. Откроем файл /home/kiosk/.profile для редактирования:
nano /home/kiosk/.profile
И добавим в самый конец следующие строки:
if [ -z "$DISPLAY" ] && [ $(tty) = /dev/tty1 ]; then . startx logout fi
Дадим пользователю возможность выключать и перезагружать компьютер. Для этого, потребуется установить пакет sudo:
apt install sudo
И добавить информацию о правах данного пользователя в файл конфигурации sudo:
nano /etc/sudoers
Указываем разрешения пользователя только на две команды:
kiosk ALL=(ALL) NOPASSWD: /usr/bin/systemctl poweroff,/usr/bin/systemctl reboot
Теперь, настроим автозагрузку Chromium GOST. Сперва создадим скрипт, который будет запускать Chromium GOST, проверять его запущенность, и в случае чего — перезапускать его через 30 секунд.
nano /home/kiosk/chromium-gost.sh
Пишем туда следующее (https://google.ru следует заменить на необходимый ресурс):
#!/bin/bash while true do chromium-gost --disable-infobars --incognito --kiosk 'https://google.ru' sleep 30s done
chromium-gost --disable-infobars --incognito -kiosk --proxy-server="[АДРЕС ПРОКСИ СЕРВЕРА]" 'https://google.ru'
Адрес прокси сервера должен быть в виде АДРЕС:ПОРТ, например 127.0.0.1:8080.
Даем данному скрипту права на выполнение:
chmod +x /home/kiosk/chromium-gost.sh
Открываем файл автозапуска для Openbox:
nano /etc/xdg/openbox/autostart
Пишем туда следующее:
xset s off xset s noblank ./chromium-gost.sh
Первыми двумя мы отключаем отключение экрана для энергосбережения, и прочие неактуальные для такого рода компьютера штуки, а затем мы запускаем ранее записанный скрипт для запуска Chromium GOST.
Настройка GRUB
Напоследок, можно ускорить загрузку системы, убрав отображение меню загрузчика GRUB. Для этого, открываем файл /etc/default/grub:
nano /etc/default/grub
И находим строчку GRUB_TIMEOUT, после чего меняем её значение на 0. Должно получиться следующее:
GRUB_TIMEOUT=0
Для применения изменений, выполняем обновление загрузчика GRUB:
update-grub
Теперь можно перезагружать компьютер, и проверять работу веб-киоска.
Специфичные доработки
Если в вашем случае веб-киоск — это не только стоящий в холле терминал, а полноценный компьютер, то не лишним будет доработать некоторые моменты.
Если у вас подключена к нему клавиатура, то наверняка вы захотите, чтобы цифровой блок работал сразу при включении компьютера, а не ждал активации клавишой Num Lock. Для этого, потребуется установить дополнительный пакет numlockx:
apt install numlockx
И добавить в файл автозапуска /etc/xdg/openbox/autostart, прямо перед строкой с запуском chromium gost следующую команду:
xset s off xset s noblank numlockx on ./chromium-gost.sh
О том, как ограничить использование USB накопителей, чтобы случайные пользователи не тыкали флешки в систему, можно прочитать в отдельной заметке.

Добавить комментарий