17 KiB
Уточнённый план курса (288 ак. часов)
Общий принцип:
- 30% теории (лекции, демонстрации) — 86 ч
- 70% практики (лабораторные, самостоятельная работа, мини-проекты) — 202 ч
Ак. час = 45 минут. На каждом занятии рекомендуется 10 мин перерыва после 45 мин.
Модуль 0. Вводный (4 ч)
| Тема | Теория | Практика |
|---|---|---|
| Техника безопасности, организация рабочего места | 1 ч | – |
| Настройка VirtualBox, VS Code, Git, SSH-клиента (PuTTY/WSL) | 0.5 ч | 1 ч |
| Установка Oh My Zsh, настройка терминала, IP-сканера (Angry IP) | – | 1 ч |
| Знакомство с программой курса, критериями оценки | 0.5 ч | – |
Лабораторная: Создать первую виртуальную машину с Ubuntu Server, настроить SSH-доступ с хоста.
Модуль 1. Железо и BIOS/UEFI (24 ч)
| Тема | Теория | Практика |
|---|---|---|
| Архитектура ПК (CPU, RAM, чипсеты, шины) | 2 ч | – |
| Накопители: HDD, SSD (SATA/NVMe), интерфейсы | 1 ч | 1 ч (выбор диска) |
| RAID (0,1,5,10) программный и аппаратный | 2 ч | 2 ч (настройка в BIOS/ MegaRAID) |
| Сетевое железо: NIC, коммутатор, кабели (обжим, T568A/B) | 1 ч | 3 ч (обжим, тестирование) |
| BIOS/UEFI: настройка загрузки, Secure Boot, сброс пароля | 1 ч | 2 ч (в живом ПК или ВМ) |
| Практическая сборка и диагностика | – | 6 ч (сборка ПК из деталей, запуск) |
| Самостоятельная работа (домашнее задание) | – | 3 ч (подготовка отчёта) |
Итоговая лаба: Собрать ПК из комплектующих, настроить RAID-1 в BIOS, установить ОС.
Модуль 2. ОС Windows и Linux (40 ч)
| Тема | Теория | Практика |
|---|---|---|
| Установка Windows (11 / Server 2022) | 1 ч | 2 ч |
| Установка Linux (Debian/Ubuntu/Rocky) | 1 ч | 2 ч |
| Управление дисками: MBR/GPT, fdisk, DiskPart | 2 ч | 2 ч |
| Файловые системы, монтирование | 1 ч | 2 ч |
| Пользователи, группы, права (NTFS ACL vs chmod/ACL) | 2 ч | 4 ч |
| Командная строка: PowerShell (основы) и Bash | 2 ч | 6 ч |
| Планировщики: cron, Task Scheduler | 1 ч | 2 ч |
| Практика: развернуть доменную сеть из двух ВМ | – | 6 ч |
| Самостоятельная работа (скрипты, отчёт) | – | 4 ч |
Итоговая лаба: Две ВМ (Win + Linux) в одной подсети, общий каталог через Samba, автоматический бэкап через задание cron/Task Scheduler.
Модуль 3. Основы компьютерных сетей (48 ч) — ваш конёк
| Тема | Теория | Практика |
|---|---|---|
| Модели OSI и TCP/IP, инкапсуляция | 2 ч | – |
| IPv4: адресация, маски, CIDR, деление на подсети | 4 ч | 4 ч (расчёты в уме) |
| IPv6: адреса, типы, SLAAC | 2 ч | 2 ч |
| Протоколы: ARP, ICMP (ping, traceroute) | 1 ч | 2 ч |
| DNS: типы записей, работа резолвера | 2 ч | 2 ч (dig, nslookup) |
| DHCP: аренда, опции, relay | 1 ч | 2 ч |
| TCP/UDP: порты, соединение (SYN/ACK), Wireshark | 2 ч | 4 ч |
| Статическая маршрутизация, таблицы | 2 ч | 4 ч |
| Практика: VyOS/OpenWRT как роутер | – | 6 ч |
| Самостоятельная работа | – | 6 ч |
Итоговая лаба: Три ВМ (клиент, роутер, сервер) с двумя подсетями. Настроить NAT, статические маршруты, проверить трафик Wireshark.
Модуль 4. Сетевые службы и сервисы (40 ч)
| Тема | Теория | Практика |
|---|---|---|
| DNS-сервер (bind9/dnsmasq): зоны, форвардер | 2 ч | 4 ч |
| DHCP-сервер (isc-dhcp-server) | 1 ч | 3 ч |
| Веб-сервер Nginx: location, server blocks | 2 ч | 6 ч |
| Reverse proxy на Nginx | 1 ч | 3 ч |
| Файловые серверы: Samba, NFS | 1 ч | 4 ч |
| LEMP (Linux, Nginx, MySQL, PHP) | 1 ч | 6 ч |
| Самостоятельная работа | – | 6 ч |
Итоговая лаба: Поднять LEMP с двумя виртуальными хостами (site1, site2). Настроить reverse proxy для site2 через site1.
Модуль 5. Резервное копирование и Acronis (28 ч)
| Тема | Теория | Практика |
|---|---|---|
| Стратегии бэкапа (полный, дифф., инкр.), правило 3-2-1 | 2 ч | – |
| Acronis True Image / Cyber Protect: установка, флешка | 1 ч | 2 ч |
| Создание образа диска, файловый бэкап | 1 ч | 3 ч |
| Universal Restore (восстановление на другое железо) | 1 ч | 3 ч |
| PXE-загрузка, централизованное управление (опционально) | 1 ч | 2 ч |
| Альтернативы: Clonezilla, Veeam, dd | 1 ч | 3 ч |
| Практика: восстановление Windows из бэкапа на виртуалку | – | 4 ч |
| Самостоятельная работа (свой сценарий бэкапа) | – | 4 ч |
Итоговая лаба: Снять образ работающей системы, «убить» загрузчик, восстановить за 10 минут с Acronis загрузочной флешки.
Модуль 6. Контейнеризация (Docker) (40 ч)
| Тема | Теория | Практика |
|---|---|---|
| Контейнеризация vs виртуализация | 1 ч | – |
| Установка Docker в Linux, Docker Desktop (Win) | 0.5 ч | 1.5 ч |
| Образы и слои, Dockerfile (FROM, RUN, COPY, CMD) | 2 ч | 6 ч |
| Управление контейнерами: run, exec, logs, volume | 1 ч | 4 ч |
| Сети в Docker: bridge, host, macvlan | 1 ч | 3 ч |
| Docker Compose: синтаксис, сервисы, depends_on | 2 ч | 6 ч |
| Практика: свой сайт в контейнере | – | 6 ч |
| Самостоятельная работа (docker-compose для LEMP) | – | 6 ч |
Итоговая лаба: Упаковать веб-приложение (HTML+PHP+MySQL) в compose-проект с Nginx, PHP-FPM, MariaDB, Redis.
Модуль 7. Автоматизация и скрипты (32 ч)
| Тема | Теория | Практика |
|---|---|---|
| Bash: переменные, циклы, условия, функции | 2 ч | 6 ч |
| Обработка текста: awk, sed, grep | 1 ч | 3 ч |
| PowerShell: работа с WMI/CIM, Invoke-Command | 2 ч | 4 ч |
| Планировщики, триггеры | 0.5 ч | 1.5 ч |
| Введение в Ansible: inventory, playbooks, модули | 2 ч | 4 ч |
| Практика: скрипт бэкапа Nginx + ротация | – | 3 ч |
| Самостоятельная работа (Ansible playbook для Docker) | – | 3 ч |
Итоговая лаба: Написать Bash-скрипт, который архивирует все конфиги Nginx, базы данных, загружает на FTP, старые копии удаляет. Или Ansible playbook для развёртывания Docker-хоста с Nginx.
Модуль 8. Безопасность и мониторинг (20 ч)
| Тема | Теория | Практика |
|---|---|---|
| Фаерволы: iptables, UFW, Windows Defender | 1 ч | 3 ч |
| Сетевые атаки (ARP-spoofing, DDoS, brute force) | 1 ч | 1 ч (демо) |
| SSH: ключи, настройка, туннели, запрет root | 1 ч | 2 ч |
| Мониторинг: Zabbix (агент, триггеры) или Netdata | 1 ч | 4 ч |
| Практика: порт-кнакинг на SSH | – | 2 ч |
| Самостоятельная работа (алерт на падение Docker) | – | 3 ч |
Итоговая лаба: Настроить UFW, разрешить только SSH и 443. Настроить Zabbix, который присылает Telegram-уведомление, если контейнер Nginx перестал отвечать.
Практический проект: «Домашний мини-дата-центр»
Итоговая работа по курсу «Системный и сетевой администратор»
Цель: Создать домашний сервер, на котором работают:
- Веб-сервер с reverse-proxy (Nginx Proxy Manager)
- Личное облако (Nextcloud)
- Собственное веб-приложение с вызовом внешнего API
- Локальная LLM (Ollama)
- Система мониторинга (Zabbix/Netdata)
- Автоматический бэкап (Acronis или скриптами)
Всё это должно быть доступно из интернета по вашему домену, с SSL, а сеть — задокументирована.
Что проверяет проект (соответствие модулям курса)
| Модуль | Что оценивается в проекте |
|---|---|
| М0 | Организация рабочего места, использование виртуализации, SSH |
| М1 | Сборка ПК, обжим кабеля, настройка RAID (опционально) |
| М2 | Установка Proxmox (Debian), базовые команды Linux |
| М3 | Статическая IP-адресация, маршрутизация, проброс портов на роутере |
| М4 | Nginx как reverse-proxy, Nextcloud, DNS-записи (A, CNAME) |
| М5 | Бэкап всех важных данных (Acronis или скриптом+ротация) |
| М6 | Docker + Docker Compose для всех сервисов (кроме Proxmox) |
| М7 | Скрипт автоматического бэкапа и/или Ansible-плейбук для развёртывания |
| М8 | Настройка UFW/iptables, SSH-ключи, мониторинг (алерт) |
| М9 | Презентация, документация, ответы на вопросы |
Требования к проекту (минимальные)
-
Аппаратная часть
- Собрать (или использовать готовый) серверный ПК.
- Проложить кабель от роутера до сервера (обжать коннекторы).
- Организовать кабель-каналы и подписать кабели.
-
Программная инфраструктура
- Установить Proxmox VE.
- Создать минимум 3 LXC-контейнера:
docker-host— для Docker-сервисов.nextcloud— отдельный (можно на том же Docker).monitoring— для Zabbix или Netdata.
- Настроить статические IP для каждого контейнера.
-
Сетевые сервисы
- Пробросить на роутере порты 80, 443 на IP контейнера с Nginx Proxy Manager.
- Зарегистрировать домен (бесплатный или платный) и привязать к вашему статическому IP.
- Настроить NPM для доменов:
cloud.вашдомен→ Nextcloudapp.вашдомен→ ваше приложение на Flask/Nodeai.вашдомен→ веб-интерфейс Ollama (например, Open WebUI)
-
Приложения
- Nextcloud (файловое облако).
- Своё веб-приложение (Flask или Node.js), которое обращается к любому публичному API (погода, курс валют, случайный кот) и выводит результат на страницу.
- Ollama с лёгкой моделью (llama3.2:1b или ruGPT-3.5) и простой HTML-чатик, работающий через API Ollama.
-
Бэкап
- Настроить автоматический бэкап всех данных Nextcloud и конфигов Nginx на внешний диск или второй HDD.
- Использовать либо Acronis (образ системы), либо Bash-скрипт с
tarи ротацией (7 дней). - Периодичность — раз в сутки.
-
Мониторинг и безопасность
- Настроить Zabbix-агент на контейнере с Nginx.
- Создать триггер: если Nginx не отвечает (HTTP 200), отправлять уведомление в Telegram.
- Настроить SSH-доступ только по ключам, запретить root-логин.
- Включить UFW, разрешить только нужные порты (22, 80, 443, 8006 для Proxmox — но доступ только с локальной сети).
-
Документация
- Схема сети (IP, порты, маршруты).
- Инструкция по запуску всех compose-проектов (
docker-compose up -d). - Логины и пароли (зашифрованно, например в Bitwarden).
- Скриншоты работающих сервисов из интернета.
Критерии оценки (максимум 100 баллов)
| Критерий | Баллы |
|---|---|
| Аппаратная часть (сборка, обжим, кабель-каналы) | 10 |
| Proxmox и LXC (правильная установка, настройка сетей) | 10 |
| Reverse-proxy (NPM) и домен с SSL | 15 |
| Nextcloud доступен из интернета | 10 |
| Собственное веб-приложение с API | 15 |
| Локальная LLM (Ollama + простой интерфейс) | 10 |
| Автоматический бэкап (работоспособность, ротация) | 10 |
| Мониторинг (Zabbix + Telegram-алерт) | 10 |
| Безопасность (UFW, SSH-ключи) | 5 |
| Документация (чёткая, полная) | 5 |
| Защита проекта (ответы на вопросы, презентация) | +10 (бонус) |
Проходной балл: 70.
Дополнительные идеи для сильных студентов (повышенная сложность)
- Подключить GPU (NVIDIA) к Ollama и запустить модель 7B.
- Настроить WireGuard VPN для доступа к серверу вместо проброса RDP.
- Добавить Prometheus + Grafana для красивых дашбордов.
- Автоматизировать развёртывание всего проекта с помощью Ansible (один плейбук).
- Настроить геоблокировку в Nginx Proxy Manager (пропускать только из РФ).
Ссылка на файл проекта
Вы можете сохранить приведённый выше текст как course_project.md и раздать студентам. Также добавьте в начале вашего общего плана курса строчку:
Итоговый проект: «Домашний мини-дата-центр» — скачать задание