├── КОД 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 | | SRV-Net (VLAN 100) |
100 | 192.168.100.0/26 |
101 | 192.168.100.1 - 192.168.100.62 |
102 |
103 |
104 | | CLI-Net (VLAN 200) |
105 | 192.168.200.0/28 |
106 | 192.168.200.1 - 192.168.200.14 |
107 |
108 |
109 | | BR-Net |
110 | 192.168.0.0/27 |
111 | 192.168.0.1 - 192.168.0.30 |
112 |
113 |
114 | | MGMT (VLAN 999) |
115 | 192.168.99.0/29 |
116 | 192.168.99.1 - 192.168.99.6 |
117 |
118 |
119 | | ISP-HQ |
120 | 172.16.4.0/28 |
121 | 172.16.4.1 - 172.16.4.14 |
122 |
123 |
124 | | ISP-BR |
125 | 172.16.5.0/28 |
126 | 172.16.5.1 - 172.16.5.14 |
127 |
128 |
129 | Таблица подсетей
130 |
131 |
132 |
133 |
134 |
135 | | Имя устройства |
136 | Интерфейс |
137 | IPv4/IPv6 |
138 | Маска/Префикс |
139 | Шлюз |
140 |
141 |
142 | | ISP |
143 | ens33 |
144 | 10.12.28.5 (DHCP) |
145 | /24 |
146 | 10.12.28.254 |
147 |
148 |
149 | | ens34 |
150 | 172.16.5.1 |
151 | /28 |
152 | |
153 |
154 |
155 | | ens35 |
156 | 172.16.4.1 |
157 | /28 |
158 | |
159 |
160 |
161 | | HQ-RTR |
162 | int0 |
163 | 172.16.4.2 |
164 | /28 |
165 | 172.16.4.1 |
166 |
167 |
168 | | int1 |
169 | 192.168.100.1 |
170 | /26 |
171 | |
172 |
173 |
174 | | int2 |
175 | 192.168.200.1 |
176 | /28 |
177 | |
178 |
179 |
180 | | BR-RTR |
181 | int0 |
182 | 172.16.5.2 |
183 | /28 |
184 | 172.16.5.1 |
185 |
186 |
187 | | int1 |
188 | 192.168.0.1 |
189 | /27 |
190 | |
191 |
192 |
193 | | HQ-SRV |
194 | ens33 |
195 | 192.168.100.62 |
196 | /26 |
197 | 192.168.100.1 |
198 |
199 |
200 | | BR-SRV |
201 | ens33 |
202 | 192.168.0.30 |
203 | /27 |
204 | 192.168.0.1 |
205 |
206 |
207 | | HQ-CLI |
208 | ens33 |
209 | 192.168.200.14 |
210 | /28 |
211 | 192.168.200.1 |
212 |
213 |
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 | | HQ-RTR |
796 | hq-rtr.au-team.irpo |
797 | A,PTR |
798 |
799 |
800 | | BR-RTR |
801 | br-rtr.au-team.irpo |
802 | A |
803 |
804 |
805 | | HQ-SRV |
806 | hq-srv.au-team.irpo |
807 | A,PTR |
808 |
809 |
810 | | HQ-CLI |
811 | hq-cli.au-team.irpo |
812 | A,PTR |
813 |
814 |
815 | | BR-SRV |
816 | br-srv.au-team.irpo |
817 | A |
818 |
819 |
820 | | HQ-RTR |
821 | moodle.au-team.irpo |
822 | CNAME |
823 |
824 |
825 | | BR-RTR |
826 | wiki.au-team.irpo |
827 | CNAME |
828 |
829 |
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 |
--------------------------------------------------------------------------------