Задание:
Необходимо разработать и настроить инфраструктуру информационнокоммуникационной системы согласно предложенной топологии (см. Рисунок 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