271 lines
17 KiB
Markdown
271 lines
17 KiB
Markdown
## Уточнённый план курса (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)
|