Часть 2

1. Настройте контроллер домена Samba DC на сервере BR-SRV

Имя домена au-team.irpo

Введите в созданный домен машину HQ-CLI

Создайте 5 пользователей для офиса HQ: имена пользователей формата hquser№ (например, hquser1, hquser2 и т.д.)

Создайте группу hq, введите в группу созданных пользователей

Убедитесь, что пользователи группы hq имеют право аутентифицироваться на HQ-CLI

Пользователи группы hq должны иметь возможность повышать привилегии для выполнения ограниченного набора команд: cat, grep, id. Запускать другие команды с повышенными привилегиями пользователи группы права не имеют

На HQ-SRV:

systemctl restart named

На BR-SRV:

dnf install samba* krb5*

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

mv /etc/krb5.conf /etc/krb5.conf.bak

nano /etc/krb5.conf.d/crypto-policies

Изменяем файл следующим образом:

Для этого ставим курсор на существующую строчку permitted_enctypes, нажимаем CTRL+K и три раза CTRL+U. После этого изменяем начало первых двух строчек.

Выходим из nano: нажимаем ctrl+x, затем y

samba-tool domain provision --use-rfc2307 --interactive

Жмём Enter 3 раза. Далее на моменте DNS backend пишем “NONE”. Затем указываем пароль администратора: P@ssw0rd

cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

nano /etc/krb5.conf

В realms добавляем kdc:

kdc = br-srv.au-team.irpo

Выходим из nano: нажимаем ctrl+x, затем y

systemctl enable --now samba

Если запустить службы smb nmb winbind krb5kdc, то присоединить HQ-CLI к домену не получится. Решение – перезапуск BR-SRV

kinit administrator@AU-TEAM.IRPO

На HQ-CLI:

echo “172.30.100.10 au-team.irpo” >> /etc/hosts

realm join -U -v Administrator@AU-TEAM.IRPO

В конце добавления должна появиться надпись “Successfully enrolled machine in realm”

На BR-SRV:

samba-tool group add hq

for i in {1..5}; do samba-tool user add hquser$i P@ssw0rd; samba-tool group addmembers hq hquser$i; done

samba-tools listmembers hq

На HQ-CLI:

sudo -i

nano /etc/sssd/sssd.conf

Дописываем в подчёркнутой строчке br-srv. (как на скриншоте)

Выходим из nano: нажимаем ctrl+x, затем y

systemctl restart sssd

nano /etc/krb5.conf

Приводим файл к следующему виду:

[realms]

AU-TEAM.IRPO = {

kdc = br-srv.au-team.irpo

admin_server = br-srv.au-team.irpo

}

[domain_realm]

.au-team.irpo = AU-TEAM.IRPO

au-team.irpo = AU-TEAM.IRPO

Выходим из nano: нажимаем ctrl+x, затем y

Далее переходим в «Настройки» - «Сетевые учетные записи». Выбираем Kerberos, вводим administrator@AU-TEAM.IRPO и P@ssw0rd

sss_cache -E

visudo

Пишем в файл следующую строку:

%hq@au-team.irpo ALL=(ALL) /bin/cat, /bin/grep, /bin/id

Выходим из nano: нажимаем ctrl+x, затем y

Проверяем:

id hquser1@au-team.irpo

su - hquser1@au-team.irpo

sudo cat /etc/hosts | grep au-team

id

2. Сконфигурируйте файловое хранилище на сервере HQ-SRV

При помощи двух подключенных к серверу дополнительных дисков размером 1 Гб сконфигурируйте дисковый массив уровня 0

Имя устройства – md0, при необходимости конфигурация массива размещается в файле /etc/mdadm.conf

Создайте раздел, отформатируйте раздел, в качестве файловой системы используйте ext4

Обеспечьте автоматическое монтирование в папку /raid

На HQ-SRV:

Проверяем наличие дисков командой. Должны быть sdb, sdc:

lsblk

Форматируем диски:

fdisk /dev/sdb

g

n

Жмём Enter 3 раза

W

Аналогично для диска sdc. Должно получится так:

mdadm --create /dev/md0 --level=0 --raid-device=2 /dev/sdb1 /dev/sdc1

Далее проверяем, у md0 в типе должно быть написано raid0

mdadm --detail --scan --verbose >> /etc/mdadm.conf

mkfs.ext4 /dev/md0

mkdir /raid

nano /etc/fstab

В конец добавляем следующую строчку:

/dev/md0 /raid ext4 defaults 0 0

Выходим из nano: нажимаем ctrl+x, затем y

systemctl daemon-reload

mount -a

df -h

Должна быть строчка с примонтированной директорией /raid:

3. Настройте сервер сетевой файловой системы (nfs) на HQ-SRV

В качестве папки общего доступа выберите /raid/nfs, доступ для чтения и записи исключительно для сети в сторону HQ-CLI

На HQ-CLI настройте автомонтирование в папку /mnt/nfs

Основные параметры сервера отметьте в отчёте

На HQ-SRV:

dnf install nfs4-acl-tools -y

mkdir /raid/nfs

chown nobody:nobody /raid/nfs

chmod 777 /raid/nfs

nano /etc/exports

Добавляем в него следующую строчку:

/raid/nfs 192.168.200.0/27 (rw)

Выходим из nano: нажимаем ctrl+x, затем y

exportfs -a

systemctl enable --now nfs-server

Переходим на HQ-CLI:

mkdir /mnt/nfs

nano /etc/fstab

Добавляем в конец следующую строчку:

192.168.100.10:/raid/nfs /mnt/nfs nfs auto 0 0

Выходим из nano: нажимаем ctrl+x, затем y

systemctl daemon-reload

mount -a

Проверяем с помощью команды df –h (должна появиться строка

192.168.100.10:/raid/nfs):

4. Настройте службу сетевого времени на базе сервиса chrony на маршрутизаторе ISP

Вышестоящий сервер ntp на маршрутизаторе ISP - на выбор участника

Стратум сервера - 5

В качестве клиентов ntp настройте: HQ-SRV, HQ-CLI, BR-RTR, BR-SRV

На ISP:

nano /etc/chrony.conf

Добавляем # к трём любым строчкам, начинающимся с server ntp и дописываем ещё три строчки как на скриншоте:

local stratum 5

allow 0/0

hwtimestamp *

Выходим из nano: нажимаем ctrl+x, затем y

systemctl restart chronyd

chronyc sources

На HQ-SRV, HQ-CLI, BR-RTR, BR-SRV:

nano /etc/chrony.conf

Комментируем все сервера и добавляем созданный:

server 172.16.4.1 iburst prefer

Выходим из nano: нажимаем ctrl+x, затем y

systemctl restart chronyd

chronyc sources

5. Сконфигурируйте ansible на сервере BR-SRV

Сформируйте файл инвентаря, в инвентарь должны входить HQ-SRV, HQ-CLI, HQ-RTR и BR-RTR

Рабочий каталог ansible должен располагаться в /etc/ansible

Все указанные машины должны без предупреждений и ошибок отвечать pong на команду ping в ansible посланную с BR-SRV

На BR-SRV:

nano /etc/ansible/demo.ini

Пишем в файл:

[HQ-SRV]

192.168.100.10 ansible_user=sshuser ansible_port=2026

[HQ-CLI]

192.168.200.2 ansible_user=username

[HQ-RTR]

192.168.100.1 ansible_user=net_admin

[BR-RTR]

172.30.100.1 ansible_user=net_admin

Выходим из nano: нажимаем ctrl+x, затем y

ssh-keygen -t rsa

Жмём Enter всегда до конца выполнения команды

Далее копируем ключи. На вопрос с сохранением отпечатка пишем yes, все пароли – P@ssw0rd

ssh-copy-id -p 2026 sshuser@192.168.100.10

ssh-copy-id username@192.168.200.2

ssh-copy-id net_admin@172.30.100.1

ssh-copy-id net_admin@192.168.100.1

Составляем конфигурационный файл:

nano /etc/ansible/ansible.cfg

[defaults]

Inventory = /etc/ansible/demo.ini

ask_pass = False

host_key_cheking = False

interpreter_python=/usr/bin/python

Выходим из nano: нажимаем ctrl+x, затем y

ansible -m ping all

Вывод должен быть следующим:

6. Разверните веб-приложение в docker на сервере BR-SRV

Средствами docker должен создаваться стек контейнеров с веб-приложением и базой данных

Используйте образы site_latest и mariadb_latest, располагающиеся в директории docker в образе Additional.iso

Основной контейнер testapp должен называться testapp

Контейнер с базой данных должен называться db

Импортируйте образы в docker, укажите в yaml файле параметры подключения к СУБД, имя БД - testdb, пользователь test с паролем P@ssw0rd, порт приложения 8080, при необходимости другие параметры

Приложение должно быть доступно для внешних подключений через порт 8080

В файле index.php укажите правильные учётные данные для подключения к БД

На BR-SRV:

Перед развертыванием выполняем монтирование ISO образа с необходимыми Docker-образами. Для этого переходим через VMWare WorkStation в настройки виртуальной машины. Там выбираем CD/DVD driver 1 > Use ISO image file > Browse > Additional.iso > Open > OK.

Выходит уведомление, соглашаемся:

После этого заново заходим в настройки BR-SRV, выбираем CD/DVD driver 1 > Connected > OK.

На BR-SRV:

mount /dev/cdrom /mnt

dnf install docker-ce docker-compose –y

systemctl enable --now docker

docker --version

docker load < /mnt/docker/site_latest.tar

docker load < /mnt/docker/mariadb_latest.tar

Проверка:

docker images

nano site.yml

services:

 db:

  image: mariadb

  container_name: db

  environment:

   DB_NAME: testdb

   DB_USER: test

   DB_PASS: Passw0rd

  volumes:

   - db_data:/var/lib/mysql

  restart: unless-stopped

 testapp:

  image: site

  container_name: testapp

  environment:

   DB_TYPE: maria

   DB_HOST: db

   DB_NAME: testdb

   DB_USER: test

   DB_PASS: P@ssw0rd

   DB_PORT: 3306

  ports:

   - “8080:8000”

  depends_on:

   - db

  restart: unless-stopped

volumes:

 db_data:

Выходим из nano: нажимаем ctrl+x, затем y (проверьте отступы!!)

docker-compose -f site.yml up -d

На HQ-CLI:

Открываем браузер и заходим на 172.30.100.10:8080

7. Разверните веб приложение на сервере HQ-SRV

Используйте веб-сервер apache

В качестве системы управления базами данных используйте mariadb

Файлы веб приложения и дамп базы данных находятся в директории web образа Additional.iso

Выполните импорт схемы и данных из файла dump.sql в базу данных webdb

Создайте пользователя web с паролем P@ssw0rd и предоставьте ему права доступа к этой базе данных

Файлы index.php и директорию images скопируйте в каталог веб-сервера apache

В файле index.php укажите правильные учётные данные для подключения к БД

Запустите веб-сервер и убедитесь в работоспособности приложения

Основные параметры отметьте в отчёте

На HQ-SRV:

Перед развертыванием выполняем монтирование ISO образа с необходимыми Docker-образами. Для этого переходим через VMWare WorkStation в настройки виртуальной машины. Там выбираем CD/DVD driver 1 > Use ISO image file > Browse > Additional.iso > Open > OK.

Выходит уведомление, соглашаемся:

После этого заново заходим в настройки HQ-SRV, выбираем CD/DVD driver 1 > Connected > OK.

На HQ-SRV:

mount /dev/cdrom /mnt

dnf install mariadb-server httpd php php-mysqlnd php-cli -y

systemctl enable --now mariadb httpd

Для проверки на hq-cli открываем в браузере 192.168.100.10

mysql_secure_installation

P@ssw0rd

n (2 раза)

y (4 раза)

mysql -u root -p

P@ssw0rd

CREATE USER 'web'@'localhost' IDENTIFIED BY 'P@ssw0rd';

CREATE DATABASE webdb DEFAULT CHARACTER SET utf8;

GRANT ALL PRIVILEGES ON webdb.* TO 'web'@'localhost';

flush privileges;

\q

mysql -u root -p webdb < /mnt/web/dump.sql

cp /mnt/web/index.php /var/www/html

cp /mnt/web/logo.png /var/www/html

nano /var/www/html/index.php

Меняем значения как на скриншоте:

$servername = “localhost”;

$username = “web”;

$password = “P@ssw0rd”;

$dbname = “webdb”;

Выходим из nano: нажимаем ctrl+x, затем y

systemctl restart httpd

На hq-cli снова открываем в браузере 192.168.100.10

8. На маршрутизаторах сконфигурируйте статическую трансляцию портов

Пробросьте порт 8080 в порт приложения testapp BR-SRV на маршрутизаторе BR-RTR, для обеспечения работы приложения testapp извне

Пробросьте порт 8080 в порт веб приложения на HQ-SRV на маршрутизаторе HQ-RTR, для обеспечения работы веб приложения извне

Пробросьте порт 2026 на маршрутизаторе HQ-RTR в порт 2026 сервера HQ-SRV, для подключения к серверу по протоколу ssh из внешних сетей

Пробросьте порт 2026 на маршрутизаторе BR-RTR в порт 2026 сервера BR-SRV, для подключения к серверу по протоколу ssh из внешних сетей.

На BR-RTR:

iptables -t nat -A PREROUTING -p tcp -m tcp -d 172.16.5.2/28 --dport 8080 -j DNAT --to-destination 172.30.100.10:8080

iptables -t nat -A PREROUTING -p tcp -m tcp -d 172.16.5.2/28 --dport 2026 -j DNAT --to-destination 172.30.100.10:2026

iptables-save > /etc/sysconfig/iptables

На hq-cli в браузере открываем 172.16.5.2:8080, должен открыться сайт как в задании 6.

Пробуем подключиться по ssh, должно подключить к br-srv:

ssh sshuser@172.16.5.2 -p 2026

На HQ-RTR:

iptables -t nat -A PREROUTING -p tcp -m tcp -d 172.16.4.2/28 --dport 8080 -j DNAT --to-destination 192.168.100.10:8080

iptables -t nat -A PREROUTING -p tcp -m tcp -d 172.16.4.2/28 --dport 2026 -j DNAT --to-destination 192.168.100.10:2026

iptables-save > /etc/sysconfig/iptables

На hq-cli в браузере открываем 172.16.4.2:8080, должен открыться сайт как в задании 6.

Пробуем подключиться по ssh, должно подключить к hq-srv:

ssh sshuser@172.16.4.2 -p 2026

9. Настройте веб-сервер nginx как обратный прокси-сервер на ISP

При обращении по доменному имени web.au-team.irpo у клиента должно открываться веб приложение на HQ-SRV

При обращении по доменному имени docker.au-team.irpo клиента должно открываться веб приложение testapp

На ISP:

dnf install nginx -y

systemctl enable --now nginx

nano /etc/nginx/nginx.conf

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

server {

 listen 80;

 server_name docker.au-team.irpo

 location / {

  proxy_pass http://172.16.5.2:8080;

 }

}

server {

 listen 80;

 server_name web.au-team.irpo

 location / {

  proxy_pass http://172.16.4.2:8080;

 }

}

Выходим из nano: нажимаем ctrl+x, затем y

systemctl restart nginx

nano /etc/selinux/config

Меняем параметр SELINUX на disabled

Выходим из nano: нажимаем ctrl+x, затем y

reboot

На hq-cli в браузере открываем docker.au-team.irpo, должен открыться сайт из задания 6, открываем web.au-team.irpo, там сайт из задания 7

10. На маршрутизаторе ISP настройте web-based аутентификацию

При обращении к сайту web.au-team.irpo клиенту должно быть предложено ввести аутентификационные данные

В качестве логина для аутентификации выберите WEB с паролем P@ssw0rd

Выберите файл /etc/nginx/.htpasswd в качестве хранилища учётных записей

При успешной аутентификации клиент должен перейти на веб-сайт

На ISP:

dnf install httpd-tools -y

htpasswd -c /etc/nginx/.htpasswd WEB

P@ssw0rd

P@ssw0rd

nano /etc/nginx/nginx.conf

Добавляем строчки auth_basic как на скриншоте:

auth_basic “Restricted Content”;

auth_basic_user_file /etc/nginx/.htpasswd;

Выходим из nano: нажимаем ctrl+x, затем y

nginx -t

systemctl restart nginx

На hq-cli в браузере открываем web.au-team.irpo, вводим логин WEB и пароль P@ssw0rd, должен открыться сайт из задания 7

11. Удобным способом установите приложение Яндекс Браузер на HQ-CLI

Установку браузера отметьте в отчёте.

Заходим в «Окно настройки РЕДОС», переходим во вкладку «Партнёрские приложения» и нажимаем на Яндекс.Браузер. После загрузки нажимаем на клавишу WIN и выбираем «Другие приложения». Переходим на вторую страницу и запускаем браузер.