Настройте доменный контроллер 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 и внести следующие строки

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

Примечание. В случае, если временная зона на машине стоит неправильная ее можно сменить командой "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


Сконфигурируйте статическую трансляцию портов на маршрутизаторах
Задачи:
- Пробросьте порт 80 в порт 8080 на BR-SRV через маршрутизатор BR-RTR для обеспечения работы сервиса wiki.
- Пробросьте порт 2024 в порт 2024 на HQ-SRV через маршрутизатор HQ-RTR.
- Пробросьте порт 2024 в порт 2024 на BR-SRV через маршрутизатор BR-RTR.
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
Основные задачи:
- Используйте веб-сервер Apache.
- В качестве СУБД используйте MariaDB.
- Создайте базу данных moodledb.
- Создайте пользователя moodle с паролем P@ssw0rd и предоставьте ему права доступа к базе данных.
- У пользователя admin задайте пароль P@ssw0rd в системе Moodle.
- На главной странице Moodle отобразите номер рабочего места в виде арабской цифры.
Шаги для развертывания 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 через веб-интерфейс
- Перейдите по адресу:
http://<IP-HQ-SRV>/moodle
. - Следуйте инструкциям установки:
- Укажите директорию данных:
/var/moodledata
. - Укажите настройки базы данных:
- Тип базы данных: MariaDB
- Сервер базы данных: localhost
- Имя базы данных: moodledb
- Пользователь базы данных: moodle
- Пароль базы данных: P@ssw0rd
- Создайте пользователя admin и задайте пароль P@ssw0rd.
- Добавьте номер рабочего места на главную страницу.
6. Проверка работы
- Убедитесь, что Moodle доступен по адресу:
http://<IP-HQ-SRV>/moodle
. - Проверьте, что номер рабочего места отображается на главной странице.
Основные параметры для отчета:
- Сервер веб-приложений: Apache
- СУБД: MariaDB
- Имя базы данных: moodledb
- Пользователь базы данных: moodle
- Пароль базы данных: P@ssw0rd
- Пользователь Moodle: admin
- Пароль пользователя admin: P@ssw0rd
- Номер рабочего места: отображается на странице
Настройка NGINX как обратного прокси-сервера на HQ-RTR
Задачи:
- Перенаправление запросов с домена
moodle.au-team.irpo
на HQ-SRV (Moodle). - Перенаправление запросов с домена
wiki.au-team.irpo
на BR-SRV (MediaWiki).
Шаги для выполнения:
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
Если настройка выполнена верно, запросы будут перенаправляться:
moodle.au-team.irpo
— на HQ-SRV.wiki.au-team.irpo
— на BR-SRV.
Установка приложения Яндекс Браузер для организаций на HQ-CLI
Задачи:
- Установить Яндекс Браузер для организаций на сервер 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