70 KiB
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:
- Создание файловой системы и настройка монтирования
Создайте раздел и отформатируйте его в ext4:
Создайте точку монтирования и настройте автоматическое монтирование в /etc/fstab:
Смонтируйте файловую систему:
- Настройка NFS-сервера на HQ-SRV
Установите NFS-сервер (если он еще не установлен):
Создайте директорию для общего доступа:
Настройте права доступа для общей папки:
Настройте экспорт NFS для всей сети с разрешением на чтение и запись.
Откройте файл /etc/exports и добавьте строку:
Примените изменения в конфигурации NFS:
Перезапустите NFS-сервер:
ПРИМЕЧАНИЕ Основные параметры сервера отметьте в отчёте
- Настройка автомонтирования на 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
- Настройка 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
Проверяем:
- Настройка 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*
- Установите Ansible (если он еще не установлен):
apt update && apt install ansible -y
- Создание рабочего каталога Ansible
Ansible обычно уже использует /etc/ansible как рабочий каталог, но если его нет, создайте его вручную:
- Создание файла инвентаря
Создайте инвентарь файла : /etc/ansible/hosts. Откройте файл /etc/ansible/hosts для редактирования:
ВНИМАНИЕ: НУЖНО УБРАТЬ порт 2024 и пользователя sshuser у CLI
- Настройка 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
- Проверка подключения в 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*
- Скачиваем докер:
apt install -y docker.io docker-compose
- Включаем и добавляем в автозагрузку службу docker:
systemctl enable --now docker.service
- В домашней директории пользователя 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
- Чтобы отдельный volume для хранения базы данных имел правильное имя - создаём его средствами docker:
docker volume create dbvolume
- Выполняем сборку и запуск стека контейнеров с приложением 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
- Переходим в браузер http://wiki.au-team.irpo:8080/ для продолжения установки через веб-интерфейс - нажимаем set up the wiki:
- Выбираем необходимый Язык - нажимаем Далее:
- После успешной проверки внешней среды - нажимаем Далее:
- Заполняем параметры подключение к Базе Данных в соответствие с заданными переменными окружения в wiki.yml, которые соответствуют требованиям задания:
Пример заполнения:
Хост базы данных: db
Имя базы данных: mediawiki
Имя пользователя базы данных: wiki
Пароль базы данных: WikiP@ssw0rd
- Заполняем необходимые сведения:
- После чего будет автоматически скачен файл LocalSettings.php - который необходимо передать на BR-SRV в домашнюю директорию пользователя root туда же где лежит wiki.yml:
- Забираем файл 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:*
- Проверяем доступ к http://wiki.au-team.irpo:8080
- Вход, в моем случае, из под пользователя 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
- Перед тем как зайти на сайт в hq-cli в файле /etc/hosts прописываем следующее:
192.168.100.2 moodle.au-team.irpo moodle
- Открываем firefox переходим на http://moodle.au-team.irpo/moodle
- выбираем Язык - нажимаем "Далее":
- Подтверждаем пути - правим Каталог данных (в соответствии с созданной ранее директорией - /var/moodledata) - нажимаем "Далее":
- Выбираем драйвер баз данных MariaDB - нажимаем "Далее":
- Заполняем параметры ранее созданной Базы данных - "пользователя БД, пароль и порт":
СЕРВЕР БАЗ ДАННЫХ (ХОСТ) localhost
НАЗВАНИЕ БАЗЫ ДАННЫХ moodle
ПОЛЬЗОВАТЕЛЬ БАЗЫ ДАННЫХ moodle
ПАРОЛЬ P@ssw0rd
- нажимаем - "Продолжить":
- Нажимаем - "Продолжить": не обращаем внимание на то, что у нас не настроен https
РЕКОМЕНДАЦИЯ: пока идет долгая установка делаем nginx на hq-rtr, он идет сразу после moodle
- заполняем необходимые сведения и нажимаем - "Обновить профиль":
- Заполняем необходимые сведения и нажимаем - "Сохранить изменения":
8. Настройте веб-сервер nginx как обратный прокси-сервер на HQ-RTR
- При обращении к HQ-RTR по доменному имени moodle.au-team.irpo клиента должно перенаправлять на HQ-SRV на стандартный порт, на сервис moodle
- При обращении к HQ-RTR по доменному имени wiki. au-team.irpo клиента должно перенаправлять на BR-SRV на порт, на сервис mediwiki
*HQ-RTR*
- Установите Nginx
apt install nginx -y
Запустите и активируйте Nginx:
systemctl start nginx
systemctl enable nginx
- Настройка 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*
- Для начала необходимо установить пакет на наш роутер HQ-RTR:
apt update
apt install strongswan
- Конфигурация 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*
- Для начала необходимо установить пакет на наш роутер BR-RTR:
apt update
apt install strongswan
- Конфигурация IPsec:
На обоих роутерах отредактируйте файл /etc/ipsec.conf, добавив следующее:
Далее нужно настроить файл ipsec.secrets. Вносим туда строку:
172.16.5.2 172.16.4.2 : PSK “123qweR%”
Ещё один конфиг charon.conf, открываем его и редактируем в нём следующую строку, приводя к виду:
install_routes = no
И осталось только перезагрузить службу ipsec:
ipsec restart
- Также можно проверить передаются ли зашифрованные пакеты по сети, для этого нам пригодится утилита 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.
- Для начала необходимо установить пакеты cups и cups-pdf на HQ-SRV:
Теперь необходимо включить службу cups, чтобы она запускалась вместе с системой:
systemctl enable –now cups
Далее, необходимо отредактировать конфиг /etc/cups/cupsd.conf
Во всех блоках Location необходимо добавить строку Allow all, как на скриншоте
Перезапускаем службу cups для применения изменений:
systemctl restart cups
- Переходим к подключению клиента 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
- Сперва необходимо настроить наш сервер для сбора логов.
Установим пакет rsyslog на HQ-SRV:
apt install rsyslog
Далее, отредактируем файл конфигурации, расположенный по пути /etc/rsyslog.conf:
Для передачи логов будем использовать протокол TCP, поэтому раскомментируем (уберем #) модуль imtcp, чтобы rsyslog мог получать логи с удаленных узлов.
Также необходимо в конец конфига добавить шаблон для сбора логов, чтобы rsyslog сохранял логи по пути, который указан в задании.
Включаем службу rsyslog, чтобы она запускалась вместе с системой и перезапускаем ее для применения изменений:
systemctl enable rsyslog
systemctl restart rsyslog
Сервер для приема логов настроен
- Переходим к настройке клиентов. Начнем с роутеров.
Установим пакет rsyslog на HQ-RTR:
Далее, отредактируем файл конфигурации, расположенный по пути /etc/rsyslog.conf:
В блоке MODULES необходимо раскомментировать модули, которые обеспечивают поддержку логирования. (Все кроме модуля imuxsock, потому что вместо него будет использован модуль imjournal). Модуль imjournal придется дописать вручную.
Теперь опускаемся в самый низ конфига, там расположены правила.
Добавляем в самый конец строку, которая отвечает за отправку логов уровня предупреждения (warning) и выше:
*.warning @@192.168.100.2:514
Теперь перезапускаем службу rsyslog, чтобы применить изменения.
systemctl restart rsyslog
НА BR-RTR НУЖНО ПОВТОРИТЬ АНАЛАГИЧНО.
- Продолжаем настройку клиентов на BR-SRV
Установим на BR-SRV пакет rsyslog:
apt install rsyslog
Далее, отредактируем файл конфигурации, расположенный по пути /etc/rsyslog.conf:
Здесь также необходимо раскомментировать модули imjournal, imklog, immark
И добавить строку в конец конфига для того, чтобы логи отправлялись на сервер.
Включаем службу rsyslog, чтобы она запускалась вместе с системой и перезапускаем ее для применения изменений:
systemctl enable rsyslog
systemctl restart rsyslog
- За время пока выполнялась настройка клиентов уже должны появиться логи, проверим каталог /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.
- Перейдем к настройке ротации логов. На HQ-SRV создадим файл /etc/logrotate.d/rsyslog Запишем в него следующее содержимое:
Настройка ротации на этом закончена, каждую неделю будут проверяться логи и если какие-то из них больше 10МБ, они будут сжаты в архив.
8. Реализуйте механизм инвентаризации машин HQ-SRV и HQ-CLI через Ansible на BR-SRV
- Для начала необходимо создать каталог, в котором будут размещены отчеты о рабочих местах:
mkdir /etc/ansible/PC_INFO
- Далее, создадим плейбук /etc/ansible/inventory.yml:
со следующим содержимым:
- Проверим работу, командой:
ansible-playbook /etc/ansible/inventory.yml
Ansible помечает результат как changed, так как фактическое состояние системы меняется. При первом запуске плейбука это ожидаемое поведение. Если запустить плейбук ещё раз, то Ansible покажет для тех же задач статус ok, потому что требуемое состояние уже достигнуто и ничего менять не нужно.
- Проверим наличие и содержимое, созданных отчетов:
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














































































































































































































