## Уточнённый план курса (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 | Презентация, документация, ответы на вопросы | --- ### **Требования к проекту (минимальные)** 1. **Аппаратная часть** - Собрать (или использовать готовый) серверный ПК. - Проложить кабель от роутера до сервера (обжать коннекторы). - Организовать кабель-каналы и подписать кабели. 2. **Программная инфраструктура** - Установить Proxmox VE. - Создать минимум 3 LXC-контейнера: - `docker-host` — для Docker-сервисов. - `nextcloud` — отдельный (можно на том же Docker). - `monitoring` — для Zabbix или Netdata. - Настроить статические IP для каждого контейнера. 3. **Сетевые сервисы** - Пробросить на роутере порты 80, 443 на IP контейнера с Nginx Proxy Manager. - Зарегистрировать домен (бесплатный или платный) и привязать к вашему статическому IP. - Настроить NPM для доменов: - `cloud.вашдомен` → Nextcloud - `app.вашдомен` → ваше приложение на Flask/Node - `ai.вашдомен` → веб-интерфейс Ollama (например, Open WebUI) 4. **Приложения** - **Nextcloud** (файловое облако). - **Своё веб-приложение** (Flask или Node.js), которое обращается к любому публичному API (погода, курс валют, случайный кот) и выводит результат на страницу. - **Ollama** с лёгкой моделью (llama3.2:1b или ruGPT-3.5) и простой HTML-чатик, работающий через API Ollama. 5. **Бэкап** - Настроить автоматический бэкап всех данных Nextcloud и конфигов Nginx на внешний диск или второй HDD. - Использовать либо Acronis (образ системы), либо Bash-скрипт с `tar` и ротацией (7 дней). - Периодичность — раз в сутки. 6. **Мониторинг и безопасность** - Настроить Zabbix-агент на контейнере с Nginx. - Создать триггер: если Nginx не отвечает (HTTP 200), отправлять уведомление в Telegram. - Настроить SSH-доступ только по ключам, запретить root-логин. - Включить UFW, разрешить только нужные порты (22, 80, 443, 8006 для Proxmox — но доступ только с локальной сети). 7. **Документация** - Схема сети (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` и раздать студентам. Также добавьте в начале вашего общего плана курса строчку: > **Итоговый проект:** «Домашний мини-дата-центр» — [скачать задание](./all_practise.md)