Часть 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 и выбираем «Другие приложения». Переходим на вторую страницу и запускаем браузер.






