Решение второго модуля Демоэкзамена СиСА 2025

Задание:

Необходимо разработать и настроить инфраструктуру информационно­коммуникационной системы согласно предложенной топологии (см. Рисунок 2).

Для модуля 2 используется отдельный стенд. В стенде преднастроены:

  • IP-адреса, маски подсетей и шлюзы по умолчанию
  • Сетевая трансляция адресов
  • IP туннель
  • Динамическая маршрутизация
  • Созданы пользователи sshuser на серверах и net_admin на маршрутизаторах
  • DHCP-сервер
  • DNS-сервер

Задание Модуля 2 содержит развёртывание доменной инфраструктуры, механизмов инвентаризации, внедрения и настройки ansible как инфраструктуры на основе открытых ключей, установку и настройку файловых служб и служб управления правами и службы сетевого времени, настройки веб серверов.

В ходе проектирования и настройки сетевой инфраструктуры следует вести отчеты (пять отчетов) о своих действиях, включая таблицы и схемы, предусмотренные в задании. Отчеты по окончании работы следует сохранить на диске рабочего места.

Все ВМ на ОС AltLinux

Задание Модуля 2.

Рисунок 2. Топология сети

Настройка домена:

Настройка BR-SRV

apt-get update && apt-get install task-samba-dc -y

domainname au-team.irpo

rm -f /etc/samba/smb.conf
rm -rf /var/lib/samba
rm -rf /var/cache/samba
mkdir -p /var/lib/samba/sysvol 

echo "nameserver 127.0.0.1" > /etc/net/ifaces/ens19/resolv.conf

samba-tool domain provision --realm=au-team.irpo --domain=au-team --adminpass='P@ssw0rd' --dns-backend=SAMBA_INTERNAL --option="dns forwarder=192.168.1.10" --server-role=dc --use-rfc2307

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

systemctl enable --now samba 
reboot 

после перезагрузки пишите следующие команды

kinit administrator 


samba-tool user add user1.hq P@ssw0rd
samba-tool user add user2.hq P@ssw0rd
samba-tool user add user3.hq P@ssw0rd
samba-tool user add user4.hq P@ssw0rd
samba-tool user add user5.hq P@ssw0rd
samba-tool group add hq 

samba-tool group addmembers hq user1.hq,user2.hq,user3.hq,user4.hq,user.hq

Создайте файл addusers.sh в папке /root/ следующей командой (выполнять целиком):

cat >> /root/addusers.sh <<-EOF
#!/bin/bash
FILE="/opt/users.csv"
while IFS=';' read -r firstname lastname role phone ou street zip city country password; do
    samba-tool user add "\$firstname.\$lastname" "\$password"
done < <(tail -n +2 "\$FILE")
EOF

chmod +x /root/addusers.sh

/root/addusers.sh

На HQ-CLI

Укажите в качестве DNS сервера 192.168.3.10 (в Method обязательно укажите Automatic address only)

Откройте приложение System management center (при запуске укажите пароль от root)


Настройка RAID:

Настройка HQ-SRV

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd 
mkdir /etc/mdadm/ /raid5/
 echo "DEVICE partitions" > /etc/mdadm/mdadm.conf 
 mdadm --detail --scan >> /etc/mdadm/mdadm.conf 
 mkfs.ext4 /dev/md0 
echo '/dev/md0 /raid5 ext4 defaults 0 0' >> /etc/fstab

Настройка NFS:

HQ-SRV

apt-get update && apt-get install nfs-server -y 
mkdir /raid5/nfs #Создание папки
echo '/raid5/nfs 192.168.2.0/28(rw,no_root_squash,no_subtree_check)' > /etc/exports 

HQ-CLI

echo '192.168.1.10/raid5/nfs /mnt/nfs nfs defaults 0 0' >> /etc/fstab  

Настройка NTP

На HQ-RTR

apt-get update && apt-get install chrony -y
echo "allow all" >> /etc/chrony.conf
echo "local stratum 5" >> /etc/chrony.conf
systemctl enable --now chronyd 

На остальных устройствах (кроме ISP)

apt-get update && apt-get install chrony -y
заменить pool pool.ntp.org iburst на pool 192.168.1.1 iburst в файле /etc/chrony.conf
systemctl enable --now chronyd

Обратный прокси

На HQ-RTR

apt-get update && apt-get install nginx -y
Создать файл /etc/nginx/sites-enabled.d/proxy.conf со следующим содержимым
server  {
        listen 80;
        server_name moodle.au-team.irpo;
        location / {
            proxy_pass http://192.168.1.10:80;
        }
}
server {
        listen 80;
        server_name wiki.au-team.irpo;
        location / {
            proxy_pass http://192.168.3.10:8080;
        }
}
Выполнить systemctl enable --now nginx

mediawiki

На BR-SRV

Зайдите под пользователем sshuser (не root!)

sudo apt-get update
sudo apt-get install docker-engine docker-compose -y
sudo systemctl enable --now docker

создайте файл wiki.yml со следующим содержимым (с такими же отступами):

services:
  wiki:
    image: mediawiki:latest
    restart: always
    ports:
      - 8080:80
    links:
      - mariadb
    volumes:
      - images:/var/www/html/images
      # - ./LocalSettings.php:/var/www/html/LocalSettings.php
  mariadb:
    image: mariadb:latest
    restart: always
    environment:
      MYSQL_DATABASE: mediawiki 
      MYSQL_USER: wiki
      MYSQL_PASSWORD: WikiP@ssw0rd
      MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
    volumes:
      - db:/var/lib/mysql

volumes:
  images:
  db:

запустите контейнер командой sudo docker compose -f ./wiki.yml up -d

Зайдите под адресом http://192.168.3.10:8080 с HQ-CLI. Произведите установку mediawiki через браузер, и в конце скачайте файл LocalSettings.php

пароль указан в задании

Пароль должен быть 10 символов (P@ssw0rd!! пойдет), пароль указать в отчете

скачайте файл по ссылке Download «LocalSettings.php»

Отправьте файл из HQ-CLI командой scp /home/user/Downloads/LocalSettings.php sshuser@192.168.3.10:/home/sshuser/

Удалите # на строке # — ./LocalSettings.php:/var/www/html/LocalSettings.php в файле wiki.yml и перезапустите контейнер командами

docker compose -f wiki.yml down
docker compose -f wiki.yml up -d

Установка Moodle

На HQ-SRV

apt-get update && apt-get install moodle moodle-apache2 moodle-local-mysql nano -y
systemctl enable --now mariadb
systemctl enable --now httpd2
 mysql -u root
 CREATE DATABASE moodledb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
 GRANT ALL PRIVILEGES ON moodledb.* TO moodle@localhost IDENTIFIED BY 'P@ssw0rd';
quit;
  mysqladmin -u root reload

В файле /etc/php/8.2/apache2-mod_php/php.ini надо поменять значение параметра max_input_vars с 1000 на 5000 (параметр находится в поле resource limits

После замены перезапустите веб-сервер командой systemctl restart httpd2

Далее на HQ-CLI зайдите по адресу 192.168.1.10/moodle и начните установку moodle

Значения базы данных по заданию

После проверки параметров начнется установка, установка проходит достаточно долго

Пароль согласно заданию — P@ssw0rd

В этих полях укажите номер вашего рабочего места, ничего более

После этого установка завершена


Ansible

На BR-SRV

Установите следующие пакеты

apt-get update && apt-get install ansible sshpass nano -y

В файл /etc/ansible/hosts добавьте следующий текст:

[demo]
HQ-SRV ansible_host=192.168.1.10 ansible_user=sshuser ansible_password=P@ssw0rd
HQ-CLI ansible_host="ip адрес HQ-CLI" ansible_user=user ansible_password=resu
HQ-RTR ansible_host=192.168.1.1 ansible_user=net_admin ansible_password=P@ssw0rd
BR-RTR ansible_host=192.168.3.1 ansible_user=net_admin ansible_password=P@ssw0rd

далее надо добавить ключи, для этого надо просто начать подключение к удаленной машине (написать yes на запрос, а потом разорвать соединение через ctrl+c не вводя пароль) и сохранить ключ. чтобы подключиться к HQ-CLI выполните следующие действия:

su -
systemctl enable --now sshd

команды для подключения c BR-SRV

ssh sshuser@HQ-SRV
ssh net_admin@HQ-RTR
ssh user@HQ-CLI
ssh net_admin@BR-RTR

Проброс портов

На BR-RTR

nft add chain ip nat prerouting { type nat hook prerouting priority -100\; policy accept\; }
nft add rule ip nat prerouting tcp dport 80 dnat to 192.168.3.10:8080
nft add rule ip nat prerouting tcp dport 2024 dnat to 192.168.3.10:22

На HQ-RTR

nft add chain ip nat prerouting { type nat hook prerouting priority -100\; policy accept\; }
nft add rule ip nat prerouting tcp dport 2024 dnat to 192.168.1.10:22

Установка Yandex браузера

На HQ-CLI

su -
apt-get update && apt-get install yandex-browser