Загрузка данных
3. SSH, firewall, удаленный доступ, пользователи и права
Установи и включи SSH для защищенного удаленного доступа:
sudo apt install -y openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh
В статусе должно быть active (running). Нажми q, чтобы выйти из просмотра статуса.
Установи и включи межсетевой экран UFW:
sudo apt install -y ufw
sudo ufw allow ssh
sudo ufw allow 3000/tcp
sudo ufw enable
sudo ufw status
Порт 3000/tcp можно использовать для локального dev-сервера или проверки приложения. Если система спросит Proceed with operation, введи y и нажми Enter. Сделай скриншот статуса SSH и UFW. Это рисунок 9.
Если требуется показать удаленный доступ к активной графической сессии, установи xrdp:
sudo apt install -y xrdp
sudo systemctl enable --now xrdp
sudo ufw allow 3389/tcp
sudo systemctl status xrdp
Сделай скриншот статуса xrdp или разрешенного порта. Это рисунок 10.
Создай пользователей и группу для команды разработки настольных приложений:
sudo adduser developer
sudo adduser tester
sudo groupadd desktopdev
sudo usermod -aG desktopdev developer
sudo usermod -aG desktopdev tester
getent group desktopdev
При создании пользователей можно поставить простой пароль и пропустить дополнительные поля, нажимая Enter. Команда getent group desktopdev должна показать участников группы. Сделай скриншот. Это рисунок 11.
Создай рабочую папку проекта и назначь права доступа:
sudo mkdir -p /opt/desktop-app-projects
sudo chown root:desktopdev /opt/desktop-app-projects
sudo chmod 770 /opt/desktop-app-projects
ls -ld /opt/desktop-app-projects
Права 770 означают, что доступ есть у владельца и группы desktopdev, а остальные пользователи доступа не имеют. Сделай скриншот. Это рисунок 12.
4. Установка базового ПО
Установи офисный пакет, архиватор, Git и диагностические утилиты:
sudo apt install -y libreoffice p7zip-full curl wget git net-tools htop ca-certificates gnupg
После установки проверь Git:
git --version
Сделай скриншот терминала с успешной установкой или версией Git. Это рисунок 13.
5. Установка Node.js LTS и npm
Для Electron-приложений нужен Node.js LTS и менеджер пакетов npm. На экзамене можно установить Node.js из репозиториев Ubuntu:
sudo apt install -y nodejs npm
node -v
npm -v
Если преподаватель требует именно LTS-ветку, можно установить Node.js через NodeSource:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
node -v
npm -v
После вывода версий Node.js и npm сделай скриншот. Это рисунок 14.
6. Установка Visual Studio Code
Установи Visual Studio Code через snap:
sudo snap install code --classic
code
После запуска можно установить расширения JavaScript/TypeScript, ESLint и Prettier. Сделай скриншот главного окна VS Code. Это рисунок 15.
При необходимости установи расширения через терминал:
code --install-extension dbaeumer.vscode-eslint
code --install-extension esbenp.prettier-vscode
7. Создание тестового Electron-приложения
Создай папку проекта и назначь ее пользователю developer:
sudo mkdir -p /opt/desktop-app-projects/electron-bank-demo
sudo chown -R developer:desktopdev /opt/desktop-app-projects/electron-bank-demo
cd /opt/desktop-app-projects/electron-bank-demo
Инициализируй npm-проект и установи Electron:
sudo -u developer npm init -y
sudo -u developer npm install --save-dev electron
Проверь установленную версию Electron:
npx electron --version
Сделай скриншот установки или версии Electron. Это рисунок 16.
Создай минимальные файлы приложения:
sudo -u developer nano main.js
sudo -u developer nano index.html
В файл main.js вставь:
const { app, BrowserWindow } = require('electron');
function createWindow() {
const win = new BrowserWindow({ width: 900, height: 600 });
win.loadFile('index.html');
}
app.whenReady().then(createWindow);
В файл index.html вставь:
<!doctype html>
<html>
<head><meta charset="UTF-8"><title>Bank Desktop Demo</title></head>
<body><h1>Кросс-платформенное desktop-приложение</h1><p>Проверка Electron на Ubuntu Linux.</p></body>
</html>
Открой package.json и добавь скрипт запуска:
sudo -u developer nano package.json
Внутри блока scripts должно быть:
"scripts": {
"start": "electron ."
}
Запусти приложение:
sudo -u developer npm start
Если открылось окно Electron-приложения, сделай скриншот. Это рисунок 17.
8. Установка electron-builder
Установи electron-builder как инструмент автоматизации сборки и создания установочных пакетов:
cd /opt/desktop-app-projects/electron-bank-demo
sudo -u developer npm install --save-dev electron-builder
Проверь версию electron-builder:
npx electron-builder --version
Сделай скриншот вывода версии electron-builder. Это рисунок 18.
В package.json добавь имя приложения, описание и команды сборки:
sudo -u developer nano package.json
Пример нужных строк:
"name": "electron-bank-demo",
"version": "1.0.0",
"description": "Demo cross-platform desktop app",
"main": "main.js",
"scripts": {
"start": "electron .",
"dist": "electron-builder --linux AppImage deb"
},
"build": {
"appId": "ru.exam.electronbankdemo",
"productName": "Electron Bank Demo",
"linux": {
"target": ["AppImage", "deb"],
"category": "Utility"
}
}
Запусти сборку установочных пакетов:
sudo -u developer npm run dist
После завершения сборки проверь папку dist:
ls -lh dist
В папке должны появиться AppImage и deb-пакет. Сделай скриншот. Это рисунок 19.
9. Проверка установочного пакета
Проверь запуск AppImage:
chmod +x dist/*.AppImage
./dist/*.AppImage
Если приложение открылось из AppImage, сделай скриншот. Это рисунок 20.
Проверь установку deb-пакета:
sudo apt install ./dist/*.deb
После установки найди приложение в меню Ubuntu или запусти его из терминала. Сделай скриншот установленного приложения. Это рисунок 21.
10. Контроль зависимостей и безопасность npm
Проверь зависимости проекта на известные уязвимости:
npm audit
Если npm предлагает исправления и это не ломает проект, можно выполнить:
npm audit fix
Сделай скриншот результата npm audit. Это рисунок 22.
Установи автоматические обновления безопасности Ubuntu:
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
Сделай скриншот окна настройки unattended-upgrades или вывода установки. Это рисунок 23.
11. Защита от фишинга и безопасное хранение учетных данных
Установи менеджер паролей Bitwarden. Он помогает хранить учетные данные в зашифрованном виде и снижает риск ввода пароля на фишинговом сайте, так как автозаполнение привязано к домену:
sudo snap install bitwarden
bitwarden
После запуска Bitwarden сделай скриншот окна программы. Это рисунок 24.
Проверь наличие системного хранилища ключей GNOME Keyring:
sudo apt install -y seahorse gnome-keyring
seahorse
GNOME Keyring используется приложениями Linux для безопасного хранения токенов, паролей и секретов. Сделай скриншот окна «Пароли и ключи». Это рисунок 25.
Установи ClamAV для проверки файлов и AppArmor для ограничения действий процессов:
sudo apt install -y clamav clamav-daemon apparmor apparmor-utils
sudo systemctl enable --now apparmor
clamscan --version
sudo aa-status
Сделай скриншот версии ClamAV или статуса AppArmor. Это рисунок 26.
12. Журналирование и мониторинг
Установи auditd для аудита действий в системе:
sudo apt install -y auditd
sudo systemctl enable --now auditd
sudo auditctl -s
Сделай скриншот статуса auditd. Это рисунок 27.
Покажи журнал системных событий:
journalctl -n 30
Сделай скриншот журнала. Это рисунок 28.
13. Настройка совместимости интерфейса в Ubuntu
Для проверки корректного отображения меню и кнопок открой настройки Ubuntu → Displays. При необходимости выставь разрешение 1366×768 или 1920×1080 и масштаб 100%. Сделай скриншот настроек экрана. Это рисунок 29.
Если приложение отображается слишком крупно или размыто, запусти его с отключением масштабирования Electron:
ELECTRON_FORCE_IS_PACKAGED=true ./dist/*.AppImage --force-device-scale-factor=1
Если нужно проверить запуск без аппаратного ускорения графики, используй:
./dist/*.AppImage --disable-gpu
Сделай скриншот корректного отображения интерфейса приложения. Это рисунок 30.
14. Резервная копия, образ системы и виртуальный принтер
Установи Timeshift и создай точку восстановления:
sudo apt install -y timeshift
sudo timeshift-gtk
В Timeshift выбери режим RSYNC, место хранения по умолчанию и создай снимок кнопкой Create. Сделай скриншот созданного снимка. Это рисунок 31.
Для демонстрации установочного/резервного образа можно экспортировать настроенную виртуальную машину в VirtualBox: «Файл» → «Экспорт конфигурации» → выбрать Ubuntu Desktop Apps → сохранить файл OVA. Сделай скриншот окна экспорта. Это рисунок 32.
Установи виртуальный PDF-принтер:
sudo apt install -y printer-driver-cups-pdf
Открой настройки Ubuntu → Printers и проверь наличие PDF-принтера. Сделай скриншот. Это рисунок 33.
15. Что показать преподавателю
1. Ubuntu Linux установлена и открывается без ISO-образа.
2. Интернет работает, ping проходит.
3. Система обновлена через apt.
4. SSH запущен, UFW включен, удаленный доступ через xrdp показан при необходимости.
5. Созданы пользователи developer, tester и группа desktopdev.
6. Права на папку /opt/desktop-app-projects ограничены для группы desktopdev.
7. Установлены Node.js LTS, npm, Git и Visual Studio Code.
8. Создано и запущено тестовое Electron-приложение.
9. Установлен electron-builder.
10. Собраны установочные пакеты AppImage и deb.
11. Проверен запуск AppImage и установка deb-пакета.
12. Выполнена проверка зависимостей npm audit.
13. Установлены Bitwarden, GNOME Keyring, ClamAV, AppArmor, auditd и unattended-upgrades.
14. Создана точка восстановления Timeshift и установлен PDF-принтер.
15. Готов второй файл с руководством пользователя к electron-builder и местами под рисунки.
Краткое обоснование выбора ПО
Ubuntu Linux выбрана как стабильная ОС для разработки и сборки настольных приложений в учебной среде. Visual Studio Code подходит для JavaScript и TypeScript, поддерживает расширения ESLint и Prettier, терминал и работу с Git. Node.js и npm нужны для запуска Electron-проекта и управления зависимостями. Electron позволяет создавать настольные приложения на веб-технологиях. Electron-builder выбран как инструмент создания установочных пакетов, так как он собирает приложение и формирует AppImage и deb-пакеты для Linux. Bitwarden и GNOME Keyring используются для безопасного хранения учетных данных, а Firefox/Chromium, ClamAV, AppArmor, UFW, auditd и unattended-upgrades помогают снизить риски фишинга, вредоносных файлов, несанкционированного доступа и уязвимостей в системе.