需求场景与技术选型
最近在政务大厅项目中需要部署一批自助终端设备,要求系统启动后自动全屏显示本地开发的政务服务页面,禁止用户操作其他功能。经过技术评估,决定采用:
- 操作系统:openSUSE Leap 15.5(国内政务领域常用发行版)
- 桌面环境:Gnome 3(机构现有技术栈)
- 浏览器:Firefox ESR(兼容国产插件)
基础环境配置
首先完成最小化系统安装:
# 安装时选择"最小化服务器安装"模式
zypper in -t pattern gnome_basic x11 firefox
systemctl enable gdm
浏览器全屏配置
创建自动启动脚本/etc/xdg/autostart/firefox-kiosk.desktop
:
[Desktop Entry]
Type=Application
Name=政务服务终端
Exec=firefox --kiosk --private-window http://localhost:8080
Hidden=false
X-GNOME-Autostart-enabled=true
系统锁定方案
采用三层防护策略:
- 用户权限控制:
- Gnome扩展限制:
- 防火墙规则:
useradd -m -U -s /bin/bash kiosk
passwd -l kiosk
echo "kiosk ALL=(ALL) NOPASSWD: /usr/bin/pkill firefox" >> /etc/sudoers
gsettings set org.gnome.desktop.lockdown disable-command-line true
gsettings set org.gnome.desktop.lockdown disable-log-out true
iptables -A OUTPUT -p tcp --dport 80 -j DROP
iptables -A OUTPUT -p tcp --dport 443 -j DROP
应急恢复机制
配置物理按键组合应急退出:
// 本地页面中嵌入的监听代码
document.addEventListener('keydown', (e) => {
if(e.ctrlKey && e.altKey && e.key === 'Escape') {
fetch('/api/exitkiosk', {method: 'POST'});
}
});
实际部署效果
最终实现:
- 冷启动到页面展示 ≤15秒
- 内存占用稳定在800MB左右
- 通过等保2.0三级安全检测