# laba/Вариант 1
##
МОДУЛЬ 1
Задание :
Необходимо разработать и настроить инфраструктуру информационно коммуникационной системы согласно предложенной топологии (см. Рисунок 1). Задание включает базовую настройку устройств:
- присвоение имен устройствам,
- расчет IP-адресации,
- настройку коммутации и маршрутизации.
В ходе проектирования и настройки сетевой инфраструктуры следует вести отчет о своих действиях, включая таблицы и схемы, предусмотренные в задании. Итоговый отчет должен содержать одну таблицу и пять отчетов о ходе работы. Итоговый отчет по окончании работы следует сохранить на диске рабочего места
Чтобы зайти на стенд для 1 модуля.
User name: m1
Password: modul1
Перед включением виртуалок Настроим вланы. По заданию HQ-SRV в 100 влане, а HQ-CLI в 200. По сути они уже преднастроены, Но можно проверить.
> **Примечание:**
> Основные сведения о настройке коммутатора и выбора реализации разделения на VLAN занесите в отчёт
>**Примечание:**
>Номер 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*
Произведем те же манипуляции
Применяем:
***sysctl -p***
Прокинем PAT так, как по приколу тачки, что подключены к роутеру пинговать инет не будут.
***nano /etc/nftables.conf***
> **РЕКОМЕНДАЦИЯ:**
> ПОКА 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 - "P@ssw0rd"
- Идентификатор пользователя 2026
- Пользователь sshuser должен иметь возможность запускать sudo без дополнительной аутентификации
*HQ-SRV и BR-SRV*
В дебиане нету судо поэтому скачаем:
НА BR-SRV СДЕЛАЙТЕ ТОЖЕ САМОЕ
Создайте пользователя net_admin на маршрутизаторах HQ-RTR и BR-RTR
- Пароль пользователя net_admin - "P@ssw0rd"
- При настройке на EcoRouter пользователь net_admin должен обладать максимальными привилегиями
- При настройке ОС на базе Linux, запускать sudo без дополнителььной аутентификации
*HQ-RTR и BR-RTR*
В дебиане нет sudo поэтому скачаем
СДЕЛАЙТЕ ТОЖЕ САМОЕ НА BR-RTR
### Настройка безопасного удаленного доступа на серверах HQ-SRV и BR-SRV:
- Для подключения используйте порт 2026
- Разрешите подключения только пользователю 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-сервера прописываем всем машинам -"HQ-SRV, HQ-RTR, BR-RTR, BR-SRV", кроме HQ-CLI (так как настроили для него dhcp) в /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: module2
### 1. Настройте доменный контроллер Samba на машине BR-SRV.
**(СДЕЛАТЬ СРАЗУ 3 СНАПШОТА НА BR-SRV(samba), HQ-CLI(Active Directory), HQ-SRV(mdadm))
**
- Создайте 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 && apt-get install -y openssh-server
> НА CLI: systemctl restart sshd.
> НА HQ-SRV: apt update && apt install mdadm -y
Появится синее окно, не пугайтесь, так и должно быть. В первом окне вводим имя домена au-team.irpo, а во втором — имя нашего сервера hq-srv
Удаляем докер:
>**ip link delete docker0;***
- Проверяем что установлено имя в формате FQDN;
- Задаём domainname;
- Очищаем конфигурацию samba;
- Разворачиваем контроллер домена Active Directory на базе SambaDC с Dnsmasq в качестве DNS
Подготовка домена: Samba-tool --realm=au-team.irpo --domain=au-team –adminpass=”P@ssw0rd” --dnsbackend=SAMBA_INTERNAL --option=”dns forwrder=192.168.100.2” --server-role=dc
>ВЫ МОЖЕТЕ НАПИСАТЬ ТОЛЬКО «Samba-tool domain provision», А ОСТАЛЬНОЕ ОНО СПРОСИТ САМО
Как видим че то не так, надо перезапустить машинку:
***systemctl restart samba***
Проверяем:
> **Обязательно:**
> ВВОДИМ МАШИНУ обратно В ДОМЕН:
> 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 && 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
В качестве проверки после перезагрузки можно выполнить аутентификацию от имени доменного пользователя Administrator:
Организуем отслеживание подключения к домену: CLI: На клиенте с граф. интерфейсом установим Модуль удаленного управления базой данных конфигурации (ADMC) • Установим пакет admc:
***apt-get install -y admc***
Для использования ADMC необходимо предварительно получить ключ Kerberos для администратора домена. Получить ключ Kerberos можно, например, выполнив следующую команду, из под обычного пользователя:
***kinit Administrator***
ADMC запускается из меню запуска приложений: пункт «Системные» → ADMC или из командной строки (команда admc).
_____________________________________________________________________________________
Если admc долго не может запуститься(не выдает ошибок, но не запускается), то внесите изменения в файл /etc/krb5.conf
_____________________________________________________________________________________
На вкладке «Компьютеры» в графическом режиме удобно отслеживать подключение к домену.
Создаем пять юзеров(формата: hquser-1, hquser-2):
Создаем группу hq и в нее добавляем раннее созданных пользователей
Пользователи группы hq должны иметь возможность повышать привилегии для выполнения ограниченного набора команд: cat, grep, id. Запускать другие команды с повышенными привилегиями пользователи группы не имеют права
*CLI*
Настройте файл */etc/sudoers* на рабочей станции Linux, как описано в предыдущем ответе, используя синтаксис для доменных групп:
***%hq ALL=(ALL) NOPASSWD: /bin/cat, /bin/grep, /usr/bin/id***
### 2. Сконфигурируйте файловое хранилище
(СДЕЛАТЬ SNAPSHOT, если не сделали, на HQ-SRV)
- При помощи двух подключенных к серверу дополнительных дисков размером 1 Гб сконфигурируйте дисковый массив уровня 0
- Имя устройства – md0, при необходимости конфигурация массива размещается в файле /etc/mdadm.conf
- Создайте раздел, отформатируйте раздел, в качестве файловой системы используйте ext4
- Обеспечьте автоматическое монтирование в папку /raid
Подготовка дисков
*HQ-SRV*
Убедитесь, что дополнительные диски распознаны системой. Список подключенных дисков можно проверить командой:
Создайте RAID 0 массив из двух 1Гб дисков (предположим, они определены как /dev/sda, /dev/sdb:
Скачаем службу mdadm:
Создание RAID-массива:
где:
/dev/md0 — устройство RAID, которое появится после сборки;
-l 0 — уровень RAID;
-n 2 — количество дисков, из которых собирается массив;
/dev/sd{b,c} — сборка выполняется из дисков sdb, sdc и sdd.
> mdadm --create --verbose /dev/md0 -l 0 -n 2 /dev/sda /dev/sdb
Результат:
Проверяем:
Сохраняем конфигурацию массива в файле /etc/mdadm.conf:
>mdadm --detail --scan --verbose | tee -a /etc/mdadm.conf
Результат:
Создание файловой системы для массива
>mkfs.ext4 /dev/md0
Результат:
Чтобы данный раздел также монтировался при загрузке системы, добавляем в fstab
>nano /etc/fstab
следующую информацию:
Выполняем монтирование:
>mount -av
Результат:
Проверяем:
>df -h
Результат:
### 3. Настройте сервер сетевой файловой системы (nfs) на HQ-SRV
- В качестве папки общего доступа выберите /raid/nfs, доступ для чтения и записи исключительно для сети в сторону HQ-CLI
- На HQ-CLI настройте автомонтирование в папку /mnt/nfs
- Основные параметры сервера отметьте в отчёте
*HQ-SRV*
Устанавливаем пакеты для NFS сервера:
>apt-get install -y nfs-server cifs-utils
Создаём директорию для общего доступа /raid/nfs, куда ранее был смонтирован RAID - массив:
>mkdir /raid0/nfs
Назначаем права на созданную директорию (полный доступ):
>chmod 777 /raid0/nfs
Редактируем файл /etc/exports:
>nano /etc/exports
Добавляем туда следующую информацию, где:
/raid/nfs - общий ресурс
192.168.200.0/24 - клиентская сеть, которой разрешено монтирования общего ресурса
rw — разрешены чтение и запись
no_root_squash — отключение ограничения прав root
Экспортируем файловую систему, указанную выше в /etc/exports:
> exportfs -arv
Результат:
exportfs с флагом -a, означающим экспортировать или отменить экспорт всех каталогов
-r означает повторный экспорт всех каталогов, синхронизируя /var/lib/nfs/etab с /etc/exports и файлами в /etc/exports.d
а флаг -v включает подробный вывод:
Запускаем и добавляем в автозагрузку NFS - сервер:
>update-initramfs -u
>systemctl enable --now nfs-server
*HQ-CLI*
Выполняем установку пакетов для NFS - клиента:
>apt-get update && apt-get install -y nfs-utils nfs-clients
Создадим директорию для монтирования общего ресурса:
>mkdir /mnt/nfs
Задаём права на созданную директорию:
>chmod 777 /mnt/nfs
Настраиваем автомонтирование общего ресурса через fstab:
>nano /etc/fstab
Добавляем следующую информацию:
где: 192.168.100.2 - адрес файлового сервера (HQ-SRV)
Выполняем монтирование общего ресурса:
>mount -av
Результат:
Проверяем:
>df -h
Результат:
### 4. Настройте службу сетевого времени на базе сервиса chrony
- В качестве сервера выступает ISP
- На ISP настройте сервер chrony, выберите стратум 5
- В качестве клиентов настройте HQ-SRV, HQ-CLI, BR-RTR, BR-SRV
1. Настройка NTP сервера:
*ISP*
Установим пакет chrony на каждой машине:
***apt update && 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***
Проверяем:
2. Настройка NTP клиентов:
*HQ-SRV, BR-SRV, BR-RTR, HQ-CLI*
Установим пакет chrony:
***apt install -y chrony***
Приводим конфигурационный файл "chrony.conf" к следующему виду:
***nano /etc/chrony/chrony.conf***
> На HQ-CLI /etc/chrony.conf
> где: 172.16.1.1 - IPv4 адрес ISP;
Запускаем и добавляем в автозагрузку службу chronyd:
systemctl enable --now chrony
> на cli chronyd
systemctl restart chrony
> на cli chronyd
Проверяем с клиента HQ-SRV:
Проверяем с сервера ISP :
> Не пугайтесь что там только два клиента, так и должно быть
BR-RTR | BR-SRV | CLI: Настройка аналогична HQ-SRV - за исключением указания соответствующих адресов
> **РЕКОМЕНДАЦИЯ:**
> НА HQ-SRV скачиваем: apt install -y git
> НА HQ-RTR скачиваем: apt install nginx -y
### 5. Сконфигурируйте ansible на сервере BR-SRV
(СДЕЛАЙ SNAPSHOT НА BR-SRV)
- Сформируйте файл инвентаря, в инвентарь должны входить HQ-SRV, HQ-CLI, HQ-RTR и BR-RTR
- Рабочий каталог ansible должен располагаться в /etc/ansible
- Все указанные машины должны без предупреждений и ошибок отвечать pong на команду ping в ansible посланную с BR-SRV
*BR-SRV*
1. Установите Ansible (если он еще не установлен):
***apt update && apt install ansible -y***
2. Создание рабочего каталога Ansible
Ansible обычно уже использует /etc/ansible как рабочий каталог, но если его нет, создайте его вручную:
3. Создание файла инвентаря
Создайте инвентарь файла : /etc/ansible/hosts. Открываем файл /etc/ansible/hosts
- Скачиваем файл с github, в нужную директорию:
> !dos2unix и curl на BR-SRV уже скачаны!
***curl -o /etc/ansible/hosts https://raw.githubusercontent.com/shiraorie/demo2026-1/main/files/hosts.file***
***dos2unix /etc/ansible/hosts***
- Проверяем его наличие:
4. Настройка 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-ключ на всех машинах в инвентаре : Выполните эту команду для каждой машины, чтобы разрешить безпарольный доступ:
> Дмитрий Игоревич забыл прописать порт 2026 в /etc/ssh/sshd_config на HQ-SRV и BR-SRV, так что прописываем за него и перезагружаем службу systemctl restart sshd
5. Проверка подключения в Ansible
Выполните команду "ansible all -m ping" для проверки соединения со всеми хостами из инвентаря файла:
### 6. Развертывание приложений в Docker на сервере BR-SRV.
-• Средствами docker должен создаваться стек контейнеров с веб
приложением и базой данных
• Используйте образы site_latestи mariadb_latestрасполагающиеся в
директории docker в образе Additional.iso
• Основной контейнер testapp должен называться tespapp
• Контейнер с базой данных должен называться db
• Импортируйте образы в docker, укажите в yaml файле параметры
подключения к СУБД, имя БД - testdb, пользователь testс паролем
P@ssw0rd, порт приложения 8080, при необходимости другие
параметры
• Приложение должно быть доступно для внешних подключений через
порт 8080
*BR-SRV*
1. Скачиваем докер:
***apt install -y docker.io docker-compose***
2. Включаем и добавляем в автозагрузку службу docker:
***systemctl enable --now docker.service***
3. Выполнить монтирование Additional.iso в директорию /mnt:
- Выполнить импорт образа mariadb_latest и site_latest:
>docker load < /mnt/docker/site_latest.tar
> docker load < /mnt/docker/mariadb_latest.tar
- Проверить:
- Скачиваем curl
- Скачиваем файл compose.yaml и помещаем его в корневую директорию:
>curl -o ~/compose.yaml https://raw.githubusercontent.com/shiraorie/demo2026-1/main/files/compose.yaml
- Запустить набор контейнеров с веб приложением и базой данных:
- Проверяем набор контейнеров с веб приложением и базой данных:
- Проверяем доступ до веб приложения с браузера:
### 7. Разверните веб приложениена сервере HQ-SRV:
- Используйте веб-сервер apache
- В качестве системы управления базами данных используйте mariadb
- Файлы веб приложения и дамп базы данных находятся в директории web
образа Additional.iso
- Выполните импорт схемы и данных из файла dump.sql в базу данных
webdb
66
- Создайте пользователя webс паролем P@ssw0rd и предоставьте ему
права доступа к этой базе данных
- Файлы index.php и директорию images скопируйте в каталог веб сервера
apache
- В файле index.php укажите правильные учётные данные для
подключения к БД
- Запустите веб сервер и убедитесь в работоспособности приложения
- Основные параметры отметьте в отчёте
*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***
Выполнить монтирование Additional.iso в директорию /mnt:
> mount /dev/sr0 /mnt/
Произвести копирование файлов веб приложения index.php и logo.png в директорию /var/www/html:
>cp /mnt/web/index.php /var/www/html
>cp /mnt/web/logo.png /var/www/html
В файле /var/www/html/index.php указать правильные учётные данные для подключения к БД:
> nano /var/www/html/index.php
Перейти в интерфейс управления MariaDB: <<Команды ниже не пытайтесь копировать и вставлять, все равно нечего не выйдет>>
>mariadb –u root
Создать базу данных с именем webdb:
>CREATE DATABASE webdb;
Создать пользователя webc с паролем P@ssw0rd:
>CREATE USER ‘webc’@’localhost’ IDENTIFIED BY ‘P@ssw0rd’;
Назначить пользователю webc полные права на базу данных webdb, после чего выйти из интерфейса управления MariaDB:
>GRANT ALL PRIVILEGES ON webdb.* TO ‘webc’@’localhost’ WITH GRANT OPTION;
EXIT;
Изменить кодировку файла
Выполнить импорт схемы и данных из файла dump.sql в базу данных webdb:
>mariadb –u webc –p –D webdb < ~/dump.sql
Проверить:
Удалить стандартную станицу
> rm /var/www/html/index.html
Включить и добавить в автозагрузку службу httpd2:
>systemctl enable --now apache2 &&
>systemctl restart apache2
Проверяем доступ до веб приложения с браузера:
### 8. На маршрутизаторах сконфигурируйте статическую трансляцию портов
- Пробросьте порт 8080 в порт приложения testapp BR-SRV на маршрутизаторе BR-RTR, для обеспечения работы приложения testapp извне
- Пробросьте порт 8080 в порт веб приложения на HQ-SRV на маршрутизаторе HQ-RTR, для обеспечения работы веб приложения извне
- Пробросьте порт 2026 на маршрутизаторе HQ-RTR в порт 2026 сервера HQ-SRV, для подключения к серверу по протоколу ssh из внешних сетей
- Пробросьте порт 2026 на маршрутизаторе BR-RTR в порт 2026 сервера BR-SRV, для подключения к серверу по протоколу ssh из внешних сетей.
*BR-RTR*
*HQ-RTR*
- /etc/nftables
### 9. Настройте веб-сервер nginx как обратный прокси-сервер на HQ-RTR
- При обращении по доменному имени web.au-team.irpo у клиента должно открываться веб приложение на HQ-SRV
- При обращении по доменному имени docker.au-team.irpo клиента должно открываться веб приложение testapp.
*ISP*
Установить пакет nginx:
>apt-get install -y nginx
Запустите и активируйте Nginx:
***systemctl start nginx***
***systemctl enable nginx***
Настройка Nginx как обратного прокси
Создадим конфигурационный файл для сайта в Nginx, в котором настроим виртуальные хосты. Добавьте конфигурацию для проксирования запросов в файл reverse-proxy.conf:
- Скачиваем файл с github в необходимую директорию:
***apt install dos2unix -y***
***apt install curl -y***
***curl -o /etc/nginx/sites-available/default https://raw.githubusercontent.com/shiraorie/demo2026-1/main/files/reverse-proxy.conf***
***dos2unix /etc/nginx/sites-available/default***
- Проверяем его наличие:
> Сохраните файл и закройте редактор.
Добавить символическую ссылку на данный файл:
>ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
Проверить наличие ошибок в конфигурационных файлах:
Запустить и активировать службу nginx:
>systemctl enable --now nginx
*HQ-CLI*
Поскольку в домене SambaDC нет DNS записей ссылающихся на необходимые имена, а на HQ-CLI в качестве DNS-сервера задан адрес именно контроллера домена, поэтому необходимо добавить записи в файл /etc/hosts на виртуальной машине HQ-CLI:
Проверяем возможность доступа до веб ресурсов с браузера на клиенте:
>http://web.au-team.irpo
>http://docker.au-team.irpo
### 10. На маршрутизаторе ISP настройте web-based аутентификацию
- При обращении к сайту web.au-team.irpo клиенту должно быть предложено ввести аутентификационные данные
- В качестве логина для аутентификации выберите WEB с паролем P@ssw0rd
- Выберите файл /etc/nginx/.htpasswd в качестве хранилища учётных записей
- При успешной аутентификации клиент должен перейти на веб сайт.
*ISP*
Установить пакет apache2:
>apt install -y apache2
Средствами утилиты htpasswd создать пользователя WEB и добавить информацию о нём в файл /etc/nginx/.htpasswd, задав пароль P@ssw0rd:
htpasswd –c /etc/nginx/.htpasswd WEB
Добавить web-based аутентификацию для доступа к сайту web.au-team.irpo в конфигурационный файл /etc/nginx/sites-available.d/default.conf:
>nano /etc/nginx/sites-available/default
Проверить наличие ошибок в конфигурационных файлах:
Перезапустить службу nginx:
>systemctl restart nginx
*HQ-CLI*
Проверяем возможность доступа до веб ресурса с браузера на клиенте:
Имя пользователя: WEB
Пароль: P@ssw0rd
### 11. Удобным способом установите приложение Яндекс Браузере для организаций
*HQ-CLI*
> **ПРИМЕЧАНИЕ:**
> Установку браузера отметьте в отчёте
> **РЕКОМЕНДАЦИЯ:**
> Скачиваем на HQ-SRV: apt install cups cups-pdf -y
> Скачиваем на HQ-CLI: apt-get install cups cups-pdf -y
## МОДУЛЬ 3
### 1. Выполните импорт пользователей из файла users.csv. Файл будет располагаться на виртуальной машине BR-SRV в папке /opt
*BR-SRV*
- Сначала скачаем необходимую утилиту на *BR-SRV*:
***apt install dos2unix -y***
***apt install curl -y***
- Заберем с iso файл Users.csv
>cp /mnt/Users.csv /opt/
- Потом на BR-SRV скачиваем скрипт, который выполнит за нас задание, в нужную директорию:
***curl -o /opt/import_users.sh https://raw.githubusercontent.com/shiraorie/demo2026-1/main/files/import_users.sh***
***ls /opt***
***dos2unix /opt/import_users.sh***
- Проверяем наличие скрипта:
***nano /opt/import_users.sh***
- Делаем файл исполняемым и выполняем его:
***chmod +x /opt/import__users.sh***
***/opt/import_users.sh***
### 2. Выполните настройку центра сертификации на базе HQ-SRV
- Необходимо использовать отечественные алгоритмы шифрования
- Сертификаты выдаются на 30дней
- Обеспечьте доверие сертификату для HQ-CLI
- Выдайте сертификаты веб серверам
- Перенастройте ранее настроенный реверсивный прокси nginx на протокол https
- При обращении к веб серверам https://web.au-team.irpo и https://docker.au-team.irpo у браузера клиента не должно возникать предупреждений
*HQ-SRV*
Шаг 1. Установка необходимых компонентов
>apt update
>apt install -y openssl ca-certificates
Создаем каталаги для работы центра сертификации
>mkdir -p /etc/pki/CA/{private,certs,newcerts,crl}
>touch /etc/pki/CA/index.txt
>echo 1000 > /etc/pki/CA/serial
>chmod 700 /etc/pki/CA/private
Создайте корневой ключ и сертификат (RSA 4096, SHA256):
openssl req -x509 -new -nodes \
-keyout /etc/pki/CA/private/ca.key \
-out /etc/pki/CA/certs/ca.crt \
-days 3650 \
-sha256 \
-subj "/CN=AU-TEAM Root CA"
Шаг 2. Создайте CSR для веб-сервера
> openssl genrsa -out /etc/pki/CA/private/web.au-team.irpo.key 2048
openssl req -new \
-key /etc/pki/CA/private/web.au-team.irpo.key \
-out /etc/pki/CA/web.au-team.irpo.csr \
-subj "/CN=web.au-team.irpo"
openssl genrsa -out /etc/pki/CA/private/docker.au-team.irpo.key 2048
openssl req -new \
-key /etc/pki/CA/private/docker.au-team.irpo.key \
-out /etc/pki/CA/docker.au-team.irpo.csr \
-subj "/CN=docker.au-team.irpo"
Шаг 3. Создайте конфигурационный файл для openssl ca
curl -o /etc/ssl/openssl-ca.cnf https://raw.githubusercontent.com/shiraorie/demo2026-1/main/files/openssl-gost.cnf
Проверяем nano /etc/ssl/openssl-ca.cnf:
Шаг 4. Подпишите сертификат
openssl ca \
-config /etc/ssl/openssl-ca.cnf \
-in /etc/pki/CA/web.au-team.irpo.csr \
-out /etc/pki/CA/certs/web.au-team.irpo.crt \
-extensions server_cert \
-days 30 \
-batch
openssl ca \
-config /etc/ssl/openssl-ca.cnf \
-in /etc/pki/CA/docker.au-team.irpo.csr \
-out /etc/pki/CA/certs/docker.au-team.irpo.crt \
-extensions server_cert \
-days 30 \
-batch
Шаг 6. Настройка доверия на клиенте HQ-CLI
Скопируйте корневой сертификат:
*HQ-CLI*
Шаг 7. Настройка Nginx на HTTPS
Чтобы перекинуть файл с hq-srv на isp нужно закомментить строчки ссш
>nano /etc/ssh/sshd.config
>systemctl restart sshd
>>> ВАЖНО, ПОСЛЕ НАСТРОЙКИ SSL ВЕРНУТЬ ОБРАТНО, А ТО БАЛЛЫ ПОТЕРЯЕТЕ
*ISP*
***curl -o /etc/nginx/sites-available/default https://raw.githubusercontent.com/shiraorie/demo2026-1/main/files/reverse-proxy-ssl.conf***
Пример конфига для web.au-team.irpo:
mkdir -p /etc/nginx/ssl
>scp -P 2026 root@172.16.1.2:/etc/pki/CA/certs/web.au-team.irpo.crt /etc/nginx/ssl/
>scp -P 2026 root@172.16.1.2:/etc/pki/CA/private/web.au-team.irpo.key /etc/nginx/ssl/
>scp -P 2026 root@172.16.1.2:/etc/pki/CA/certs/web.au-team.irpo.crt /etc/nginx/ssl/
>scp -P 2026 root@172.16.1.2:/etc/pki/CA/private/web.au-team.irpo.key /etc/nginx/ssl/
chown root:root /etc/nginx/ssl/*
chmod 600 /etc/nginx/ssl/*.key
nginx -t && systemctl reload nginx
проверяем
https://docker.au-team.irpo
https://web.au-team.irpo
### 3. Перенастройте ip-туннель с базового до уровня туннеля, обеспечивающего шифрование трафика
*HQ-RTR*
1. Для начала необходимо установить пакет на наш роутер *HQ-RTR*:
***apt update***
***apt install strongswan***
2. Конфигурация 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***
2. Конфигурация IPsec:
На обоих роутерах отредактируйте файл /etc/ipsec.conf, добавив следующее:
Далее нужно настроить файл ipsec.secrets. Вносим туда строку:
***172.16.5.2 172.16.4.2 : PSK “123qweR%”***
Ещё один конфиг charon.conf, открываем его и редактируем в нём следующую строку, приводя к виду:
***install_routes = no***
И осталось только перезагрузить службу ipsec:
***ipsec restart***
3. Также можно проверить передаются ли зашифрованные пакеты по сети, для этого нам пригодится утилита tcpdump *на BR-RTR*:
***apt install tcpdump***
И теперь мы можем проверить это, пропишем на роутере *BR-RTR* команду:
***tcpdump -i ens18 -n -p esp***
А на роутере *HQ-RTR* отправим эхо-запрос на порту в сторону branch(br-srv):
***ping 192.168.200.2***
Как можно заметить, на правом роутере мы видим зашифрованные пакеты с меткой ESP:
Слева HQ-RTR - Cправа BR-RTR
> Если IPsec настроен правильно, вы должны видеть защищённый трафик между вашими серверами.
### 4. Настройте межсетевой экран на маршрутизаторах HQ-RTR и BR-RTR на сеть в сторону ISP
Для выполнения этого задания нам нужно обеспечить работу только нужных протоколов, а именно: HTTP, HTTPS, DNS, NTP, ICMP. А также запретить остальные подключения из сети Интернет во внутреннюю сеть.
*HQ-RTR*
- Скачаем готовый nftables.conf с github, укажем путь для замены нашего nftables:
> !dos2unix и curl на HQ-RTR уже скачаны!
***curl -o /etc/nftables.conf https://raw.githubusercontent.com/shiraorie/demo2026-1/main/files/hq-rtr/nftables.conf***
***dos2unix /etc/nftables.conf***
- Проверяем содержимое файла /etc/nftables.conf:
> !меняем префикс(маску) ip-адреса в соответствии со своим заданием!
- Не забываем применять:
*BR-RTR *
- Скачаем готовый nftables.conf с github, укажем путь для замены нашего nftables:
***apt install dos2unix -y***
***apt install curl -y***
***curl -o /etc/nftables.conf https://raw.githubusercontent.com/shiraorie/demo2026-1/main/files/br-rtr/nftables.conf***
***dos2unix /etc/nftables.conf***
- Проверяем содержимое файла /etc/nftables.conf:
> !меняем префикс(маску) ip-адреса в соответствии со своим заданием!
- Не забываем применять:
- И проверим, не отвалился ли туннель ipsec после настройки правил на HQ-RTR:
***ipsec status***
> Видим, что соединение установлено и всё хорошо!
Проверим также наличие связи между конечными устройствами, отправим эхо-запрос с *HQ-CLI на BR-SRV*:
***ping 192.168.200.2***
> Связь есть, всё отлично! Задание выполнено!
### 5. Настройте принт-сервер cups на сервере HQ-SRV.
- Опубликуйте виртуальный pdf-принтер
- На клиенте HQ-CLI подключите виртуальный принтер как принтер по
умолчанию.
1. Для начала необходимо установить пакеты cups и cups-pdf на HQ-SRV:
Теперь необходимо включить службу cups, чтобы она запускалась вместе с системой:
***systemctl enable –now cups***
Настроим CUPS
Перезапускаем службу cups для применения изменений:
systemctl restart cups
2. Переходим к подключению клиента HQ-CLI
Скачиваем cups:
***apt-get install cups system-config-printer -y***
Доббавляем принтер в Хосты клиента
Открываем пуск и ищем Print settings
Жмем add
Далее ENTER URL, вписываем http://192.168.100.2:631/printers/PDF
Жмем forward, опять forward, далее листаем вверх и выбираем CUPS-PDF
Жмем forward, Aply
Появится print test page
Если видите что принтер в простое то поздравляю
### 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***
> Сервер для приема логов настроен
2. Переходим к настройке клиентов. Начнем с роутеров.
Установим пакет rsyslog на HQ-RTR:
Далее, отредактируем файл конфигурации, расположенный по пути
/etc/rsyslog.conf:
> В блоке MODULES необходимо раскомментировать модули, которые обеспечивают поддержку логирования. (Все кроме модуля imuxsock, потому что вместо него будет использован модуль imjournal). Модуль imjournal придется дописать вручную.
Теперь опускаемся в самый низ конфига, там расположены правила.
Добавляем в самый конец строку, которая отвечает за отправку логов уровня предупреждения (warning) и выше:
****.warning @@192.168.100.2:514***
Теперь перезапускаем службу rsyslog, чтобы применить изменения.
***systemctl restart rsyslog***
*НА BR-RTR НУЖНО ПОВТОРИТЬ АНАЛАГИЧНО.*
3. Продолжаем настройку клиентов на BR-SRV
Установим на BR-SRV пакет rsyslog:
***apt install rsyslog***
Далее, отредактируем файл конфигурации, расположенный по пути /etc/rsyslog.conf:
> Здесь также необходимо раскомментировать модули imjournal, imklog, immark
> И добавить строку в конец конфига для того, чтобы логи отправлялись на сервер.
Включаем службу rsyslog, чтобы она запускалась вместе с системой и перезапускаем ее для применения изменений:
***systemctl enable rsyslog***
***systemctl restart rsyslog***
4. За время пока выполнялась настройка клиентов уже должны появиться логи, проверим каталог /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.
5. Перейдем к настройке ротации логов. На HQ-SRV создадим файл /etc/logrotate.d/rsyslog
Запишем в него следующее содержимое:
> Настройка ротации на этом закончена, каждую неделю будут проверяться логи и если какие-то из них больше 10МБ, они будут сжаты в архив.
### 7. На сервере HQ-SRV реализуйте мониторинг устройств с помощью открытого программного обеспечения. Обеспечьте доступность по URL - https://mon.au-team.irpo
- Мониторить нужно устройства HQ-RTR, HQ-SRV, BR-RTR и BR-SRV
- В мониторинге должны визуально отображаться нагрузка на ЦП, объем занятой ОП и основного накопителя
- Логин и пароль для службы мониторинга admin P@ssw0rd
- Выбор программного обеспечения, основание выбора и основные параметры с указанием порта, на котором работает мониторинг, отметьте в отчёте
1. Сервер забикс:
***wget https://repo.zabbix.com/zabbix/7.4/release/debian/pool/main/z/zabbix-release/zabbix-release_7.4-0.2%2Bdebian12_all.deb***
***sudo dpkg -i zabbix-release_7.4-0.2%2Bdebian12_all.deb***
***sudo apt update***
***sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent php php-mysql php-bcmath php-mbstring zabbix-sql-scripts zabbix-apache-conf mariadb-server***
***zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | sudo mysql -u zabbix -p zabbix***
***sudo nano /etc/zabbix/zabbix_server.conf***
- Укажите:
***DBName=zabbix***
***DBUser=zabbix***
***DBPassword=P@ssw0rd***
- Запустите службу:
***sudo systemctl enable --now zabbix-server***
2. Настройка веб-интерфейса.
- Создайте символическую ссылку для доступа по нужному URL:
***ln -s /usr/share/zabbix /var/www/html/mon***
- Настройте PHP:
***sudo nano /etc/php/8.2/apache2/php.ini***
- Измените:
> чтобы быстро перемещаться по файлу ищем по строкам - ("CTRL" + "-")
***max_execution_time = 300*** /строка 409
***max_input_time = 300*** /строка 419
***post_max_size = 16M*** /строка 703
- Перезапустите Apache:
***sudo systemctl restart apache2***
3. Настроить DNS на HQ-SRV:
- Теперь интерфейс будет доступен по адресу:
***http://mon.au-team.irpo/zabbix***
4. Настройка пользовательских учетных данных.
После установки войдите через браузер и авторизуйтесь с логином "Admin" и паролем "zabbix" по умолчанию. Эти данные можно изменить в интерфейсе Zabbix после входа — раздел "Administration → Users"
- ПАРОЛЬ - ЛОГИН ОТ ЗАБИКСА, Admin - zabbix. МЕНЯЕМ ПАРОЛЬ НА P@ssw0rd
- Забикс агент
***wget https://repo.zabbix.com/zabbix/7.4/release/debian/pool/main/z/zabbix-release/zabbix-release_7.4-0.2%2Bdebian12_all.deb***
***sudo dpkg -i zabbix-release_7.4-0.2%2Bdebian12_all.deb***
***sudo apt update***
***apt install zabbix-agent***
- nano /etc/zabbix/zabbix_agentd.conf - там ищешь server serverActive пишешь ип сервера hqsrv типо, потом в hsotname ниже чуть чем serverActive пишешь хостнейм.
***systemctl restart zabbix-agent.service***
- Идешь в cli в веб версии по скрину что выше добовляешь сревер пишешь ип туда сюда и обезатЛЬНО !!!! прям срочно нужно в хост груп указать Linux server Linux By zubbix agent
- Статистика дашборды
- Редачим:
Адд виджит пикаем график:
- Слева в инпуте выбираем сервера а с право выбираем параметры
> Повезло если все робит
### 8. Реализуйте механизм инвентаризации машин HQ-SRV и HQ-CLI через Ansible на BR-SRV
1. Для начала необходимо создать каталог, в котором будут размещены отчеты о рабочих местах:
***mkdir /etc/ansible/PC_INFO***
2. Далее, создадим плейбук /etc/ansible/inventory.yml:
- Скачиваем его с github в необходимую директори:
> !dos2unix и curl на BR-SRV уже скачаны!
***curl -o /etc/ansible/inventory.yml https://raw.githubusercontent.com/shiraorie/dewmo2026-1/main/files/inventory.yml***
***dos2unix /etc/ansible/inventory.yml***
- Потом проверяем его содержимое:
3. Проверим работу, командой:
***ansible-playbook /etc/ansible/inventory.yml***
> - Ansible помечает результат как changed, так как фактическое состояние системы меняется. При первом запуске плейбука это ожидаемое поведение.
> - Если запустить плейбук ещё раз, то Ansible покажет для тех же задач статус ok, потому что требуемое состояние уже достигнуто и ничего менять не нужно.
4. Проверим наличие и содержимое, созданных отчетов:
***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
1. Создадим также каталог, в котором будут размещены резервные копии конфигураций маршрутизаторов:
***mkdir /etc/ansible/NETWORK_INFO***
2. И создаём сам плейбук /etc/ansible/backup.yml:
> *ОБЯЗАТЕЛЬНО УСТАНОВИТЕ sudo НА HQ-RTR и BR-RTR*
- Скачаем файл с github в нужную директорию:
> !dos2unix и curl на BR-SRV уже скачаны!
***curl -o /etc/ansible/backup.yml https://raw.githubusercontent.com/shiraorie/demo2026-1/main/files/backup.yml***
***dos2unix /etc/ansible/backup.yml***
- Проверяем его содержимое:
со следующим содержимым:
*ОБЯЗАТЕЛЬНО УСТАНОВИТЕ sudo НА HQ-RTR и BR-RTR*
3. Абсолютно также, как и в предыдущем задании, проверяем его работу, командой:
***ansible-playbook /etc/ansible/backup.yml***
> - Как и в прошлом задании, Ansible помечает результат как changed, так как фактическое состояние системы меняется. При первом запуске плейбука так и должно быть.
> - И если запустить его ещё раз, то Ansible покажет для тех же задач статус ok, потому что требуемое состояние уже достигнуто и ничего менять не нужно.
4. Проверим наличие созданных отчетов:
***ls -la /etc/ansible/NETWORK_INFO***
***ls -la /etc/ansible/NETWORK_INFO/HQ-RTR***
***ls -la /etc/ansible/NETWORK_INFO/BR-RTR***
А также их содержимое, если хотите убедиться, что действительно скопировалось, для примера покажем файл interfaces с маршрутизатора HQ-RTR, остальные можете сами:
***cat /etc/ansible/NETWORK_INFO/HQ-RTR/interfaces***
> По итогу все резервные копии конфигураций созданы и содержат необходимую информацию. Задание выполнено.