├── КОД 09.02.06-1-2025 Том 1.pdf ├── КОД 09.02.06-1-2025 Том 1 (сокр).pdf ├── README.md ├── module2 └── README.md └── module1 └── README.md /КОД 09.02.06-1-2025 Том 1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damh66/demo2025/HEAD/КОД 09.02.06-1-2025 Том 1.pdf -------------------------------------------------------------------------------- /КОД 09.02.06-1-2025 Том 1 (сокр).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damh66/demo2025/HEAD/КОД 09.02.06-1-2025 Том 1 (сокр).pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # *Демонстрационный экзамен 09.02.06 2025* 2 | 3 | ### **[Задание](https://github.com/damh66/demo2025/blob/main/%D0%9A%D0%9E%D0%94%2009.02.06-1-2025%20%D0%A2%D0%BE%D0%BC%201%20(%D1%81%D0%BE%D0%BA%D1%80).pdf)** 4 | 5 | # 6 | 7 | # 8 | 9 | ### Решение модулей 10 | 11 | - **[Модуль 1](https://github.com/damh66/demo2025/tree/main/module1)** 12 | 13 | - **[Модуль 2](https://github.com/damh66/demo2025/tree/main/module2)** 14 | 15 | # 16 | 17 | # 18 | 19 | ### Используемые операционные системы 20 | 21 | - **EcoRouter** (**[Документация](https://docs.rdpin.ru/EcoRouter-UserGuide.pdf)**, **[Образ](https://disk.yandex.ru/d/_0GFwvAGVm4Iow)**) 22 | > *HQ-RTR* 23 | > 24 | > *BR-RTR* 25 | 26 | - **Alt Linux Server** (**[Документация](https://docs.altlinux.org/ru-RU/alt-server/10.1/html/alt-server/index.html)**, **[Образ](https://www.basealt.ru/alt-server/download)**) 27 | > *ISP* 28 | > 29 | > *HQ-SRV* 30 | > 31 | > *BR-SRV* 32 | 33 | - **Alt Linux Workstation** (**[Документация](https://docs.altlinux.org/ru-RU/alt-workstation/10.1/html/alt-workstation/index.html)**, **[Образ](https://www.basealt.ru/alt-workstation/download)**) 34 | > *HQ-CLI* 35 | 36 | 37 | # 38 | -------------------------------------------------------------------------------- /module2/README.md: -------------------------------------------------------------------------------- 1 | # *Demo2025 - Модуль 2* 2 | 3 | ### **[Задание](https://github.com/damh66/demo2025/blob/main/%D0%9A%D0%9E%D0%94%2009.02.06-1-2025%20%D0%A2%D0%BE%D0%BC%201%20(%D1%81%D0%BE%D0%BA%D1%80).pdf)** 4 | 5 | # 6 | 7 | ### Содержание 8 | 9 | 1. **[Настройте доменный контроллер Samba на машине BR-SRV](https://github.com/damh66/demo2025/blob/main/module2/README.md#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-1)** 10 | > Не решено 11 | 2. **[Сконфигурируйте файловое хранилище](https://github.com/damh66/demo2025/blob/main/module2/README.md#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-2)** 12 | 13 | 3. **[Настройте службу сетевого времени на базе сервиса chrony](https://github.com/damh66/demo2025/tree/main/module2#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-3)** 14 | 15 | 4. **[Сконфигурируйте ansible на сервере BR-SRV](https://github.com/damh66/demo2025/tree/main/module2#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-4)** 16 | 17 | 5. **[Развертывание приложений в Docker на сервере BR-SRV](https://github.com/damh66/demo2025/tree/main/module2#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-5)** 18 | > Решено не полностью (проблема в **учетной записи пользователя базы данных**) 19 | 6. **[На маршрутизаторах сконфигурируйте статическую трансляцию портов](https://github.com/damh66/demo2025/tree/main/module2#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-6)** 20 | 21 | 7. **[Запустите сервис moodle на сервере HQ-SRV](https://github.com/damh66/demo2025/tree/main/module2#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-7)** 22 |
23 | 24 |
25 | 26 |

27 | 29 |

Топология

30 | 31 |
32 | 33 | ## Задание 1 34 | 35 | ### Настройте доменный контроллер Samba на машине BR-SRV 36 | 37 | - Создайте 5 пользователей для офиса HQ: имена пользователей фомата user№.hq. Создайте группу hq, введите в эту группу созданных пользователей 38 | 39 | - Введите в домен машину HQ-CLI 40 | 41 | - Пользователи группы hq имеют право аутентифицироваться на клиентском ПК 42 | 43 | - Пользователи группы hq должны иметь возможность повышать привилегии для выполнения ограниченного набора команд: cat, grep, id. Запускать другие команды с повышенными привилегиями пользователи не имеют права 44 | 45 | - Выполните импорт пользователей из файла users.csv. Файл будет располагаться н авиртуальной машине BR-SRV в папке /opt 46 | 47 |
48 | 49 |
50 | Не решено 51 |
52 | 53 |
54 | 55 |
56 | 57 | ## Задание 2 58 | 59 | ### Сконфигурируйте файловое хранилище 60 | 61 | - При помощи трех дополнительных дисков, размером 1Гб каждый, на HQ-SRV сконфигурируйте дисковый массив уровня 5 62 | 63 | - Имя устройства - md0, конфигурация массива размещается в файле /etc/mdadm.conf 64 | 65 | - Обеспечьте автоматическое монтирование в папку /raid5 66 | 67 | - Создайте раздел, отформатируйте раздел, в качестве файловой системы используйте ext4 68 | 69 | - Настройте сервер сетевой файловой системы (nfs), в качестве папки общего доступа выберите /raid5/nfs, доступ для чтения и записи для всей сети в сторону HQ-CLI 70 | 71 | - На HQ-CLI настройте автомонтирование в папку /mnt/nfs 72 | 73 | - Основные параметры сервера отметьте в отчете 74 | 75 |
76 | 77 |
78 | Решение 79 |
80 | 81 | #### Создание RAID 82 | 83 | Просматриваем имена добавленных дисков: 84 | ```yml 85 | lsblk 86 | ``` 87 | > Вывод: 88 | > ```yml 89 | > sdb 8:16 0 1G 0 disk 90 | > sdc 8:32 0 1G 0 disk 91 | > sdd 8:48 0 1G 0 disk 92 | > ``` 93 | 94 |
95 | 96 | Обнуляем суперблоки для добавленных дисков: 97 | ```yml 98 | mdadm --zero-superblock --force /dev/sd{b,c,d} 99 | ``` 100 | > Вывод: 101 | > ```yml 102 | > mdadm: Unrecongised md component device - /dev/sdx 103 | > ``` 104 | > > Гласит о том, что диски не использовались ранее для **RAID** 105 | 106 |
107 | 108 | Удаляем старые метаданные и подпись на дисках: 109 | ```yml 110 | wipefs --all --force /dev/sd{b,c,d} 111 | ``` 112 | 113 |
114 | 115 | Создаем **RAID**: 116 | ```yml 117 | mdadm --create /dev/md0 -l 5 -n 3 /dev/sd{b,c,d} 118 | ``` 119 | > **/dev/md0** - название RAID после сборки 120 | > 121 | > **-l 5** - уровень RAID 122 | > 123 | > **-n 3** - количество дисков, из которых собирается массив 124 | > 125 | > **/dev/sd{b,c,d}** - диски, из которых выполняется сборка 126 | 127 |
128 | 129 | Проверяем: 130 | ```yml 131 | lsblk 132 | ``` 133 | > Вывод: 134 | > ```yml 135 | > sdb 8:16 0 1G 0 disk 136 | > md0 9:0 0 2G 0 raid5 137 | > sdc 8:32 0 1G 0 disk 138 | > md0 9:0 0 2G 0 raid5 139 | > sdd 8:48 0 1G 0 disk 140 | > md0 9:0 0 2G 0 raid5 141 | > ``` 142 | 143 |
144 | 145 | Создаем файловую систему из созданного **RAID**: 146 | ```yml 147 | mkfs -t ext4 /dev/md0 148 | ``` 149 | 150 |
151 | 152 | #### Создание файла `mdadm.conf` 153 | 154 | Создаем директорию для файла: 155 | ```yml 156 | mkdir /etc/mdadm 157 | ``` 158 | 159 |
160 | 161 | Заполняем файл информацией: 162 | ```yml 163 | echo "DEVICE partitions" > /etc/mdadm/mdadm.conf 164 | mdadm --detail --scan | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf 165 | ``` 166 | 167 |
168 | 169 | #### Создание файловой системы и монтирование RAID-массива 170 | 171 | Создаем директорию для монтирования массива: 172 | ```yml 173 | mkdir /mnt/raid5 174 | ``` 175 | 176 |
177 | 178 | Добавляем строку в **`/etc/fstab`**: 179 | ```yml 180 | /dev/md0 /mnt/raid5 ext4 defaults 0 0 181 | ``` 182 | 183 |
184 | 185 | Монтируем: 186 | ```yml 187 | mount -a 188 | ``` 189 | 190 |
191 | 192 | Проверяем монтирование: 193 | ```yml 194 | df -h 195 | ``` 196 | > Вывод: 197 | > ```yml 198 | > /dev/md0 2.0G 24K 1.9G 1% /mnt/raid5 199 | > ``` 200 | 201 |
202 | 203 | #### Настройка NFS 204 | 205 | Устанавливаем пакеты для **NFS-сервера**: 206 | ```yml 207 | apt-get install -y nfs-{server,utils} 208 | ``` 209 | 210 |
211 | 212 | Создаем директорию для общего доступа: 213 | ```yml 214 | mkdir /mnt/raid5/nfs 215 | ``` 216 | 217 |
218 | 219 | Выдаем права на чтение и запись этой директории: 220 | ```yml 221 | chmod 766 /mnt/raid5/nfs 222 | ``` 223 | 224 |
225 | 226 | Добавляем строку в **`/etc/exports`**: 227 | ```yml 228 | /mnt/raid5/nfs 192.168.200.0/28(rw,no_root_squash) 229 | ``` 230 | > **/mnt/raid5/nfs** - общий ресурс 231 | > 232 | > **192.168.200.0/28** - клиентская сеть, которой разрешено монтирование общего ресурса 233 | > 234 | > **rw** — разрешены чтение и запись 235 | > 236 | > **no_root_squash** — отключение ограничения прав **root** 237 | 238 |
239 | 240 | Экспортируем файловую систему, которую прописали ранее: 241 | ```yml 242 | exportfs -arv 243 | ``` 244 | > **-a** - экспортировать все указанные каталоги 245 | > 246 | > **-r** - повторный экспорт всех каталогов, синхронизируя **/var/lib/nfs/etab** с **/etc/exports** и файлами в **/etc/exports.d** 247 | > 248 | > **-v** - подробный вывод 249 | 250 |
251 | 252 | Запускаем и добавляем в автозагрузку **NFS-сервер**: 253 | ```yml 254 | systemctl enable --now nfs-server 255 | ``` 256 | 257 |
258 | 259 | #### Настройка клиента 260 | 261 | Устанавливаем требуемые пакеты для **NFS-клиента**: 262 | ```yml 263 | apt-get update && apt-get install -y nfs-{utils,clients} 264 | ``` 265 | 266 |
267 | 268 | Создаем директорию для общего ресурса: 269 | ```yml 270 | mkdir /mnt/nfs 271 | ``` 272 | 273 |
274 | 275 | Выдаем права этой директории: 276 | ```yml 277 | chmod 777 /mnt/nfs 278 | ``` 279 | 280 |
281 | 282 | Добавляем строку в **`/etc/fstab`** для автоматического монтирования общего ресурса: 283 | ```yml 284 | 192.168.100.62:/mnt/raid5/nfs /mnt/nfs nfs defaults 0 0 285 | ``` 286 | 287 |
288 | 289 | Монтируем общий ресурс: 290 | ```yml 291 | mount -a 292 | ``` 293 | 294 |
295 | 296 | Проверяем монтирование: 297 | ```yml 298 | df -h 299 | ``` 300 | > Вывод: 301 | > ```yml 302 | > 192.168.100.62:/mnt/raid5/nfs 2,0G 0 1,9G 0% /mnt/nfs 303 | > ``` 304 |
305 | 306 |
307 | 308 | ## Задание 3 309 | 310 | ### Настройте службу сетевого времени на базе сервиса chrony 311 | 312 | - В качества сервера выступает HQ-RTR 313 | 314 | - На HQ-RTR настройте сервер chrony, выберите стратум 5 315 | 316 | - В качестве клиентов настройте HQ-SRV, HQ-CLI, BR-RTR, BR-SRV 317 | 318 |
319 | 320 |
321 | Решение 322 |
323 | 324 | **Так как на HQ-RTR нет утилиты chrony и возможность выбора стратума, NTP-сервером будет выступать ISP** 325 | 326 | #### Конфигурация NTP-сервера (ISP) 327 | 328 | Скачиваем пакет **chrony**: 329 | ```yml 330 | apt-get install -y chrony 331 | ``` 332 | 333 |
334 | 335 | Приводим начало файла **`/etc/chrony.conf`** к следующему виду: 336 | ```yml 337 | # Use public servers from the pool.ntp.org project. 338 | # Please consider joining the pool (https://www.pool.ntp.org/join.html 339 | #pool pool.ntp.org iburst 340 | 341 | server 127.0.0.1 iburst prefer 342 | hwtimestamp * 343 | local stratum 5 344 | allow 0/0 345 | ``` 346 | > **server 127.0.0.1** - указываем сервером синхронизации самого себя 347 | > > **iburst** - принудительно отправляет пакеты для точности синхронизации 348 | > > 349 | > > **prefer** - отдает приоритет этому серверу 350 | > 351 | > **hwtimestamp** * - указывает сетевой интерфейс как собственный источник времени и синхронизирует клиентов с ним 352 | > 353 | > **local stratum 5** - указание иерархического уровня 354 | > 355 | > **allow 0/0** - разрешает подключение с любого IP-адреса 356 | 357 |
358 | 359 | Запускаем и добавляем в автозагрузку утилиту **chronyd**: 360 | ```yml 361 | systemctl enable --now chronyd 362 | ``` 363 | 364 |
365 | 366 | #### Проверка конфигурации NTP-сервера 367 | 368 | Получаем вывод источников времени с помощью команды: 369 | ```yml 370 | chronyc sources 371 | ``` 372 | > Вывод: 373 | > ```yml 374 | > MS Name/IP address Stratum Poll Reach LastRx Last sample 375 | > ============================================================================= 376 | > ^/ localhost.localdomain 0 8 377 - +0ns[ +0ns] +/- 0ns 377 | > ``` 378 | 379 |
380 | 381 | Получаем вывод **уровня стратума** с помощью связки команд: 382 | ```yml 383 | chronyc tracking | grep Stratum 384 | ``` 385 | > Вывод: 386 | > ```yml 387 | > Stratum: 5 388 | > ``` 389 | 390 |
391 | 392 | #### Конфигурация NTP-клиента EcoRouter 393 | 394 | Указываем IP-адрес **NTP-сервера**: 395 | ```yml 396 | ntp server 172.16.4.1 397 | ``` 398 | 399 |
400 | 401 | Указываем часовой пояс: 402 | ```yml 403 | ntp timezone utc+5 404 | ``` 405 | 406 |
407 | 408 | #### Проверка конфигурации NTP-клиента EcoRouter 409 | 410 | Проверяем командой: 411 | ```yml 412 | show ntp status 413 | ``` 414 | > Вывод: 415 | > ```yml 416 | > Status Description 417 | > * best 418 | > + sync 419 | > - failed 420 | > ? unknown 421 | > 422 | > ---------------------------------------------------------------------------------------------------- 423 | > Status | VR name | Server | Stratum | Delay | Version | Offset | Last | Source IP 424 | > ---------------------------------------------------------------------------------------------------- 425 | > *| default|172.16.4.1| 5| 0.0391| 4| 0.0036| 3:26| 426 | 427 |
428 | 429 | #### Конфигурация NTP-клиента Alt Linux 430 | 431 | Скачиваем пакет **chrony**: 432 | ```yml 433 | apt-get install chrony 434 | ``` 435 | 436 |
437 | 438 | Приводим начало файла **`/etc/chrony.conf`** к следующему виду: 439 | ```yml 440 | #pool pool.ntp.org iburst 441 | server 172.16.4.1 iburst prefer 442 | ``` 443 | > **iburst** - принудительно отправляет пакеты для точности синхронизации 444 | > 445 | > **prefer** - отдает приоритет этому серверу 446 | 447 |
448 | 449 | Запускаем утилиту **chrony** и добавляем ее в автозагрузку: 450 | ```yml 451 | systemctl enable --now chronyd 452 | ``` 453 | 454 |
455 | 456 | #### Проверка конфигурации NTP-клиента Alt Linux 457 | 458 | Проверка NTP-клиента на Alt Linux аналогична **[проверке NTP-сервера на Alt Linux](https://github.com/damh66/demo2025/tree/main/module2#%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0-%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D0%B8-ntp-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0)** 459 | 460 |
461 | 462 |
463 | 464 | ## Задание 4 465 | 466 | ### Сконфигурируйте ansible на сервере BR-SRV 467 | 468 | - Сформируйте файл инвентаря, в инвентарь должны входить HQ-SRV, HQ-CLI, HQ-RTR и BR-RTR 469 | 470 | - Рабочий каталог ansible должен располагаться в /etc/ansible 471 | 472 | - Все указанные машины должны без предупреждений и ошибок отвечать pong на команду ping в ansible посланную с BR-SRV 473 | 474 |
475 | 476 |
477 | Решение 478 |
479 | 480 | #### Конфигурация SSH Alt Linux 481 | 482 | Затронутые строки в конфигурационном файле **SSH** **`/etc/openssh/sshd_config`** должны выглядеть следующим образом: 483 | ```yml 484 | Port 2024 485 | MaxAuthTries 2 486 | PubkeyAuthentication yes 487 | PasswordAuthentication yes 488 | Banner /etc/openssh/bannermotd 489 | AllowUsers sshuser 490 | ``` 491 | > Первоначальная настройка **SSH** производилась в задании **[Настройка безопасного удаленного доступа на серверах HQ-SRV и BR-SRV](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-5)** из **[Модуля 1](https://github.com/damh66/demo2025/tree/main/module1#demo2025---%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-1)** 492 | 493 |
494 | 495 | #### Конфигурация Ansible 496 | 497 | Устанавливаем необходимые пакеты: 498 | ```yml 499 | apt-get install -y ansible sshpass 500 | ``` 501 | 502 |
503 | 504 | Редактируем указанные строки в **конфигурационном файле `/etc/ansible/ansible.cfg`**: 505 | ```yml 506 | inventory = ./inventory.yml 507 | host_key_checking = False 508 | ``` 509 | > **inventory = ./inventory.yml** - путь до инвентарного файла 510 | > 511 | > **host_key_checking = False** - отключение проверки ключа хоста 512 | 513 |
514 | 515 | Далее заполняем **инвентарный файл `/etc/ansible/inventory.yml`**: 516 | ```yml 517 | all: 518 | children: 519 | Networking: 520 | hosts: 521 | hq-rtr: 522 | br-rtr: 523 | Servers: 524 | hosts: 525 | hq-srv: 526 | ansible_host: 192.168.100.62 527 | ansible_port: 2024 528 | Clients: 529 | hosts: 530 | hq-cli: 531 | ansible_host: 192.168.200.14 532 | ansible_port: 2024 533 | ``` 534 | 535 |
536 | 537 | Создаем файлы с переменными для **всех категорий** и для категории **Networking**: 538 | ```yml 539 | cd /etc/ansible 540 | mkdir group_vars 541 | touch group_vars/{all.yml,Networking.yml} 542 | ``` 543 | 544 |
545 | 546 | Редактируем их: 547 | ```yml 548 | ansible_ssh_user: sshuser 549 | ansible_ssh_pass: P@ssw0rd 550 | ansible_python_interpreter: /usr/bin/python3 551 | ``` 552 | > all.yml 553 | 554 | ```yml 555 | ansible_connection: network_cli 556 | ansible_network_os: ios 557 | ``` 558 | > Networking.yml 559 | 560 |
561 | 562 | Выполняем команду для **ping**`а всех машин: 563 | ```yml 564 | ansible -m ping all 565 | ``` 566 | > **-m (--module-name)** - параметр для указания модуля 567 | > 568 | > **ping** - модуль 569 | > 570 | > **all** - выполнить модуль для всех виртуальных машин, указанных в инвентарном файле 571 | 572 |
573 | 574 |
575 | 576 |
577 | 578 | ## Задание 5 579 | 580 | ### Развертывание приложений в Docker на сервере BR-SRV 581 | 582 | - Создайте в домашней директории пользователя файл wiki.yml для приложения MediaWiki 583 | 584 | - Средствами docker compose должен создаваться стек контейнеров с приложением MediaWiki и базой данных 585 | 586 | - Используйте два сервиса 587 | 588 | - Основной контейнер MediaWiki должен называться wiki и использовать образ mediawiki 589 | 590 | - Файл LocalSettings.php с корректными настройками должен находиться в домашней папке пользователя и автоматически монтироваться в образ 591 | 592 | - Контейнер с базой данных должен называться mariadb и использовать образ mariadb 593 | 594 | - Разверните 595 | 596 | - Он должен создавать базу с названием mediawiki, доступную по стандарнтому порту, пользователя wiki с паролем WikiP@ssw0rd должен иметь права доступа к этой базе данных 597 | 598 | - MediaWiki должна быть доступна извне через порт 8080 599 | 600 |
601 | 602 |
603 | Решено не полностью (проблема в учетной записи пользователя базы данных) 604 |
605 | 606 | #### Конфигурация файла Docker-Compose 607 | 608 | Останавливаем службу **ahttpd**, которая занимает порт **8080**: 609 | ```yml 610 | systemctl disable —now ahttpd 611 | ``` 612 | > **ahttpd** - модуль для веб-интерфейса, который предназначен для управления настройками web-сервера, обеспечивающего работоспособность **Центра управления системой** 613 | 614 |
615 | 616 | Устанавливаем **docker** и **docker-compose**: 617 | ```yml 618 | apt-get install -y docker-{ce,compose} 619 | ``` 620 | 621 |
622 | 623 | Включаем и добавляем в автозагрузку **docker**: 624 | ```yml 625 | systemctl enable --now docker 626 | ``` 627 | 628 |
629 | 630 | В домашней директории пользователя создаем файл **`wiki.yml`** и прописываем следующее: 631 | ```yml 632 | services: 633 | mediawiki: 634 | container_name: wiki 635 | image: mediawiki 636 | restart: always 637 | ports: 638 | - "8080:80" 639 | links: 640 | - db 641 | # volumes: 642 | # - ./LocalSettings.php:/var/www/html/LocalSettings.php 643 | 644 | db: 645 | container_name: mariadb 646 | image: mariadb 647 | restart: always 648 | environment: 649 | MARIADB_DATABASE: mediawiki 650 | MARIADB_USER: wiki 651 | MARIADB_PASSWORD: WikiP@ssw0rd 652 | MARIADB_ROOT_PASSWORD: P@ssw0rd 653 | volumes: 654 | - db_data:/var/lib/mysql 655 | 656 | volumes: 657 | db_data: 658 | ``` 659 | > **services** - основной раздел, в котором описываются сервисы 660 | > 661 | > **container_name** - имя контейнера 662 | > 663 | > **image** - имя образа 664 | > 665 | > **restart** - перезапуск контейнера, если он остановлен 666 | > 667 | > **ports** - проброс портов 668 | > 669 | > **links** - ссылка на контейнер 670 | > 671 | > **volumes** - проброс папок 672 | > 673 | > **environment** - переменные окружения 674 | 675 |
676 | 677 | Собираем стек контейнеров: 678 | ```yml 679 | docker compose -f wiki.yml up -d 680 | ``` 681 | > **-f** - указание на файл 682 | > 683 | > **up** - запуск 684 | > 685 | > **-d** - запуск в фоновом режиме 686 | 687 |
688 | 689 | #### Установка MediaWiki в веб-интерфейсе 690 | 691 | На **HQ-CLI** в браузере вводим **`http://192.168.0.30:8080`** и начинаем установку **MediaWiki**, нажав на **set up the wiki**: 692 |

693 | 695 | 696 |
697 | 698 | Выбираем язык: 699 |

700 | 702 | 703 |
704 | 705 | Проверяем внешнюю среду и нажимаем **далее**: 706 |

707 | 709 | 710 |
711 | 712 | Заполняем параметры для базы данных в соответствии с заданными переменными окружения в **wiki.yml**: 713 |

714 | 716 | 717 |
718 | 719 | Оставляем галочку и жмем **далее**: 720 |

721 | 723 | 724 |
725 | 726 | Заполняем информацию об учетной записи администратора: 727 |

728 | 730 | 731 |
732 | 733 | Подтверждаем установку **MediaWiki**: 734 |

735 | 737 | 738 |
739 | 740 | После окончания установки нажимаем **далее**: 741 |

742 | 744 | 745 |
746 | 747 | Получаем конфигурационный файл, который нужно передать на **BR-SRV**: 748 |

749 | 751 | 752 |
753 | 754 | #### Правка файла Docker-Compose 755 | 756 | Перемещаем файл **`LocalSettings.php`** в домашнюю директорию пользователя **sshuser**: 757 | ```yml 758 | mv /home/user/Загрузки/LocalSettings.php /home/sshuser 759 | ``` 760 | > В моем случае, ранние действия выполнялись из под пользователя **user**, поэтому загруженный файл оказался именно в его папке 761 | 762 |
763 | 764 | Передаем файл с **HQ-CLI** на **BR-SRV**: 765 | ```yml 766 | scp -P 2024 /home/sshuser/LocalSettings.php sshuser@192.168.0.30:/home/sshuser 767 | ``` 768 | > **-P** - указание порта SSH 769 | > 770 | > **/home/sshuser/LocalSettings.php** - файл, который будет передан 771 | > 772 | > **sshuser@192.168.0.30:/home/sshuser** - имя-пользователя@IP-адрес:директория-назначения 773 | 774 |
775 | 776 | На **BR-SRV** перемещаем файл в домашнюю директорию **root**: 777 | ```yml 778 | mv /home/sshuser/LocalSettings.php /root 779 | ``` 780 | > Если файл **wiki.yml** создавали в домашней директории другого пользователя - перемещаем туда 781 | 782 |
783 | 784 | В файле **wiki.yml** расскоментируем следующие строки: 785 | ```yml 786 | volumes: 787 | - ./LocalSettings.php:/var/www/html/LocalSettings.php 788 | ``` 789 | 790 |
791 | 792 | Перезапускаем запущенные **Docker**`ом сервисы: 793 | ```yml 794 | docker compose -f wiki.yml stop 795 | docker compose -f wiki.yml up -d 796 | ``` 797 | 798 |

799 | 800 |
801 | 802 | ## Задание 6 803 | 804 | ### На маршрутизаторах сконфигурируйте статическую трансляцию портов 805 | 806 | - Пробросьте порт 80 в порт 8080 на BR-SRV на маршрутизаторе BR-RTR, для обеспечения работы сервиса wiki 807 | 808 | - Пробросьте порт 2024 в порт 2024 на HQ-SRV на маршрутизаторе HQ-RTR 809 | 810 | - Пробросьте порт 2024 в порт 2024 на BR-SRV на маршрутизаторе BR-RTR 811 | 812 |
813 | 814 |
815 | Решение 816 |
817 | 818 | #### Конфигурация BR-RTR 819 | 820 | Проброс портов с 80 на 8080 для работы сервиса **wiki**: 821 | ```yml 822 | ip nat source static tcp 192.168.0.1 80 192.168.0.30 8080 823 | ``` 824 | 825 |
826 | 827 | Проброс портов с 2024 на 2024: 828 | ```yml 829 | ip nat source static tcp 192.168.0.1 2024 192.168.0.30 2024 830 | ``` 831 | 832 |
833 | 834 | #### Конфигурация HQ-RTR 835 | 836 | Проброс портов с 2024 на 2024: 837 | ```yml 838 | ip nat source static tcp 192.168.100.1 2024 192.168.100.62 2024 839 | ``` 840 | 841 |
842 | 843 |
844 | 845 | ## Задание 7 846 | 847 | ### Запустите сервис moodle на сервере HQ-SRV 848 | 849 | - Используйте веб-сервер apache 850 | 851 | - В качестве системы управления базами данных используйте mariadb 852 | 853 | - Создайте базу данных moodledb 854 | 855 | - Создайте пользователя moodle с паролем P@ssw0rd и предоставьте ему права доступа к этой базе данных 856 | 857 | - У пользователя admin в системе обучения задайте пароль P@ssw0rd 858 | 859 | - На главной странице должен отражаться номер рабочего места в виде арабской цифры, других подписей делать не надо 860 | 861 | - Основные параметры отметьте в отчеты 862 | 863 |
864 | 865 |
866 | Решение 867 |
868 | 869 | #### Конфигурация базы данных 870 | 871 | Устанавливаем необходимые пакеты: 872 | ```yml 873 | apt-get install -y moodle moodle-apache2 moodle-base moodle-local-mysql phpMyAdmin 874 | ``` 875 | 876 |
877 | 878 | Добавляем в **автозагрузку** базу данных: 879 | ```yml 880 | systemctl enable --now mysqld 881 | ``` 882 | 883 |
884 | 885 | Задаем пароль для пользователя **root** в базе данных: 886 | ```yml 887 | mysqladmin password 'P@ssw0rd' 888 | ``` 889 | 890 |
891 | 892 | Редактируем настройки **веб-сервера**: 893 | ```yml 894 | cat /etc/httpd2/conf/include/Directory_moodle_default.conf | grep 'Require all granted' || sed -i '/AllowOverride None/a Require all granted' /etc/httpd2/conf/include/Directory_moodle_default.conf 895 | ``` 896 | 897 |
898 | 899 | Изменяем строку, отвечающую за количество входных переменных: 900 | ```yml 901 | sed -i 's/; max_input_vars = 1000/max_input_vars = 5000/g' /etc/php/8.2/apache2-mod_php/php.ini 902 | ``` 903 | 904 |
905 | 906 | Добавляем в **автозагрузку** веб-сервер: 907 | ```yml 908 | systemctl enable --now httpd2 909 | ``` 910 | 911 |
912 | 913 | Авторизуемся в **MySQL**: 914 | ```yml 915 | mysql -u root -p 916 | ``` 917 | > Вводим ранее указанный пароль 918 | 919 |
920 | 921 | Создаем **пользователя** для базы данных: 922 | ```yml 923 | create user 'moodle'@'localhost' identified by 'P@ssw0rd'; 924 | ``` 925 | 926 |
927 | 928 | Создаем базу данных: 929 | ```yml 930 | create database moodledb default character set utf8 collate utf8_unicode_ci; 931 | ``` 932 | 933 |
934 | 935 | Выдаем **права** пользователю на созданную базу данных: 936 | ```yml 937 | grant all privileges on moodledb.* to moodle@localhost; 938 | ``` 939 | 940 |
941 | 942 | Переходим на **`hq-srv.au-team.irpo/moodle`** и выбираем язык: 943 |

944 | 946 | 947 |
948 | 949 | Подтверждаем пути директорий: 950 |

951 | 953 | 954 |
955 | 956 | Выбираем систему управления базы данных: 957 |

958 | 960 | 961 |
962 | 963 | Заполняем данные о базе данных и пользователе: 964 |

965 | 967 | 968 |
969 | 970 | Соглашаемся с условиями: 971 |

972 | 974 | 975 |
976 | 977 | Убеждаемся в успешной проверке: 978 |

979 | 981 | 982 |
983 | 984 | После установки настраиваем учетную запись администратора: 985 |

986 | 988 | 989 | > Заполняем в соответствии с условиями задания 990 | 991 |
992 | 993 | Указываем название сайта, часовой пояс и электронную почту: 994 |

995 | 997 |

998 | 1000 | 1001 |
1002 | 1003 | После успешного создания попадаем на главную страницу: 1004 |

1005 | 1007 | 1008 |

1009 | 1010 |
1011 | -------------------------------------------------------------------------------- /module1/README.md: -------------------------------------------------------------------------------- 1 | # *Demo2025 - Модуль 1* 2 | 3 | ### **[Задание](https://github.com/damh66/demo2025/blob/main/%D0%9A%D0%9E%D0%94%2009.02.06-1-2025%20%D0%A2%D0%BE%D0%BC%201%20(%D1%81%D0%BE%D0%BA%D1%80).pdf)** 4 | 5 | # 6 | 7 | ### Содержание 8 | 9 | 1. **[Произведите базовую настройку устройств](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-1)** 10 | 11 | 2. **[Настройка ISP](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-2)** 12 | 13 | 3. **[Создание локальных учетных записей](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-3)** 14 | 15 | 4. **[Настройте на интерфейсе HQ-RTR в сторону офиса HQ виртуальный коммутатор](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-4)** 16 | 17 | 5. **[Настройка безопасного удаленного доступа на серверах HQ-SRV и BR-SRV](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-5)** 18 | 19 | 6. **[Между офисами HQ и BR необходимо сконфигурировать IP-туннель](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-6)** 20 | 21 | 7. **[Обеспечьте динамическую маршрутизацию](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-7)** 22 | 23 | 8. **[Настройка динамической трансляции адресов](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-8)** 24 | 25 | 9. **[Настройка протокола динамической конфигурации хостов](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-9)** 26 | 27 | 10. **[Настройка DNS для офисов HQ и BR](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-10)** 28 | 29 | 11. **[Настройте часовой пояс на всех устройствах, согласно месту проведения экзамена](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-11)** 30 | 31 |
32 | 33 |
34 | 35 |

36 | 38 |

Топология

39 | 40 |
41 | 42 | ## Задание 1 43 | 44 | ### Произведите базовую настройку устройств 45 | 46 | - Настройте имена устройств согласно топологии. Используйте полное доменное имя 47 | 48 | - На всех устройствах необходимо сконфигурировать IPv4 49 | 50 | - IP-адрес должен быть из приватного диапазона, в случае, если сеть локальная, согласно RFC1918 51 | 52 | - Локальная сеть в сторону HQ-SRV(VLAN100) должна вмещать не более 64 адресов 53 | 54 | - Локальная сеть в сторону HQ-CLI(VLAN200) должна вмещать не более 16 адресов 55 | 56 | - Локальная сеть в сторону BR-SRV должна вмещать не более 32 адресов 57 | 58 | - Локальная сеть для управления(VLAN999) должна вмещать не более 8 адресов 59 | 60 | - Сведения об адресах занесите в отчёт, в качестве примера используйте Таблицу 3 61 | 62 |
63 | 64 |
65 | Решение 66 |
67 | 68 | **Полное доменное имя можно посмотреть в таблице для [Задания 10](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-10)** 69 | 70 |
71 | 72 | #### Настройка имен устройств на ALT Linux 73 | ```yml 74 | hostnamectl set-hostname ; exec bash 75 | ``` 76 | > FQDN (Fully Qualified Domain Name) - полное доменное имя 77 | > 78 | > `exec bash` - обновление оболочки 79 | 80 |
81 | 82 | #### Настройка имен устройств на EcoRouter 83 | 84 | Переходим в режим конфигурации и прописываем следующее: 85 | ```yml 86 | hostname 87 | ``` 88 | > `` - желаемое имя устройства 89 | 90 |
91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 |
СетьАдрес подсетиПул-адресов
SRV-Net (VLAN 100)192.168.100.0/26192.168.100.1 - 192.168.100.62
CLI-Net (VLAN 200)192.168.200.0/28192.168.200.1 - 192.168.200.14
BR-Net192.168.0.0/27192.168.0.1 - 192.168.0.30
MGMT (VLAN 999)192.168.99.0/29192.168.99.1 - 192.168.99.6
ISP-HQ172.16.4.0/28172.16.4.1 - 172.16.4.14
ISP-BR172.16.5.0/28172.16.5.1 - 172.16.5.14
129 |

Таблица подсетей

130 | 131 |
132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 |
Имя устройстваИнтерфейсIPv4/IPv6Маска/ПрефиксШлюз
ISPens3310.12.28.5 (DHCP)/2410.12.28.254
ens34172.16.5.1/28
ens35172.16.4.1/28
HQ-RTRint0172.16.4.2/28172.16.4.1
int1192.168.100.1/26
int2192.168.200.1/28
BR-RTRint0172.16.5.2/28172.16.5.1
int1192.168.0.1/27
HQ-SRVens33192.168.100.62/26192.168.100.1
BR-SRVens33192.168.0.30/27192.168.0.1
HQ-CLIens33192.168.200.14/28192.168.200.1
214 |

Таблица адресации

215 | 216 | > Адресация для **ISP** взята из следующего задания 217 | 218 |
219 | 220 | #### Наcтройка IP-адресации на **HQ-SRV**, **BR-SRV**, **HQ-CLI** (настройка IP-адресации на **ISP** проводится в [следующем задании](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-2)) 221 | 222 | Приводим файлы **`options`**, **`ipv4address`**, **`ipv4route`** в директории **`/etc/net/ifaces/*имя интерфейса*/`** к следующему виду (в примере **HQ-SRV**): 223 | ```yml 224 | DISABLED=no 225 | TYPE=eth 226 | BOOTPROTO=static 227 | CONFIG_IPV4=yes 228 | ``` 229 | > **`options`** 230 | 231 | ```yml 232 | 192.168.100.62/26 233 | ``` 234 | > **`ipv4address`** 235 | 236 | ```yml 237 | default via 192.168.100.1 238 | ``` 239 | > **`ipv4route`** 240 | 241 |
242 | 243 | #### Настройка IP-адресации на EcoRouter 244 | 245 | Настраиваем интерфейс на **HQ-RTR**, который смотрит в сторону **ISP**: 246 | 247 | - Создаем логический интерфейс: 248 | ```yml 249 | interface int0 250 | description "to isp" 251 | ip address 172.16.4.2/28 252 | ``` 253 | 254 | - Настраиваем физический порт: 255 | ```yml 256 | port ge0 257 | service-instance ge0/int0 258 | encapsulation untagged 259 | ``` 260 | 261 | - Объединеняем порт с интерфейсом: 262 | ```yml 263 | interface int0 264 | connect port ge0 service-instance ge0/int0 265 | ``` 266 | 267 |
268 | 269 | Настраиваем интерфейсы на **HQ-RTR**, которые смотрят в сторону **HQ-SRV** и **HQ-CLI** (с разделением на VLAN): 270 | 271 | - Создаем два интерфейса: 272 | ```yml 273 | interface int1 274 | description "to hq-srv" 275 | ip address 192.168.100.1/26 276 | ! 277 | interface int2 278 | description "to hq-cli" 279 | ip address 192.168.200.1/28 280 | ``` 281 | 282 | - Настраиваем порт: 283 | ```yml 284 | port ge1 285 | service-instance ge1/int1 286 | encapsulation dot1q 100 287 | rewrite pop 1 288 | service-instance ge1/int2 289 | encapsulation dot1q 200 290 | rewrite pop 1 291 | ``` 292 | 293 | - Объединяем порт с интерфейсами: 294 | ```yml 295 | interface int1 296 | connect port ge1 service-instance ge1/int1 297 | ! 298 | interface int2 299 | connect port ge1 service-instance ge1/int2 300 | ``` 301 | 302 |
303 | 304 | #### Адресация на BR-RTR (без разделения на VLAN) настраивается аналогично примеру выше 305 | 306 |
307 | 308 | #### Добавление маршрута по умолчанию в EcoRouter 309 | 310 | Прописываем следующее: 311 | ```yml 312 | ip route 0.0.0.0 0.0.0.0 *адрес шлюза* 313 | ``` 314 | 315 |
316 | 317 |
318 | 319 | ## Задание 2 320 | 321 | ### Настройка ISP 322 | 323 | - Настройте адресацию на интерфейсах: 324 | 325 | - Интерфейс, подключенный к магистральному провайдеру, получает адрес по DHCP 326 | 327 | - Настройте маршруты по умолчанию там, где это необходимо 328 | 329 | - Интерфейс, к которому подключен HQ-RTR, подключен к сети 172.16.4.0/28 330 | 331 | - Интерфейс, к которому подключен BR-RTR, подключен к сети 172.16.5.0/28 332 | 333 | - На ISP настройте динамическую сетевую трансляцию в сторону HQ-RTR и BR-RTR для доступа к сети Интернет 334 | 335 |
336 | 337 |
338 | Решение 339 |
340 | 341 | #### Настройка интерфейса, который получает IP-адрес по DHCP 342 | 343 | Файл **`options`** (в директории интерфейса) приводим к следующему виду: 344 | ```yml 345 | BOOTPROTO=dhcp 346 | TYPE=eth 347 | DISABLED=no 348 | CONFIG_IPV4=yes 349 | ``` 350 | > **`BOOTPROTO=dhcp`** - заменили статический способ настройки адреса на динамическое получение 351 | 352 |
353 | 354 | #### Настройка маршрута по умолчанию 355 | 356 | Прописываем шлюз по умолчанию: 357 | ```yml 358 | default via *адрес шлюза* 359 | ``` 360 | 361 |
362 | 363 | #### Настройка интерфейсов, смотрящих в сторону HQ-RTR и BR-RTR происходит аналогично настройке в [Задании 1](https://github.com/damh66/demo2025/tree/main/module1#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-1) 364 | 365 |
366 | 367 | #### Включение маршрутизации 368 | 369 | В файле **`/etc/net/sysctl.conf`** изменяем строку: 370 | ```yml 371 | net.ipv4.ip_forward = 1 372 | ``` 373 | 374 |
375 | 376 | Изменения в файле **`sysctl.conf`** применяем следующей командой: 377 | ```yml 378 | sysctl -p /etc/sysctl.conf 379 | ``` 380 | 381 |
382 | 383 |
384 | 385 | ## Задание 3 386 | 387 | ### Создание локальных учетных записей 388 | 389 | - Создайте пользователя sshuser на серверах HQ-SRV и BR-SRV 390 | 391 | - Пароль пользователя sshuser с паролем P@ssw0rd 392 | 393 | - Идентификатор пользователя 1010 394 | 395 | - Пользователь sshuser должен иметь возможность запускать sudo без дополнительной аутентификации. 396 | 397 | - Создайте пользователя net_admin на маршрутизаторах HQ-RTR и BR-RTR 398 | 399 | - Пароль пользователя net_admin с паролем P@$$word 400 | 401 | - При настройке на EcoRouter пользователь net_admin должен обладать максимальными привилегиями 402 | 403 | - При настройке ОС на базе Linux, запускать sudo без дополнительной аутентификации 404 | 405 |
406 | 407 |
408 | Решение 409 |
410 | 411 | #### Создание пользователя `sshuser` на серверах 412 | 413 | Создаем самого пользователя: 414 | ```yml 415 | useradd sshuser -u 1010 416 | ``` 417 | > опция **`-u`** позволяет указать идентификатор пользователя сразу при создании 418 | 419 |
420 | 421 | Задаем пароль: 422 | ```yml 423 | passwd sshuser 424 | ``` 425 | 426 |
427 | 428 | Добавляем в группу **wheel**: 429 | ```yml 430 | usermod -aG wheel sshuser 431 | ``` 432 | 433 |
434 | 435 | Добавляем строку в **`/etc/sudoers`**: 436 | ```yml 437 | sshuser ALL=(ALL) NOPASSWD:ALL 438 | ``` 439 | > Позволяет запускать **sudo** без аутентификации 440 | 441 |
442 | 443 | #### Создание пользователя `net_admin` на Ecorouter 444 | 445 | Создаем самого пользователя: 446 | ```yml 447 | username net_admin 448 | ``` 449 | 450 |
451 | 452 | Задаем пароль: 453 | ```yml 454 | password P@ssw0rd 455 | ``` 456 | 457 |
458 | 459 | Присваиваем привилегии администратора: 460 | ```yml 461 | role admin 462 | ``` 463 | 464 | 465 |
466 | 467 |
468 | 469 | ## Задание 4 470 | 471 | ### Настройте на интерфейсе HQ-RTR в сторону офиса HQ виртуальный коммутатор 472 | 473 | - Сервер HQ-SRV должен находиться в ID VLAN 100 474 | - Клиент HQ-CLI в ID VLAN 200 475 | - Создайте подсеть управления с ID VLAN 999 476 | - Основные сведения о настройке коммутатора и выбора реализации разделения на VLAN занесите в отчёт 477 | 478 |
479 | 480 |
481 | Не решено 482 |
483 | 484 | 485 | 486 |
487 | 488 |
489 | 490 | ## Задание 5 491 | 492 | ### Настройка безопасного удаленного доступа на серверах HQ-SRV и BR-SRV 493 | 494 | - Для подключения используйте порт 2024 495 | - Разрешите подключения только пользователю sshuser 496 | - Ограничьте количество попыток входа до двух 497 | - Настройте баннер «Authorized access only» 498 | 499 |
500 | 501 |
502 | Решение 503 |
504 | 505 | Приводим указанные строки в файле **`/etc/openssh/sshd_config`** к следующим значениям: 506 | ```yml 507 | Port 2024 508 | MaxAuthTries 2 509 | PasswordAuthentication yes 510 | Banner /etc/openssh/bannermotd 511 | AllowUsers sshuser 512 | ``` 513 | > В параметре **AllowUsers** вместо пробела используется **`Tab`** 514 | 515 |
516 | 517 | Создаем файл **`bannermotd`**: 518 | ```yml 519 | ---------------------- 520 | Authorized access only 521 | ---------------------- 522 | ``` 523 | 524 |
525 | 526 | Перезагружаем службу: 527 | ```yml 528 | systemctl restart sshd 529 | ``` 530 | 531 |
532 | 533 |
534 | 535 | ## Задание 6 536 | 537 | ### Между офисами HQ и BR необходимо сконфигурировать IP-туннель 538 | 539 | - Сведения о туннеле занесите в отчёт 540 | 541 | - На выбор технологии GRE или IP in IP 542 | 543 |
544 | 545 |
546 | Решение 547 |
548 | 549 | #### Создание туннеля на HQ-RTR 550 | 551 | Создаем интерфейс **GRE**-туннеля на **HQ-RTR**: 552 | ```yml 553 | int tunnel.0 554 | ``` 555 | 556 |
557 | 558 | Назначаем **IP-адрес**: 559 | ```yml 560 | ip add 172.16.0.1/30 561 | ``` 562 | 563 |
564 | 565 | Выставляем параметр **MTU**: 566 | ```yml 567 | ip mtu 1400 568 | ``` 569 | > В связи с добавлением служебного заголовка появляются новые требования к допустимому значению MTU при передаче пакета. Заголовок GRE имеет размерность 4 байта, 20 байт транспортный IP заголовок, заголовок IP пакета 20 байт, таким образом возникает необходимость задавать размер допустимого MTU на интерфейсах туннеля меньше стандартного значения. 570 | 571 |
572 | 573 | Задаем режим работы туннеля **GRE** и адреса **начала** и **конца** туннеля: 574 | ```yml 575 | ip tunnel 172.16.4.2 172.16.5.2 mode gre 576 | ``` 577 | 578 |
579 | 580 | #### GRE-туннель на BR-RTR настраивается аналогично примеру выше 581 | 582 |
583 | 584 |
585 | 586 | ## Задание 7 587 | 588 | ### Обеспечьте динамическую маршрутизацию: ресурсы одного офиса должны быть доступны из другого офиса. Для обеспечения динамической маршрутизации используйте link state протокол на ваше усмотрение 589 | 590 | - Разрешите выбранный протокол только на интерфейсах в ip туннеле 591 | 592 | - Маршрутизаторы должны делиться маршрутами только друг с другом 593 | 594 | - Обеспечьте защиту выбранного протокола посредством парольной защиты 595 | 596 | - Сведения о настройке и защите протокола занесите в отчёт 597 | 598 |
599 | 600 |
601 | Решение 602 |
603 | 604 | #### Настройка OSPF на HQ-RTR 605 | 606 | Создаем процесс **OSPF**, указываем **идентификатор маршрутизатора**, объявляем сети и указываем **пассивные** интерфейсы: 607 | ```yml 608 | router ospf 1 609 | router-id 1.1.1.1 610 | network 172.16.0.0/30 area 0 611 | network 192.168.100.0/26 area 0 612 | network 192.168.200.0/28 area 0 613 | passive-interface default 614 | no passive-interface tunnel.0 615 | ``` 616 | 617 |
618 | 619 | #### Маршрутизация OSPF на BR-RTR настраивается аналогично примеру выше 620 | 621 |
622 | 623 |
624 | 625 | ## Задание 8 626 | 627 | ### Настройка динамической трансляции адресов 628 | 629 | - Настройте динамическую трансляцию адресов для обоих офисов. 630 | 631 | - Все устройства в офисах должны иметь доступ к сети Интернет 632 | 633 |
634 | 635 |
636 | Решение 637 |
638 | 639 | #### Настройка NAT на ISP 640 | 641 | Добавляем правила **`iptables`** на ISP 642 | ```yml 643 | iptables -t nat -A POSTROUTING -o ens224 -s 172.16.4.0/28 -j MASQUERADE 644 | iptables -t nat -A POSTROUTING -o ens224 -s 172.16.5.0/28 -j MASQUERADE 645 | ``` 646 | 647 |
648 | 649 | Сохраняем правила: 650 | ```yml 651 | iptables-save > /etc/sysconfig/iptables 652 | ``` 653 | 654 |
655 | 656 | Включаем и добавляем **`iptables`** в автозагрузку: 657 | ```yml 658 | systemctl enable --now iptables 659 | ``` 660 | 661 |
662 | 663 | #### Настройка NAT на HQ-RTR 664 | 665 | Указываем **внутренние** и **внешние** интерфейсы: 666 | ```yml 667 | int int1 668 | ip nat inside 669 | ! 670 | int int2 671 | ip nat inside 672 | ! 673 | int int0 674 | ip nat outside 675 | ``` 676 | 677 |
678 | 679 | Создаем пул: 680 | ```yml 681 | ip nat pool NAT_POOL 192.168.100.1-192.168.100.62,192.168.200.1-192.168.200.14 682 | ``` 683 | 684 |
685 | 686 | Создаем **правило** трансляции адресов, указывая внешний интерфейс: 687 | ```yml 688 | ip nat source dynamic inside-to-outside pool NAT_POOL overload interface int0 689 | ``` 690 | 691 |
692 | 693 | #### Настройка NAT на BR-RTR 694 | 695 | Конфигурация: 696 | ```yml 697 | int int1 698 | ip nat inside 699 | ! 700 | int int0 701 | ip nat outside 702 | ! 703 | ip nat pool NAT_POOL 192.168.0.1-192.168.0.30 704 | ! 705 | ip nat source dynamic inside-to-outside pool NAT_POOL overload interface int0 706 | ``` 707 | 708 |
709 | 710 |
711 | 712 | ## Задание 9 713 | 714 | ### Настройка протокола динамической конфигурации хостов 715 | 716 | - Настройте нужную подсеть 717 | 718 | - Для офиса HQ в качестве сервера DHCP выступает маршрутизатор HQ-RTR. 719 | 720 | - Клиентом является машина HQ-CLI. 721 | 722 | - Исключите из выдачи адрес маршрутизатора 723 | 724 | - Адрес шлюза по умолчанию – адрес маршрутизатора HQ-RTR. 725 | 726 | - Адрес DNS-сервера для машины HQ-CLI – адрес сервера HQ-SRV. 727 | 728 | - DNS-суффикс для офисов HQ – au-team.irpo 729 | 730 | - Сведения о настройке протокола занесите в отчёт 731 | 732 |
733 | 734 |
735 | Решение 736 |
737 | 738 | Создаем **пул** для **DHCP-сервера**: 739 | ```yml 740 | ip pool hq-cli 192.168.200.14-192.168.200.14 741 | ``` 742 | 743 |
744 | 745 | Настраиваем сам **DHCP-сервер**: 746 | ```yml 747 | dhcp-server 1 748 | pool hq-cli 1 749 | mask 28 750 | gateway 192.168.200.1 751 | dns 192.168.100.62 752 | domain-name au-team.irpo 753 | ``` 754 | > **`pool hq-cli 1`** - привязка **пула** 755 | 756 | > **`mask 28`** - указание **маски** для выдаваемых адресов из пула 757 | 758 | > **`gateway 192.168.200.1`** - указание **шлюза по умолчанию** для клиентов 759 | 760 | > **`dns 192.168.100.62`** - указание **DNS-сервера** для клиентов 761 | 762 | > **`domain-name au-team.irpo`** - указание **DNS-суффикса** для офиса **HQ** 763 | 764 |
765 | 766 | Привязываем **DHCP-сервер** к интерфейсу (смотрящий в сторону **CLI**): 767 | ```yml 768 | interface int2 769 | dhcp-server 1 770 | ``` 771 | 772 |
773 | 774 |
775 | 776 | ## Задание 10 777 | 778 | ### Настройка DNS для офисов HQ и BR 779 | 780 | - Основной DNS-сервер реализован на HQ-SRV. 781 | 782 | - Сервер должен обеспечивать разрешение имён в сетевые адреса устройств и обратно в соответствии с таблицей 2 783 | 784 | - В качестве DNS сервера пересылки используйте любой общедоступный DNS сервер 785 | 786 |
787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 |
УстройствоЗаписьТип
HQ-RTRhq-rtr.au-team.irpoA,PTR
BR-RTRbr-rtr.au-team.irpoA
HQ-SRVhq-srv.au-team.irpoA,PTR
HQ-CLIhq-cli.au-team.irpoA,PTR
BR-SRVbr-srv.au-team.irpoA
HQ-RTRmoodle.au-team.irpoCNAME
BR-RTRwiki.au-team.irpoCNAME
830 | 831 |

Таблица 2

832 | 833 |
834 | 835 |
836 | Решение 837 |
838 | 839 | #### Настройка конфигурации bind 840 | 841 | Устанавливаем необходимые пакеты: 842 | ```yml 843 | apt-get install -y bind bind-utils 844 | ``` 845 | 846 |
847 | 848 | Изменяем содержание перечисленных строк в **`/etc/bind/options.conf`** к следующему виду: 849 | ```yml 850 | listen-on { 127.0.0.1; 192.168.100.62; }; 851 | 852 | forwarders { 77.88.8.8; }; 853 | 854 | allow-query { 192.168.100.0/26; 192.168.200.0/28; 192.168.0.0/27; }; 855 | 856 | ``` 857 | > **`listen-on`** - сетевые интерфейсы, которые будет прослушивать служба 858 | > 859 | > **`forwarders`** - DNS-сервер, на который будут перенаправляться запросы клиентов 860 | > 861 | > **`allow-query`** - IP-адреса и подсети от которых будут обрабатываться запросы 862 | 863 |
864 | 865 | Конфигурируем ключи **rndc**: 866 | ```yml 867 | rndc-confgen > /etc/rndckey 868 | ``` 869 | > Делаем вывод в файл, чтобы скопировать оттуда 870 | 871 |
872 | 873 | Приводим файл **`/etc/bind/rndc.key`** к следующему виду: 874 | ```yml 875 | //key "rndc-key" { 876 | // secret "@RNDC_KEY@"; 877 | //}; 878 | 879 | key "rndc-key" { 880 | algorithm hmac-sha256; 881 | secret "VTmhjyXFDo0QpaBl3UQWx1e0g9HElS2MiFDtNQzDylo="; 882 | }; 883 | ``` 884 | > Первые строки закомментировали 885 | > 886 | > Вставили ключ **rndc** 887 | 888 |
889 | 890 | Проверяем на ошибки: 891 | ```yml 892 | named-checkconf 893 | ``` 894 | 895 |
896 | 897 | Запускаем и добавляем в автозагрузку **`bind`**: 898 | ```yml 899 | systemctl enable --now bind 900 | ``` 901 | 902 |
903 | 904 | Изменяем **`resolv.conf`** интерфейса: 905 | ```yml 906 | search au-team.irpo 907 | nameserver 127.0.0.1 908 | nameserver 192.168.100.62 909 | nameserver 77.88.8.8 910 | search yandex.ru 911 | ``` 912 | 913 |
914 | 915 | #### Создание и настройка прямой зоны 916 | 917 | Прописываем ее в **`/etc/bind/local.conf`**: 918 | ```yml 919 | zone "au-team.irpo" { 920 | type master; 921 | file "au-team.irpo.db"; 922 | }; 923 | ``` 924 | 925 |
926 | 927 | Копируем шаблон прямой зоны: 928 | ```yml 929 | cp /etc/bind/zone/localdomain /etc/bind/zone/au-team.irpo.db 930 | ``` 931 | 932 |
933 | 934 | Задаем пользователя и права на файл: 935 | ```yml 936 | chown named. /etc/bind/zone/au-team.irpo.db 937 | chmod 600 /etc/bind/zone/au-team.irpo.db 938 | ``` 939 | 940 |
941 | 942 | Приводим его к следующему виду: 943 | ```yml 944 | $TTL 1D 945 | @ IN SOA au-team.irpo. root.au-team.irpo. ( 946 | 2024102200 ; serial 947 | 12H ; refresh 948 | 1H ; retry 949 | 1W ; expire 950 | 1H ; ncache 951 | ) 952 | IN NS au-team.irpo. 953 | IN A 192.168.100.62 954 | hq-rtr IN A 192.168.100.1 955 | br-rtr IN A 192.168.0.1 956 | hq-srv IN A 192.168.100.62 957 | hq-cli IN A 192.168.200.14 958 | br-srv IN A 192.168.0.30 959 | moodle IN CNAME hq-rtr 960 | wiki IN CNAME hq-rtr 961 | ``` 962 | 963 |
964 | 965 | Проверяем на ошибки: 966 | ```yml 967 | named-checkconf -z 968 | ``` 969 | 970 |
971 | 972 | #### Создание и настройка обратных зон 973 | 974 | Прописываем их в **`/etc/bind/local.conf`**: 975 | ```yml 976 | zone "100.168.192.in-addr.arpa" { 977 | type master; 978 | file "100.168.192.in-addr.arpa"; 979 | }; 980 | 981 | zone "200.168.192.in-addr.arpa" { 982 | type master; 983 | file "200.168.192.in-addr.arpa"; 984 | }; 985 | 986 | zone "0.168.192.in-addr.arpa" { 987 | type master; 988 | file "0.168.192.in-addr.arpa"; 989 | }; 990 | ``` 991 | 992 |
993 | 994 | Копируем шаблон обратной зоны: 995 | ```yml 996 | cp /etc/bind/zone/127.in-addr.arpa /etc/bind/zone/100.168.192.in-addr.arpa 997 | cp /etc/bind/zone/127.in-addr.arpa /etc/bind/zone/200.168.192.in-addr.arpa 998 | cp /etc/bind/zone/127.in-addr.arpa /etc/bind/zone/0.168.192.in-addr.arpa 999 | ``` 1000 | 1001 |
1002 | 1003 | Задаем пользователя и права на файл: 1004 | ```yml 1005 | chown named. /etc/bind/zone/100.168.192.in-addr.arpa 1006 | chmod 600 /etc/bind/zone/100.168.192.in-addr.arpa 1007 | chown named. /etc/bind/zone/200.168.192.in-addr.arpa 1008 | chmod 600 /etc/bind/zone/200.168.192.in-addr.arpa 1009 | chown named. /etc/bind/zone/0.168.192.in-addr.arpa 1010 | chmod 600 /etc/bind/zone/0.168.192.in-addr.arpa 1011 | ``` 1012 | 1013 |
1014 | 1015 | Приводим их к следующему виду: 1016 | ```yml 1017 | $TTL 1D 1018 | @ IN SOA au-team.irpo. root.au-team.irpo. ( 1019 | 2024102200 ; serial 1020 | 12H ; refresh 1021 | 1H ; retry 1022 | 1W ; expire 1023 | 1H ; ncache 1024 | ) 1025 | IN NS au-team.irpo. 1026 | 1 IN PTR hq-rtr.au-team.irpo. 1027 | 62 IN PTR hq-srv.au-team.irpo. 1028 | ``` 1029 | ```yml 1030 | $TTL 1D 1031 | @ IN SOA au-team.irpo. root.au-team.irpo. ( 1032 | 2024102200 ; serial 1033 | 12H ; refresh 1034 | 1H ; retry 1035 | 1W ; expire 1036 | 1H ; ncache 1037 | ) 1038 | IN NS au-team.irpo. 1039 | 14 IN PTR hq-cli.au-team.irpo. 1040 | ``` 1041 | ```yml 1042 | $TTL 1D 1043 | @ IN SOA au-team.irpo. root.au-team.irpo. ( 1044 | 2024102200 ; serial 1045 | 12H ; refresh 1046 | 1H ; retry 1047 | 1W ; expire 1048 | 1H ; ncache 1049 | ) 1050 | IN NS au-team.irpo. 1051 | 1 IN PTR br-rtr.au-team.irpo. 1052 | 30 IN PTR br-srv.au-team.irpo. 1053 | ``` 1054 | 1055 |
1056 | 1057 | Проверяем на ошибки: 1058 | ```yml 1059 | named-checkconf -z 1060 | ``` 1061 | 1062 |
1063 | 1064 | Перезапускаем **`bind`**: 1065 | ```yml 1066 | systemctl restart bind 1067 | ``` 1068 | 1069 |
1070 | 1071 | Проверяем работоспособность: 1072 | ```yml 1073 | nslookup **IP-адрес/DNS-имя** 1074 | ``` 1075 | 1076 |
1077 | 1078 |
1079 | 1080 | ## Задание 11 1081 | 1082 | ### Настройте часовой пояс на всех устройствах, согласно месту проведения экзамена 1083 | 1084 |
1085 | 1086 |
1087 | Решение 1088 |
1089 | 1090 | #### Настройка часового пояса на Alt Linux 1091 | 1092 | Меняем часовой пояс следующей командой: 1093 | ```yml 1094 | timedatectl set-timezone Asia/Yekaterinburg 1095 | ``` 1096 | 1097 |
1098 | 1099 | Проверяем: 1100 | ```yml 1101 | timedatectl status 1102 | ``` 1103 | 1104 |
1105 | 1106 | #### Настройка часового пояса на EcoRouter 1107 | 1108 | Прописываем команду: 1109 | ```yml 1110 | ntp timezone utc+5 1111 | ``` 1112 | 1113 |
1114 | 1115 | Проверяем: 1116 | ```yml 1117 | show ntp timezone 1118 | ``` 1119 | 1120 |
1121 | --------------------------------------------------------------------------------