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

Назад на главную

Настройте доменный контроллер Samba на машине BR-SRV.

Создайте 5 пользователей для офиса HQ: имена пользователей формата user№.hq. Создайте группу hq, введите в эту группу созданных пользователей

Введите в домен машину HQ-CLI

Пользователи группы hq имеют право аутентифицироваться на клиентском ПК

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

Выполните импорт пользователей из файла users.csv. Файл будет располагаться на виртуальной машине BR-SRV в папке /opt

Для начала необходимо установить необходимые пакеты

apt install samba samba-ad-dc winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user

Теперь отключим и замаскируем пакеты

systemctl stop winbind smbd nmbd
systemctl mask winbind smbd nmbd
rm /etc/samba/smb.conf

Настройка samba

samba-tool domain provision ИЛИ samba-tool domain provision –user-rfc2307
Realm: AU-TEAM.IRPO Domain: AU-TEAM Server Role: dc DNS backend: SAMBA_INTERNAL DNS Server: IP_DNS_SERVER P@ssw0rd P@ssw0rd
systemctl unmask samba-ad-dc
systemctl enable samba-ad-dc
systemctl start samba-ad-dc
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

Теперь создадим группу и пользователей

sudo samba-tool group add hq
samba-tool user create user1.hq "SecurePassword1"
samba-tool group addmembers hq user1.hq
systemctl restart samba-ad-dc

На клиентской машине HQ-CLI выполните:


sudo apt-get install realmd samba-common-bin krb5-user packagekit
sudo realm join --user=Administrator au-team.irpo

Настройка политики повышения привилегий (через sudo):

Создайте файл в /etc/sudoers.d/hq на HQ-CLI:

%hq ALL=(ALL) NOPASSWD:/bin/cat,/bin/grep,/usr/bin/id

Теперь пользователи группы HQ могут повышать привилегии только для команд cat, grep, и id.

Импорт пользователей:

Создайте скрипт для импорта:

#!/bin/bash
CSV_FILE="/opt/users.csv"
while IFS=, read -r username password group; do
# Создание пользователя
samba-tool user create "$username" "$password" --home-directory="/home/$username" --uid="$username"
# Добавление в группу
samba-tool group addmembers "$group" "$username"
done < "$CSV_FILE"

Сделайте скрипт исполняемым:

chmod +x /opt/import_users.sh

Запустите его:

sudo /opt/import_users.sh

Сконфигурируйте файловое хранилище

При помощи трёх дополнительных дисков, размером 1Гб каждый, на HQ-SRV сконфигурируйте дисковый массив уровня 5

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

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

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

Настройте сервер сетевой файловой системы(nfs), в качестве папки общего доступа выберите /raid5/nfs, доступ для чтения и записи для всей сети в сторону HQ-CLI

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

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

Для начала проверим диски

lsblk

Допустим у нас там 3 диска: /dev/sdb, /dev/sdc, /dev/sdd. Приступим к созданию raid 5 массива

sudo apt install mdadm -y
sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
o /dev/md0 — имя массива.
o --level=5 — уровень RAID 5.
o --raid-devices=3 — три устройства.
Или 1 запасной mdadm --create --verbode /dev/md0 --level=1 --raid-devices=2 /dev/sdb dev/sdc --spare-devices=1 /dev/sdd

Проверим состояние массива

cat /proc/mdstat

Сохраним конфигурацию массива

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

Обновим initramfs для загрузки RAID при старте системы

sudo update-initramfs -u

Форматирование RAID 5

Создаем файловую систему ext4

sudo mkfs.ext4 /dev/md0
или mkfs –t ext4 /dev/md0

Создаем папку для монтирования

sudo mkdir -p /raid5

Добавим RAID в fstab для автоматического монтирования: Откройте файл /etc/fstab

sudo nano /etc/fstab

Добавьте строку

/dev/md0 /raid5 ext4 defaults 0 0

Смонтируйте RAID

sudo mount -a

Настройка NFS-сервера на HQ-SRV

Установите NFS-сервер

sudo apt install nfs-kernel-server -y

Создайте папку для общего доступа

sudo mkdir -p /raid5/nfs

Измените права доступа

sudo chmod 777 /raid5/nfs

Настройте экспорт NFS: Откройте файл /etc/exports:

sudo nano /etc/exports

Добавьте строку

/raid5/nfs 192.168.0.0/16(rw,sync,no_subtree_check)

192.168.0.0/16 — сеть, которой разрешен доступ (замените на свою сеть).

rw — доступ на чтение и запись.

Примените настройки

sudo exportfs -a
sudo systemctl restart nfs-kernel-server

Проверьте экспортированные ресурсы:

sudo exportfs -v

Настройка NFS-клиента на HQ-CLI

Установите NFS-клиент

sudo apt install nfs-common -y

Создайте папку для монтирования

sudo mkdir -p /mnt/nfs

Добавьте NFS в fstab для автоматического монтирования: Откройте файл /etc/fstab

sudo nano /etc/fstab

Добавьте строку

{IP-HQ-SRV}:/raid5/nfs /mnt/nfs nfs defaults 0 0

Замените {IP-HQ-SRV} на IP-адрес HQ-SRV.

Смонтируйте NFS:

sudo mount -a

Проверьте доступ:

ls /mnt/nfs

Основные параметры для отчёта

RAID 5:
Имя устройства: /dev/md0.
Уровень RAID: 5.
Размер массива: 2 ГБ (с учетом резервирования).
Файловая система:
Тип: ext4.
Монтирование: /raid5.
NFS-сервер:
Общая папка: /raid5/nfs.
Права доступа: Чтение и запись для сети 192.168.0.0/16.
NFS-клиент:
Точка монтирования: /mnt/nfs.

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

В качестве сервера выступает HQ-RTR

На HQ-RTR настройте сервер chrony, выберите стратум 5

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

Для настройки NTP-сервера могут использоваться 2 утилиты ntp и chrony. Вместе их ставить ни в коем случае нельзя, так как эти утилиты конфликтуют друг с другом!

В данном случае будет рассмотрена утилита chrony.

Для начала необходимо установить chrony на всех виртуальных машинах.

apt install chrony -y

Затем на HQ-RTR необходимо полностью очистить конфигурационный файл /etc/chrony/chrony.conf и внести следующие строки

/etc/chrony/chrony.conf

На остальных виртуальных машинах необходимо также очистить файл конфигурации, однако в них необходимо внести следующую строку с IP-адресом ВМ HQ-RTR

/etc/chrony/chrony.conf

Примечание. В случае, если временная зона на машине стоит неправильная ее можно сменить командой "timedatectl set-timezone Europe/Moscow"

После этого на всех машинах (кроме HQ-RTR) перезапускаем chrony и командой chronyc sources проверяем источники.

На HQ-RTR проверка проводится следующим образом:

На этом можно считать выполнение задания завершенным.

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

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

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

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

Установка Ansible

На сервере BR-SRV выполните

sudo apt update 
sudo apt install ansible -y

Рабочий каталог Ansible по умолчанию расположен в /etc/ansible. Создайте инвентарь и необходимые файлы

Перейдите в /etc/ansible

mkdir /etc/ansible
cd /etc/ansible

Создайте файл инвентаря hosts

sudo nano /etc/ansible/hosts

Добавьте в файл следующие строки

[all]
HQ-SRV ansible_host=192.168.10.2 ansible_port=2024 ansible_user=user
HQ-CLI ansible_host=192.168.20.2 ansible_user=user
HQ-RTR ansible_host=192.168.10.1 ansible_user=user
BR-RTR ansible_host=192.168.30.1 ansible_user=user

Замените user на имя пользователя, используемое для входа на серверы.

Убедитесь, что IP-адреса соответствуют вашей сети.

Проверьте файл инвентаря

ansible-inventory --list -y

Проверка подключения

Выполните команду ping для всех серверов:

ansible all -m ping

Исправление предупреждения для HQ-CLI

Это предупреждение связано с интерпретатором Python. Если вы хотите убрать его, укажите явный путь к Python в файле инвентаря

HQ-CLI ansible_host=192.168.20.2 ansible_user=user ansible_python_interpreter=/usr/bin/python3.9

Или добавьте глобально в конфигурацию Ansible (/etc/ansible/ansible.cfg)

 [defaults]
interpreter_python = /usr/bin/python3

Развертывание приложений в Docker на сервере BR-SRV

Шаг 1. Создайте файл wiki.yml для приложения MediaWiki

Файл должен находиться в домашней директории пользователя. Средствами Docker Compose создайте стек контейнеров с приложением MediaWiki и базой данных.

Шаг 2. Установите Docker и Docker Compose

На сервере BR-SRV выполните команды:

sudo apt update
sudo apt install docker.io docker-compose -y
sudo systemctl start docker
sudo systemctl enable docker

Проверьте установку:

docker --version
docker-compose --version

Шаг 3. Настройте файл wiki.yml

Создайте файл wiki.yml (wget https://docs.tenebraefox.ru/files/wiki.yml):

nano ~/wiki.yml

Добавьте следующий код

 
version: '3.8'
services:
mariadb:
image: mariadb
container_name: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: mediawiki
MYSQL_USER: wiki
MYSQL_PASSWORD: WikiP@ssw0rd
ports:
- "3306:3306"
volumes:
- mariadb_data:/var/lib/mysql

wiki:
image: mediawiki
container_name: wiki
restart: always
ports:
- "8080:80"
environment:
MEDIAWIKI_DB_HOST: mariadb
MEDIAWIKI_DB_NAME: mediawiki
MEDIAWIKI_DB_USER: wiki
MEDIAWIKI_DB_PASSWORD: WikiP@ssw0rd
#volumes:
# - ./LocalSettings.php:/var/www/html/LocalSettings.php

volumes:
mariadb_data:

Шаг 4. Запустите стек контейнеров

Запустите стек с помощью команды:

docker-compose -f ~/wiki.yml up -d

Шаг 5. Скопируйте файл LocalSettings.php

Для корректной работы MediaWiki файл LocalSettings.php должен находиться в домашней директории пользователя и быть автоматически смонтирован в образ:

scp -P 2024 ~/LocalSettings.php sshuser@192.168.100.2:/home/sshuser/

Шаг 6. Диагностика и управление стеком

Остановить стек:

docker-compose -f ~/wiki.yml down

Просмотреть логи:

docker-compose -f ~/wiki.yml logs -f

Перезапустить стек:

docker-compose -f ~/wiki.yml up -d

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

Задачи:

1. Проброс порта 80 в порт 8080 на BR-SRV через BR-RTR

На маршрутизаторе BR-RTR выполните следующие команды:

iptables -t nat -A PREROUTING -p tcp -d 192.168.30.1 --dport 80 -j DNAT --to-destination 192.168.30.2:8080
    
Что происходит:

-t nat: используем таблицу NAT.

-A PREROUTING: правило применяется к пакету на входе до маршрутизации.

-p tcp: только для TCP-пакетов.

-d 192.168.30.1 --dport 80: правило срабатывает, если трафик направлен на маршрутизатор BR-RTR по адресу 192.168.30.1 и порту 80 (обычный HTTP).

-j DNAT --to-destination 192.168.30.2:8080: перенаправить трафик на IP BR-SRV (192.168.30.2) и порт 8080 (на котором работает wiki-сервис).

2. Проброс порта 2024 в порт 2024 на HQ-SRV через HQ-RTR

На маршрутизаторе HQ-RTR выполните следующие команды:

iptables -t nat -A PREROUTING -p tcp -d 192.168.100.1 --dport 2024 -j DNAT --to-destination 192.168.100.2:2024
    

3. Проброс порта 2024 в порт 2024 на BR-SRV через BR-RTR

На маршрутизаторе BR-RTR выполните следующие команды:

iptables -t nat -A PREROUTING -p tcp -d 192.168.30.1 --dport 2024 -j DNAT --to-destination 192.168.30.2:2024
    

Проверка правил

Убедитесь, что правила добавлены:

sudo iptables -t nat -L -n -v
sudo iptables -L -n -v
    

Для систем с iptables-persistent:

Установите пакет:

sudo apt install iptables-persistent -y

Сохраните правила:

sudo netfilter-persistent save
sudo netfilter-persistent reload
    

Альтернативный способ:

Сохраните правила вручную:

sudo iptables-save > /etc/iptables/rules.v4

Запустите сервис Moodle на сервере HQ-SRV

Основные задачи:

Шаги для развертывания Moodle:

1. Установка необходимых пакетов

sudo apt update
sudo apt install apache2 mariadb-server php php-mysql libapache2-mod-php -y
sudo apt install php-xml php-intl php-zip php-curl php-gd php-mbstring php-soap php-opcache php-ldap php-bcmath -y
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mariadb
sudo systemctl enable mariadb

2. Настройка базы данных

sudo mysql_secure_installation
sudo mysql -u root -p
CREATE DATABASE moodledb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL PRIVILEGES ON moodledb.* TO 'moodle'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. Загрузка и установка Moodle

cd /tmp
wget https://docs.tenebraefox.ru/files/moodle.tgz
sudo tar -xvzf moodle.tgz -C /var/www/html/
sudo mkdir /var/moodledata
sudo chmod 777 /var/moodledata
sudo chown -R www-data:www-data /var/www/html/moodle
sudo chmod -R 755 /var/www/html/moodle

4. Настройка Apache для Moodle

sudo nano /etc/apache2/sites-available/moodle.conf  (wget https://docs.tenebraefox.ru/files/moodle.conf
# Добавьте следующее содержимое:
<VirtualHost *:80> DocumentRoot /var/www/html/moodle ServerName hq-srv <Directory /var/www/html/moodle> AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/moodle_error.log CustomLog ${APACHE_LOG_DIR}/moodle_access.log combined </VirtualHost>

sudo a2ensite moodle
sudo systemctl restart apache2
Откройте php.ini в текстовом редакторе:
sudo nano /etc/php/8.2/php.ini
Найдите строку max_input_vars и измените её значение на 5000:
max_input_vars = 5000
Сохраните файл и перезапустите веб-сервер:
Для Apache:
sudo systemctl restart apache2
    

5. Настройка Moodle через веб-интерфейс

6. Проверка работы

Основные параметры для отчета:

Настройка NGINX как обратного прокси-сервера на HQ-RTR

Задачи:

Шаги для выполнения:

1. Установка NGINX

sudo apt update
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

2. Настройка конфигурации NGINX

cd /etc/nginx/sites-available/
sudo nano /etc/nginx/sites-available/reverse-proxy.conf

# Добавьте следующий контент:
server {
listen 80;
server_name moodle.au-team.irpo;

location / {
proxy_pass http://192.168.10.2; # HQ-SRV с Moodle
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

server {
listen 80;
server_name wiki.au-team.irpo;

location / {
proxy_pass http://192.168.30.2:8080; # BR-SRV с MediaWiki
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

# Сохраните файл и активируйте конфигурацию:
sudo ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/

3. Проверка конфигурации NGINX

sudo nginx -t
sudo systemctl restart nginx

4. Настройка DNS или файла /etc/hosts

sudo nano /etc/hosts

# Добавьте следующие строки:
IP-HQ-RTR moodle.au-team.irpo
IP-HQ-RTR wiki.au-team.irpo

# Сохраните изменения.

Где <IP-HQ-RTR> — это IP-адрес HQ-RTR.

5. Тестирование

curl http://moodle.au-team.irpo
curl http://wiki.au-team.irpo

Если настройка выполнена верно, запросы будут перенаправляться:

Установка приложения Яндекс Браузер для организаций на HQ-CLI

Задачи:

Шаги для выполнения:

1. Скачивание установочного файла

cd /tmp
wget https://docs.tenebraefox.ru/files/YandexBrowser.deb

2. Установка Яндекс Браузера

sudo dpkg -i YandexBrowser.deb
    

3. Установка необходимых зависимостей

sudo apt update
sudo apt -f install
cd /tmp && wget https://docs.tenebraefox.ru/files/YandexBrowser.deb && dpkg -i YandexBrowser.deb || apt -f install -y

4. Проверка установки

Открываем в GUI яндекс браузер.

Проверка выполнения:

Для отчёта подтвердите, что Яндекс Браузер установлен:

which yandex-browser
yandex-browser --version

Ссылка на установочный файл:

Скачать YandexBrowser.deb