Говорят, что инфокиоск — это как швейцар в отеле: он встречает гостей, предоставляет нужную информацию и следит за порядком. Только у инфокиоска в арсенале не форма и фуражка, а экран и настройки безопасности!
Режим киоска в Astra Linux: как превратить компьютер в безопасный информационный терминал

Существует два понятия: «Графический киоск» и «Системный киоск».
При использовании графического киоска пользователю или группе пользователей разрешается запускать только приложения, явно указанные в их профиле. Профиль пользователя или группы представляет собой набор ярлыков и настроек. Поиск профиля осуществляется по имени пользователя/группы.
Режим системный киоск служит для ограничения прав пользователей в системе. Степень этих ограничений задается маской киоска. Ее действие аналогично действию маски umask с тем отличием, что если umask накладывается при создании новых объектов ФС, то маска киоска накладывается на права доступа к файлу при любой попытке пользователя получить доступ.
При выключенном режиме киоска, поведение системы остаётся стандартным, и на права доступа пользователя не накладывается никаких ограничений.
Особенность режима системного киоска в Операционной системе специального назначения Astra Linux Special Edition заключается в том, что данный режим работает на уровне ядра, а не на уровне пользовательских приложений.
Пример применения Режима киоска:
- Платежный терминал;
- Узкоспециализированное рабочее место пользователя (бухгалтер предприятия и т.д.).
От теории к задаче
Я работал в университете, и необходимо было реализовать информационные станции, чтобы студенты могли смотреть расписание, записываться на кружки или пользоваться сайтом прямо со станции.
Зная себя, что еще с детства я любил потыкать по углам этих рекламных баннеров, поискать обход заставок и так далее, необходимо было реализовать защищенный как от взлома, так и от шаловливых ручек студентов стенд, на котором бы крутился постоянно сайт вуза и доступ был бы только до него.

Установить Astra Linux было не сложной задачей, далее я уже понимал, что необходимо будет использовать киоск и выбрал графический, так как в его описание прямо звучало решение мой проблемы.
При использовании графического киоска пользователю или группе пользователей разрешается запускать только приложения, явно указанные в их профиле.
Отлично подумал я, выбрал приложение firefox, как стандартный браузер и получаю первую проблему:
После перезагрузки я получаю запущенный браузер, но как сделать чтобы запускалась только 1 страница и никакая другая?
Узнаю, что есть режим киоска еще и у firefox:
firefox http://example.com -kiosk &
О супер, но как запускать браузер сразу с параметрами?
И снова ответ на вопрос приходит из глубины сердца! Конечно же можно написать bash скрипт и запускать его как приложение в киоске.

Также, необходимо было продумать, чтобы через какое-то время неактивности, браузер возвращал бы стартовую страницу сайта для удобства пользователей.
Время писать #!/bin/bash
Сначала приведу уже готовый скрипт и далее разберем его и дополнительные настройки системы.
#!/bin/bash
# Отключаем экранный режим ожидания и блокировку
xset s off
xset -dpms
# Запускаем веб-браузер в полноэкранном режиме
# Замените "http://example.com" на URL вашей веб-страницы
firefox http://example.com -kiosk &
# Получаем и сохраняем идентификатор процесса браузера
browser_pid=$!
# Функция для перезапуска страницы киоска
restart_kiosk() {
# Убиваем процесс браузера
kill $browser_pid
# Запускаем новый экземпляр веб-браузера
firefox http://example.com -kiosk &
# Обновляем идентификатор процесса браузера
browser_pid=$!
}
# Функция для проверки неактивного времени пользователя
check_idle_time() {
# Получаем текущее неактивное время пользователя в миллисекундах
idle_time=$(xprintidle)
# Проверяем, если время бездействия пользователя превышает 5 секунд (5000 миллисекунд)
if (( idle_time > 120000 )); then
# Вызываем функцию перезапуска страницы киоска
restart_kiosk
fi
# Запускаем функцию снова через 1 секунду
sleep 1800
check_idle_time
}
# Запускаем функцию проверки неактивного времени пользователя
check_idle_time
Исходники тык
Всю информацию, можно получить в моем репозитории, также там есть видео по настройке и работе.
https://gitflic.ru/project/gabidullin-aleks/kiosk
Комментарии в коде уже даны, но разберу основные детали:
При автозапуске стенда, запускается наш скрипт и открывает браузер в режиме киоска с нужным нам сайтом;
Далее, создаю функцию, которая будет перезапускать браузер и запоминать PID процесса;
Вторая функция, это проверка неактивности стенда, и если пауза превышает определенный период, то вызывается функция перезапуска браузера.
Чуть подробнее про команду xprintidle.
Xprintidle — это утилита, которая запрашивает у X-сервера время бездействия пользователя и выводит его на стандартный вывод (в миллисекундах).
Остался финальный шаг, настроить систему для всех случаев жизни.
-
Сначала создадим обычного пользователя и добавим ему профиль графического киоска. По шагам показал как это сделать.
-
Настроем автовход для этого пользователя без пароля; https://wiki.astralinux.ru/pages/viewpage.action?pageId=3276870
открываем вход в систему Включаем автоматический вход Отключим засыпание монитора при долгой неактивности, для этого необходимо изменить параметры в домашнем каталоге пользователя, работающего в режиме графического киоска, в файлах ~/.fly/theme/default.themerc.fly-kiosk и ~/.fly/theme/current.themerc.fly-kiosk, а также /usr/share/fly-wm/theme/*default.themerc.fly-kiosk и /usr/share/fly-wm/theme/*current.themerc.fly-kiosk:
ScreenSaverDelay=0
LockerOnSleep=false
LockerOnDPMS=false
LockerOnLid=false
LockerOnSwitch=false
А так же удаляем файл powerdevil.desktop из каталогов /etc/xdg/autostart и ~/.config/autostart.
Итоговый результат
Таким образом мы получаем отказоустойчивый информационный киоск, который:
Не боится выключения света или перезагрузки;
Запущен от обычного пользователя, который не представляет опасности для системы;
Браузер также функционирует в режиме киоска, что скрывает все кнопки по закрытию браузера и использование горячих клавиш;
Наш стенд автоматически возвращается на главную страницу после определенного времени простоя;

«Теперь ваш компьютер — это не просто устройство для работы, но и надёжный страж информации, готовый предоставить нужные данные в любой момент. С интерактивным киоском в Astra Linux вы открываете дверь в мир безопасности и удобства!»
Комментарии (17)
Lx6g1ZG1
30.06.2025 11:52Думал, что в таком продукте, как Astra Linux Special Edition (он же платный?), судя по названию с уклоном в безопасность, используется Wayland, ведь там предусмотрена изоляция приложений.
Что будет, если браузер вдруг завершится с ошибкой вследствие каких-либо причин?
Не знаю, что там в Астре используется как система инициализации, но если бы это был просто Debian, то можно было бы создать пользовательский юнит systemd, который при перезапуске автоматически перезапускал бы браузер.
MikeyTide Автор
30.06.2025 11:52Можно и так конечно использовать и системд, накостыляв кучу всего, но зачем? Если из коробки уже есть граф.киоск?
Тут именно раскрывается суть киоска, то мы запускаем только 1 приложение на выбор.
Без данного приложения, киоск не работает, то есть если пользователь например получает разрешение на запуск только браузера, и вдруг при работе с ним он его закроет, то и сессия пользователя завершиться. И только новый вход, откроет повторно 1 разрешенное приложение и пока пользователь его не закроет, он сможет работать.А так как у нас настроен автовход, то получаем ситуацию:
1. Почему-то крашиться скрипт;
2. Происходит автоматический выход из сессии пользователя;
3. И киоск висит на этапе входа
P.S. на старом месте работы ( в вузе), данный киоск был настроен 1 раз, прописаны в /etc/hosts локальный айпи сайта, чтобы всегда ходить на прямую есть интернет или нет, и все.
Ни когда не ломался и не падал в ошибку скрипт, ну а браузер в скрипте закрыть нельзя, так как браузер открыт в режиме kiosk и все кнопки скрыты, а горячий клавиши не работают.
Ну соответственно и у пользователя в режиме киоск нет доступа ни к терминалу, ни к пуску и т.д.
А если пользователь выдернет провод, то админ воткнет обратно, и киоск выполнит автовход и продолжит работу.
Lx6g1ZG1
30.06.2025 11:52А если пользователь выдернет провод, то админ воткнет обратно, и киоск выполнит автовход и продолжит работу.
Вот это вот пользователь не должен иметь право делать ), иначе можно подсоединить какое-нибуть MITM устройство и, возможно, как-то повлиять на систему
MikeyTide Автор
30.06.2025 11:52Ну я же говорю про радикальные кейсы.
В моем случае провод прячется за самим киоском. Как витая пара так и питание.Но вдруг была любая перезагрузка, и киоск от этого защищен в описанном мною кейсе
Lx6g1ZG1
30.06.2025 11:52Но вдруг была любая перезагрузка
Лучше встроить в киоск ИБП, чтобы избежать этого. Злоумышленник может воспользоваться моментом перезагрузки для осуществления атаки на киоск
MikeyTide Автор
30.06.2025 11:52Как?
После перезагрузки автоматический вход только под 1 пользователем и только в 1 скрипт.
Он не может ничего сделать, ну и опять же, вопрос уже к технической реализации, а это на усмотрение администратора.Я дал лишь инструмент и объяснил как я делаю, и ка это работает
Lx6g1ZG1
30.06.2025 11:52Как?
Много разных вариантов. Если нет комплексной безопасности: защищеного шифрованием диска и secureboot, пароля на биос и есть доступ к портам и железу устройства. Перезагрузка - это момент неизвестности, никто точно не может сказать что в этот момент происходило.
Это все если есть что защищать. Вот вопрос возникает для чего на киоске именно Астра специального издания а не что-то проще.
MikeyTide Автор
30.06.2025 11:52Можно использовать и бесплатную версию.
https://wiki.astralinux.ru/pages/viewpage.action?pageId=67108883
В статье можно увидеть, что поддерживается 2.12, она является бесплатной.А так, я говорю о том, что если люди в рамках импортозамещения покупают Астру, то использовать 1 лицензию на киоск не самое дорогое решение
Lx6g1ZG1
30.06.2025 11:52Не вижу смысла использовать Astra (даже бесплатную) там, где можно использовать Debian
MikeyTide Автор
30.06.2025 11:52Так я рассказал как я делал на астре. В целях импортозамещения, если у вас есть вариант под Debian, так расскажите о нем и дайте готовое решение!
Это только улучшить возможности пользователей и даст выбор вариантов удобных
Lx6g1ZG1
30.06.2025 11:52Мне просто хотелось понять причины выбора ОС. Насколько я понял, это просто требование организации
MikeyTide Автор
30.06.2025 11:52Изначально моя первая организация купила этот дистрибутив.
А все мои проекты писались под нее и долго лежали в опен-сорсе на гитфлике.
Сейчас решил поделиться на Хабре всем, чему научился и что делал сам.
Вдруг будет полезно кому-либо, а возможно я получу советы !
THEOILMAN
Офигенски. На работе не перестаю думать о том, что все фигульки от ГК Астра в одночасье рухнут, если вдруг внезапно родится требование ФСТЭК перекочевать на вяленого =DD
MikeyTide Автор
Ну Астра не только имеет сертификаты ФСТЭК, также есть различные указаны, о необходимости перейти на отечественное ПО.
Таким образом Астра уже в реестре ПО и может быть использована.
Далее есть уровни защищенности и сертификаты, что также добавляет возможности использовать на разных инфраструктурах и условиях.
Ну и соответственно я, как один из ребят, кто занимается улучшениям опыта работы с астрой, помогаю вкатиться новичкам, и пишу разное и интересное, чтобы люди могли быстро закрывать свои задачи
Shaman_RSHU
Вы не поняли, тут вопрос в том, что сейчас идёт тенденция перехода с X11 на Wayland. Готова ли Астра к такому переходу?
MikeyTide Автор
За разработчиков я ничего не смогу сказать увы.
Однако есть мобильная астра https://wiki.astralinux.ru/pages/viewpage.action?pageId=319132646
Ну есть возможность поставить sddm например, или кеды.
При установке sddm появиться выбор wayland как тип сессии, сохранив возможность работать и со стандартным fly-dm.
Десктоп - стандартный режим
Ну далее понятно все
Астра развивает свой интерфейс, это понятно и нужно, как я считаю. Все работа с настройками изначально делается под fly.
В 1.8. fly сильно обновился и выглядит супер. (ИМХО)