diff --git a/plan.md b/plan.md index 3c7e937..35eb6fe 100644 --- a/plan.md +++ b/plan.md @@ -1,88 +1,270 @@ -Привет, коллега! Отличная задумка. 288 академических часов (это примерно 8 месяцев по 9 часов в неделю или 4 месяца интенсивного курса) — это **вполне нормальный объем** для профессиональной переподготовки или углубленного курса по администрированию. +## Уточнённый план курса (288 ак. часов) -Для сравнения: стандартный курс CCNA — ~120 часов. Добавив сюда серверные технологии (Linux, Docker, Nginx), бэкапы и работу с железом, вы легко выходите на 288 часов. +**Общий принцип:** +- **30% теории** (лекции, демонстрации) — 86 ч +- **70% практики** (лабораторные, самостоятельная работа, мини-проекты) — 202 ч -Как практик, вы можете построить план не по «книжным темам», а по **жизненным сценариям** администратора. Вот примерный план, разбитый на модули. - -### Структура курса (288 ак. часов / 1 ак. час = 45 мин) - -**Главное:** 70% практики, 30% теории. В конце каждого модуля — лабораторная работа (курсовая мини-проект). +> *Ак. час = 45 минут. На каждом занятии рекомендуется 10 мин перерыва после 45 мин.* --- -### Модуль 0. Вводный (4 часа) -- Техника безопасности, организация рабочего места админа.(базовый набор программ и настроек VirtualBox,VS code, SSH, CMD/powershell, oh my zsh, ip scaner и т.д.) +### Модуль 0. Вводный (4 ч) +| Тема | Теория | Практика | +|------|--------|-----------| +| Техника безопасности, организация рабочего места | 1 ч | – | +| Настройка VirtualBox, VS Code, Git, SSH-клиента (PuTTY/WSL) | 0.5 ч | 1 ч | +| Установка Oh My Zsh, настройка терминала, IP-сканера (Angry IP) | – | 1 ч | +| Знакомство с программой курса, критериями оценки | 0.5 ч | – | -### Модуль 1. Железо и BIOS/UEFI (24 часа) -*«Чтобы не бояться открыть системник»* -- Архитектура ПК и сервера (CPU, RAM, шины, чипсеты). -- Накопители: HDD, SSD (SATA/NVMe), массивы RAID (0,1,5,10) программные и аппаратные. -- Сети на железном уровне: сетевая карта, коммутатор, кабели (обжим, TIA/EIA-568). -- BIOS/UEFI: настройка загрузки, Secure Boot, сброс пароля. -- **Практика:** Сборка ПК в тренажере/живом железе. Настройка RAID в BIOS. +**Лабораторная:** Создать первую виртуальную машину с Ubuntu Server, настроить SSH-доступ с хоста. -### Модуль 2. Операционные системы. Windows и Linux (40 часов) -*«Админ должен быть двуязычным»* -- Установка Windows (11/Server 2022) и Linux (Debian/Ubuntu Server/Rocky). -- Управление дисками: MBR/GPT, форматирование, монтирование. -- Пользователи, группы, права (NTFS vs Linux chmod/ACL). -- Командная строка: PowerShell (основы) и Bash (обязательно). -- Планировщики задач (cron, Task Scheduler). -- **Практика:** Развернуть доменную сеть из двух ВМ (Win + Linux) с общим ресурсом. +--- -### Модуль 3. Основы компьютерных сетей (48 часов) — *Ваш профиль* -*«Как на самом деле ходят пакеты»* -- Модели OSI и TCP/IP. -- IPv4: адресация, маски, CIDR, шлюзы. Деление на подсети (должен уметь в уме). -- IPv6: база, автоконфигурация (SLAAC). -- Протоколы: ARP, ICMP (ping, traceroute), DNS (типы записей), DHCP (аренда, опции). -- Стек TCP/UDP: порты, соединение (SYN/ACK). -- Основы маршрутизации (статические маршруты, таблица маршрутизации). -- **Практика:** Настроить роутер (VyOS или OpenWRT в ВМ) для связи двух подсетей. Отладка через Wireshark. +### Модуль 1. Железо и BIOS/UEFI (24 ч) -### Модуль 4. Сетевые службы и сервисы (40 часов) -*«Чем живет сервер»* -- DNS-сервер (bind9 или dnsmasq): кэширующий, форвардер, зоны. -- DHCP-сервер (isc-dhcp-server): пулы, резервирование по MAC. -- Веб-сервер **Nginx**: базовая настройка, виртуальные хосты (server blocks), реверс-прокси. -- Файловые серверы: Samba (совместно с Windows) и NFS. -- **Практика:** Поднять LAMP/LEMP (Linux, Nginx, MySQL, PHP) с нуля. Настроить реверс-прокси на два разных сайта. +| Тема | Теория | Практика | +|------|--------|-----------| +| Архитектура ПК (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 ч (подготовка отчёта) | -### Модуль 5. Резервное копирование и Acronis (28 часов) -*«Бэкапы — это не последнее, это первое»* -- Стратегии: полный, дифференциальный, инкрементальный. -- Правило 3-2-1. Типы носителей (лента? В 2026 — облако и NAS). -- **Acronis True Image / Cyber Protect:** - - Создание загрузочной флешки. - - Бэкап дисков и разделов (образы и файлы). - - Восстановление на разное железо (Universal Restore). - - Разбор: PXE-загрузка и централизованное управление Acronis (если лицензия позволяет). -- Альтернативы: Clonezilla, Veeam Agent, dd. -- **Практика:** Восстановить умершую Windows-машину из бэкапа на виртуалку за 10 минут. +**Итоговая лаба:** Собрать ПК из комплектующих, настроить RAID-1 в BIOS, установить ОС. -### Модуль 6. Контейнеризация (Docker) (40 часов) -*«Легкий шаг в DevOps»* -- Что такое контейнеризация vs виртуализация. -- Установка Docker в Linux (и Docker Desktop в Windows). -- Образы и слои: Dockerfile (FROM, RUN, CMD, COPY). -- Управление контейнерами, volume'ы и сети в Docker (bridge, host, macvlan). -- Docker-compose: оркестрация нескольких сервисов (например, Nginx + PHP-FPM + MariaDB). -- **Практика:** Упаковать свой веб-сайт (HTML+PHP) в контейнер. Запустить через compose связку Nginx + контейнер с приложением + Redis. +--- -### Модуль 7. Автоматизация и скрипты (32 часа) -*«Делай 1 раз — руками, 2 раз — скриптом»* -- Bash: переменные, циклы, условия, функции. Работа с awk/sed/grep. -- PowerShell: работа с WMI/CIM, удаленные компьютеры (Invoke-Command). -- Планировщики и запуск по триггерам. -- Базовый Ansible: без агентов, плейбуки (установка пакетов, копирование конфигов). -- **Практика:** Написать скрипт бэкапа всех настроек Nginx и баз данных, с ротацией старых копий. Либо плейбук Ansible для развертывания Docker-хостf. +### Модуль 2. ОС Windows и Linux (40 ч) -### Модуль 8. Безопасность и мониторинг (20 часов) -- Базовый фаервол: iptables/nftables, UFW, Windows Defender Firewall. -- Сетевые атаки (уровень знаний: что такое ARP-spoofing, DDoS, подбор паролей) и как защищаться. -- SSH: ключи, туннели, запрет root-логина. -- Мониторинг: Zabbix (установка агента и простой триггер) или Netdata. -- **Практика:** Настроить порт-кнакинг на SSH. Установить Zabbix и получить алерт, если Docker-контейнер упал. +| Тема | Теория | Практика | +|------|--------|-----------| +| Установка 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 ч | -### Модуль 9. Итоговая аттестация (12 часов) -- прикреплю в файле \ No newline at end of file +**Итоговая лаба:** Две ВМ (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)