diff --git a/QUESTIONS.md b/QUESTIONS.md index 71fbec9..e2933da 100644 --- a/QUESTIONS.md +++ b/QUESTIONS.md @@ -2,6 +2,10 @@ Список пополняется по мере работы с заданиями 2 и 3. +## Общие установки (уже зафиксированы) +- Часовой пояс на всех машинах: `Asia/Yekaterinburg` (Екатеринбург) — + переменная EXAM_TZ вверху каждого скрипта настройки. + ## HQ-SW (задание 1) - По tasks.md HQ-SW — виртуальный коммутатор; кто и чем его настраивает (это отдельная ВМ? EcoRouter? встроенный коммутатор гипервизора?) — уточнить. diff --git a/README.md b/README.md index 1631c96..c574661 100644 --- a/README.md +++ b/README.md @@ -64,16 +64,24 @@ isp.sh -> HQ-RTR -> BR-RTR -> BR-FW -> HQ-SRV -> BR-SRV -> HQ-CLI ## 4. Какие переменные обязательны -Каждый скрипт в начале содержит блок переменных с комментариями. Пустые -(`""`) при запуске приведут к сообщению «Заполните переменные...» и exit 1. -Универсальные, которые заполняются на почти всех машинах: -- `*_IF` — имя сетевого интерфейса (`ip -br link` чтобы посмотреть); -- `*_ADDR`, `*_NET` — адреса из вашего расчёта (формат `адрес/префикс`); -- `*_GW` — шлюзы (адреса соседних роутеров); -- в задании 3 в `isp.sh` — `TLS_CERT_FILE`/`TLS_KEY_FILE` после доставки - сертификатов (MANUAL.md). -Порядок заполнения адресов: сначала `tools/subnet-calc.sh`, потом скрипты -в порядке раздела 3. +Адресация вычисляется автоматически по схеме из `tools/subnets.py` — +вверху файлов настроек остаётся одна (или две) переменных: + +| Файлы | Переменная | Описание | +|---|---|---| +| `zadanie1/hq-*.sh` | `HQ_BASE="10.10.100.0/24"` | базовая сеть HQ: VLAN100=+0/27, VLAN200=+32/28, VLAN999=+48/29; роутер=+1, сервер=+2 | +| `zadanie1/br-*.sh` | `BR_BASE="10.10.200.0/24"` | базовая сеть BR: BR-SRV=+0/28, линк к BR-FW=+32/30; BR-FW=+1, BR-SRV=+2, BR-RTR=+1 на линке | +| `zadanie1/hq-srv.sh` | `HQ_CLI_IP=""` | единст­венную непрогнозируемую: адрес HQ-CLI после выдачи DHCP (вписать потом) | +| `zadanie1/isp.sh` | `HOSTNAME_FQDN` | имя ISP — уже проставлено типовое `isp.au-team.irpo` | + +Константы заданий (не править без нужды): линки ISP 172.16.1.0/28 и +172.16.2.0/28 (ISP=.1, роутер=.2), туннель GRE 10.10.10.0/30 (.1/.2), +DNS 8.8.8.8, порт SSH 2027, пароли P@ssw0rd, часовой пояс Asia/Yekaterinburg. +Интерфейсы: enp0s3=1-й NIC (WAN/к-ISP/серверные), enp0s8/enp0s9 = LAN. +Проверить свою схему можно командой: +``` +python3 tools/subnets.py hq 10.10.100.0/24 && python3 tools/subnets.py br 10.10.200.0/24 +``` ## 5. Скрипты проверки (check/) @@ -99,13 +107,25 @@ GUI). Такие места помечены в скриптах `ДЕЛАЕТС ## 7. Проверка результата -- Каждый скрипт заканчивает блоком «=== Самопроверка ... ===» — там и в - интерактиве печатаются команды проверки (ping, dig, chronyc, lpstat, - fail2ban-client status, docker ps и т.д.). +- Каждый скрипт настройки заканчивает блоком «=== Самопроверка ... ===» — + команды проверки (ping, dig, chronyc, lpstat, fail2ban-client status, + docker ps и т.д.). - `bash -n <скрипт>` — проверка синтаксиса правок, которую вы делаете при заполнении переменных. +- `check/<машинa>.sh` — полный отчёт (см. раздел 5). -## 8. Если что-то не работает +## 8. Как я (ассистент) могу посмотреть состояние ваших машин + +Двух путей — по выбору: +- **SSH-доступ** (проще всего, напрямую): машины должны быть доступны + с этой рабочей станции по сети (пароль/ключ). Тогда я смогу запускать + скрипты и читать вывод как на месте. +- **Без SSH, через git (достаточно для проверки):** запускаете check-скрипт + на машине, логи `check_<машина>_<задание>.txt` складываете в папку + `reports/` в репо и коммитите; я прочитаю их здесь и скажу, что чинить. + Быстро: `git add reports && git commit -m "логи проверки" && git push`. + +## 9. Если что-то не работает - Сначала check-скрипт соответствующей машины — он покажет, что именно FAIL. - Затем откройте `TROUBLESHOOT.md` — частые проблемы и решения по темам diff --git a/check/zadanie1/isp.sh b/check/zadanie1/isp.sh index 56799b4..52cee65 100644 --- a/check/zadanie1/isp.sh +++ b/check/zadanie1/isp.sh @@ -30,7 +30,7 @@ BR_IF="" # интерфейс к BR-RTR BR_NET="" # адрес ISP на этом интерфейсе, адрес/префикс HQ_RTR_ADDR="" # адрес HQ-RTR на линке (для пинга) BR_RTR_ADDR="" # адрес BR-RTR на линке (для пинга) -EXAM_TZ="" # ожидаемый часовой пояс (например Europe/Moscow) +EXAM_TZ="" # ожидаемый часовой пояс (Asia/Yekaterinburg по месту экзамена) main () { echo "=== Проверка задания 1: ISP ===" diff --git a/install.log b/install.log new file mode 100644 index 0000000..aa84d81 --- /dev/null +++ b/install.log @@ -0,0 +1,12 @@ +[17:43:45 2026-11-06] FETCHING Version 2.46.4 +[17:43:45 2026-11-06] CREATING /home/kimochiw/.spicetify +[17:43:45 2026-11-06] DOWNLOADING https://github.com/spicetify/cli/releases/download/v2.46.4/spicetify-2.46.4-linux-amd64.tar.gz +[17:43:53 2026-11-06] EXTRACTING /home/kimochiw/.spicetify/spicetify.tar.gz +[17:43:53 2026-11-06] SETTING EXECUTABLE PERMISSIONS TO /home/kimochiw/.spicetify/spicetify +[17:43:53 2026-11-06] REMOVING /home/kimochiw/.spicetify/spicetify.tar.gz +[17:43:53 2026-11-06] APPENDING /home/kimochiw/.spicetify to PATH in /home/kimochiw/.bashrc +[17:43:53 2026-11-06] APPENDING /home/kimochiw/.spicetify to PATH in /home/kimochiw/.bash_profile +[17:43:53 2026-11-06] spicetify v2.46.4 was installed successfully to /home/kimochiw/.spicetify +[17:43:53 2026-11-06] Open a new terminal or reload your shell profile to use spicetify: +[17:43:53 2026-11-06] source "/home/kimochiw/.bash_profile" +[17:43:53 2026-11-06] Then run 'spicetify --help' to get started diff --git a/zadanie1/br-fw.sh b/zadanie1/br-fw.sh index 8c2d3ac..d094fb8 100644 --- a/zadanie1/br-fw.sh +++ b/zadanie1/br-fw.sh @@ -40,7 +40,7 @@ FRR_DAEMONS="/etc/frr/daemons" DNS_FW="" # внешний DNS для BR-FW (необязательно, например 8.8.8.8) # --- Прочее --- -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург FORWARD_CONF="/etc/sysctl.d/99-ip-forward.conf" # перезаписывается целиком NM_CONF_DIR="/etc/NetworkManager/system-connections" diff --git a/zadanie1/br-rtr.sh b/zadanie1/br-rtr.sh index 8bc1b3f..9243b83 100644 --- a/zadanie1/br-rtr.sh +++ b/zadanie1/br-rtr.sh @@ -46,7 +46,7 @@ FRR_CONF="/etc/frr/frr.conf" FRR_DAEMONS="/etc/frr/daemons" # --- Прочее --- -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург FORWARD_CONF="/etc/sysctl.d/99-ip-forward.conf" # перезаписывается целиком NM_CONF_DIR="/etc/NetworkManager/system-connections" IPTABLES_SERVICE="iptables" # ПРОВЕРИТЬ diff --git a/zadanie1/br-srv.sh b/zadanie1/br-srv.sh index db2f228..f05b233 100644 --- a/zadanie1/br-srv.sh +++ b/zadanie1/br-srv.sh @@ -36,7 +36,7 @@ SSH_BANNER_FILE="/etc/ssh/exam-banner" SSHD_CONF="/etc/ssh/sshd_config" # --- Прочее --- -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург NM_CONF_DIR="/etc/NetworkManager/system-connections" # ============ Проверка заполнения переменных ============ diff --git a/zadanie1/hq-cli.sh b/zadanie1/hq-cli.sh index abc3730..efc4031 100644 --- a/zadanie1/hq-cli.sh +++ b/zadanie1/hq-cli.sh @@ -17,7 +17,7 @@ HOSTNAME_FQDN="hq-cli.au-team.irpo" # таблица 3, запись hq-cli. CLI_IF="enp0s3" # 1-й NIC — к HQ-SW (VLAN 200), адрес по DHCP -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург NM_CONF_DIR="/etc/NetworkManager/system-connections" # ============ Проверка заполнения переменных ============ diff --git a/zadanie1/hq-rtr.sh b/zadanie1/hq-rtr.sh index 10c3324..45c3848 100644 --- a/zadanie1/hq-rtr.sh +++ b/zadanie1/hq-rtr.sh @@ -61,7 +61,7 @@ DHCP_DOMAIN="au-team.irpo" # (адрес HQ-SRV для DNS-опции DHCP берётся из HQ_BASE-схемы автоматически) # --- Прочее --- -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург FORWARD_CONF="/etc/sysctl.d/99-ip-forward.conf" # перезаписывается целиком NM_CONF_DIR="/etc/NetworkManager/system-connections" IPTABLES_SERVICE="iptables" # ПРОВЕРИТЬ diff --git a/zadanie1/hq-srv.sh b/zadanie1/hq-srv.sh index 2b39453..81c2a31 100644 --- a/zadanie1/hq-srv.sh +++ b/zadanie1/hq-srv.sh @@ -47,7 +47,7 @@ DNS_UPSTREAM="8.8.8.8" # forwarder: любой общий DNS по зад # Все адреса DNS-записей, кроме HQ_CLI_IP, берутся из HQ_BASE/BR_BASE-схемы # --- Прочее --- -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург BR_BASE="10.10.200.0/24" # базовая сеть офиса BR (для DNS-записей BR-устройств) NM_CONF_DIR="/etc/NetworkManager/system-connections" diff --git a/zadanie1/isp.sh b/zadanie1/isp.sh index 9434b39..592f21d 100644 --- a/zadanie1/isp.sh +++ b/zadanie1/isp.sh @@ -26,7 +26,7 @@ BR_NET="172.16.2.1/28" # (сеть по заданию 172.16.2.0/28, .1 = ISP DNS_ISP="8.8.8.8" # внешний DNS, если DHCP провайдера его не выдаёт (можно заменить) # Часовой пояс — поставьте пояс места проведения экзамена -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург # Служба сохранения iptables на РЕД ОС 8 — проверить на стенде (ПРОВЕРИТЬ: # пакет iptables-services и имя службы) diff --git a/zadanie2/br-rtr.sh b/zadanie2/br-rtr.sh index ef00b36..7b713b3 100644 --- a/zadanie2/br-rtr.sh +++ b/zadanie2/br-rtr.sh @@ -26,7 +26,7 @@ CHRONY_PACKAGE="chrony" CHRONY_SERVICE="chronyd" NTP_SERVER="" # адрес ISP по которому до него достучаться (без префикса) -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург # ============ Проверка заполнения переменных ============ MISSING=() diff --git a/zadanie2/br-srv.sh b/zadanie2/br-srv.sh index d81c611..8282470 100644 --- a/zadanie2/br-srv.sh +++ b/zadanie2/br-srv.sh @@ -14,7 +14,7 @@ if [[ $EUID -ne 0 ]]; then fi # ================= ПЕРЕМЕННЫЕ (заполните перед запуском) ================= -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург ISO_DIR="/mnt/iso" # точка монтирования Additional.iso DOMAN="au-team.irpo" diff --git a/zadanie2/hq-cli.sh b/zadanie2/hq-cli.sh index 8b2daad..ef0851e 100644 --- a/zadanie2/hq-cli.sh +++ b/zadanie2/hq-cli.sh @@ -15,7 +15,7 @@ if [[ $EUID -ne 0 ]]; then fi # ================= ПЕРЕМЕННЫЕ (заполните перед запуском) ================= -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург DOMAN="au-team.irpo" # --- 3. NFS (автомонтирование в /mnt/nfs) --- diff --git a/zadanie2/hq-srv.sh b/zadanie2/hq-srv.sh index ffc7690..5fe0e2a 100644 --- a/zadanie2/hq-srv.sh +++ b/zadanie2/hq-srv.sh @@ -14,7 +14,7 @@ if [[ $EUID -ne 0 ]]; then fi # ================= ПЕРЕМЕННЫЕ (заполните перед запуском) ================= -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург ISO_DIR="/mnt/iso" # точка монтирования Additional.iso # --- 2. RAID0 --- diff --git a/zadanie2/isp.sh b/zadanie2/isp.sh index 57f398e..5a9b355 100644 --- a/zadanie2/isp.sh +++ b/zadanie2/isp.sh @@ -26,7 +26,7 @@ STRATUM="5" # стратум сервера по задан ALLOW_NETS="172.16.1.0/28 172.16.2.0/28" # сети линков к роутерам (по заданию) -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург # ============ Проверка заполнения переменных ============ MISSING=() diff --git a/zadanie3/br-srv.sh b/zadanie3/br-srv.sh index de4108f..5efcfea 100644 --- a/zadanie3/br-srv.sh +++ b/zadanie3/br-srv.sh @@ -14,7 +14,7 @@ if [[ $EUID -ne 0 ]]; then fi # ================= ПЕРЕМЕННЫЕ (заполните перед запуском) ================= -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург ISO_DIR="/mnt/iso" # точка монтирования Additional.iso # --- 1. Импорт пользователей --- diff --git a/zadanie3/hq-cli.sh b/zadanie3/hq-cli.sh index 5421077..a712278 100644 --- a/zadanie3/hq-cli.sh +++ b/zadanie3/hq-cli.sh @@ -13,7 +13,7 @@ if [[ $EUID -ne 0 ]]; then fi # ================= ПЕРЕМЕННЫЕ (заполните перед запуском) ================= -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург # --- 4. Доверие корневому сертификату --- CA_ROOT_FILE="" # путь к скопированному корневому сертификату diff --git a/zadanie3/hq-srv.sh b/zadanie3/hq-srv.sh index 1ddd7e5..f7498fe 100644 --- a/zadanie3/hq-srv.sh +++ b/zadanie3/hq-srv.sh @@ -16,7 +16,7 @@ if [[ $EUID -ne 0 ]]; then fi # ================= ПЕРЕМЕННЫЕ (заполните перед запуском) ================= -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург # --- 4. Центр сертификации (openssl; ПРОВЕРИТЬ: по заданию рекомендуются # отечественные алгоритмы — стандартный openssl гост-подписи не умеет, diff --git a/zadanie3/isp.sh b/zadanie3/isp.sh index 7b9cd00..77e9410 100644 --- a/zadanie3/isp.sh +++ b/zadanie3/isp.sh @@ -39,7 +39,7 @@ HTPASSWD_FILE="/etc/nginx/exam-web.htpasswd" TLS_CERT_FILE="" # путь к сертификату на этом ISP (web/docker domain, SAN) TLS_KEY_FILE="" # путь к связанному ключу -EXAM_TZ="Europe/Moscow" # проверить на экзамене +EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург # ============ Проверка заполнения переменных ============ MISSING=()