apt-get update && apt-get install -y task-samba-dc for service in smb nmb krb5kdc slapd bind;
do
systemctl disable $service --now;
done rm -f /etc/samba/smb.conf rm -rf /var/lib/samba rm -rf /var/cache/samba mkdir -p /var/lib/samba/sysvol systemctl enable --now samba cp /var/lib/samba/private/krb5.conf /etc/krb5.conf systemctl restart samba echo "search au-team.irpo" > /etc/net/ifaces/ens19/resolv.conf
echo "nameserver 127.0.0.1" >> /etc/net/ifaces/ens19/resolv.conf systemctl restart network kinit administrator@AU-TEAM.IRPO samba-tool group add hq for i in {1..5};
do
samba-tool user add hquser$i P@ssw0rd;
samba-tool user setexpiry hquser$i --noexpiry;
samba-tool group addmembers "hq" hquser$i;
done Проверить что доменное имя резольвится: apt-get update && apt-get install -y task-auth-ad-sssd Результат: необходимо перезагрузить виртуальную машину HQ-CLI: apt-get install -y libnss-role roleadd hq wheel vim /etc/sudoers проверяем sudo для необходимых команд: apt-get
apt-get update && apt-get install -y task-samba-dc for service in smb nmb krb5kdc slapd bind;
do
systemctl disable $service --now;
done rm -f /etc/samba/smb.conf rm -rf /var/lib/samba rm -rf /var/cache/samba mkdir -p /var/lib/samba/sysvol systemctl enable --now samba cp /var/lib/samba/private/krb5.conf /etc/krb5.conf systemctl restart samba echo "search au-team.irpo" > /etc/net/ifaces/ens19/resolv.conf
echo "nameserver 127.0.0.1" >> /etc/net/ifaces/ens19/resolv.conf systemctl restart network kinit administrator@AU-TEAM.IRPO samba-tool group add hq for i in {1..5};
do
samba-tool user add hquser$i P@ssw0rd;
samba-tool user setexpiry hquser$i --noexpiry;
samba-tool group addmembers "hq" hquser$i;
done Проверить что доменное имя резольвится: apt-get update && apt-get install -y task-auth-ad-sssd Результат: необходимо перезагрузить виртуальную машину HQ-CLI: apt-get install -y libnss-role roleadd hq wheel vim /etc/sudoers проверяем sudo для необходимых команд: apt-get
...Читать далее
1. Настройте контроллер домена Samba DC на сервере BR-SRV
Задание:
- Имя домена au-team.irpo
- Введите в созданный домен машину HQ-CLI
- Создайте 5 пользователей для офиса HQ: имена пользователей формата hquser№ (например hquser1, hquser2 и т.д.)
- Создайте группу hq, введите в группу созданных пользователей
- Убедитесь, что пользователи группы hq имеют право аутентифицироваться на HQ-CLI
- Пользователи группы hq должны иметь возможность повышать привилегии для выполнения ограниченного набора команд: cat, grep, id. Запускать другие команды с повышенными привилегиями пользователи группы права не имеют.
Вариант реализации:
BR-SRV:
- Для Samba DC на базе Heimdal Kerberos необходимо установить пакет task-samba-dc, который установит все необходимое:
apt-get update && apt-get install -y task-samba-dc
- Так как Samba в режиме контроллера домена (Domain Controller, DC) использует свой сервер LDAP, свой центр распределения ключей Kerberos и свой сервер DNS (если не включен плагин BIND9_DLZ), перед установкой необходимо остановить конфликтующие службы krb5kdc и slapd, а также bind:
for service in smb nmb krb5kdc slapd bind;
do
systemctl disable $service --now;
done
- Восстановление к начальному состоянию Samba:Необходимо очистить базы и конфигурацию Samba (домен, если он создавался до этого, будет удалён):
rm -f /etc/samba/smb.conf
rm -rf /var/lib/samba
rm -rf /var/cache/samba
mkdir -p /var/lib/samba/sysvol
- Для интерактивного развертывания запустите samba-tool domain provision, это запустит утилиту развертывания, которая будет задавать различные вопросы о требованиях к установке:У Samba свой собственный DNS-сервер. В DNS forwarder IP address нужно указать внешний DNS-сервер, чтобы DC мог разрешать внешние доменные имена
При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»)
Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов
Пароль, не полностью соответствующий требованиям, это одна из причин завершения развертывания домена ошибкой.
При правильной базовой настройки устройства, все параметры подставятся атоматически
- Результат успешного интерактивного развертывания домена Samba DC:
- Включаем и добавляем в автозагрузку службу samba:
systemctl enable --now samba
- Настройка Kerberos:
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
- Перезагружаем службу samba:
systemctl restart samba
- Проверка работоспособности домена:Просмотр общей информации о домене
Просмотр предоставляемых служб
- Проверка конфигурации DNS:Убедиться в наличии nameserver 127.0.0.1 в /etc/resolv.conf:
echo "search au-team.irpo" > /etc/net/ifaces/ens19/resolv.conf
echo "nameserver 127.0.0.1" >> /etc/net/ifaces/ens19/resolv.conf
systemctl restart network
- Утилита host в пакете bind-utils
Проверить имена хостов:
- Проверка Kerberos (имя домена должно быть в верхнем регистре):
kinit administrator@AU-TEAM.IRPO
- Просмотр полученного билета:
- Создаём группу hq:
samba-tool group add hq
- Результат:
- Создаём необходимых пользователей и добавляем их в группу hq:
for i in {1..5};
do
samba-tool user add hquser$i P@ssw0rd;
samba-tool user setexpiry hquser$i --noexpiry;
samba-tool group addmembers "hq" hquser$i;
done
- Проверить:
HQ-CLI:
- Для того чтобы ввести HQ-CLI в домен - задаём статические параметры адресации, чтобы явно указать в качестве DNS-сервера IP-адрес BR-SRV, или же правим данный параметр на DHCP-сервере:
Проверить что доменное имя резольвится:
- Установить пакет task-auth-ad-sssd:
apt-get update && apt-get install -y task-auth-ad-sssd
- Используя Центр Управления Системой (ЦУС) вводим HQ-CLI в домен:
Результат:
необходимо перезагрузить виртуальную машину HQ-CLI:
- Установим библиотеку libnss-role для NSS и набор инструментов для администрирования ролей и привилегий:
apt-get install -y libnss-role
- Данный модуль должен быть включён:
- Связываем доменную группу hq с локальной группой wheel:
roleadd hq wheel
- Проверить:
- Редактируем конфигурационный файл /etc/sudoers:
vim /etc/sudoers
- добавляем следующее содержимое:
- Проверяем, выполнив вход из под любого пользователя группы hq:
проверяем sudo для необходимых команд:
2. Сконфигурируйте файловое хранилище на сервере HQ-SRV
Задание:
- При помощи двух подключенных к серверу дополнительных дисков размером 1 Гб сконфигурируйте дисковый массив уровня 0
- Имя устройства – md0, при необходимости конфигурация массива размещается в файле /etc/mdadm.conf
- Создайте раздел, отформатируйте раздел, в качестве файловой системы используйте ext4
- Обеспечьте автоматическое монтирование в папку /raid
Вариант реализации:
HQ-SRV:
- Выполним установку пакета "mdadm":mdadm — утилита для работы с программными RAID-массивами различных уровней
apt-get update && apt-get install -y mdadm
- Подготовка носителей:
Сначала необходимо занулить суперблоки на дисках, которые мы будем использовать для построения RAIDпри помощи утилиты "lsblk" - просматриваем наши физические диски и определяемся какие будут использоваться в RAID - массиве
lsblk
- Результат:для работы будут использованы диски: sdb, sdc
- Зануление суперблоков на дисках, которые будут использоваться для построения RAID-массива:
mdadm --zero-superblock --force /dev/sdb /dev/sdc
- Создание 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/sdb /dev/sdс
- Результат:
Проверяем:
Сохраняем конфигурацию массива в файле /etc/mdadm.conf:
mdadm --detail --scan --verbose | tee -a /etc/mdadm.conf
- Результат:
- Создание файловой системы для массива
mkfs.ext4 /dev/md0
- Результат:
- Чтобы данный раздел также монтировался при загрузке системы, добавляем в fstab
vim /etc/fstab
- следующую информацию:
- Создаём каталог /raid:
mkdir /raid
- Выполняем монтирование:
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 nfs-utils
- Создаём директорию для общего доступа /raid/nfs, куда ранее был смонтирован RAID - массив:
mkdir /raid/nfs
- Назначаем права на созданную директорию (полный доступ):
chmod 777 /raid/nfs
- Редактируем файл /etc/exports:
vim /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 - сервер:
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:
vim /etc/fstab
- Добавляем следующую информацию:где: 192.168.100.2 - адрес файлового сервера (HQ-SRV)
- Выполняем монтирование общего ресурса:
mount -av
- Результат:
- Проверяем:
df -h
- Результат:
Перезугружаем HQ-CLI и проверяем автомонтирование с правами на запись:
Результат на сервере HQ-SRV:
4. Настройте службу сетевого времени на базе сервиса chrony на маршрутизаторе ISP
Задание:
- Вышестоящий сервер ntp на маршрутизаторе ISP - на выбор участника
- Стратум сервера - 5
- В качестве клиентов ntp настройте: HQ-SRV, HQ-CLI, BR-RTR, BR-SRV.
Вариант реализации:
ISP:
- Редактируем конфигурационный файл /etc/chrony.conf:
vim /etc/chrony.conf
- Добавляем следующую информацию:
- Перезагружаем службу chronyd для применения изменений:
systemctl restart chronyd
- Проверяем:
HQ-RTR:
- Указываем в качестве сервера времени ISP:
hq-rtr(config)#ntp server 172.16.1.1
hq-rtr(config)#write memory
Building configuration...
hq-rtr(config)#
BR-RTR:
- Указываем в качестве сервера времени ISP:
br-rtr(config)#ntp server 172.16.2.1
br-rtr(config)#write memory
Building configuration...
br-rtr(config)#
- Проверить:
HQ-CLI и HQ-SRV:
- Редактируем конфигурационный файл /etc/chrony.conf:
vim /etc/chrony.conf
- Добавляем следующую информацию:
- Перезагружаем службу chronyd для применения изменений:
systemctl restart chronyd
- Проверяем:HQ-CLI:
5. Сконфигурируйте ansible на сервере BR-SRV
Задание:
- Сформируйте файл инвентаря, в инвентарь должны входить HQ-SRV, HQ-CLI, HQ-RTR и BR-RTR
- Рабочий каталог ansible должен располагаться в /etc/ansible
- Все указанные машины должны без предупреждений и ошибок отвечать pong на команду ping в ansible посланную с BR-SRV.
Вариант реализации:
BR-SRV:
- Необходимо установить пакет ansible и sshpass выполнить это можно следующей командой:
apt-get update && apt-get install –y ansible sshpass
- Приведём файл инвентаря ansible к следующему виду, отредактировав конфигурационный файл по пути /etc/ansible/hosts:в данном примере файл инвентаря описан в ini формате
vim /etc/ansible/hosts
- Редактируем файл /etc/ansible/ansible.cfg, приводя его к следующему виду:
vim /etc/ansible/ansible.cfg
- Устанавливаем необходимые коллекции для подключения к «EcoRouterOS»:
ansible-galaxy collection install ansible.netcommon
ansible-galaxy collection install cisco.ios
- Устанавливаем пакет python3-module-pip для возможности установки библиотеки ansible-pylibssh:
apt-get install –y python3-module-pip
pip3 install ansible-pylibssh
HQ-RTR | BR-RTR:
- На виртуальных машинах с ОС «EcoRouterOS» из режима администрирования (conf t) разрешить подключения к устройству по ssh:
(config)# security none
BR-SRV:
- Проверяем, ответы от машин должны быть зелёного цвета и содержать значение pong в поле ping:
6. Разверните веб-приложение testapp с использованием средств контейнеризации на сервере BR-SRV
Задание:
- Средствами docker должен создаваться стек контейнеров с веб приложением и базой данных
- Используйте образы site_latest и mariadb_latest располагающиеся в директории docker в образе Additional.iso
- Основной контейнер testapp должен называться tespapp
- Контейнер с базой данных должен называться db
- Импортируйте образы в docker, укажите в yaml файле параметры подключения к СУБД, имя БД - testdb, пользователь testс паролем P@ssw0rd, порт приложения 8080, при необходимости другие параметры
- Приложение должно быть доступно для внешних подключений через порт 8080
Вариант реализации:
BR-SRV:
- Установить необходим пакеты для работы с Docker и Docker Compose можно воспользовавшись следующей командой:
apt-get install –y docker-engine docker-compose-v2
- После установки необходимых пакетов стоит запустить службу docker:
systemctl enable --now docker.service
- Выполнить монтирование Additional.iso в директорию /mnt:
mount /dev/sr0 /mnt/
- Выполнить импорт образа mariadb_latest и site_latest:
docker load < /mnt/docker/site_latest.tar
docker load < /mnt/docker/mariadb_latest.tar
vim compose.yaml
- Запустить набор контейнеров с веб приложением и базой данных:
docker compose up -d
7. Разверните веб приложение на сервере HQ-SRV
Задание:
- Используйте веб-сервер apache
- В качестве системы управления базами данных используйте mariadb
- Файлы веб приложения и дамп базы данных находятся в директории web образа Additional.iso
- Выполните импорт схемы и данных из файла dump.sql в базу данных webdb
- Создайте пользователя web с паролем P@ssw0rd и предоставьте ему права доступа к этой базе данных
- Файлы index.php и директорию images скопируйте в каталог веб сервера apache
- В файле index.php укажите правильные учётные данные для подключения к БД
- Запустите веб сервер и убедитесь в работоспособности приложения
- Основные параметры отметьте в отчёте
Вариант реализации:
HQ-SRV:
- Установить метапакет который содержит в себе всё необходимое для работы стека LAMP (Linux+Apache+MariaDB+PHP):
apt-get install –y lamp-server
- Выполнить монтирование 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 указать правильные учётные данные для подключения к БД:
vim /var/www/html/index.php
- Включить и добавить в автозагрузку службу mariadb:
systemctl enable --now mariadb
- Перейти в интерфейс управления 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 < /mnt/web/dump.sql
- Проверить:
- Включить и добавить в автозагрузку службу httpd2:
systemctl enable --now httpd2
- Проверяем доступ до веб приложения с браузера:
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 из внешних сетей.
Вариант реализации:
- Из режима администрирования (conf t) выполнить следующую команду:
ip nat source static tcp <IP-АДРЕС_УСТРОЙСТВА_ЛОКАЛЬНОЙ_СЕТИ> <ПОРТ_УСТРОЙСТВА_ЛОКАЛЬНОЙ_СЕТИ> <ВНЕШНИЙ_IP-АДРЕС_УСТРОЙСТВА> <ПОРТ_ДЛЯ_ОБРАЩЕНИЯ_ИЗ_ВНЕШНЕЙ_СЕТИ>
HQ-RTR:
hq-rtr(config)#ip nat source static tcp 192.168.100.2 80 172.16.1.2 8080
hq-rtr(config)#ip nat source static tcp 192.168.100.2 2026 172.16.1.2 2026
hq-rtr(config)#write memory
BR-RTR:
br-rtr(config)#ip nat source static tcp 192.168.0.2 8080 172.16.2.2 8080
br-rtr(config)#ip nat source static tcp 192.168.0.2 2026 172.16.2.2 2026
br-rtr(config)#write memory
- Проверяем статическую трансляцию портов:
Проверяем возможность доступа из-вне до веб приложения развёрнутого на базе стека контейнеров с браузера на клиенте:
9. Настройте веб-сервер nginx как обратный прокси-сервер на ISP
Задание:
- При обращении по доменному имени web.au-team.irpo у клиента должно открываться веб приложение на HQ-SRV
- При обращении по доменному имени docker.au-team.irpo клиента должно открываться веб приложение testapp.
Вариант реализации:
ISP:
- Установить пакет nginx:
apt-get install -y nginx
- Настроить nginx как реверсивный прокси сервер, приведя файл /etc/nginx/sites-available.d/default.conf к следующему виду:
vim /etc/nginx/sites-available.d/default.conf
- Добавить символическую ссылку на данный файл:
ln -s /etc/nginx/sites-available.d/default.conf /etc/nginx/sites-enabled.d/
- Проверить наличие ошибок в конфигурационных файлах:
- Запустить и активировать службу nginx:
systemctl enable --now nginx
HQ-CLI:
- Поскольку в домене SambaDC нет DNS записей ссылающихся на необходимые имена, а на HQ-CLI в качестве DNS-сервера задан адрес именно контроллера домена, поэтому необходимо добавить записи в файл /etc/hosts на виртуальной машине HQ-CLI:или же используя утилиту samba-tool добавить необходимые записи на DNS-сервере BR-SRV;
Проверяем возможность доступа до веб ресурсов с браузера на клиенте:http://web.au-team.irpo
10. На маршрутизаторе ISP настройте web-based аутентификацию
Задание:
- При обращении к сайту web.au-team.irpo клиенту должно быть предложено ввести аутентификационные данныеВ качестве логина для аутентификации выберите WEB с паролем P@ssw0rd
Выберите файл /etc/nginx/.htpasswd в качестве хранилища учётных записей
При успешной аутентификации клиент должен перейти на веб сайт.
Вариант реализации:
ISP:
- Установить пакет apache2-htpasswd:
apt-get install -y apache2-htpasswd
- Средствами утилиты 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:
vim /etc/nginx/sites-available.d/default.conf
systemctl restart nginx
HQ-CLI:
- Проверяем возможность доступа до веб ресурса с браузера на клиенте:Имя пользователя: WEB
Пароль: P@ssw0rd
11. Удобным способом установите приложение Яндекс Браузер на HQ-CLI
Задание:
- Установку браузера отметьте в отчёте.
Вариант реализации:
HQ-CLI:
- От имени суперпользователя выполнить:
apt-get install –y yandex-browser-stable
- Или воспользоваться Центром Приложений: