Files
demo2026-1/README.md
2025-06-10 13:05:34 +05:00

70 KiB
Raw Blame History

laba

МОДУЛЬ 1

Задание: Необходимо разработать и настроить инфраструктуру информационно коммуникационной системы согласно предложенной топологии (см. Рисунок 1). Задание включает базовую настройку устройств:

  • присвоение имен устройствам,
  • расчет IP-адресации,
  • настройку коммутации и маршрутизации.

В ходе проектирования и настройки сетевой инфраструктуры следует вести отчет о своих действиях, включая таблицы и схемы, предусмотренные в задании. Итоговый отчет должен содержать одну таблицу и пять отчетов о ходе работы. Итоговый отчет по окончании работы следует сохранить на диске рабочего места

Чтобы зайти на стенд для 1 модуля.

User name: m1

Password: modul1

Перед включением виртуалок Настроем вланы. По заданию HQ-SRV в 100 влане, а HQ-CLI в 200

Примечание: Основные сведения о настройке коммутатора и выбора реализации разделения на VLAN занесите в отчёт

ISP преднастроена, но включать ее надо

Сетевая связность - между HQ и BRANCH

Примечание: Сведения об адресах занесите в отчёт, в качестве примера используйте Таблицу 3

*HQ-RTR*

Задаём сразу FQDN - выбор имени домена произвольный:

По такой же аналогии настройте остальные имена

Чтобы настроить адресацию переходим:

Заодно настроим GRE туннель

Включаем пересылку пакетов между портами (интерфейсами)

Применяем:

sysctl -p

Прокинем PAT так, как по приколу тачки, что подключены к роутеру пинговать инет не будут.

Обязательно добавим в автозагрузку и активируем

Туннель мы допустим подняли, но чтобы пакеты через него пошли, нужна маршрутизация.

Примечание: Сведения о настройке и защите протокола(ospf) занесите в отчёт

Установим frr.

РЕКОМЕНДАЦИЯ: ПОКА FRR СКАЧИВАЕТСЯ ПЕРЕХОДИМ К НАСТРОЙКЕ BR-RTR

В файле /etc/frr/daemons - включим поддержку OSPFv2 (IPv4)

Не забываем перезапускать, чтобы изменения вступили в силу

Переходим к настройке frr (ospf)

Поставим пароль на frr

Не забываем перезапустить

И добавить в автозагрузку

*BR-RTR*

Произведем те же манипуляции

РЕКОМЕНДАЦИЯ: ПОКА FRR СКАЧИВАЕТСЯ ДОДЕЛЫВАЕМ FRR НА HQ-RTR

Ура сетевая связность у между hq и br настроена

Для проверки пингуем с br-rtr:

ping 192.168.100.1

РЕКОМЕНДАЦИЯ: сразу на HQ-RTR скачаем: apt update && apt install y isc-dhcp-server

*HQ-SRV*

Задаем имя:

ВНИМАНИЕ: Нужно обновить изображение

Прокинем инет:

Перезапускаем сервис:

Systemctl restart networking

Проверяем:

*BR-SRV*

Перезапускаем сервис:

Systemctl restart networking

Проверяем:

РЕКОМЕНДАЦИЯ: сразу скачиваем на HQ-SRV: apt update && apt install -y dnsmasq

Создание локальных учетных записей

Создайте пользователя sshuser на серверах

*HQ-SRV и BR-SRV*

Пользователь sshuser должен иметь возможность запускать sudo без дополнительной аутентификации.

В дебиане нету судо поэтому скачаем:

НА BR-SRV СДЕЛАЙТЕ ТОЖЕ САМОЕ

Создайте пользователя net_admin на маршрутизаторах

*HQ-RTR и BR-RTR*

В дебиане нет sudo поэтому скачаем

СДЕЛАЙТЕ ТОЖЕ САМОЕ НА BR-RTR

Настройка безопасного удаленного доступа на серверах HQ-SRV и BR-SRV:

  • Для подключения используйте порт 2024
  • Разрешите подключения только пользователю sshuser ● Ограничьте количество попыток входа до двух
  • Настройте баннер «Authorized access only»

*HQ-SRV и BR-SRV*

Редактируем файл /etc/ssh/sshd_config:

ДУБЛИРУЕМ ТОЖЕ САМОЕ НА BR-SRV

Установим и настроим DHCP-сервер

и зарезервируем адрес для HQ-SRV, чтобы потом на всех остальных оконечных устройствах задавая адреса сразу создавать пользователей

*HQ-RTR:*

Скачаем: apt install y isc-dhcp-server

Первым делом нам необходимо указать, что наш DHCP сервер должен принимать запросы только с ens20 интерфейса.

Настройка протокола динамической конфигурации хостов.

  • Настройте нужную подсеть
  • Для офиса HQ в качестве сервера DHCP выступает маршрутизатор HQ-RTR.
  • Клиентом является машина HQ-CLI.
  • Исключите из выдачи адрес маршрутизатора
  • Адрес шлюза по умолчанию адрес маршрутизатора HQ-RTR.
  • Адрес DNS-сервера для машины HQ-CLI адрес сервера HQ-SRV.
  • DNS-суффикс для офисов HQ au-team.irpo
  • Сведения о настройке протокола занесите в отчёт

Примечание: Сведения о настройке протокола занесите в отчёт

Настройка DNS для офисов HQ и BR.

  • Основной DNS-сервер реализован на HQ-SRV.
  • Сервер должен обеспечивать разрешение имён в сетевые адреса устройств и обратно в соответствии с таблицей 2
  • В качестве DNS сервера пересылки используйте любой общедоступный DNS сервер

Нам необходимо настроить DNS сервер. Будем использовать dnsmasq.

*HQ-SRV*

Теперь открываем скрипт-инициализации сервиса dnsmasq

ищем строчку DNSMASQ_OPTS

Убираем оттуда local-service

Перезагружаем службу dnsmasq:

systemctl restart dnsmasq

После настройки dns-сервера прописываем всем машинам в /etc/resolv.conf:

nameserver 192.168.100.2

Настройте часовой пояс на всех устройствах, согласно месту проведения экзамена.

*HQ-SRV, HQ-CLI, BR-SRV*

Проверяем какой часовой пояс установлен:

timedatectl status

Если отличается, то устанавливаем:

timedatectl set-timezone Asia/Yekaterinburg

МОДУЛЬ 2

Чтобы зайти на стенд для 2-3 модуля.

User name: m2

Password: modul2

1. Настройте доменный контроллер Samba на машине BR-SRV.

(СДЕЛАТЬ SNAPSHOT BR-SRV)

  • Создайте 5 пользователей для офиса HQ: имена пользователей формата user№.hq. Создайте группу hq, введите в эту группу созданных пользователей
  • Введите в домен машину HQ-CLI
  • Пользователи группы hq имеют право аутентифицироваться на клиентском ПК
  • Пользователи группы hq должны иметь возможность повышать привилегии для выполнения ограниченного набора команд: cat, grep, id. Запускать другие команды с повышенными привилегиями пользователи группы не имеют права
  • Выполните импорт пользователей из файла users.csv. Файл будет располагаться на виртуальной машине BR-SRV в папке /opt

*BR-SRV*

Обязательно: Временно заменяем в /etc/resolv.conf 192.168.100.2 на 10.0.1.4, чтобы samba быстрее скачивалось

Переходим к настройкам самого контроллера домена на BR-SRV

РЕКОМЕНДАЦИЯ: НА CLI: apt-get update && apt-get remove -y alterator-datetime && apt-get install -y task-auth-ad-sssd && apt-get install -y admc НА HQ-SRV: apt update && apt install mdadm -y НА CLI: apt-get install -y openssh-server && systemctl restart sshd.

Появится синее окно, не пугайтесь, так и должно быть. В первом окне вводим имя домена au-team.irpo, а во втором — имя нашего сервера hq-srv

Удаляем докер:

apt remove docker.io -y && ip link delete docker0;

  • Проверяем что установлено имя в формате FQDN;
  • Задаём domainname;
  • Очищаем конфигурацию samba;
  • Разворачиваем контроллер домена Active Directory на базе SambaDC с Dnsmasq в качестве DNS

Подготовка домена: Samba-tool --realm=au-team.irpo --domain=au-team adminpass=”PAssw0rd” --dnsbackend=SAMBA_INTERNAL --option=”dns forwrder=192.168.100.2” --server-role=dc

ВЫ МОЖЕТЕ НАПИСАТЬ ТОЛЬКО «Samba-tool domain provision», А ОСТАЛЬНОЕ ОНО СПРОСИТ САМО

Как видим че то не так, надо перезапустить машинку:

reboot

Вводим все заново
Проверяем:

Ничего не показывает, надо перезапустить машину, снова проверяем:

Обязательно: ВВОДИМ МАШИНУ обратно В ДОМЕН:
nano /etc/resolv.conf nameserver 192.168.100.2

РЕКОМЕНДАЦИЯ: НА BR-SRV здесь же скачиваем: apt install ansible -y
НА HQ-SRV скачиваем: apt install nfs-kernel-server -y

На клиента ставим необходимые пакеты

*CLI*

При установке пакета task-auth-ad-sssd у вас возникнет ошибка, связанная с конфликтом с пакетом alterator-datetime, его необходимо удалить:

apt-get update && apt-get remove -y alterator-datetime

После пропишем инсталл:

apt-get install -y task-auth-ad-sssd

Переходим к редактированию временного соединения и в качестве DNS-сервера прописываем адрес HQ-SRV, а также указываем поисковый домен:

Переходим в Центр управления системой, на вкладке Пользователи выбираем Аутентификация

Вводим пароль администратора домена:

Нажимаем ОК и перезагружаем систему:

РЕКОМЕНДАЦИЯ: НА BR-SRV скачиваем: apt install -y docker.io docker-compose
НА HQ-SRV скачиваем: apt install -y apache* -y

В качестве проверки после перезагрузки можно выполнить аутентификацию от имени доменного пользователя Administrator:

Организуем отслеживание подключения к домену: CLI: На клиенте с граф. интерфейсом установим Модуль удаленного управления базой данных конфигурации (ADMC) • Установим пакет admc:

apt-get install -y admc

Для использования ADMC необходимо предварительно получить ключ Kerberos для администратора домена. Получить ключ Kerberos можно, например, выполнив следующую команду, из под обычного пользователя:

kinit Administrator

ADMC запускается из меню запуска приложений: пункт «Системные» → ADMC или из командной строки (команда admc).


Если admc долго не может запуститься(не выдает ошибок, но не запускается), то внесите изменения в файл /etc/krb5.conf


На вкладке «Компьютеры» в графическом режиме удобно отслеживать подключение к домену.

Создаем пять юзеров:

Создаем группу hq и в нее добавляем раннее созданных пользователей

Пользователи группы hq должны иметь возможность повышать привилегии для выполнения ограниченного набора команд: cat, grep, id. Запускать другие команды с повышенными привилегиями пользователи группы не имеют права

*CLI*

Настройте файл /etc/sudoers на рабочей станции Linux, как описано в предыдущем ответе, используя синтаксис для доменных групп:
%hq ALL=(ALL) NOPASSWD: /bin/cat, /bin/grep, /usr/bin/id

РЕКОМЕНДАЦИЯ: НА BR-SRV скачиваем: apt install y mariadb-*
НА HQ-SRV скачиваем: apt install -y php php8.2 php-curl php-zip php-xml libapache2-mod-php php-mysql php-mbstring php-gd php-intl php-soap -y

2. Сконфигурируйте файловое хранилище

(СДЕЛАТЬ SNAPSHOT на HQ-SRV)

  • При помощи трёх дополнительных дисков, размером 1Гб каждый, на HQ-SRV сконфигурируйте дисковый массив уровня 5
  • Имя устройства md0, конфигурация массива размещается в файле /etc/mdadm.conf
  • Обеспечьте автоматическое монтирование в папку /raid5
  • Создайте раздел, отформатируйте раздел, в качестве файловой системы используйте ext4
  • Настройте сервер сетевой файловой системы(nfs), в качестве папки общего доступа выберите /raid5/nfs, доступ для чтения и записи для всей сети в сторону HQ-CLI
  • На HQ-CLI настройте автомонтирование в папку /mnt/nfs
  • Основные параметры сервера отметьте в отчёте

Подготовка дисков

*HQ-SRV*

Убедитесь, что дополнительные диски распознаны системой. Список подключенных дисков можно проверить командой:

Создайте RAID 5 массив из трех 1Гб дисков (предположим, они определены как /dev/sdb, /dev/sdc, и /dev/sdd):

Скачаем службу mdadm:

Проверяем:

Проверьте статус RAID массива:

Сохраните конфигурацию массива в файл /etc/mdadm.conf:

  1. Создание файловой системы и настройка монтирования

Создайте раздел и отформатируйте его в ext4:

Создайте точку монтирования и настройте автоматическое монтирование в /etc/fstab:

Смонтируйте файловую систему:

  1. Настройка NFS-сервера на HQ-SRV

Установите NFS-сервер (если он еще не установлен):

Создайте директорию для общего доступа:

Настройте права доступа для общей папки:

Настройте экспорт NFS для всей сети с разрешением на чтение и запись.
Откройте файл /etc/exports и добавьте строку:

Примените изменения в конфигурации NFS:

Перезапустите NFS-сервер:

ПРИМЕЧАНИЕ Основные параметры сервера отметьте в отчёте

  1. Настройка автомонтирования на HQ-CLI (под ALT Workstation)

*HQ-CLI*

Создайте точку монтирования:

Настройте автомонтирование в /etc/fstab, откройте этот файл и добавьте следующую строку:

Смонтируйте папку вручную (или перезагрузите систему для применения настроек):

Проверка подключения NFS на HQ-CLI:

РЕКОМЕНДАЦИЯ: НА HQ-SRV скачиваем: apt install -y mariadb-* -y

3. Настройте службу сетевого времени на базе сервиса chrony

  • В качестве сервера выступает HQ-RTR
  • На HQ-RTR настройте сервер chrony, выберите стратум 5
  • В качестве клиентов настройте HQ-SRV, HQ-CLI, BR-RTR, BR-SRV
  1. Настройка NTP сервера:

*HQ-RTR*

Установим пакет chrony на каждой машине:

apt install -y chrony

Приводим конфигурационный файл "chrony.conf" к следующему виду:

nano /etc/chrony/chrony.conf

где:

  • server 127.0.0.1 iburst prefer - указываем сервером синхронизации самого себя, опция «iburst» принудительно отправляет сразу несколько пакетов для точности синхронизации,
  • hwtimestamp * - опция, чтобы сетевой интерфейс считал собственный источник времени верным и синхронизировал клиентов с ним;
  • local stratum 5 - устанавливаем для себя значение по stratum = 5;
  • allow - кому разрешается подключаться к серверу и запрашивать время: чтобы не перечеслять все используемые в задании IPv4 и IPv6 сети, используется 0/0 и ::/0;

Запускаем и добавляем в автозагрузку службу chronyd, и не забываем рестартать сервис:

systemctl enable --now chrony
systemctl restart chrony

Проверяем:

  1. Настройка NTP клиентов:

*HQ-SRV, BR-SRV, BR-RTR, HQ-CLI*

Установим пакет chrony:

apt install -y chrony

Приводим конфигурационный файл "chrony.conf" к следующему виду:

nano /etc/chrony/chrony.conf

где: 192.168.100.1 - IPv4 адрес HQ-R;

Запускаем и добавляем в автозагрузку службу chronyd:

systemctl enable --now chrony

на cli chronyd

systemctl restart chrony

на cli chronyd

Проверяем с клиента HQ-SRV:

Проверяем с сервера HQ-R:

BR-R | BR-SRV | CLI: Настройка аналогична HQ-SRV - за исключением указания соответствующих адресов

РЕКОМЕНДАЦИЯ: НА HQ-SRV скачиваем: apt install -y git

4. Сконфигурируйте ansible на сервере BR-SRV

(СДЕЛАЙ SNAPSHOT НА BR-SRV)

  • Сформируйте файл инвентаря, в инвентарь должны входить HQSRV, HQ-CLI, HQ-RTR и BR-RTR
  • Рабочий каталог ansible должен располагаться в /etc/ansible
  • Все указанные машины должны без предупреждений и ошибок отвечать pong на команду ping в ansible посланную с BR-SRV

*BR-SRV*

  1. Установите Ansible (если он еще не установлен):

apt update && apt install ansible -y

  1. Создание рабочего каталога Ansible

Ansible обычно уже использует /etc/ansible как рабочий каталог, но если его нет, создайте его вручную:

  1. Создание файла инвентаря

Создайте инвентарь файла : /etc/ansible/hosts. Откройте файл /etc/ansible/hosts для редактирования:

ВНИМАНИЕ: НУЖНО УБРАТЬ порт 2024 и пользователя sshuser у CLI

  1. Настройка SSH-доступа к машинам

Для того чтобы Ansible мог управлять машинами без необходимости ввода пароля, настройте SSH-доступ:


(ДОПОЛНЕНИЕ)

*HQ-CLI*

Для hq-cli нужно установить ssh службу: apt-get install -y openssh-server

Перезагружаем ssh на hq-cli: systemctl restart sshd

Для того чтобы зайти в конфиг ssh на альт линукс(cli) нужно ввести команду: nano /etc/openssh/sshd_config


Скопируйте SSH-ключ на всех машинах в инвентаре : Выполните эту команду для каждой машины, чтобы разрешить безпарольный доступ:

ВНИМАНИЕ: НУЖНО УБРАТЬ порт 2024 и пользователя sshuser у CLI

  1. Проверка подключения в Ansible

Выполните команду "ansible all -m ping" для проверки соединения со всеми хостами из инвентаря файла:

РЕКОМЕНДАЦИЯ: НА HQ-SRV скачиваем: git clone git://git.moodle.org/moodle.git

5. Развертывание приложений в Docker на сервере BR-SRV.

  • Создайте в домашней директории пользователя файл wiki.yml для приложения MediaWiki.
  • Средствами docker compose должен создаваться стек контейнеров с приложением MediaWiki и базой данных.
  • Используйте два сервиса
  • Основной контейнер MediaWiki должен называться wiki и использовать образ mediawiki
  • Файл LocalSettings.php с корректными настройками должен находиться в домашней папке пользователя и автоматически монтироваться в образ.
  • Контейнер с базой данных должен называться mariadb и использовать образ mariadb (субд).
  • Разверните
  • Он должен создавать базу с названием mediawiki, доступную по стандартному порту, пользователя wiki с паролем WikiP@ssw0rd должен иметь права доступа к этой базе данных
  • MediaWiki должна быть доступна извне через порт 8080.

*BR-SRV*

  1. Скачиваем докер:

apt install -y docker.io docker-compose

  1. Включаем и добавляем в автозагрузку службу docker:

systemctl enable --now docker.service

  1. В домашней директории пользователя root создаём файл wiki.yml со следующим содержимым:

nano ~/wiki.yml

где:

  • services — основной раздел, где мы будем создавать и описывать наши сервисы (контейнеры docker). В данном примере сервиса два: MediaWiki - для приложения mediawiki и database - для базы данных; container_name — имя, которое получит созданный контейнер;
  • image — имя образа, который будет использоваться для создания контейнера;
  • restart поведения контейнера при падении;
  • ports (внешняя публикация). С помощью данной опции мы можем указывать, на каких портах должен слушать контейнер и на какие порты должны пробрасываться запросы
  • environment — задаем переменные окружения;
  • volumes - проброс папок;
  • links - ссылайтесь на контейнеры в другом сервисе. Укажите либо имя сервиса, либо псевдоним ссылки (SERVICE:ALIAS)

apt install y mariadb-*

P.S. После первоначальной настройки через Web-интерфейс с CLI загрузите LocalSettings.php в тот же каталог, что и эта wiki.yml и раскомментируйте следующую строку "# - ./LocalSettings.php:/var/www/html/LocalSettings.php" и используйте docker-compose для перезапуска службы mediawiki

  1. Чтобы отдельный volume для хранения базы данных имел правильное имя - создаём его средствами docker:

docker volume create dbvolume

  1. Выполняем сборку и запуск стека контейнеров с приложением MediaWiki и базой данных описанных в файле wiki.yml:

docker-compose -f wiki.yml up -d

Проверяем:

*HQ-CLI*

su -

echo “192.168.200.2 wiki.au-team.irpo mediawiki” >> /etc/hosts

  1. Переходим в браузер http://wiki.au-team.irpo:8080/ для продолжения установки через веб-интерфейс - нажимаем set up the wiki:

  1. Выбираем необходимый Язык - нажимаем Далее:

  1. После успешной проверки внешней среды - нажимаем Далее:

  1. Заполняем параметры подключение к Базе Данных в соответствие с заданными переменными окружения в wiki.yml, которые соответствуют требованиям задания:

Пример заполнения:

Хост базы данных: db
Имя базы данных: mediawiki
Имя пользователя базы данных: wiki
Пароль базы данных: WikiP@ssw0rd

  1. Заполняем необходимые сведения:

  1. После чего будет автоматически скачен файл LocalSettings.php - который необходимо передать на BR-SRV в домашнюю директорию пользователя root туда же где лежит wiki.yml:

  1. Забираем файл LocalSettings.php с CLI:

*HQ-CLI:*

*BR-SRV:

Перемещаем в домашнюю директорию пользователя /root:

Проверяем:


Прямой поиск файла поиск файла LocalSettings.php командой find:

find / -name LocalSettings.php 2>/dev/null

Команда "ls"(list) показывает файлы и директории в текущем каталоге.
Команда "pwd" показывает каталоr в котором ты находишься.


Перезапускаем сервисы средствами docker-compose:

docker-compose -f wiki.yml stop
docker-compose -f wiki.yml up -d

*Снова HQ-CLI:*

  1. Проверяем доступ к http://wiki.au-team.irpo:8080

  1. Вход, в моем случае, из под пользователя admin с паролем P@ssw0rddd

6. На маршрутизаторах сконфигурируйте статическую трансляцию портов

  • Пробросьте порт 80 в порт 8080 на BR-SRV на маршрутизаторе BR-RTR, для обеспечения работы сервиса wiki
  • Пробросьте порт 2024 в порт 2024 на HQ-SRV на маршрутизаторе HQ-RTR
  • Пробросьте порт 2024 в порт 2024 на BR-SRV на маршрутизаторе BR-RTR

*BR-RTR*

*HQ-RTR*

7. Запустите сервис moodle на сервере HQ-SRV

  • Используйте веб-сервер apache
  • В качестве системы управления базами данных используйте mariadb
  • Создайте базу данных moodledb
  • Создайте пользователя moodle с паролем P@ssw0rd и предоставьте ему права доступа к этой базе данных
  • У пользователя admin в системе обучения задайте пароль P@ssw0rd
  • На главной странице должен отражаться номер рабочего места в виде арабской цифры, других подписей делать не надо
  • Основные параметры отметьте в отчёт

*HQ-SRV*

> !По сути у нас уже все скачено!

Устанавливаем веб-сервер Apache2 и необходимые пакеты:

apt install -y apache -y*

Устанавливаем PHP и необходимые модули:

apt install -y php php8.2 php-curl php-zip php-xml libapache2-mod-php php-mysql php-mbstring php-gd php-intl php-soap -y

Установка СУБД MySQL:

apt install -y mariadb- -y*

!По сути у нас уже все скачено!

Включаем и добавляем в автозагрузку MySQL:

systemctl enable --now mariadb
systemctl enable --now apache2

Подключаемся к MySQL, создаём базу данных и пользователя:
имя базы даных - " moodledb ";
имя пользователя - "moodle", пароль "P@ssw0rd";

**mysql
> CREATE DATABASE moodledb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
> CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'P@ssw0rd';
> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER ON moodle. TO 'moodle'@'localhost';

> EXIT;


Если вдруг в веб при вводе данных параметров базы данных будет вылазить ошибка данной базы данных не существует, данному пользователю не даны права на создание базы данных, то удаляем их и создаем заново:

>DROP DATABASE moodledb; >DROP USER 'moodle'@'localhost';


Устанавливаем git, чтобы можно было скачать проект Moodle:

!По сути у нас уже все скачено!

apt install -y git

Загружаем код проекта Moodle:

git clone git://git.moodle.org/moodle.git

!По сути у нас уже все скачено!

Переходим в загруженный каталог moodle:

cd moodle

Извлекаем список каждой доступной ветви:

git branch -a

Сообщаем git, какую ветку отслеживать или использовать:

git branch --track MOODLE_403_STABLE origin/MOODLE_403_STABLE

проверяем:

git checkout MOODLE_403_STABLE

Копируем локальный репозиторий в /var/www/html/:

cd ..
cp -R moodle /var/www/html

Создаём необходимую структуру каталагов для корректной установки и работы Moodle:

mkdir /var/moodledata
chown -R www-data /var/moodledata
chmod -R 777 /var/moodledata
chmod -R 0755 /var/www/html/moodle
chown -R www-data:www-data /var/www/html/moodle

Описываем конфигурационный файл для веб-сервера Apache:

nano /etc/apache2/sites-available/moodle.conf

где:

  • ServerName - основное имя домена
  • ServerAlias - дополнительное имя, по которому будет доступен сайт
  • DocumentRoot - путь до проекта для этого домена
  • AllowOverride All - когда сервер находит .htaccess файл (как определено AccessFileName) ему необходимо знать какие директивы, объявленные в том файле могут отменять ранее утановленную информацию доступа. Эта директива может быть установлена в None, т.е. чтобы сервер не читал файл .htaccess. Если она установленна в All - сервер будет допускать все директивы .htaccess файла.
  • Options -Indexes +FollowSymLinks - означает, что если каталог является символьной ссылкой, перейдите по ссылке

Создаём символьную ссылку из sites-available на sites-enabled:

ln -s /etc/apache2/sites-available/moodle.conf /etc/sites-enabled

Проверяем синтаксис файла виртуального хоста: apachectl configtest

Правим количество входных переменных, которые могут быть приняты в одном запросе, для работы Moodle - необходимо 5000, а значение в php.ini по умолчанию 1000:

Проверяем:

nano /etc/php/8.2/apache2/php.ini

Перезагружаем apache:

systemctl restart apache2

*HQ-CLI*

После можно переходить в браузер для установки Moodle по http://<IP | domain-name>/install.php

  1. Перед тем как зайти на сайт в hq-cli в файле /etc/hosts прописываем следующее:

192.168.100.2 moodle.au-team.irpo moodle

  1. Открываем firefox переходим на http://moodle.au-team.irpo/moodle
  • выбираем Язык - нажимаем "Далее":

  1. Подтверждаем пути - правим Каталог данных (в соответствии с созданной ранее директорией - /var/moodledata) - нажимаем "Далее":

  1. Выбираем драйвер баз данных MariaDB - нажимаем "Далее":

  1. Заполняем параметры ранее созданной Базы данных - "пользователя БД, пароль и порт":

СЕРВЕР БАЗ ДАННЫХ (ХОСТ) localhost
НАЗВАНИЕ БАЗЫ ДАННЫХ moodle
ПОЛЬЗОВАТЕЛЬ БАЗЫ ДАННЫХ moodle
ПАРОЛЬ P@ssw0rd

  1. нажимаем - "Продолжить":

  1. Нажимаем - "Продолжить": не обращаем внимание на то, что у нас не настроен https

РЕКОМЕНДАЦИЯ: пока идет долгая установка делаем nginx на hq-rtr, он идет сразу после moodle

  1. заполняем необходимые сведения и нажимаем - "Обновить профиль":

  1. Заполняем необходимые сведения и нажимаем - "Сохранить изменения":

8. Настройте веб-сервер nginx как обратный прокси-сервер на HQ-RTR

  • При обращении к HQ-RTR по доменному имени moodle.au-team.irpo клиента должно перенаправлять на HQ-SRV на стандартный порт, на сервис moodle
  • При обращении к HQ-RTR по доменному имени wiki. au-team.irpo клиента должно перенаправлять на BR-SRV на порт, на сервис mediwiki

*HQ-RTR*

  1. Установите Nginx

apt install nginx -y

Запустите и активируйте Nginx:

systemctl start nginx
systemctl enable nginx

  1. Настройка Nginx как обратного прокси

Создадим конфигурационный файл для сайта в Nginx, в котором настроим виртуальные хосты:

Добавьте конфигурацию для проксирования запросов в файл reverse-proxy.conf:

Сохраните файл и закройте редактор.

Создайте символическую ссылку на этот файл в папке sites-enabled для активации конфигурации:

Проверьте конфигурацию Nginx на наличие синтаксических ошибок:

> на hq-rtr в файле /etc/resolv.conf должно быть прописано dns 192.168.100.2

Если конфигурация правильная, вы увидите сообщение syntax is ok.

Перезагрузите Nginx, чтобы применить изменения:

systemctl reload nginx

9. Удобным способом установите приложение Яндекс Браузере для организаций

*HQ-CLI*

ПРИМЕЧАНИЕ: Установку браузера отметьте в отчёте

МОДУЛЬ 3

(1,2 заданий не будет, 7ое задание будет)

3. Перенастройте ip-туннель с базового до уровня туннеля, обеспечивающего шифрование трафика

*HQ-RTR*

  1. Для начала необходимо установить пакет на наш роутер HQ-RTR:

apt update
apt install strongswan

  1. Конфигурация IPsec:

На обоих роутерах отредактируйте файл /etc/ipsec.conf, добавив следующее:

Далее нужно настроить файл ipsec.secrets. Вносим туда строку:

172.16.4.2 172.16.5.2 : PSK “123qweR%”

Ещё один конфиг charon.conf, открываем его b редактируем в нём следующую строку, приводя к виду:

install_routes = no

И осталось только перезагрузить службу ipsec:

ipsec restart

*BR-RTR*

  1. Для начала необходимо установить пакет на наш роутер BR-RTR:

apt update
apt install strongswan

  1. Конфигурация IPsec:

На обоих роутерах отредактируйте файл /etc/ipsec.conf, добавив следующее:

Далее нужно настроить файл ipsec.secrets. Вносим туда строку:

172.16.5.2 172.16.4.2 : PSK “123qweR%”

Ещё один конфиг charon.conf, открываем его и редактируем в нём следующую строку, приводя к виду:

install_routes = no

И осталось только перезагрузить службу ipsec:

ipsec restart

  1. Также можно проверить передаются ли зашифрованные пакеты по сети, для этого нам пригодится утилита tcpdump:

apt install tcpdump

И теперь мы можем проверить это, пропишем на роутере BR-RTR команду:

tcpdump -i eth18 -n -p esp

А на роутере HQ-RTR отправим эхо-запрос на порту в сторону branch:

ping 192.168.200.2

Как можно заметить, на правом роутере мы видим зашифрованные пакеты с меткой ESP:

Если IPsec настроен правильно, вы должны видеть защищённый трафик между вашими серверами.

4. Настройте межсетевой экран на маршрутизаторах HQ-RTR и BR-RTR на сеть в сторону ISP

Для выполнения этого задания нам нужно обеспечить работу только нужных протоколов, а именно: HTTP, HTTPS, DNS, NTP, ICMP. А также запретить остальные подключения из сети Интернет во внутреннюю сеть.

*HQ-RTR*

Отредактируем nftables под текст задания:

Не забываем применять:

*BR-RTR *

И проверим, не отвалился ли туннель ipsec после настройки правил на HQ-RTR:

ipsec status

Видим, что соединение установлено и всё хорошо!

Проверим также наличие связи между конечными устройствами, отправим эхо-запрос с HQ-CLI на BR-SRV:

ping 192.168.200.2

Связь есть, всё отлично! Задание выполнено!

5. Настройте принт-сервер cups на сервере HQ-SRV.

  1. Для начала необходимо установить пакеты cups и cups-pdf на HQ-SRV:

Теперь необходимо включить службу cups, чтобы она запускалась вместе с системой:

systemctl enable now cups

Далее, необходимо отредактировать конфиг /etc/cups/cupsd.conf

Во всех блоках Location необходимо добавить строку Allow all, как на скриншоте

Перезапускаем службу cups для применения изменений:

systemctl restart cups

  1. Переходим к подключению клиента HQ-CLI

Скачиваем cups:

apt-get install cups cups-pdf -y

На HQ-CLI выполняем следующую команду для подключения к принт-серверу:

lpadmin -p CUPS -E -v ipp://hq-srv.au-team.irpo:631/printers/PDF -m everywhere

Установим принтер CUPS, как принтер по умолчанию:

lpoptions -d CUPS

Как можно заметить, принтер CUPS успешно подключен.

Из-за того, что на HQ-CLI также установлен принт-сервер, можно отключить локальный принтер “Cups-PDF”, чтобы он не мешал.

lpadmin -x Cups-PDF

Теперь у нас остался один принтер. Проверим его работу. Откроем любой текстовый документ и попробуем его распечатать.

Перейдем в веб-интерфейс CUPS по адресу https://hq-srv.au-team.irpo:631

  • Вкладка Принтеры
  • Выбираем наш принтер.
  • Жмем кнопку Показать все задания

6. Реализуйте логирование при помощи rsyslog на устройствах HQ-RTR, BR-RTR, BR-SRV

  1. Сперва необходимо настроить наш сервер для сбора логов.

Установим пакет rsyslog на HQ-SRV:

apt install rsyslog

Далее, отредактируем файл конфигурации, расположенный по пути /etc/rsyslog.conf:

Для передачи логов будем использовать протокол TCP, поэтому раскомментируем (уберем #) модуль imtcp, чтобы rsyslog мог получать логи с удаленных узлов.

Также необходимо в конец конфига добавить шаблон для сбора логов, чтобы rsyslog сохранял логи по пути, который указан в задании.

Включаем службу rsyslog, чтобы она запускалась вместе с системой и перезапускаем ее для применения изменений:

systemctl enable rsyslog
systemctl restart rsyslog

Сервер для приема логов настроен

  1. Переходим к настройке клиентов. Начнем с роутеров.

Установим пакет rsyslog на HQ-RTR:

Далее, отредактируем файл конфигурации, расположенный по пути /etc/rsyslog.conf:

В блоке MODULES необходимо раскомментировать модули, которые обеспечивают поддержку логирования. (Все кроме модуля imuxsock, потому что вместо него будет использован модуль imjournal). Модуль imjournal придется дописать вручную.

Теперь опускаемся в самый низ конфига, там расположены правила.

Добавляем в самый конец строку, которая отвечает за отправку логов уровня предупреждения (warning) и выше:

*.warning @@192.168.100.2:514

Теперь перезапускаем службу rsyslog, чтобы применить изменения.

systemctl restart rsyslog

НА BR-RTR НУЖНО ПОВТОРИТЬ АНАЛАГИЧНО.

  1. Продолжаем настройку клиентов на BR-SRV

Установим на BR-SRV пакет rsyslog:

apt install rsyslog

Далее, отредактируем файл конфигурации, расположенный по пути /etc/rsyslog.conf:

Здесь также необходимо раскомментировать модули imjournal, imklog, immark

И добавить строку в конец конфига для того, чтобы логи отправлялись на сервер.

Включаем службу rsyslog, чтобы она запускалась вместе с системой и перезапускаем ее для применения изменений:

systemctl enable rsyslog
systemctl restart rsyslog

  1. За время пока выполнялась настройка клиентов уже должны появиться логи, проверим каталог /opt на HQ-SRV:

Как можно заметить, были автоматически созданы каталоги с именами клиентов. В каждом из них есть файл rsyslog.txt

Проверим, что логируются только сообщения уровня warning и выше.

Добавим несколько записей различного уровня в лог на любом из клиентов, например на BR-SRV, командами:

logger -p user.info “Test info”

logger -p user.warning “Test warning”

сообщения уровня warning:

logger -p user.error “Test error”

сообщения уровня error:

Теперь проверим на HQ-SRV содержимое файла /opt/br-srv/rsyslog.txt:

Как можно заметить, здесь появились только сообщения уровня warning и error.

  1. Перейдем к настройке ротации логов. На HQ-SRV создадим файл /etc/logrotate.d/rsyslog Запишем в него следующее содержимое:

Настройка ротации на этом закончена, каждую неделю будут проверяться логи и если какие-то из них больше 10МБ, они будут сжаты в архив.

8. Реализуйте механизм инвентаризации машин HQ-SRV и HQ-CLI через Ansible на BR-SRV

  1. Для начала необходимо создать каталог, в котором будут размещены отчеты о рабочих местах:

mkdir /etc/ansible/PC_INFO

  1. Далее, создадим плейбук /etc/ansible/inventory.yml:

со следующим содержимым:

  1. Проверим работу, командой:

ansible-playbook /etc/ansible/inventory.yml

Ansible помечает результат как changed, так как фактическое состояние системы меняется. При первом запуске плейбука это ожидаемое поведение. Если запустить плейбук ещё раз, то Ansible покажет для тех же задач статус ok, потому что требуемое состояние уже достигнуто и ничего менять не нужно.

  1. Проверим наличие и содержимое, созданных отчетов:

ls -la /etc/ansible/PC_INFO
cat /etc/ansible/PC_INFO/hq-cli.yml
cat /etc/ansible/PC_INFO/hq-srv.yml

Как можно заметить, отчеты созданы и содержат необходимую информацию. Задание выполнено.

9. Реализуйте механизм резервного копирования конфигурации для машин HQ-RTR и BR-RTR, через Ansible на BR-SRV