Время на выполнение модуля 4 часа
Формат участия в соревновании: командный (2 человека)

-
ISP — Debian 11 (CLI) — 1 ГБ ОЗУ
-
FW-MSK — Debian 11 (CLI) — 1 ГБ ОЗУ
-
FW-AMS — Debian 11 (CLI) — 1 ГБ ОЗУ
-
R0-MSK — VyOS — 1 ГБ ОЗУ
-
APP-MSK — Альт Сервер 10.1 (CLI) — 1 ГБ ОЗУ
-
SRV1-MSK — Альт Сервер 10.1 (CLI) — 1 ГБ ОЗУ
-
SRV2-MSK — Альт Сервер 10.1 (CLI) — 1 ГБ ОЗУ
-
PC-MSK — Альт Рабочая станция 10.1 (MATE) — 2 ГБ ОЗУ
-
APP-AMS — Debian 11 (CLI) — 1 ГБ ОЗУ
-
DMZ-AMS — Debian 11 (CLI) — 1 ГБ ОЗУ
-
PC-AMS — Debian 11 (MATE) — 2 ГБ ОЗУ
-
ClientEU — Debian 11 (MATE) — 2 ГБ ОЗУ
-
ClientSPB — Альт Рабочая станция 10.1 (MATE) — 2 ГБ ОЗУ
-
VDS(EKB) — Debian 11 (CLI) — 1 ГБ ОЗУ
-
VPNClient(EKB) — Windows 10 — 2 ГБ ОЗУ

-
Меняем имя устройства если таковое не выполнено:
-
Настраиваем интерфейсы согласно заданию:
-
2.1. Приводим содержимое файла «/etc/network/interfaces» к следующему виду (согласно схеме адресации):

-
2.2. Перезапускаем службу для применения настроек:
-
2.3. Укажем информацию о DNS — сервере:
-
2.4. Проверим доступ в Интернет (если пакеты будут браться из Интернета а не CD/DVD или иное):

Аналогичным образом настраиваем FW-AMS

-
Меняем имя устройства если таковое не выполнено:
-
Настраиваем интерфейсы согласно заданию:
-
Проверим настройки интерфейсов:

P.S. Шлюз по заданию будет выдан посредством OSPF.
-
Меняем имя устройства если таковое не выполнено:
-
Настраиваем интерфейс согласно схеме адресации:
-
2.1. Файл по пути «/etc/net/ifaces/ens33/options» для назначения статического адреса должен иметь следующее содержимое:

-
2.2. Задаём статический IPv4 — адрес:
-
2.3. Задаём шлюз по умолчанию:
-
2.4. Выполняем перезапуск сервиса:
-
Проверяем настройку интерфейса:

Аналогичным образом настраиваем SRV2-MSK

Аналогичным образом настраиваем APP-MSK

-
Меняем имя устройства если таковое не выполнено:
-
Приводим содержимое файла «/etc/network/interfaces» к следующему виду (согласно схеме адресации):

-
Перезапускаем службу:
-
Проверяем полученные настройки:

Аналогичным образом настраиваем APP-AMS

Аналогичным образом настраиваем VDS
(Также указываем DNS — сервер с адресом 100.100.100.100)

Через «Центр управления системой (ЦУС)»

Или в терминале выполнить команду «acc»


После чего назначаем параметры согласно таблице адресации:
(Сетевая подсистема: NetworkManager (etcnet))


Проверяем:




Проверяем:




Объявляем сеть между R0-MSK и FW-MSK для установления соседских отношений:
Объявляем по заданию информацию о сетях LAN-MSK и SRV-MSK:
Применяем и сохраняем конфигурацию устройства:
Обновить список пакетов и установить пакет frr:
Далее:

где:
-
1 — необходимо включить демон ospfd, для этого в файле «/etc/frr/daemons» — необходимо заменить значение «ospfd=no» на значание «ospfd=yes»:
-
2 — выполнить перезапуск службы «frr»:
-
3 — проверяем наличие открытого порта для доступа к демону «ospfd»:
-
4 — переходим в интерактивный CLI-интерфейс, который предоставляет аналогичную функциональность командной оболочки ‘Cisco IOS’ для управления протоколами маршрутизации:
-
5 — наблюдаем доступ к CLI — интерфейсу frr, переходим к настройки OSPFv2:
-
Объявляем сеть между R0-MSK и FW-MSK для установления соседских отношений:
-
Проверяем соседство между FW-MSK и R0-MSK:

Проверяем таблицу маршрутизации с целью проверки информации о сетях LAN-MSK и SRV-MSK, переданные от R0-MSK:

Переходим к дальнейшей настройке OSPFv2:
Задаём маршрут по умолчанию для дальнейшего объявления его через OSPF:
Объявляем маршрут по умолчанию через OSPF:
Сохраняем текущие параметры конфигурации:
Проверяем на R0-MSK информацию о маршруте по умолчанию переданную через OSPF:

Просмотрим таблицу маршрутизации при помощи утилиты «ip route»:

В соответствие с заданием — необходимые сети объявляются через OSPF, а не статически
Аналогичным образом посмотрим таблицу маршрутизации на отсутствие статических маршрутов:

Один из способов достичь этой цели в сетях с использованием протокола OSPF — это сделать указанные интерфейсы пассивными. Пассивный интерфейс в OSPF не обменивается информацией о маршрутах с другими маршрутизаторами, он используется только для получения информации о топологии сети. Это позволяет предотвратить нежелательный обмен маршрутами с соседними сетями



Также необходимо сделать данный интерфейс — пассивным:
-
также сделаем пассивный интерфейс в сторону «глобальной сети Интернет (ens33)»



Необходимо настроить трансляцию адресов сети (NAT — Network Address Translation) с помощью пакета «firewalld«. Этот подход позволит эффективно использовать доступные публичные IP-адреса и обеспечит устойчивое и безопасное подключение к глобальной сети для всех устройств сети офисов.
Необходимо включить функцию пересылки пакетов (forwarding):

Установим пакет «firewalld»:
Далее интерфейс который смотрит в сторону сети Интернет — добавим в зону «Public» и включим на данную зону маскировку трафика — masquerade:
-
Маскировка позволяет заменить исходный IP-адрес устройства внутри локальной сети на внешний IP-адрес интерфейса, который направлен в сторону Интернета. Таким образом, ответы от внешних серверов будут возвращаться на публичный IP-адрес маршрутизатора, а затем перенаправляться на соответствующее устройство внутри локальной сети.
-
После чего, интерфейс смотрящий в сторону R0-MSK — дабавим в зону «trusted»:
-
А интерфейс смотрящий в сторону сети DMZ-MSK — добавим в зону «DMZ»:
-
После чего перезагружаем «firewalld» для того чтобы изменения применились:

Проверяем доступ до «Настоящей сети Интернет» с хостов сетей SRV-MSK | DMZ-MSK:


Аналогичным образов включаем forwarding, после чего обновляем список пакетов и устанавливаем пакет «firewalld»:
Далее как и в московском офисе выполним добавления интерфейса смотрящего в сторону сети Интернет с зону «public», с последующим включением на неё masquerade;
Затем интерфейс смотрящий в сторону LAN-AMS добавим в зону «trusted», а интерфейс смотрящий в DMZ-AMS — добавим в зону «DMZ»:

Ну и проверяем доступ в сеть Интернет с хоста сети «DMZ-AMS»:

На устройствах со статическими сетевыми параметрами настраиваем вручную и добавляем запись в файл «/etc/resolv.conf»:
Выполним установку пакета «bind9»:
Далее приводим файл «/etc/bind/named.conf.options» к следующему виду:

где:
-
allow-query { any; }; — разрешает обращаться к данному DNS — серверу для всех;
-
forwarders { 100.100.100.100; }; — пересылает все неизвестные запросы на 100.100.100.100;
При помощи утилиты «named-checkconf» — можно проверить данный файл на наличие ошибок
После чего выполняем перезапуск службы «bind9»:
Также в firewalld на зону «dmz» — необходимо разрешить сервис «dns»:
Проверим доступ к сети Интернет с локальных клиентов:



выполнялось ранее на стадии настройки IP — адресов
Выполнялось на стадии настройки статических адресов, в противном случае используется утилита «hostnamectl»
Создадим директорию в которой будем хранить файл с настройками для зоны «msk.jun39.wsr»:
Скопируем шаблон файла зоны прямого просмотра, и назначим владельца:
Также настроим «apparmor» — для этого в файл «/etc/apparmor.d/usr.sbin.named» — добавляем следующую строку:

После чего перезагружаем службу «apparmor»:
В файл «/etc/bind/named.conf.local» — описываем информацию о зоне прямого просмотра «msk.jun39.wsr», а также о самом файле содержащем данные зоны прямого просмотра «/var/dns/msk.db»:

при помощи утилиты «named-checkconf» с колючём «-z» проверяем, что наш файл с зоной прямого просмотра загружается успешно:

Наконец заполняем сам файл зоны прямого просмотра «/var/dns/msk.db» и приводим его к следующему виду:

также проверяем наличие ошибок при помощи «named-checkconf -z»
Перезапускаем службу «bind9»:
P.S. Для клиентов которые получают адреса по DHCP — далее на стадии настройки DHCP — сервера вернёмся к настройки автоматического обновление записей DNS для них.
Аналогичным образом настраиваем DNS — сервер на работу с зоной прямого просмотра «ams.jun39.wsr»:



На локальных хостах добавляем в файл «/etc/resolv.conf» — строчку «search <домен поиска>» в соответствие с филиалом:
Например:


При помощи утилит «host» или «nslookup» из пакета «bind-utils» проверяем работу DNS — сервера:

Аналогичным образом проверяем работоспособности DNS — сервера в филиале Амстердама
Установим пакет «dhcp-server»:
Копируем файл с шалбоном конфигурационного файла dhcp-сервера для последующего редактирования:
Приводим файл «/etc/dhcp/dhcpd.conf» к следующему виду:

где:
-
1 — Имя домена;
-
2 — Адрес DNS — сервера (FW-MSK);
-
3 — Выдаваемый диапазон адресов (согласно заданию);
-
4 — Адрес шлюза (R0-MSK);
-
5 — Адрес NTP — сервера (FW-MSK);
-
6 — Блок для автоматического обновления записей типа A на DNS — сервере;
Далее при помощи утилиты «dhcpd» и ключей «-t» и «-cf» проверяем правильность заполнения данного конфигурационного файла:

Выполняем перезапуск службы «dhcpd»и добавляем в автозагрузку:
После чего возвращаемся на DNS — сервер и вносим необходимые изменения для совместной работы DHCP и DNS серверов:
Добавляем в файл «/etc/bind/named.conf.local» следующую строку:

-
таким образом, в данной строке мы говорим кому разрешено отправлять динамические обновления для данной зоны, т. е. указываем адрес нашего DHCP — сервера (SRV1-MSK).
Перезагружаем службу bind9:
Аналогичным образом настраиваем DHCP — сервер в филиале Амстердама на FW-AMS:
Установим пакет «isc-dhcp-server»:

-
после установки данного пакета будет следующая ошибка в работе данной службы, но после правки конфигурационных файлов DHCP — сервер заработает без ошибок
Далее определяем сетевой интерфейс сервера, на котором DHCP-сервер будет слушать и обрабатывать DHCP-запросы от клиентов, для этого вносим изменения в файл «/etc/default/isc-dhcp-server»:

После чего аналогичным образом как и на SRV1-MSK заполняем конфигурационный файл «/etc/dhcp/dhcpd.conf»:

Проверяем правильность данного файла:
После перезапускаем службу «isc-dhcp-server»:
Также вносим изменения в конфигурацию DNS — сервера по пути «/etc/bind/named.conf.local»:

Перезагружаем службу «bind9»:
В качестве проверки работоспособности DHCP — сервера а также автоматического обновления записей типа A — выводим журнал при помощи команды:
После чего включаем PC-AMS и наблюдаем следующую информацию в журнале на FW-AMS:

-
Полноценный «DORA» — процесс;

-
Также запись в журнале, которая соответствует информации о автоматическом обновлении записи типа А в DNS.
Проверим конфигурацию:

Установим пакет «chrony»:
Приводим конфигурационный файл «/etc/chrony.conf»

необходимо закомментировать строку с серверами по умолчанию, после чего явно указать с кем необходимо синхронизировать время.
После чего перезапускаем и добавляем в автозагрузку службу «chronyd»:
Проверяем про помощи утилиты «chronyc» с кем данный хост синхронизирует время:

Аналогичным образом настраиваем APP-MSK
Устанавливаем пакет «chrony»:
Приводим конфигурационный файл «/etc/chrony/chrony.conf» к следующему виду, аналогично необходимо закомментировать строку с серверами по умолчанию, после чего явно указать с кем необходимо синхронизировать время.

Выполняем перезапуск службы «chronyd» и проверяем синхронизацию времени через «chronyc»:

Данная настройка была реализована во время настройки DHCP — сервера, таким образом необходимо установить только пакет «chrony»:
Также повторно запросим информацию от DHCP — сервера чтобы информация о NTP — серверах автоматически заполнилась в «chrony.conf»
Установим пакет «chrony»:
Приводим конфигурационный файл «/etc/chrony/chrony.conf» к следующему виду:

После перезагружаем службу «chronyd»:
Проверяем синхронизацию:

Также необходимо в «firewalld» для зоны «dmz» — разрешить NTP:
После проверяем клиентов, которые синхронизируют время с данным сервером:

Аналогичным образом настраиваем FW-AMS:


Аналогично настраиваем ClientSPB и VDS на синхронизацию с 100.101.102.103
При помощи утилиты «timedatectl» настраиваем необходимый часовой пояс:


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


-
Зона public: Включение masquerade в этой зоне позволяет устройствам в сети DMZ-* иметь доступ в интернет. Маскарадинг (masquerade) позволяет перенаправлять исходящий трафик от устройств в сети DMZ через внешний интерфейс маршрутизатора, чтобы он мог успешно общаться с внешними ресурсами в интернете.
-
Зона trusted: это локальная сеть. Устройства в сети DMZ не смогут инициировать соединения к клиентам в этой локальной сети из-за ограничения правил firewall на этой граничной маршрутизаторе. Это выполняется благодаря отсутствию правил пересылки (forward) из зоны dmz в зону trusted.
-
Зона dmz: Входящие соединения из всех локальных сетей (в том числе и из зоны trusted) в сети DMZ-* разрешены. Это достигается тем, что мы добавили интерфейс, смотрящий в DMZ, в эту зону. Соединения из локальной сети, проходящие через граничный маршрутизатор и направленные в зону dmz, будут разрешены благодаря правилам в зоне dmz.
Выполняем установку пакета «lldpd»:
Включаем и добавляем в автозагрузку службу «lldpld»:
Проверяем информацию о соседних устройствах:


Аналогичным образом устанавливаем «lldpd» на FW-MSK и APP-MSK:



Аналогично настраиваем филиал Амстердама

Создадим SSH — ключи:

Скопируем публичный ключ «id_rsa.pub» на VDS:

Проверяем подключение:

Добавим алиас для него в файл «~/.ssh/config». Это позволит подключаться к VDS, используя указанное имя:

Проверяем подключение по имени, а не IP — адресу:

Настройка защищённого VPN — туннеля будем настраиваться посредством Wireguard:
-
14.1. WireGuard — WireGuard является современной технологией VPN, которая обеспечивает высокую производительность и безопасность.
-
14.2. WireGuard использует симметричное шифрование, и AES является одним из поддерживаемых алгоритмов шифрования. SHA-2 обычно используется для хеширования и аутентификации данных в WireGuard.
-
14.3. WireGuard поддерживает протоколы шифрования, такие как ChaCha20 и Curve25519, которые обеспечивают ключи и хеши длиной 256 бит, что удовлетворяет данному требованию.
Установим пакет «wireguard»:
Создадим директорию для ключей:
Генерируем пары ключей для сервера и клиента:
Копируем закрытый ключ сервера и публичный ключ клиента в конфигурационный файл туннельного интерфейса «/etc/wireguard/wg0.conf»:
Далее заполняем этот конфигурационный файл и приводим его к следующему виду:

Включаем и добавляем в автозагрузку туннельный интерфейс:
Проверяем:

Данный туннельный интерфейс необходимо вынести в отдельную зону в firewalld, чтобы трафик не натировался и не блокировался:
Также настраиваем необходимые разрешения для firewalld:
Установим пакет «wireguard»:
Создадим директорию для ключей:
При помощи утилиты «scp» забираем с FW-MSK закрытый ключ клиента и открытый ключ сервера:
Копируем закрытый ключ клиента и публичный ключ сервера в конфигурационный файл туннельного интерфейса «/etc/wireguard/wg0.conf»:
Далее заполняем этот конфигурационный файл и приводим его к следующему виду:

Включаем и добавляем в автозагрузку туннельный интерфейс:
Данный туннельный интерфейс необходимо вынести в отдельную зону в firewalld, чтобы трафик не натировался и не блокировался:
Проверяем:


Необходимо дополнить конфигурационный файл туннельного интерфейса «/etc/wireguard/wg0.conf», и привести его к следующему виду:

-
Параметр Table в конфигурации WireGuard отвечает за управление маршрутной таблицей для интерфейса WireGuard. Когда значение установлено в off, WireGuard не будет управлять маршрутной таблицей, и вам придется настраивать маршруты вручную без автоматического добавления или удаления маршрутов через интерфейс WireGuard.
-
Параметр AllowedIPs в конфигурации WireGuard используется для указания подсетей (IP-адресов), которые разрешены для пересылки через туннель WireGuard. Когда трафик с определенного IP-адреса приходит к WireGuard интерфейсу, он будет перенаправлен через VPN туннель, если его IP-адрес находится в списке AllowedIPs.
Для применения настроек перезапускаем туннельный интерфейс:

После чего переходим к настройки OSPF:

Также для зоны «internal» в которой находится наш туннельный интерфейс «wg0» в firewalld разрешим OSPF:
Аналогичным образом настраиваем FW-AMS
Содержимое файла «/etc/wireguard/wg0.conf»:

Конфигурация OSPF:

Проверка соседей:


Также посмотрим таблицы маршрутизации:

FW-MSK — знает о сетях LAN-AMS и DMZ-AMS, через туннельный интерфейс wg0 по ospf

аналогично FW-AMS — знает о сетях DMZ-MSK, LAN-MSK и SRV-MSK, через туннельный интерфейс wg0 по ospf
проверка доступа с SRV1-MSK до APP-AMS — через туннель Wireguard

Будем использовать также Wireguard для обеспечения подключения, так как клиент должен иметь ограниченный доступ а именно только к сети SRV-MSK, поэтому создадим новый туннельный интерфейс «wg1» на FW-MSK
Переходим в каталог «/etc/wireguard/keys» и генерируем новую пару ключей для сервера и клиента:
Копируем приватный ключ сервера и публичный ключ клиента в конфигурационный файл туннельного интерфейса «/etc/wireguard/wg1.conf»:
Далее описываем сам конфигурационный файл и приводим его к следующему виду:

после чего включаем и добавляем в автозагрузку данный виртуальный интерфейс:
также разрешаем на зону «public»в firewalld порты используемые для подключения туннельного интерфейса:
далее необходимо, через OSPF объявить туннельную сеть для R0-MSK:
Переходим к конфигурации клиента:
Открываем браузер, переходим на сайт https://wireguard.com/install, после чего скачиваем клиентское приложиние по необходимую операционную систему:

после чего выполняем установку из скаченного файла
Далее описываем конфигурацию клиента:




Проверяем на FW-MSK:

И проверим таблицу маршрутизации у VPNClient:

видим доступ к сети SRV-MSK — через туннельный интерфейса
Проверим сетевую связность с VPNClient до SRV1-MSK:

При перезагрузке ПК или входе под пользователем «user» данный туннельный интерфейс поднимается в автоматическом режиме:

Установим пакет «rsyslog»:
Создадим директорию для хранения журналов:
Редактируем конфигурационный файл «/etc/rsyslog.conf»:
-
Добавьте следующие строки в конец файла, чтобы настроить хранение журналов в файлах /opt/logs/ согласно требованиям:
Это настроит запись всех журналов в файлы, где %HOSTNAME% будет заменено на соответствующее доменное имя машины.
Фильтрация журналов по уровню сообщений:
-
Добавьте следующие строки в конфигурацию rsyslog, чтобы фильтровать журналы в соответствии с указанными требованиями:
Перезапустите службу rsyslog, чтобы применить изменения:
Теперь сервер SRV1-MSK будет настроен для централизованного сбора журналов syslog согласно указанным требованиям. Журналы будут храниться в соответствующих файлах /opt/logs/, и фильтрация сообщений будет осуществляться в соответствии с заданными правилами.
Время на выполнение модуля 4 часа
Формат участия в соревновании: командный (2 человека)



В зависимости от способа развёртывания стенда и выбранного гипервизора, варианты и способы развёртывания необходимых виртуальных машин может быть выполнено по разному
В данном случае Модуль А — выполнялся в среде VMWare Workstation

Поэтому выполнение пункта 1.1. будет продемонстрировано на примере VMWare Workstation
Вариант развёртывания виртуальной машины из шаблона «OVA-файла»:

Выбираем «Открыть виртуальную машину» — после чего выбираем файл шаблона с расширением «.ova»:

выбираем необходимый шаблон, нажимаем «Открыть»

задаём необходимое имя, нажимаем «Импортировать»

Начинается процесс импорта виртуальной машины, одновременно можно импортировать несколько виртуальных машин

После импорта виртуальной машины из шаблона — задаём необходимые параметры согласно заданию:

Аналогичным образом развернуть другие ВМ

Для создания недостающих сетей в настройках ВМ нажимаем «Добавить», выбираем «Сетевой Адаптер» — нажимаем «Финиш»


Выбираем созданную сеть, нажимаем «Сохранить» Аналогично создаём и подключаем все остальные сети к ВМ
Задаём имя, если таковое не выполнено:
Далее настраиваем сетевые интерфейсы, приводим конфигурационный файл «/etc/network/interfaces» к следующему виду:

Перезапускаем сетевую службу для применения IP — адресов:
Проверяем:
Проверяем доступ в Интернет:

Затем, обновляем список пакетов и устанавливаем firewalld:
После настраиваем доступ в Интернет посредством NAT (PAT), а именно внешний интерфейс добавим в зону «public» и включим на неё «masquerade», интерфейс смотрящий в сеть LAN-IKT добавим в зону «trusted», а интерфейс смотрящий в зону DMZ-IKT добавим в зону «DMZ»:

Также необходимо включить функцию пересылки пакетов (forwarding):



Далее назначаем имя и сетевые параметры:


Проверяем доступ в Интернет:

Задаём имя, если таковое не выполнено:
Далее настраиваем параметры сетевого интерфейса:
Для применения настроек перезагружаем сетевой сервис:
Проверяем:

Аналогичным образом настраиваем APP-IKT:

Установим пакет «bind9»:
Далее редактируем конфигурационный файл «/etc/bind/named.conf.options» и приводим его к следующему виду:

секцией «forwarders { 100.100.100.100; }; — выполняем пункт 1.6. также при помощи утилиты «named-checkconf» проверяем данный файл
после описываем информацию о зоне «ikt.jun39.wsr» в конфигурационном файле «/etc/bind/named.conf.local»:

далее создаём каталог для хранения файла зоны «ikt.jun39.wsr» и копируем шаблон для дальнейшего редактирования:
после чего настраиваем «apparmor» и приводим «/etc/apparmor.d/usr.sbin.named» к следующему виду:

перезагружаем службу «apparmor»:
проверяем:

Приступаем к заполнению зоны прямого просмотра «/var/dns/ikt.db»:

перезагружаем службу «bind9»:
Также в firewalld для зоны «DMZ» разрешаем сервис dns:
Также для того чтобы клиент PC-IKT получал сетевые параметры по DHCP — развернём на данном хосте DHCP — сервер:
Выполним установку пакета «isc-dhcp-server»:
Также в файле «/etc/default/isc-dhcp-server» указываем через какой интерфейс слушать DHCP запросы:
после чего настраиваем конфигурационный файл «/etc/dhcp/dhcpd.conf»:

также проверяем конфигурационный файл при помощи утилиты «dhcpd»:

перезапускаем dhcp — сервер:
Проверяем включаем PC-IKT и смотрим журнал:

полноценный «DORA» процесс, а также автоматическое добавление и обновление DNS записей:



Выполнено на стадии настройки локального DNS сервера на FW-IKT
Если имена устройств не назначены ранее то назначаем при помощи утилиты «hostnamectl»:
Установим пакет «chrony»:
Далее настраиваем синхронизацию с хостом 100.101.102.103 правим конфигурационный файл «/etc/chrony/chrony.conf»:

после выполняем перезапуск службы «chronyd»:
Проверяем синхронизацию при помощи утилиты «chronyc»:

Также в firewalld для зону «DMZ» разрешим сервис NTP:
Установим пакет «chrony»:
Далее настраиваем синхронизацию с FW-IKT правим конфигурационный файл «/etc/chrony.conf»:

перезапускаем службу:
Проверяем:
Аналогично настраиваем APP-IKT:
Установим пакет «chrony»:
Далее настраиваем синхронизацию с FW-IKT правим конфигурационный файл «/etc/chrony.conf»:

перезапускаем службу:
Проверяем:
Так же как и в модуле А — для построения защищённого VPN — туннеля будем использовать технологию Wireguard
Напоминаю что туннельные интерфейсы уже есть, а именно:
-
wg0 — для соединения филиала MSK с AMS;
-
wg1 — для соединения клиента ClientVPN с сетью LAN-MSK;
Таким образом для туннеля между FW-IKT и FW-MSK будем использовать wg2;
Переходим в директорию где ранее создавали ключи и создаём пару ключей для клиента и сервера:
После копируем содержание закрытого серверного ключа и открытого клиентского в конфигурационный файл туннельного интерфейса «/etc/wireguard/wg2.con»:
Далее приводим конфигурационный файл к следующему виду:

далее включаем и добавляем в автозагрузку туннельный интерфейс:
Также в настройках firewalld на зону «public» разрешаем порт иписанной в конфигурационном файле, и выносим данный туннельный интерфейс в зону «internal»:
переходим к настройке FW-IKT:
Установим пакет «wireguard»:
Создадим директорию для ключей:
Затем при помощи утилиты «scp» заберём необходимые ключи с FW-MKS:
Далее добавим данные ключи в конфигурационный файл туннельного интерфейса «wg2»:
Затем приводим конфигурационный файл к следующему виду:

далее включаем и добавляем в автозагрузку туннельный интерфейс:
Также в настройках firewalld выносим данный туннельный интерфейс в зону «internal»:
Проверяем:

Устанавливаем пакет «frr»:
Правим конфишурационный файл «/etc/frr/daemons» и ключаем демон «ospfd»:
Перезагружаем службу «frr»:
Переходим в режим конкурирования протокола ospfd в стиле Cisco Like:

Далее настраиваем OSPFv2:
Проверяем:

Так же в firewalld на зону «internal» добавляем протокол ospf:
Переходим к настройке OSPFv2 на FW-MSK:
Проверяем соседство:

Также проверим таблицу маршрутизации, в которой должна появиться информация о сетях LAN-IKT, DMZ-IKT:

Также проверим известные маршруты по OSPF с FW-IKT

таким образом, видно, что FW-IKT знаем о локальных сетях в московском и амстердамских филиалах
Проверим сетевую связность с APP-IKT до APP-MSK и APP-AMS

вы можете использовать подход с копированием файлов зон с DNS-серверов FW-MSK и FW-AMS на DNS-сервер FW-IKT в иркутском филиале, чтобы реализовать возможность обращения устройств из иркутского филиала к устройствам в других филиалах по доменным именам.
В этом случае вы будете создавать «слепки» зон с других филиалов на DNS-сервере FW-IKT в иркутском филиале. Это позволит FW-IKT разрешать имена устройств из других филиалов без необходимости перенаправления запросов на другие DNS-серверы.
Также редактируем файл «/etc/bind/named.conf.local» и вносим информацию о зонах московского и амстердамского филиалов:

также проверяем при помощи утилиты «named-checkconf»:

После чего перепусканем службу «bind9»:
Также необходимо на всех FW-* в firewalld на зону «internal» — разрешить сервис dns:
После чего проверяем с APP-IKT доступ до APP-* в других филиалах:

теперь устройства с иркутского филиала могут обращаться по доменным именам к устройствам в других филиалах

после задаём пароль P@ssw0rd и подтверждаем его
Проверяем:

Создаём директории и даём полные права для общего доступа согласно заданию:
После чего переходим к настройке общего доступа по протоколу NFS:
Далее приводим файл «/etc/exports» к следующему виду:

После включаем и добавляем в автозагрузку «nfs-server»:
Также проверим при помощи утилиты «showmount» какие директории доступны с данного хоста для монтирования другими в качестве общего ресурса:

Выполним установку необходимых пакетов:
Далее создадим структуру каталогов для дальнейшего монтирования:
После чего добавляем следующие записи в файл «/etc/fstab»:
Для применения монтирования воспользуемся утилитой «mount»:
Проверяем:

Также правиряем права на чтение и запись для каталога «/home/user/Desktop/nfs_rw»:


И также права на чтение для каталога «/home/user/Desktop/nfs_ro»:

кнопка «Создать» — неактивна, так как права только на чтение:
Перейдём на SRV1-IKT и из под пользователя admin создадим тестовый файл, чтобы проверить права на чтение:

Выполнено ранее, так как были выданы полные права в моменте настройке NFS — сервера
Но можно выполнить и иным способом:
Создайте группу для пользователей, которым разрешен доступ к каталогу «/opt/nfs/»:
Добавьте пользователя admin в созданную группу:
Назначьте права на каталог /opt/nfs/ для группы nfs_users, чтобы члены этой группы имели доступ на чтение и запись:
В качестве веб-сервера будем использовать NGINX:
Установим пакет «nginx»:
Далее заменим содержание страницы по умолчанию на то, что требуется в задании:
После чего выполняем перезагрузку веб-сервера «nginx»:
Проверяем доступ по IP — адресу с клиента PC-AMS:

веб-сервер работает, доступ по имени «web.jun39.wsr» будет выполнен позднее
Аналогичным образом выполняем настройку веб-сервера в филиалах Москвы и Иркутска
В случае с ОС Альт Сервер настройка веб-сервера занимает больше действий, но смысл тот же что в случае с Debian
Выполняем установку пакета «nginx»:
Создадим директорию для хранения сайта:
Далее в данной директории поместим сам файл с сайтом и содержимым в соответствии с регионом по заданию «index.html»:
После правим конфигурационный файл «/etc/nginx/sites-available.d/default.conf» и приводим его к следующему виду:

после чего создаём символическую ссылку на директорию «/etc/nginx/sites-enabled.d/»
Включаем и добавляем в автозагруску веб-сервер «nginx»
Проверяем с локальных клиентов в соответствующих филиалах:


После чего настраиваем доступ к сайту из сети Интернет, для этого необходимо на FW-* в соответствующих филиалах выполнить проброс портов, а также разрешить сервис «http» на внешнюю зону «public» и «dmz»:
После чего запускаем любого клиента из сети Интернет и проверяем доступ к веб-сайтам:



для настройки доступа по имени «web.jun39.wsr» внутри локальной сети каждого филиала, на FW-* создадим зону «jun39.wsr» в которую добавим запись типа A с адресами APP-*:
Добавляем в файл «/etc/bind/named.conf.local» информацию о зоне jun39.wsr:

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

перезагружаем DNS — сервер:
Проверяем с клиента доступ по имени:

Аналогично настраиваем на остальных FW-* и проверяем с локальных клиентов


Установим пакет «bind9»:
После привидём файл «/etc/bind/named.conf.options» к следующему виду:

Далее описываем в файле «/etc/bind/named.conf.local» информацию о зоне «jun39.wsr»:

Также настраиваем apparmor и добавляем следующую сторку в файл «/etc/apparmor.d/usr.sbin.named»:

перезагружаем «apparmor»:
Копируем шаблон для зоны и описываем зоны «jun39.wsr» и приводим её к следующему виду:

проверяем утилитой «named-checkconf» с ключём «-z»
Перезагружаем службу «bind9»:
Далее на ClientEU, ClientSPB и ClientVV добавляем в файл «/etc/resolv.conf» информацию о том, что DNS — сервером будет является VDS:
После чего проверяем с любого клиента:

Для реализации «во внешний адрес FW- в ближайшем к клиенту регионе*» самым быстрым (но не правильным для продакшена) способом, в связи с временными ограничениями чемпионата является правка локального файла «/etc/hosts» на клиентах в соответствие с адресами ближайших FW:



Данный способ выполнит данные требования данного пункта и сэкономит время на настройки данного способа посредством BGP или других решений таких как Anycast, CDN, CD-WAN и другие.
Данный пункт был выполнен на стадии развёртывания веб-серверов, когда на FW-* были созданы внутренние зоны «jun39.wsr» и заведены соответствующие записи типа А ссылающиеся на IP — адреса APP в соответствующем филиале



Установим пакет «openssl»:
Далее создадим директорию в качестве корневой для СА согласно заданию:
Далее скопируем конфигурационный файл «/etc/openssl/openssl.cnf»:
После редактируем данный файл «/opt/ca/openssl.cnf» и проводим его к следующему виду:

в секции [ CA_default ] — правим параметр «dir» и указываем ранее созданную директорию в качестве корневой для СА

далее в секции [ req_distinguished_name ] — правим согласно заданию следующие параметры: «countryName», «0.organizationName» и «commonName»
Затем при помощи утилиты «openssl» создаём корневой ключ и сертификат СА:
После выполняем добавления корневого сертификата в качестве доверенного:
Аналогичным образом выполняем настройку клиента, предварительно при помощи утилиты «scp» забрав корневой сертификат «ca.pem» с SRV2-MSK:
Для начала с генерируем ключ, запрос и сертификат на основе подписанного запроса при помощи ранее настроенного Центра Сертификации:

оставляем все значения по умолчанию за исключением CN
Переходим к настройке веб-сервера
Выполняем установку веб-сервера «NGINX»:
Создаём директорию для хранения веб-сайта и помощаем в него информацию согласно заданию:
После чего необходимо забрать созданные на SRV2-MSK для данного веб-сервера ключ и сертификат «corp.key» и «corp.crt»:
Затем настраиваем конфигурационный файл веб-сервера «/etc/nginx/sites-available.d/default.conf» согласно заданию:

после чего создаём символическую ссылку на директорию «/etc/nginx/sites-enabled.d/»
Включаем и добавляем в автозагруску веб-сервер «nginx»
Необходимо давить CNAME запись в зоне «msk.jun39.wsr» на DNS — сервере:

после перезагружаем службу «bind9»:
Проверяем с клиента:

Открываем приложение Wireguard:

затем нажимаем «Редактировать» — добавляем строчку «DNS» и указываем информацию о DNS — сервере и нажимаем «Сохранить»
Далее необходимо забрать корневой сертификат с SRV2-MSK:
через PowerShell:
После при помощи «certlm» добавляем сертификат в качестве Корневого:




После чего проверяем доступ к порталу в браузере по адресу «https://corp.msk.jun39.wsr»:

Для начала необходимо установить Docker:
Дак же установим «docker-compose»:

Создадим файл «docker-compose.yml», где опишем как и какой контейнер необходимо запускать:

после чего выполняем сборку и запуск контейнера:

Смотрим список запущенных контейнеров:

Аналогичным образом как и на VDS устанавливаем docker и docker-comose

После чего описываем «docker-compose.yml» в котором будем хранить информацию о том какие контейнеры и как запускать
Как итог будет создано и запущено три контейнера переменные для которых доступны по гиперссылкам:

после чего выполняем сборку и запуск контейнеров:

также смотрим список запущенных контейнеров:

Проверяем работоспособность сервисов:


Добавляем в конфигурацию Wireguard на клиенте:

Проверяем доступ к сервисам:

