Выполнение задания демоэкзамена

Инструкции по работе с утилитами.

Примечание

В данном тексте названия всех пакетов для установки будут написаны полужирным курсивом(Например, networkmanager). Все вводимые команды будут подчеркнуты (например, sysctl -p). Не переписывайте дословно весь текст с методической рекомендации, прочтите раздел и только потом начинайте делать задание.

При работе используются следующие связки паролей:

root/P@ssw0rd – для доступа к рабочему месту

root/toor – для доступа к ВМ с ОС Linux

administrator/P@ssw0rd — для доступа к ВМ с ОС Windows (На машине CLI можно не использовать пароль)

Если вы решили использовать другой пароль, то уведомите об этом проверяющего. !!ЕСЛИ ПРОВЕРЯЮЩИЙ НЕ СМОЖЕТ ПОДКЛЮЧИТЬСЯ К РАБОЧЕМУ МЕСТУ, ТО РАБОТА БУДЕТ ОЦЕНЕНА В 0 БАЛЛОВ!!

Выполнение задания демонстрационного экзамена

Установка приложений

Для установки приложений сначала нужно добавить диск с пакетами.

В правом нижнем углу щелкните правой кнопкой мыши по изображению CD-диска и выберите настройки (Settings). Расположение Remote Server. В пункте «Use ISO image file» выбираете необходимый образ(они находятся по пути localhost/NFS/ISO)

Для выполнения задания на машинах с ОС Linux будет использоваться только debian-11.2.0-amd64-BD-1.iso (Еще docker_inst.iso если не настроили сетевое хранилище на SRV). Для установки docker-приложения нужно будет смонтировать образ docker_install.iso на машине SRV (и скопировать его содержимое в сетевую папку).

На машине, после добавления диска, выполните команду apt-cdrom add. Далее можно производить установку пакетов командой apt install «пакет».

Управление сервисами

При изменении конфигурации сервисов (DNS, nginx, sshd и т.д.), необходимо перезапустить сами сервисы. Это выполняется командой systemctl restart «Название сервиса». При настройке защиты туннеля понадобится включить сервис в автозагрузку. За автозагрузку отвечает команда systemctl enable –now «название сервиса» (ключ –now включает сам сервис, без него сервис придётся включать отдельно).

Если у вас возникли проблемы с сервисом, то командой systemctl status «Название сервиса» можно прочитать, какие возникли проблемы. Также этой же командой можно узнать, запущен сервис или нет.

Работа в редакторе nano

Все конфигурационные файлы в ОС linux будет редактироваться через редактор nano (если умеете работать в других текстовых редакторах, то можете использовать их). Команда имеет следующий вид: nano «путь к файлу». Если указанного файла не существует, то он будет создан. Если по заданию сказано что надо отредактировать файл, то в консоли пишите nano «путь до файла» .

При выполнении данной команды должно появиться следующее окно

В вашем распоряжении доступно управление курсором. Работа в данном редакторе похожа на работу в обычном блокноте из ОС Windows. Внизу экрана показаны комбинации клавиш для различных действий. Символ ^ указывает на зажатие клавиши Ctrl (^X – это комбинация Ctrl-X) , M- это клавиша Alt (M-U – это комбинация Alt-U).

Команды:

Ctrl-O – сохранение файла.

При сохранении вам предлагается указать имя файла для сохранения. Можно отредактированный файл сохранить под новым именем, а исходный файл оставить без изменений (Можно использовать при создании файла зоны DNS сервера).

Ctrl-W – поиск по документу.

Alt-U – отмена. Аналог Ctrl-z на ОС Windows.!!!ВАЖНО!!! Не используйте Ctrl-z в Linux, это приведет к остановке программы (не закрытию). Для возобновления остановленной программы введите в консоли %.

Alt-E – повторить. Аналог Ctrl-y на ОС Windows.

Ctrl-K – вырезать строку в буфер обмена. Будет вырезана та строка, на которой находится курсор (положение внутри строки значения не имеет). Можно вырезать несколько строк подряд.

Ctrl-U – вставить строку (строки) из буфера обмена. Содержимое вставляется в положение курсора (если курсор находится посреди сроки, то именно туда будет вставлен текст).

Ctrl-X – Выход из редактора. Если есть не сохраненные изменения, то редактор выведет запрос на сохранение (нажмите Ctrl-C если передумали выходить из редактора).

При утвердительном ответе, будет предложен выбор под каким именем сохранить файл (как при нажатии Ctrl-O).

Возможные ошибки в редакторе nano

Вместо файла вы указали папку.

В файле должен быть текст, но его нет. В внизу окна данное сообщение

Возможно, вы опечатались, был создан новый файл. В заголовке указано название редактируемого (или созданного файла)

Настройка SSH

Для использования scp (понадобится в нескольких заданиях) необходимо разрешить использование ssh для пользователя root. Это выполняется редактированием файла /etc/ssh/sshd_config. Нужно изменить строку PermitRootLogin prohibit-password на PermitRootLogin yes. После применения изменений, перезапустить SSH-сервер командой systemctl restart sshd.

Данную операцию можно выполнить на всех Linux машинах, или только на одной (использовать данную машину как сетевое хранилище для файлов). Если захотите настроить SSH на всех машинах, то можете по scp отправить ранее настроенный конфигурационный файл. Обязательно настройте SSH на машинах RTR и WEB.

Использование утилиты scp

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

scp «источник (что копируем) » «назначение (куда копируем) »

Удаленный компьютер может быть как источником, так и назначением. Удаленный компьютер объявляется конструкцией «доменное имя или ip-адрес»:«путь на удаленном компьютере».

Пример:

scp /etc/ssh/sshd_config 172.16.100.100:/etc/sshd – с компьютера, на котором выполняется команда, файл shhd_config копируется на компьютер с адресом 172.16.100.100 в каталог /etc/ssh

scp 172.16.100.100:/etc/ipsec.* /etc/ – с удаленного компьютера на компьютер, где выполняется команда, копируются файлы которые начинаются на ipsec (папки не затрагиваются) в каталог /etc

Выполнение задания.

Задание имени компьютера и настройка адресации

Все настройки производятся в пакете networkmanager (nmtui)

e

Выберите необходимое соединение. (Смотрите на название соединение, а не положение в списке). Первому сетевому адаптеру соответствует первый адрес из Таблицы 1, второму – второй адрес и т.д. (Например, на RTR-L Wired Connection 1 соответствует адрес 4.4.4.100.24)

Для задания адреса нужно перевести интерфейс в ручное конфигурирование адреса (IP V4 Configuration — Manual).

  1. Адрес адаптера вместе с префиксом (префикс обязателен, без него будет задана маска по умолчанию);
  2. Шлюз (На машине может быть только один шлюз, задание шлюза на разных интерфейсах приведет к проблемам маршрутизации). На машине ISP задавать шлюз не нужно;
  3. DNS-Сервер – Все устройства обращаются к SRV(кроме ISP и CLI, в качестве DNS используется ISP).

Проверить задание адресов можно проверить командой ip a.

Если адреса не изменились, то через пункт Activate a connection, перезапустите соединение.

 Для обеспечения работоспособности сети, на промежуточных машинах (RTR-L, RTR-R и ISP) надо включить маршрутизацию пакетов. В файле /etc/sysctl.conf удалите символ # на строке net.ipv4.ip_forward=1.

После сохранения выполните команду sysctl -p для применения изменений (вы также можете просто перезагрузить машину).

Настройка сетевого экрана

Для выполнения данного задания нужно установить пакет firewalld на RTR-R и RTR-L.

Трансляция адресов должна проводиться на внешнем интерфейсе. Внешним интерфейсом является первая сетевая карта. С помощью команды ip a можно увидеть все названия сетевых адаптеров (названия начинаются ens, обычно первым идет ens192).

Данная команда переносит сетевой интерфейс ens192 в зону external. В данной зоне по умолчанию блокируется входящий трафик, а исходящий трафик автоматический транслируется на внешний адрес.

  • firewall-cmd —zone=external —change-interface=ens192

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

  • firewall-cmd —zone=external —add-service=gre -разрешает туннель
  • firewall-cmd —zone=external —add-service=ipsec – разрешает защиту туннеля
  • firewall-cmd —zone=external —add-service=dns – разрешает DNS (Выполнить только на RTR-L)
  • firewall-cmd —zone=external —add-service=http – разрешает HTTP
  • firewall-cmd —zone=external —add-service=https– разрешает HTTPS

Для обращений к платформам со стороны хостов, находящихся внутри регионов, ограничений быть не должно. За это отвечает внутренний сетевой интерфейс.

Внутренним интерфейсом является вторая сетевая карта. С помощью команды ip a можно увидеть все названия сетевых адаптеров (названия начинаются ens, обычно вторым идет ens224).

данная команда переносит сетевой интерфейс в зону trusted, где все разрешено. В зоне trusted не нужно разрешать какие-либо сервисы.

  • firewall-cmd —zone=trusted —change-interface=ens224

Перенаправление портов

Перенаправление портов выполняется данными командами.

На RTR-L firewall-cmd —zone=external —add-forward-port=port=2222:proto=tcp:toport=22:toaddr=192.168.100.100 – эта команда перенаправляет трафик с 2222 tcp порта на 22 порт машины с адресом 192.168.100.100 (WEB-L).

На RTR-R firewall-cmd —zone=external —add-forward-port=port=2244:proto=tcp:toport=22:toaddr=172.16.100.100 – перенаправление 2244 на Web-R.

Эти две команды нужны для работы DNS сервера, расположенного на машине SRV. Выполнять на RTR-L.

  • firewall-cmd —zone=external —add-forward-port=port=53:proto=udp:toport=53:toaddr=192.168.100.200
  • firewall-cmd —zone=external —add-forward-port=port=53:proto=tcp:toport=53:toaddr=192.168.100.200 –

После всех операций сохраните текущие настройки в постоянные командой firewall-cmd —runtime-to-permanent.

Создание туннеля

Без настройки сетевого экрана и маршрутизации, туннель работать не будет!

Для создания туннеля, в nmtui добавляете новое IP tunnel соединение

Параметры для заполнения

  • Device – имя устройства. Данный параметр будет отображаться при выполнении команды ip a. Принято называть tun#
  • Mode – тип туннеля. Используйте GRE
  • Local IP – внешний адрес настраиваемой машины.
  • Remote IP – внешний адрес машины, с которой будет организовываться туннель.

Настройка адреса идентична настройке сетевых интерфейсов. В задании не задана конкретная сеть для туннеля, поэтому сеть на ваше усмотрение (используйте стандартные диапазоны для ЛВС такие как: 10.x.x.x 172.16.x.x 192.168.x.x). Шлюз не задается.

На второй машине меняются местами Local IP и Remote IP. И используется следующий адрес.

Для того чтобы доступ между сетями был через туннель, нужно настроить маршруты. В пункте Routing выберите Edit. Должно появиться следующее окно.

Параметры:

Destination/Prefix – в какую сеть мы хотим попасть. Для RTR-L это 172.16.100.0/24 (указывается именно сеть, а не конкретный адрес)

Next Hop – через кого мы хотим попасть в указанную сеть. Здесь надо указать туннельный адрес соседней машины. Если здесь указать внешний адрес, то трафик пойдет не по туннелю. В моем примере для RTR-R это 10.20.20.2.

На RTR-R нужно создать маршрут 192.168.100.0/24 10.20.20.1 (next hop у вас может быть другим)

Защита туннеля

Для защиты туннеля будет использоваться пакет strongswan

После установки, откройте в текстовом редакторе файл /etc/ipsec.conf. (в этом файле есть заготовка для соединения) настройте соединение.

Содержимое конфигурационного файла:

  • Conn vpn – Название соединения. Название на ваше усмотрение.
  • Type=tunnel – тип соединения
  • Auto=start – автозапуск соединения (автозапуск самого ipsec выполняется отдельно)
  • Authby=secret – аутентификация по паролю
  • Left= — внешний адрес устройства
  • Right= — внешний адрес соседнего устройства по туннелю
  • Leftprotoport=gre – протокол, который будет шифроваться со стороны устройства (Без этого параметра будет шифроваться все соединения, что противоречит заданию)
  • Rightprotoport=gre протокол, который будет шифроваться с соседнего устройства

Пароль для создания соединения задается в файле /etc/ipsec.secrets

Данный файл содержит адреса, которые используют заданный в кавычках пароль. Порядок адресов не имеет значения.

Скопируйте данные файлы (ipsec.conf и ipsec.secrets) на второй роутер и поменяйте параметры left и right местами.

Далее надо включить автозапуск ipsec в системе командой systemctl enable –now ipsec.

Работоспособность защиты можно проверить командой ipsec status.

Если на экране есть такое сообщение, то защита туннеля работает.

Настройка DNS-сервера на Debian

В качестве DNS сервера используется пакет bind9. Настройка включает в себя настройку сервера, создание зоны и объявление созданной зоны.

Конфигурационный файл (/etc/bind/named.conf.options):

  1. Настройка безопасности (При значении auto не будет работать делегирование);

Файл зоны (название на ваше усмотрение, но обязательно в папке /etc/bind/):

Содержимое файла зоны (в качестве заготовки можно использовать файл /etc/bind/db.local). Параметр $ORIGIN указывает на обслуживаемую зону.

1 – Название зоны и почта (точка в конце обязательна);

2 – Записи из таблицы 2. Имеет вид: (ключ) IN (тип записи) (Значение). Если ключ не заканчивается на точку, то к нему приписывается $ORIGIN (обслуживаемый домен). @ — в качестве записи используется $ORIGIN;

3 – Связывающая запись. Используется для делегирования. Указывает на DNS сервер SRV (по внешнему адресу RTR-L);

4- $ORIGIN делегируемого домена;

5- Указывает какой сервер отвечает за делегируемый домен.

Если были добавлены какие-либо изменения в файл зоны, то для применения изменений, увеличьте значение параметра serial (на рисунке он равен 14). Увеличивать можно на любое значение.

Объявление зоны (/etc/bind/named.conf.default-zones).

  1. объявление самой зоны;
  2. тип зоны. Нужно указать что это первичный сервер (master);
  3. файл с содержимым зоны.

Этот текст можно ввести в любом файле named.conf.*, но в named.conf.default-zones есть заготовки, чтобы не запоминать всю конструкцию.

После настройки требуется перезагрузить DNS сервер командой systemctl restart bind9.

Настройка DNS-сервера на Windows Server

Установите роль DNS сервера на SRV

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

Обслуживаемая зона

Создание обратной зоны (все что здесь не показано – по умолчанию)

Нужно создать две зоны, для сети 192.168.100.0/24 и 172.16.100.0/24. Первых двух октетов будет достаточно.

Создание записей (выполняйте после создания обратной зоны):

В контекстном меню выбираете требуемые записи для создания.

А запись:

  1. Ключ;
  2. Значение записи;
  3. Автоматическое создание обратной записи (поставьте галочку).

CNAME записи:

  1. Ключ;
  2. Выбор записи, на которую будет ссылаться создаваемая запись (может ссылаться на A и CNAME записи);
  3. Список существующих записей.

Так как все компьютеры в сети (кроме CLI) используют SRV в качестве DNS-сервера, то нужно настроить перенаправление неизвестных запросов на DNS-сервер расположенный на ISP. Данная настройка производится в свойствах DNS сервера во вкладке Forwarders

В качестве сервера пересылки указываете адрес ISP (пойдет любой его адрес)

Настройка NTP сервера на Debian

Для работы NTP сервера необходимо установить пакет chrony. В конфигурационном файле /etc/chrony/chrony.conf нужно дописать следующие строки:

  • local stratum 4 – запуск сервера со значением стратума (приоритета) равного 4.
  • allow 3.3.3.100 — разрешаем CLI синхронизировать время с машины ISP
  • allow 4.4.4.100 — разрешаем SRV синхронизировать время с машины ISP. Так как на RTR-L настроена трансляция адресов то, чтобы SRV мог синхронизироваться нужно указать внешний адрес RTR-L.

После сохранения перезапустите сервис systemctl restart chrony.

Настройка NTP сервера на Windows Server

Откройте редактор локальной групповой политики (gpedit.msc). По пути Computer Configuration -> Administrative Templates -> System -> Windows Time Service -> Time Providers включите политики Enable Windows NTP и Client Enable Windows NTP Server. Настройка Configure Windows NTP Client:

  1. NTP сервер к которому мы обращаемся (по доменному имени). Служба DNS должна работать. Приписка 0x9 должна остаться (по умолчанию она присутствует, не удалите случайно)
  2. Тип – NTP. По умолчанию используется свой протокол синхронизации времени. Chrony с ним не работает.

Дополнительно отключите сетевой экран на машине SRV, чтобы NTP запросы к SRV не блокировались.

Для применения настроек перезагрузите машину. Данные настройки применимы для настройки NTP клиента на машине CLI. Только в качестве сервера указывается isp.demo.wsr, и политику NTP сервера включать не надо.

Второй способ настройки NTP сервера (через редактор реестра)

В реестре по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters нужно изменить параметры NtpServer (здесь должен быть адрес машины ISP) и Type (должно быть NTP).

В HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config параметр AnnounceFlags должен быть равен a (10 в десятеричной системе счисления).

В HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer в параметре enabled должна стоять 1.

После данных действий нужно перезапустить сервис Windows Time. В менеджере серверов в разделе Tools есть оснастка Services. Найдите и перезапустите сервис Windows Time. Также как и в предыдущем методе, надо отключить сетевой экран.

Если в качестве SRV используется Debian, то его настройка идентична настройке ISP, только стратум будет равен 5, и в адресах указывается целые сети (172.16.100.0/24 и 192.168.100.0/24)

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

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

  1. Отключите источник по умолчанию (или перепишите на свой) с помощью добавления символа # перед строкой
  • Добавьте следующие строки

Первая строка указывает к какому серверу обращаться.

Вторая строка необходима из-за проблем совместимости с NTP на Widows Server (если на SRV будет использоваться Debian, то эта строка не нужна).

Чтобы проверить работоспособность, выполните команду chronyc sources

Если в Name/IP Address указан адрес SRV и слева есть ^*, то синхронизация времени работает. Если отображается ^? и не происходит синхронизация времени, то попробуйте увеличить значение maxdistance. Также проверьте синхронизацию между SRV и ISP.

Создание SMB-сервера

Перед организацией сетевого хранилища, нужно создать физическое хранилище в оснастке «Управление дисками» (Disk Management). Процесс его создания представлен на следующих скриншотах.

Создание сетевой папки производится в диспетчере серверов. Убедитесь что роль файлового сервера (File server) установлена.

При указании целого диска для сетевой папки, на самом деле будет создана отдельная папка в корне данного диска. Задайте имя сетевой папки. В нижней части окна будет указан физический (расположение на локальном диске) и сетевой (как нужно обращаться по сети) путь.

При создании сетевой папки создайте пользователя (я создал пользователя root, вы можете назвать его иначе), и предоставьте полные права этому пользователю во вкладках Permissions и Share.

Перед монтированием нужно установить пакет cifsutils и создать соответствующие каталоги командой mkdir /opt/share

mount -t cifs -o user=«пользователь» /srv.int.demo.wsr/«сетевая папка» /opt/share

Используйте эту команду если хотите проверить работоспособность сетевого хранилища (не обязательно). Выполните команду touch /opt/share/test.  Если в сетевой папке появился данный файл, то сетевая папка работает нормально.

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

В файле /etc/fstab нужно написать следующую строку

//srv.int.demo.wsr/web /opt/share cifs user,rw,username=root,password=P@ssw0rd 0 0

  • //srv.int.demo.wsr/web – сетевое хранилище, которое монтируем. Путь может отличаться от вашего. К серверу можно также обращаться по ip-адресу.
  • /opt/share – каталог куда мы монтируем
  • cifs – тип монтируемой файловой системы
  • user,rw,username=root,password=P@ssw0rd 0 0 – опции. user – пользовательский доступ. rw – подключение сетевого хранилища с правами записи файлов. username= и password= — логин и пароль соответственно.

!!ВАЖНО!! Не копируйте файл fstab на другие машины. Этот файл уникальный для каждой машины. Если вы скопируете этот файл на другую ВМ, то она после перезагрузки не запустится (а если запустится, то в режиме readonly)

Примечание! В задании не запрещено использование сетевой папки на других машинах. Эту папку можно использовать для хранения файлов (конфиги, сертификаты и т.п.). В таком случае можно не использовать scp для передачи файлов между машинами.

Настройка центра сертификации на базе SRV

Убедитесь, что вы сменили имя компьютера на машине SRV. После установки роли Certification Authority вы не сможете поменять имя компьютера (понадобится удаление роли). Установите роль Certification Authority на SRV в режиме Standalone Root CA (все остальные поля можно оставить по умолчанию).

В реестре (regedit) по пути HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\CertSvc\Configuration\<имя вашего ЦС> измените параметр ValidityPeriodUnits. По умолчанию этот параметр указывает срок жизни сертификата в 1 год. По заданию срок жизни сертификата должен быть не меньше 500 дней. Меняете это значение по своему усмотрению.

Создание запроса:

На любой машине с ОС Linux (желательно на WEB-L или WEB-R, т.к. они подключены к сетевой папке) нужно изменить содержимое файла /etc/ssl/openssl.cnf.

В блоке req (если открыть файл через редактор nano, то начало блока будет подсвечено зеленым цветом) нужно добавить строку req_extensions = v3_req

В блоке req_distinguished_name нужно закомментировать строки stateOrProvinceName_default и 0.organizationName_default (добавив спереди #). Также можно сразу изменить параметр countryName_Default на RU.

В блоке v3_req добавьте строки, выделенные на скриншоте. Они указывают на доменные имена доступные данному сертификату.

После редактирования файла выполните следующую команду. Файлы будут созданы в текущем каталоге, поэтому рекомендуется сначала перейти в сетевую папку /opt/share (cd /opt/share/).

openssl req -nodes -newkey rsa -out csr.req

  • Параметры сертификата. Заполняются только поля Country Name, Organization Name и Common Name (в данном случае это доменное имя сайта — www.demo.wsr)
  • Пароль на сам запрос сертификата. Оставить пустым

После этого будет созданы два файла privkey.pem (приватный ключ) csr.req (запрос на сертификат)

Выпуск сертификата:

На SRV в оснастке Certification Authority добавьте созданный запрос из сетевой папки.

Запрос на сертификат появится в папке Pending Requests. Командой Issue мы выпускаем сертификат.

Появившийся в папке Issued Certificates сертификат надо экспортировать (Кнопка «Copy to File» во вкладке Details).

При экспорте нужно указать тип экспорта сертификата (Base64) и расположение файла сертификата. Если будете сохранять в сетевой папке, то сохраняйте через физический путь т.к. при создании сетевого хранилища мы не выдали администратору прав на сетевое хранилище (доступ через диск R у администратора есть). Остальные параметры оставьте по умолчанию

Настройка доверия к ЦС.

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

Далее файл сертификата экспортируется таким же образом, как и созданный ранее сертификат.

Далее необходимо передать этот файл на машину CLI. Если вы настроили проброс портов при настройке сетевого экрана, то вы можете скачать этот файл напрямую с WEB-L( или R) с помощью следующей команды в PowerShell (не запускайте от имени администратора):

scp -P 2222 root@4.4.4.100:/opt/share/CA.cer ./Desktop

  • -P — используемый порт для подключения (2222 для WEB-L, 2244 для WEB-R)
  • root@4.4.4:/opt/share/CA.cer — копируем файл сертификата. Root -пользователь, 4.4.4.100 адрес /opt/share/CA.cer – путь до файла
  • ./Desktop расположение скопированного файла. Файл появится на рабочем столе.

Если вы не настроили перенаправление портов, то можете скачать файл с машины RTR-L (или R), тогда ключ -P вам не понадобится.

Кликните правой кнопкой мыши по скачанному файлу и выберите Install

Установка Docker

Для установки Docker и контейнера есть два варианта установки:

Только на Linux (сложно):

1-           создайте папку. Например, в /opt/docker

2-           примонтируйте подключенный диск docker_inst.iso в папку mnt командой mount /dev/cdrom /mnt

3-           Скопируйте все файлы из /mnt в созданную папку командой cp /mnt/* /opt/docker/

4-           Из папки /opt/docker переместите файлы appdocker0.zip и Readme.txt в домашний каталог командами mv /opt/docker/appdocker0.zip ~/ mv /opt/docker/Readme.txt ~/

5-           Подключите первый диск с пакетами (Debian-…-BD-1.iso)

6-           Проведите установку Docker командой apt install /opt/docker/*

7-           На машине CLI подключите диск docker_inst.iso и следуйте инструкциям в файле Readme.txt. !!!Примечание!!! В команду запуска контейнера добавьте ключ -p 5000:5000 —restart unless-stopped (docker run -d -p 5000:5000 —restart unless-stopped appdocker0 ).

Приложение appdocker0 нужно развернуть на WEB-L и WEB-R.

Второй способ (проще, но нужна настроенная сетевая папка):

  1. Подключите диск docker_inst.iso к машине SRV
  2. В сетевой папке создайте отдельную папку docker, и переместите файлы с расширением .deb с подключенного диска.
  3. appdocker0.zip и Readme.txt можете скопировать в отдельную папку или в корень сетевой папки.
  4. На WEB-L (и WEB-R) установите Docker командой apt install /opt/share/docker/*

Следуйте инструкции в файле Readme на SRV.!!!Примечание!!! В команду запуска контейнера добавьте ключ -p 5000:5000 —restart unless-stopped (docker run -d -p 5000:5000 —restart unless-stopped appdocker0 ).

  • Настройка доступа к приложению

Данные операции нужно выполнить на RTR-L и RTR-R.

  1. Установите веб-сервер nginx
  2. Отредактируйте файл /etc/nginx/sites-enabled/default

upstream (нужно дописать) – сервера к которым будет обращаться обратный прокси

server «ip-адрес»:«порт» max_fails=1 fail_timeout=25 (последние два параметра отвечают за отказоустойчивость)

Первый блок sever содержит настройки http (не защищенного) сервера:

listen – указывает, на каких портах сервер принимает запросы (оставьте по умолчанию)

index – стартовая страница по умолчанию (оставьте по умолчанию)

server_name – Данный сервер будет отвечать только в том случае, если был запрос по указанному доменному имени (если обратиться по ip адресу, то клиент не будет обслужен) (измените под задание)

return 301 https://www.demo.wsr$request_uri – Перенаправляет все http запросы на https. $request_uri дописывает пользовательский запрос, без него открывалась бы только главная страница.

Второй блок sever содержит настройки https (защищенного) сервера:

К директиве listen добавлена приписка ssl и используется порт 443 (оставьте по умолчанию)

ssl_certificate – файл сертификата

ssl_certificate – файл приватного ключа

Ключ и сертификат должны быть получены после настройки сервера сертификации. В своем примере я расположил сертификаты сервера в папке /etc/nginx/ssl/.

location / — эта директива указывает расположение каталога / сайта

proxy_pass – отвечает за перенаправление запросов. В примере показан перенаправление на группу серверов app (объявляли в самом начале). !!!Важно!!! Не забудьте поставить закрывающий /. Без него будет работать только первая страница.

Остальные параметры идентичны первому блоку

После сохранения конфигурации перезапустите сервер командой systemctl restart nginx.

Конфигурационный файл веб-сервера будет работать на обоих машинах RTR-L и RTR-R (если есть настройка https, то не забудьте скопировать еще и сертификаты, и положить их в соответствующие пути).

Настройка доступа к приложениям (если не настраивали центр сертификации)

Если вы не смогли (или не захотели) создать сертификаты для сервера, то конфигурация веб-сервера должна выглядеть так:

Главные отличия этого конфигурационного файла от предыдущего заключается отсутствие блока для https сервера. И из-за того, что его нет, в http блоке была убрана директива return 301 (т.к. некуда перенаправлять) и добавлена директива location / (вместе с параметром proxy_pass) для перенаправления запросов к приложениям.

Задания обязательные к выполнению

Настройка адресации – без адресации будет невозможно выполнить остальные задания.

Настройка сетевого экрана – нужна настройка трансляции адресов и разрешение сервисов. Проброс портов 2222 и 2244 не влияет на выполнение других заданий (проброс 53 порта для DNS обязателен)

Создание туннеля – нужно выполнить (есть возможность это обойти созданием дополнительных маршрутов, но проще уже сам туннель настроить) для выполнения остальных заданий. Защита самого туннеля не влияет на выполнение других заданий.

Настройка DNS нужна для организации работы веб-приложений. Причем достаточно настроить только DNS-сервер на машине ISP (без делегирования)

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

Создание ЦС нужно только для организации HTTPS доступа к приложениям.

Для настройки доступа к приложению естественно нужны запущенные Docker контейнеры.

Какие задания можно пропустить

Если вы не будете настраивать HTTPS доступ к приложению и делегирование DNS, то настройка пробросов портов в сетевом экране не нужна. (остальные настройки сетевого экрана обязательны).

Защита туннеля не влияет на выполнения остальных заданий.

Настройка NTP сервера на Windows Server сопряжена с трудностями (иногда просто не работает). Это задание не влияет на выполнение других задач.