Добавить в корзинуПозвонить
Найти в Дзене

Инструкция модуль 3

mount /dev/sr0 /mnt/ vim import_user.sh chmod +x import_user.sh ./import_user.sh /mnt/Users.csv Результат окончания работы скрипта (1 полный скрин экрана noVNC): После запуска скрипта и ожидания завершения работы средствами samba-tool можно произвести проверку созданных OU и пользователей:созданные OU:
созданные пользователи в OU "IT": созданные пользователи в OU "Overal": созданные пользователи в OU "Manager": созданные пользователи в OU "Supporter" (186 пользователей):
apt-get install -y openssl-gost-engine control openssl-gost enabled openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:TCB -out ca.key openssl req -new -x509 -md_gost12_256 -days 30 -key ca.key -out ca.cer openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out web.au-team.irpo.key openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out docker.au-team.irpo.key openssl req -new -md_gost12_256 -key gost.example.com.key -out web.au-team.irpo.csr openssl req -new -md_gost12_256 -key gost.exampl
Оглавление

1. Выполните импорт пользователей в домен au-team.irpo

Задание:

  • В качестве файла источника выберите файл users.csv располагающийся в образе Additional.iso
  • Пользователи должны быть импортированы со своими паролями и другими атрибутами
  • Убедитесь, что импортированные пользователи могут войти на машину HQ-CLI

Вариант реализации:

BR-SRV:

  • Выполнить монтирование Additional.iso в директорию /mnt:
mount /dev/sr0 /mnt/
  • Файл в целом включает в себя 300 пользователей (1 строка под шапку):
-2
vim import_user.sh
  • скрипт может выглядеть следующим образом (один из вариантов, далеко не эталонный, но работоспособный):
-3
  • Выдать права на исполнение:
chmod +x import_user.sh
  • Запустить скрипт:
./import_user.sh /mnt/Users.csv
  • Результат запуска скрипта (1 полный скрин экрана noVNC):
-4

Результат окончания работы скрипта (1 полный скрин экрана noVNC):

-5

После запуска скрипта и ожидания завершения работы средствами samba-tool можно произвести проверку созданных OU и пользователей:созданные OU:

-6

созданные пользователи в OU "IT":

-7

созданные пользователи в OU "Overal":

-8

созданные пользователи в OU "Manager":

-9

созданные пользователи в OU "Supporter" (186 пользователей):

-10

2. Выполните настройку центра сертификации на базе HQ-SRV

Задание:

  • Необходимо использовать отечественные алгоритмы шифрования
  • Сертификаты выдаются на 30 дней
  • Обеспечьте доверие сертификату для HQ-CLI
  • Выдайте сертификаты веб серверам
  • Перенастройте ранее настроенный реверсивный прокси nginx на протокол https
  • При обращении к веб серверам https://web.au-team.irpo и https://docker.au-team.irpo у браузера клиента не должно возникать предупреждений.

Вариант реализации:

HQ-SRV:

  • Установите пакет с поддержкой ГОСТ:
apt-get install -y openssl-gost-engine
  • Включите поддержку ГОСТ через control-скрипт:
control openssl-gost enabled
  • Создаём закрытый ключ с алгоритмом ГОСТ-2012 (ca.key):
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:TCB -out ca.key
  • Создаём сертификат на 30 дней (ca.cer):
openssl req -new -x509 -md_gost12_256 -days 30 -key ca.key -out ca.cer
  • Результат:
-11
-12
  • Создаём закрытые ключи по алгоритму ГОСТ веб-серверов:для web.au-team.irpo:
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out web.au-team.irpo.key
  • для docker.au-team.irpo:
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out docker.au-team.irpo.key
  • Создаём запросы на подпись ранее созданном УЦ:
  • для web.au-team.irpo:
openssl req -new -md_gost12_256 -key gost.example.com.key -out web.au-team.irpo.csr
-13
  • для docker.au-team.irpo:
openssl req -new -md_gost12_256 -key gost.example.com.key -out docker.au-team.irpo.csr
-14
  • Подписываем запрос в ранее созданном УЦ:
  • для web.au-team.irpo:
openssl x509 -req -in web.au-team.irpo.csr -CA ca.cer -CAkey ca.key CAcreateserial -out web.au-team.irpo.cer -days 30
  • для docker.au-team.irpo:
openssl x509 -req -in docker.au-team.irpo.csr -CA ca.cer -CAkey ca.key -CAcreateserial -out docker.au-team.irpo.cer -days 30
  • Результат:
-15

ISP:

  • Разрешаем доступ по ssh для пользователя root, чтобы можно было передать необходимые файлы с HQ-SRV:
vim /etc/openssh/sshd_config
  • приводим PermitRootLogin к следующему виду:
-16
  • Перезагружаем службу sshd для применения изменений:
systemctl restart sshd

HQ-SRV:

  • Передаём необходимые файлы на ISP:
scp web.au-team.irpo.key root@172.16.1.1:~/
scp web.au-team.irpo.cer root@172.16.1.1:~/
scp docker.au-team.irpo.key root@172.16.1.1:~/
scp docker.au-team.irpo.cer root@172.16.1.1:~/

ISP:

  • Проверить наличие файлов ключей и сертификатов:
-17
  • Создаём каталог /etc/nginx/ssl и копируем туда файлы ключей и сертификатов:
mkdir /etc/nginx/ssl
cp web.au-team.irpo.* /etc/nginx/ssl
cp docker.au-team.irpo.* /etc/nginx/ssl
  • Перенастраиваем доступ по https для доступа к сайту web.au-team.irpo и docker.au-team.irpo в конфигурационном файле /etc/nginx/sites-available.d/default.conf:
vim /etc/nginx/sites-available.d/default.conf
-18
  • Проверить наличие ошибок в конфигурационных файлах:
nginx -t
  • Результат:
-19

  • Чтобы устранить подобную ошибку и чтобы nginx в результате успешно перезапустил свою службу, необходимо установить пакет с поддержкой ГОСТ:
apt-get install -y openssl-gost-engine
  • Включите поддержку ГОСТ через control-скрипт:
control openssl-gost enabled
  • Перепроверить наличие ошибок в конфигурационных файлах:
-20

  • Перезапустить службу nginx:
systemctl restart nginx

HQ-SRV:

  • Передаём на HQ-CLI корневой сертификат УЦ (ca.cer):
scp ca.cer user@192.168.200.2:~/

HQ-CLI:

  • Проверить наличие переданного сертификата:
-21
  • Для установки корневых сертификатов необходимо поместить файлы сертификатов в /etc/pki/ca-trust/source/anchors/ и обновить общесистемный список доверенных CA (из-под суперпользователя root):
cp /home/user/ca.cer /etc/pki/ca-trust/source/anchors/ && update-ca-trust
  • Проверить наличие сертификата в браузере:Яндекс:
-22
-23
-24
-25
-26
-27
-28
  • Из-под суперпользователя перейти в дирректорию с распакованным архивом:
cd /home/user/Загрузки/linux-amd64
  • Установите пакет cryptopro-preinstall:
apt-get install -y cryptopro-preinstall
  • Запустить скрипт установки:
./install_gui.sh
-29
-30
-31
-32
-33
-34

Можно запустить КриптоПРО SCP и проверить наличие нашего УЦ:

-35

После чего проверить доступ до веб-ресурсов:https://web.au-team.irpo:

-36
-37
-38
docker.au-team.irpo
-39

НО (проблемы в исходном коде приложения):

Описанное ниже - не является призывом к действию! Просто попытка дойти до истины (редактирование запущенного контейнера - никчему хорошему не приведёт!)

  • для подключения https://docker.au-team.irpo - возникают проблемы со стилями (именно при подключению по HTTPS):
-40

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

-41
  • можем попытаться войти внутрь контейнера с нашим приложением на BR-SRV:
docker exec -it testapp ash
-42

проблема кроется в файле app/site/site.html, а именно в строке:

-43

если данную строку привести к следующему виду:

-44

проблема с отсутствием стилей при доступе по HTTPS будет решена:

-45

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

Задание:

  • Настройте защищенный туннель между HQ-RTR и BR-RTR
  • Внесите необходимые изменения в конфигурацию динамической маршрутизации, протокол динамической маршрутизации должен возобновить работу после перенастройки туннеля
  • Выбранное программное обеспечение, обоснование его выбора и его основные параметры, изменения в конфигурации динамической маршрутизации отметьте в отчёте.

Вариант реализации:

HQ-RTR:

  • Включить протокол IKE:
hq-rtr(config)#crypto-ipsec ike enable
hq-rtr(config)#
  • Настроить профили IPsec:для создания туннеля IPsec используется протокол IKE (Internet Key Exchange);
    есть две фазы построения IPsec туннеля: IKE фаза 1 и IKE фаза 2;
hq-rtr(config)#crypto-ipsec profile CIPROFILE ike-v2
hq-rtr(config-ipsec-ikev2)#mode tunnel
hq-rtr(config-ipsec-ikev2)#
  • IKE фаза 1:на IKE этапе 1 два узла договариваются о протоколах шифрования, аутентификации, хеширования и других протоколах, которые они хотят использовать, а также о некоторых других необходимых параметрах;
    на этом этапе устанавливается сеанс ISAKMP (Internet Security Association and Key Management Protocol);
    это также называется туннелем ISAKMP или туннелем первой фазы IKE;
    туннель IKE фазы 1 используется только для управляющего трафика.
hq-rtr(config-ipsec-ikev2)#ike-phase1
hq-rtr(config-ipsec-ikev2-ph1)#proposal aes256-sha256-modp2048
hq-rtr(config-ipsec-ikev2-ph1)#auth pre-shared-key P@ssw0rd
hq-rtr(config-ipsec-ikev2-ph1)#exit
hq-rtr(config-ipsec-ikev2)#
  • IKE фаза 2:этот туннель используется как безопасный метод для организации второго туннеля, называемого туннелем IKE фазы 2 или туннелем IPsec;
    второй туннель предназначен уже для непосредственной передачи пользовательских данных а также для управляющих данных;
    после завершения фазы 2 IKE появится туннель фазы 2 IKE (или туннель IPsec), который можно использовать для защиты пользовательских данных.
hq-rtr(config-ipsec-ikev2)#ike-phase2
hq-rtr(config-ipsec-ikev2-ph2)#protocol esp
hq-rtr(config-ipsec-ikev2-ph2)#proposal aes256-sha256
hq-rtr(config-ipsec-ikev2-ph2)#local-ts 172.16.1.2
hq-rtr(config-ipsec-ikev2-ph2)#remote-ts 172.16.2.2
hq-rtr(config-ipsec-ikev2-ph2)#exit
hq-rtr(config-ipsec-ikev2)#exit
hq-rtr(config)#
  • Задать крипто-карту:необходимо указать, к какому пиру следует применять соответствующий профиль IPsec
hq-rtr(config)#crypto-map CMAP 10
hq-rtr(config-crypto-map)#match peer 172.16.2.2
hq-rtr(config-crypto-map)#set crypto-ipsec profile CIPROFILE
hq-rtr(config-crypto-map)#exit
hq-rtr(config)#
  • Задать карты фильтрации:для каждого маршрутизатора необходимо вычленить исходящий трафик который нужно зашифровать и входящий, который нужно дешифровать;
    исходящий (из локальной сети в туннель) трафик фильтруется по адресам локальной и удалённой подсети;
    фильтруется любой тип трафика;
    к фильтр-карте привязана криптографическая карта crypto-map, которая, в свою очередь, ссылается на профиль crypto-ipsec;

    трафик шифруется в соответствии с параметрами указанными в профиле IPsec и отправляется в туннель.для туннеля используется одна карта фильтрации, которая последовательно обрабатывает исходящий и входящий трафик, и оканчивается разрешающим правилом для прочего трафика:
hq-rtr(config)#filter-map ipv4 FMAP 5
hq-rtr(config-filter-map-ipv4)#match gre host 172.16.1.2 host 172.16.2.2
hq-rtr(config-filter-map-ipv4)#set crypto-map CMAP peer 172.16.2.2
hq-rtr(config-filter-map-ipv4)#exit
hq-rtr(config)#
hq-rtr(config)#filter-map ipv4 FMAP 10
hq-rtr(config-filter-map-ipv4)#match udp host 172.16.2.2 eq 4500 host 172.16.1.2 eq 4500
hq-rtr(config-filter-map-ipv4)#set crypto-map CMAP peer 172.16.2.2
hq-rtr(config-filter-map-ipv4)#exit
hq-rtr(config)#
hq-rtr(config)#filter-map ipv4 FMAP 15
hq-rtr(config-filter-map-ipv4)#match any any any
hq-rtr(config-filter-map-ipv4)#set accept
hq-rtr(config-filter-map-ipv4)#exit
hq-rtr(config)#
  • Применить фильтр-карты к необходимым L3-интерфейсам во входящем направлении:
hq-rtr(config)#interface isp
hq-rtr(config-if)#set filter-map in FMAP 10
hq-rtr(config-if)#exit
hq-rtr(config)#
hq-rtr(config)#interface tunnel.0
hq-rtr(config-if-tunnel)#set filter-map in FMAP 10
hq-rtr(config-if-tunnel)#exit
hq-rtr(config)#
hq-rtr(config)#write memory
Building configuration...

hq-rtr(config)#

P.S.

Для шифрования туннеля используется протокол IKEv2, для которого NAT traversal включён по умолчанию.

BR-RTR:

  • Аналогично HQ-RTR, но зеркально:
br-rtr(config)#crypto-ipsec ike enable
br-rtr(config)#
br-rtr(config)#crypto-ipsec profile CIPROFILE ike-v2
br-rtr(config-ipsec-ikev2)#mode tunnel
br-rtr(config-ipsec-ikev2)#ike-phase1
br-rtr(config-ipsec-ikev2-ph1)#proposal aes256-sha256-modp2048
br-rtr(config-ipsec-ikev2-ph1)#auth pre-shared-key P@ssw0rd
br-rtr(config-ipsec-ikev2-ph1)#exit
br-rtr(config-ipsec-ikev2)#
br-rtr(config-ipsec-ikev2)#ike-phase2
br-rtr(config-ipsec-ikev2-ph2)#protocol esp
br-rtr(config-ipsec-ikev2-ph2)#proposal aes256-sha256
br-rtr(config-ipsec-ikev2-ph2)#local-ts 172.16.2.2
br-rtr(config-ipsec-ikev2-ph2)#remote-ts 172.16.1.2
br-rtr(config-ipsec-ikev2-ph2)#exit
br-rtr(config-ipsec-ikev2)#exit
br-rtr(config)#
br-rtr(config)#crypto-map CMAP 10
br-rtr(config-crypto-map)#match peer 172.16.1.2
br-rtr(config-crypto-map)#set crypto-ipsec profile CIPROFILE
br-rtr(config-crypto-map)#exit
br-rtr(config)#
br-rtr(config)#filter-map ipv4 FMAP 5
br-rtr(config-filter-map-ipv4)#match gre host 172.16.2.2 host 172.16.1.2
br-rtr(config-filter-map-ipv4)#set crypto-map CMAP peer 172.16.1.2
br-rtr(config-filter-map-ipv4)#exit
br-rtr(config)#
br-rtr(config)#filter-map ipv4 FMAP 10
br-rtr(config-filter-map-ipv4)#match udp host 172.16.1.2 eq 4500 host 172.16.2.2 eq 4500
br-rtr(config-filter-map-ipv4)#set crypto-map CMAP peer 172.16.1.2
br-rtr(config-filter-map-ipv4)#exit
br-rtr(config)#
br-rtr(config)#filter-map ipv4 FMAP 15
br-rtr(config-filter-map-ipv4)#match any any any
br-rtr(config-filter-map-ipv4)#set accept
br-rtr(config-filter-map-ipv4)#exit
br-rtr(config)#
br-rtr(config)#interface isp
br-rtr(config-if)#set filter-map in FMAP 10
br-rtr(config-if)#exit
br-rtr(config)#
br-rtr(config)#interface tunnel.0
br-rtr(config-if-tunnel)#set filter-map in FMAP 10
br-rtr(config-if-tunnel)#exit
br-rtr(config)#
br-rtr(config)#write memory
Building configuration...

br-rtr(config)#

Проверить:

  • Проверьте настроены ли подключения IPsec:HQ-RTR:
-46

-47
-48
-49

С ВМ ISP, установив tcpdump запустить захват на интерфейсах в сторону HQ-RTR или BR-RTR:если конфигурация произведена верно, вы должны увидеть передачу зашифрованных пакетов ESP

-50

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

Задание:

  • Опубликуйте виртуальный pdf-принтер
  • На клиенте HQ-CLI подключите виртуальный принтер как принтер по умолчанию.

Вариант реализации:

HQ-SRV:

  • Установить необходимые пакеты:
apt-get update && apt-get install -y cups cups-pdf
  • Включить и добавить в автозагрузку службу cups:
systemctl enable --now cups

Включить общий доступ к принтеру на сервере и разрешить печатать из любой сети:

cupsctl --share-printers --remote-any
  • Проверить:
-51

HQ-CLI:

Поскольку в домене SambaDC нет DNS записи ссылающейся на необходимое имя, а на HQ-CLI в качестве DNS-сервера задан адрес именно контроллера домена, поэтому необходимо добавить записи в файл /etc/hosts на виртуальной машине HQ-CLI:или же используя утилиту samba-tool добавить необходимые записи на DNS-сервере BR-SRV;

-52
-53
-54
-55
-56
-57