Добавить в корзинуПозвонить
Найти в Дзене
good morning Vietnam

Gooooooood Morning Vietnaaaam!

Кол-во адаптеров каждой ВМ и добавь на все машины по памяти вначале: Сначала оставь все NAT, потом настроишь) Настройки ВМ – Add – CD/DVD Drive – use ISO image file и указать путь, где он лежит на самом компе Читай задание 2.2 и по нему добавляй диски на HQ-SRV, вручную добавь N(2) hard дисков по 1гб, тип – store single file На всех машинах: nano /etc/network/interfaces auto ens33
iface ens33 inet dhcp systemctl restart networking Произведите базовую настройку устройств:
• Настройте имена устройств согласно топологии. Используйте полное
доменное имя
• IP-адрес должен быть из приватного диапазона, в случае, если сеть
локальная, согласно RFC1918.
• HQ-SRV **vlan 100** ----------------не более 32 адресов
• HQ-CLI **vlan 200** ----------------не менее 16 адресов
• Управления **vlan 999** -----------не более 8 адресов
• LAN в сторону BR-SRV ------------не более 16 адресов
• Сведения об адресах занесите в таблицу 2 sudo hostnamectl set-hostname isp; exec bash
sudo hostnamectl set-hostnam
Оглавление

1 МОДУЛЬ

1. Запомни AДАПТЕРЫ!

Кол-во адаптеров каждой ВМ и добавь на все машины по памяти вначале:

Сначала оставь все NAT, потом настроишь)

2. Запомни ADD iso!

HQ-SRV, BR-SRV:

Настройки ВМ – Add – CD/DVD Drive – use ISO image file и указать путь, где он лежит на самом компе

3. Запомни RAID!

Читай задание 2.2 и по нему добавляй диски на HQ-SRV, вручную добавь N(2) hard дисков по 1гб, тип – store single file

4. Запомни ENS33!

На всех машинах:

nano /etc/network/interfaces

auto ens33
iface ens33 inet dhcp

systemctl restart networking

1.1 Базовая настройка

Произведите базовую настройку устройств:
• Настройте имена устройств согласно топологии. Используйте полное
доменное имя
• IP-адрес должен быть из приватного диапазона, в случае, если сеть
локальная, согласно RFC1918.

• HQ-SRV **vlan 100** ----------------не более 32 адресов
• HQ-CLI **vlan 200** ----------------не менее 16 адресов
• Управления **vlan 999** -----------не более 8 адресов
• LAN в сторону BR-SRV ------------не более 16 адресов
• Сведения об адресах занесите в таблицу 2
ТАБЛИЦА 2
ТАБЛИЦА 2

sudo hostnamectl set-hostname isp; exec bash
sudo hostnamectl set-hostname hq-rtr.au-team.irpo; exec bash
sudo hostnamectl set-hostname br-rtr.au-team.irpo; exec bash
sudo hostnamectl set-hostname hq-srv.au-team.irpo; exec bash
sudo hostnamectl set-hostname br-srv.au-team.irpo; exec bash
sudo hostnamectl set-hostname hq-cli.au-team.irpo; exec bash

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

ISP apt install -y iptables iptables-persistent chrony ssh nginx apache2-utils openssh-server curl

HQ-RTR apt install -y iptables iptables-persistent frr isc-dhcp-server vlan ssh libreswan tcpdump rsyslog curl

BR-RTR apt install -y iptables iptables-persistent frr chrony ssh libreswan tcpdump rsyslog curl

HQ-SRV apt install -y openssh-server ssh bind9 bind9utils vlan mdadm nfs-kernel-server chrony ssh apache2 apache2-utils mariadb-server php libapache2-mod-php php-mysql php-curl php-json openssl ca-certificates nginx cups cups-pdf fail2ban rsyslog prometheus prometheus-node-exporter iptables-persistent curl

BR-SRV apt install -y openssh-server ssh samba winbind libnss-winbind libpam-winbind krb5-user krb5-config smbclient ldb-tools samba-dsdb-modules chrony ansible ssh docker docker-compose rsyslog prometheus-node-exporter curl

HQ-CLI apt install -y vlan realmd sssd sssd-tools libnss-sss libpam-sss oddjob oddjob-mkhomedir adcli samba-common packagekit krb5-user nfs-common chrony ssh openssh-server cups-client curl

1.2 + 1.8 Доступ к сети через ISP + трансляция адресов HQ-RTR, BR-RTR

1.2 Настройте доступ к сети Интернет, на маршрутизаторе ISP:
• Настройте адресацию на интерфейсах:
• Интерфейс, подключенный к магистральному провайдеру, получает
адрес по DHCP
• Настройте маршрут по умолчанию, если это необходимо
• Настройте интерфейс, в сторону HQ-RTR, сеть 172.16.1.0/28
• Настройте интерфейс, в сторону BR-RTR, сеть 172.16.2.0/28
• На ISP настройте динамическую сетевую трансляцию портов для
доступа к сети Интернет HQ-RTR и BR-RTR.
1.8 Настройка динамической трансляции адресов маршрутизаторах HQ-RTR и BR-RTR:
• Настройте динамическую трансляцию адресов для обоих офисов в
сторону ISP, все устройства в офисах должны иметь доступ к сети
Интернет

ISP, HQ-RTR, BR-RTR:

nano /etc/sysctl.conf

net.ipv4.ip_forward=1

sysctl -p

ISP, HQ-RTR, BR-RTR:

iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
iptables-save > /etc/iptables/rules.v4

1.4 VLAN

Настройте коммутацию в сегменте HQ следующим образом:
• Трафик HQ-SRV должен принадлежать VLAN 100
• Трафик HQ-CLI должен принадлежать VLAN 200
• Предусмотреть возможность передачи трафика управления в VLAN 999
• Реализовать на HQ-RTR маршрутизацию трафика всех указанных VLAN
с использованием одного сетевого адаптера ВМ/физического порта
• Сведения о настройке коммутации внесите в отчёт.
IP адрес HQ-CLI по  dhcp - 192.168.10.34
IP адрес HQ-CLI по dhcp - 192.168.10.34

HQ-RTR, HQ-SRV, HQ-CLI:

nano /etc/modules

8021q

Далее

modprobe 8021q
lsmod | grep 8021q

Маски:

-4

RFC 1918:

  • 10.0.0.0–10.255.255.255
  • 172.16.0.0–172.31.255.255
  • 192.168.0.0–192.168.255.255

1 число в промежутке - подсеть
2 число - широковещательный
все числа, которые между ними - это доступные IP адреса для узлов

/25 Промежутки: 0-127````128-255

/26 Промежутки: 0-63````64-127````128-191````192-255

/27 Промежутки: 0-31````32-63````64-95````96-127````128-159````160-191````192-223 224-255

/28 Промежутки: 0-15````16-31````32-47````48-63````64-79````80-95````96-111````112-127````128-143````144-159````160-175````176-191````192-207````208-223````224-239````240-255

/29 Промежутки: 0-7````8-15````16-23````24-31````32-39````40-47````48-55````56-63````64-71````72-79````80-87````88-95````96-103````104-111````112-119````120-127````128-135````136-143````144-151````152-159````160-167````168-175````176-183````184-191````192-199````200-207````208-215````216-223````224-231````232-239````240-247````248-255

ISP:

ip a

nano /etc/network/interfaces

auto ens33
iface ens33 inet dhcp

auto ens36
iface ens36 inet static
address 172.16.1.1/28

auto ens37
iface ens37 inet static
address 172.16.2.1/28

HQ-RTR:

nano /etc/network/interfaces

auto ens33
iface ens33 inet static
address 172.16.1.2/28
gateway 172.16.1.1

auto ens36
iface ens36 inet manual

auto ens36.100
iface ens36.100 inet static
address 192.168.10.1/27
vlan-raw-device ens36

auto ens36.200
iface ens36.200 inet static
address 192.168.10.33/28
vlan-raw-device ens36

auto ens36.999
iface ens36.999 inet static
address 192.168.10.49
netmask 255.255.255.248
vlan-raw-device ens36

BR-RTR:

nano /etc/network/interfaces

auto ens33
iface ens33 inet static
address 172.16.2.2/28
gateway 172.16.2.1

auto ens36
iface ens36 inet static
address 192.168.11.1/28

HQ-SRV:

nano /etc/network/interfaces

auto ens33
iface ens33 inet manual

auto ens33.100
iface ens33.100 inet static
address 192.168.10.2/27
gateway 192.168.10.1
vlan-raw-device ens33

BR-SRV:

nano /etc/network/interfaces

auto ens33
iface ens33 inet static
address 192.168.11.2/28
gateway 192.168.11.1

HQ-CLI:

nano /etc/network/interfaces

auto ens33
iface ens33 inet manual

auto ens33.200
iface ens33.200 inet dhcp
vlan-raw-device ens33

НА ВСЕХ МАШИНАХ, кроме HQ-CLI:

systemctl restart networking

1.10 DNS на HQ-SRV

DNS

1.9 DHCP на HQ-RTR

Настройте DHCP для сети в сторону HQ-CLI:
• Настройте нужную подсеть
• В качестве сервера DHCP выступает маршрутизатор HQ-RTR
• Клиентом является машина HQ-CLI
• Исключите из выдачи адрес маршрутизатора
• Адрес шлюза по умолчанию – адрес маршрутизатора HQ-RTR
• Адрес DNS-сервера для машины HQ-CLI – адрес сервера HQ-SRV
• DNS-суффикс – au-team.irpo
• Сведения о настройке протокола занесите в отчёт.

HQ-RTR:

nano /etc/default/isc-dhcp-server

Раскоментить строчки и вставить интерфейс:

DHCPDv4_CONF=...

DHCPDv4_PID=...

INTERFACESv4="ens36.200"

Далее

nano /etc/dhcp/dhcpd.conf

Поменять значения:

option domain-name "au-team.irpo";

option domain-name-servers 192.168.10.2;

Cразу после вставить:

subnet 192.168.10.32 netmask 255.255.255.240 {
range 192.168.10.34 192.168.10.46;
option routers 192.168.10.33;
option subnet-mask 255.255.255.240;
option broadcast-address 192.168.10.47;
option domain-name-servers 192.168.10.2;
default-lease-time 600;
max-lease-time 7200;
}

Далее

systemctl enable isc-dhcp-server

systemctl restart isc-dhcp-server

systemctl status isc-dhcp-server

1.6 GRE

Между офисами HQ и BR, на маршрутизаторах HQ-RTR и BR-RTR
необходимо сконфигурировать ip туннель:
• На выбор технологии GRE или IP in IP
• Сведения о туннеле занесите в отчёт.

HQ-RTR, BR_RTR:

nano /etc/modules

ip_gre

HQ-RTR, BR_RTR:

sudo modprobe ip_gre

lsmod | grep ip_gre

HQ-RTR:

nano /etc/network/interfaces

auto gre30
iface gre30 inet manual
pre-up ip link add gre30 type gre local 172.16.1.2 remote 172.16.2.2 ttl 225
pre-up ip link set gre30 up
pre-up ip addr add 10.10.10.1/30 dev gre30
post-up ip route add 192.168.11.0/28 via 10.10.10.2 dev gre30
pre-down ip link del gre30

Далее

systemctl restart networking

BR-RTR:

nano /etc/network/interfaces

auto gre30
iface gre30 inet manual
pre-up ip link add gre30 type gre local 172.16.2.2 remote 172.16.1.2 ttl 225
pre-up ip link set gre30 up
pre-up ip addr add 10.10.10.2/30 dev gre30
post-up ip route add 192.168.10.0/27 via 10.10.10.1 dev gre30
post-up ip route add 192.168.10.32/28 via 10.10.10.1 dev gre30
pre-down ip link del gre30

Далее

systemctl restart networking

1.7 OSPF

Обеспечьте динамическую маршрутизацию на маршрутизаторах HQRTR и BR-RTR: сети одного офиса должны быть доступны из другого
офиса и наоборот. Для обеспечения динамической маршрутизации
используйте link state протокол на усмотрение участника:
• Разрешите выбранный протокол только на интерфейсах ip туннеля
• Маршрутизаторы должны делиться маршрутами только друг с другом
• Обеспечьте защиту выбранного протокола посредством парольной
защиты
• Сведения о настройке и защите протокола занесите в отчёт.

HQ-RTR, BR-RTR:

nano /etc/frr/daemons

ospfd=yes

Далее

systemctl enable frr

systemctl restart frr

HQ-RTR:

vtysh

conf t

interface gre30
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 admin
ip ospf network broadcast
no ip ospf passive

ex

router ospf
network 192.168.10.0/27 area 0
network 192.168.10.32/28 area 0
network 10.10.10.0/30 area 0
ex
ex
wr mem

Далее

systemctl restart frr

BR-RTR:

vtysh

conf t

interface gre30
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 admin
ip ospf network broadcast
no ip ospf passive

ex

router ospf
network 192.168.11.0/28 area 0
network 10.10.10.0/30 area 0
ex
ex
wr mem

Далее

systemctl restart frr

Подождать секунд 10 и ввести на HQ-RTR, BR-RTR:

vtysh -c "show ip ospf neighbor"

!!!НЕ ВВОДИТЬ, использовать только если нужно пересоздать GRE:

HQ-RTR, BR-RTR:

ifdown gre30 && ifup gre30

1.3 Users

Создайте локальные учетные записи на серверах HQ-SRV и BR-SRV:
• Создайте пользователя remote_user
• Пароль пользователя sshuser с паролем P@ssw0rd
• Идентификатор пользователя 2026
• Пользователь sshuser должен иметь возможность запускать sudo без
ввода пароля
• Создайте пользователя net_admin на маршрутизаторах HQ-RTR и BRRTR
• Пароль пользователя net_admin с паролем P@ssw0rd
• При настройке ОС на базе Linux, запускать sudo без ввода пароля
• При настройке ОС отличных от Linux пользователь должен обладать
максимальными привилегиями.

HQ-SRV, BR-SRV:

sudo useradd -m -s /bin/bash remote_user
echo "remote_user:P@ssw0rd" | sudo chpasswd
useradd -m -u 2026 -s /bin/bash sshuser
echo "sshuser:P@ssw0rd" | sudo chpasswd
echo "sshuser ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/sshuser
chmod 440 /etc/sudoers.d/sshuser

visudo -c

HQ-RTR, BR-RTR:

useradd -m -s /bin/bash net_admin
echo "net_admin:P@ssw0rd" | sudo chpasswd
echo "net_admin ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/net_admin
chmod 440 /etc/sudoers.d/net_admin

visudo -c

1.5 SSH-Servers

Настройте безопасный удаленный доступ на серверах HQ-SRV и BRSRV:
• Для подключения используйте порт 2026
• Разрешите подключения исключительно пользователю sshuser
• Ограничьте количество попыток входа до двух
• Настройте баннер «Authorized access only».

HQ-SRV, BR-SRV:

nano /etc/ssh/sshd_config

Вставляем через строку после Include /etc/ssh/… conf (вначале), убрать строку Port 22:

PermitRootLogin no
PasswordAuthentication yes
Port 2026
AllowUsers sshuser
MaxAuthTries 2
Banner /etc/ssh/banner

Далее

nano /etc/ssh/banner

Authorized access only

Далее

sudo sshd -t

sudo systemctl restart ssh

Далее

ssh sshuser@hq-srv -p 2026

ssh sshuser@br-srv -p 2026

1.11 Настройка времени

Настройте часовой пояс на всех устройствах (за исключением
виртуального коммутатора, в случае его использования) согласно месту
проведения экзамена

Все машины:

timedatectl set-timezone Europe/Moscow

date

2 МОДУЛЬ

2.1 Samba на BR-SRV

Настройте контроллер домена Samba DC на сервере BR-SRV:
• Имя домена au-team.irpo
• Введите в созданный домен машину HQ-CLI
• Создайте 5 пользователей для офиса HQ: имена пользователей формата
hquser№ (например hquser1, hquser2 и т.д.)
• Создайте группу hq, введите в группу созданных пользователей
• Убедитесь, что пользователи группы hq имеют право
аутентифицироваться на HQ-CLI
• Пользователи группы hq должны иметь возможность повышать
привилегии для выполнения ограниченного набора команд: cat, grep, id.
Запускать другие команды с повышенными привилегиями пользователи
группы права не имеют.

HQ-SRV:

nano /etc/bind/zones/db.au-team.irpo

; Active Directory SRV Records
_ldap._tcp.au-team.irpo. IN SRV 0 100 389 br-srv.au-team.irpo.
_kerberos._tcp.au-team.irpo. IN SRV 0 100 88 br-srv.au-team.irpo.
_kerberos._udp.au-team.irpo. IN SRV 0 100 88 br-srv.au-team.irpo.
_kpasswd._tcp.au-team.irpo. IN SRV 0 100 464 br-srv.au-team.irpo.
_kpasswd._udp.au-team.irpo. IN SRV 0 100 464 br-srv.au-team.irpo.
_ldap._tcp.dc._msdcs.au-team.irpo. IN SRV 0 100 389 br-srv.au-team.irpo.
_kerberos._tcp.dc._msdcs.au-team.irpo. IN SRV 0 100 88 br-srv.au-team.irpo.
_gc._tcp.au-team.irpo. IN SRV 0 100 3268 br-srv.au-team.irpo.

Далее

systemctl restart bind9

BR-SRV:

rm /etc/samba/smb.conf

rm -rf /var/lib/samba/private/*
rm -rf /var/lib/samba/*.tdb

sudo chown -R root:root /var/lib/samba

Далее

nano /etc/hosts

127.0.0.1 localhost

192.168.11.2 br-srv.au-team.irpo br-srv

Далее

sudo samba-tool domain provision
##--realm=AU-TEAM.IRPO
##--domain=AU-TEAM
##--server-role=dc
##--dns-backend=NONE
##--adminpass='P@ssw0rd'

Далее

nano /etc/samba/smb.conf

##Вставить в секцию [global]

dns forwarder = 192.168.10.2

Далее

sudo systemctl enable samba-ad-dc
sudo systemctl start samba-ad-dc
sudo systemctl status samba-ad-dc

##Номера процессов могут не совпадать, сверять с ошибками при команде systemctl status samba-ad-dc

kill 6069

kill 5983

HQ-CLI:

sudo realm discover au-team.irpo

sudo realm join -v AU-TEAM.IRPO

Проверка на HQ-CLI:

sudo realm list

Проверка на BR-SRV:

samba-tool computer list

BR-SRV:

samba-tool group add hq
for i in {1..5}; do sudo samba-tool user create "hquser$i" "P@ssw0rd" --given-name="User$i" --surname="HQ"; done
for i in {1..5}; do
sudo samba-tool group addmembers "hq" "hquser$i"
done

HQ-CLI:

echo '%hq@au-team.irpo ALL=(ALL) NOPASSWD: /bin/cat, /bin/grep, /usr/bin/id' | sudo tee /etc/sudoers.d/hq > /dev/null

sudo chmod 440 /etc/sudoers.d/hq

Проверка прав на HQ-CLI:

id hquser1@au-team.irpo

su - hquser1@au-team.irpo

sudo cat /etc/hostname

sudo ls /root

# После ввода пароля должна появиться ошибка: "Sorry, user hquser1@au-team.irpo is not allowed to execut...

2.2 RAID на HQ-SRV

Сконфигурируйте файловое хранилище на сервере HQ-SRV:
• При помощи двух подключенных к серверу дополнительных дисков
размером 1 Гб сконфигурируйте дисковый массив уровня 0
• Имя устройства – md0, при необходимости конфигурация массива
размещается в файле /etc/mdadm.conf
• Создайте раздел, отформатируйте раздел, в качестве файловой системы
используйте ext4
• Обеспечьте автоматическое монтирование в папку /raid

HQ-SRV:

lsblk

Для уровня 0 (2 диска)

sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc

Для уровня 1 (2 диска)

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

Для уровня 5 (3 диска)

sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd

Для уровня 6 (4 диска)

sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde

Для уровня 10 (4 диска)

sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde

Проверка

cat /proc/mdstat

lsblk

Далее

mkdir -p /etc/mdadm
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm.conf
update-initramfs -u
sudo mkfs.ext4 /dev/md0
mkdir -p /raid

Способ 1:

UUID=$(sudo blkid -s UUID -o value /dev/md0)
echo "UUID=$UUID /raid ext4 defaults 0 2" | sudo tee -a /etc/fstab

Способ 2:

sudo blkid | grep md0 #######Получаем UUID=0e7088…##

nano /etc/fstab

UUID=вставляем полученный /raid ext4 defaults 0 2

Далее

mount -a
sudo systemctl daemon-reload
df -h /raid
lsblk

Далее

reboot

2.3 NFS на HQ-SRV

Настройте сервер сетевой файловой системы (nfs) на HQ-SRV:
• В качестве папки общего доступа выберите /raid/nfs, доступ для чтения
и записи исключительно для сети в сторону HQ-CLI
• На HQ-CLI настройте автомонтирование в папку /mnt/nfs
• Основные параметры сервера отметьте в отчёте

HQ-SRV:

sudo mkdir -p /raid/nfs

sudo chmod 755 /raid/nfs

sudo chown root:root /raid/nfs

Далее

echo "/raid/nfs 192.168.10.32/28(rw,sync,no_subtree_check,no_root_squash)" | sudo tee -a /etc/exports

Далее

sudo exportfs -ra
sudo systemctl restart nfs-kernel-server
sudo systemctl enable nfs-kernel-server

sudo exportfs -v
sudo showmount -e localhost

HQ-CLI:

sudo mkdir -p /mnt/nfs
sudo chmod 755 /mnt/nfs

Далее

echo "192.168.10.2:/raid/nfs /mnt/nfs nfs4 defaults,noatime,nofail 0 0" | sudo tee -a /etc/fstab

Проверка

sudo mount -a
systemctl daemon-reload
df -h /mnt/nfs

HQ-SRV:

touch /raid/nfs/test_from_server.txt
echo "Этот файл создан на HQ-SRV" > /raid/nfs/test_from_server.txt

HQ-CLI:

ls -la /mnt/nfs/
cat /mnt/nfs/test_from_server.txt
echo "Этот файл создан на HQ-CLI" > /mnt/nfs/test_from_client.txt

HQ-SRV:

ls -la /raid/nfs/
cat /raid/nfs/test_from_client.txt

2.4 Chrony на ISP

Настройте службу сетевого времени на базе сервиса chrony на
маршрутизаторе ISP:
• Вышестоящий сервер ntp на маршрутизаторе ISP - на выбор участника
• Стратум сервера - 5
• В качестве клиентов ntp настройте: HQ-SRV, HQ-CLI, BR-RTR, BR-SRV.

ISP:

nano /etc/chrony/chrony.conf

Убираем строку с pool 2 и вставляем:

server 127.0.0.1 iburst prefer
local stratum 5
hwtimestamp *
allow 0/0

Далее

systemctl enable chrony
systemctl restart chrony
chronyc sources -v
chronyc tracking

HQ-SRV, HQ-CLI, BR-RTR, BR-SRV:

nano /etc/chrony/chrony.conf

Убираем строку с pool 2 и вставляем:

pool 172.16.1.1 iburst minpoll 4 maxpoll 6

makestep 1 3

Далее на HQ-SRV, HQ-CLI, BR-RTR, BR-SRV:

systemctl enable chrony
systemctl restart chrony
chronyc sources -v
chronyc tracking

2.5 Ansible на BR-SRV

Сконфигурируйте ansible на сервере BR-SRV:
• Сформируйте файл инвентаря, в инвентарь должны входить HQ-SRV,
HQ-CLI, HQ-RTR и BR-RTR
• Рабочий каталог ansible должен располагаться в /etc/ansible
• Все указанные машины должны без предупреждений и ошибок отвечать
pong на команду ping в ansible посланную с BR-SRV.

BR-SRV:

sudo mkdir -p /etc/ansible
sudo mkdir -p /etc/ansible/group_vars
sudo mkdir -p /etc/ansible/host_vars

Далее

nano /etc/ansible/ansible.cfg

[defaults]
inventory = /etc/ansible/hosts
host_key_checking = False
private_key_file = ~/.ssh/id_rsa

[privilege_escalation]
become = True
become_method = sudo
become_user = root
become_ask_pass = False

Далее

nano /etc/ansible/hosts

[hq_servers]
hq-srv ansible_host=192.168.10.2 ansible_user=sshuser ansible_port=2026
[hq_clients]
hq-cli ansible_host=192.168.10.34 ansible_user=user
[routers]
hq-rtr ansible_host=172.16.1.2 ansible_user=net_admin
br-rtr ansible_host=172.16.2.2 ansible_user=net_admin
[all:vars]
ansible_connection=ssh
ansible_ssh_common_args='-o StrictHostKeyChecking=no'

HQ-SRV:

sudo mkdir -p /home/sshuser
sudo chown sshuser:sshuser /home/sshuser
sudo chmod 700 /home/sshuser
sudo -u sshuser mkdir /home/sshuser/.ssh
sudo chmod 700 /home/sshuser/.ssh

HQ-RTR, BR-RTR:

sudo mkdir -p /home/net_admin
sudo chown net_admin:net_admin /home/net_admin
sudo chmod 700 /home/net_admin
sudo -u net_admin mkdir /home/net_admin/.ssh
sudo chmod 700 /home/net_admin/.ssh

HQ-CLI:

echo 'user ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/user
sudo chmod 440 /etc/sudoers.d/user

BR-SRV:

ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa -N ""
ssh-copy-id net_admin@hq-rtr
ssh-copy-id net_admin@br-rtr

ssh-copy-id -p 2026 sshuser@hq-srv
ssh-copy-id user@hq-cli

Проверка:

ansible all -m ping

2.8 Cтатическая трансляция портов

На маршрутизаторах сконфигурируйте статическую трансляцию
портов:
• Пробросьте порт 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 из внешних сетей.

HQ-RTR:

iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 8080 -j DNAT --to-destination 192.168.10.2:80
iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 2026 -j DNAT --to-destination 192.168.10.2:2026
iptables -A FORWARD -d 192.168.10.2 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d 192.168.10.2 -p tcp --dport 2026 -j ACCEPT
iptables -A FORWARD -s 192.168.10.2 -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.10.2 -p tcp --sport 2026 -j ACCEPT

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

BR-RTR:

iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 8080 -j DNAT --to-destination 192.168.11.2:8080
iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 2026 -j DNAT --to-destination 192.168.11.2:2026
iptables -A FORWARD -d 192.168.11.2 -p tcp --dport 8080 -j ACCEPT
iptables -A FORWARD -d 192.168.11.2 -p tcp --dport 2026 -j ACCEPT
iptables -A FORWARD -s 192.168.11.2 -p tcp --sport 8080 -j ACCEPT
iptables -A FORWARD -s 192.168.11.2 -p tcp --sport 2026 -j ACCEPT

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

2.6 Docker на BR-SRV

Docker

2.7 Web на HQ-SRV

Разверните веб приложение на сервере HQ-SRV:
• Используйте веб-сервер apache
• В качестве системы управления базами данных используйте mariadb
• Файлы веб приложения и дамп базы данных находятся в директории web
образа Additional.iso
• Выполните импорт схемы и данных из файла dump.sql в базу данных
webdb
• Создайте пользователя webс паролем P@ssw0rd и предоставьте ему
права доступа к этой базе данных
• Файлы index.php и директорию images скопируйте в каталог веб сервера
apache
• В файле index.php укажите правильные учётные данные для
подключения к БД
• Запустите веб сервер и убедитесь в работоспособности приложения
• Основные параметры отметьте в отчёте

HQ-SRV:

##чтобы удостовериться на каком устройстве лежит ADD iso и если что поменять /sr0 на него

lsblk

Далее

sudo mkdir -p /mnt/additional
sudo mount /dev/sr0 /mnt/additional

Далее

systemctl enable apache2 mariadb

sudo mysql_secure_installation

# - Enter current password for root (enter for none): [Enter]
# - Switch to unix_socket authentication [Y/n]: n
# - Change the root password? [Y/n]: Y !!!!!Устанавливаем P@ssw0rd!!!!!
# - Remove anonymous users? [Y/n]: Y
# - Disallow root login remotely? [Y/n]: Y
# - Remove test database and access to it? [Y/n]: Y
# - Reload privilege tables now? [Y/n]: Y

sudo mysql -u root -pP@ssw0rd -e "

CREATE DATABASE webdb;
CREATE USER 'web'@'localhost' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL PRIVILEGES ON webdb.* TO 'web'@'localhost';
FLUSH PRIVILEGES;
SHOW DATABASES;
"

sudo cp /mnt/additional/web/index.php /var/www/html/
sudo cp /mnt/additional/web/logo.png /var/www/html/
sudo cp /mnt/additional/web/dump.sql /tmp/
sudo mysql -u web -pP@ssw0rd webdb < /tmp/dump.sql

Заходим в файл и меняем первые 4 строки на:

nano /var/www/html/index.php

$servername = "localhost";
$username = "web";
$password = "P@ssw0rd";
$dbname = "webdb";

Далее

sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/
sudo rm -f /var/www/html/index.html

Далее

sudo ss -tulpn | grep :80

kill три процесса, которые он выведет

Далее

sudo systemctl restart apache2

Проверка в браузере на HQ-CLI:

http://hq-srv.au-team.irpo/

##Если не открывается, перенести машину обратно в левое окно, проверить питание интерфейсов и restart dhcp, пока не заработает

2.9 + 2.10 Bеб-сервер nginx на ISP + Аутентификация

Nginx + Auth

2.11 Яндекс браузер на HQ-CLI

Удобным способом установите приложение Яндекс Браузер на HQ-CLI
• Установку браузера отметьте в отчёте.

HQ-CLI:

В Firefox написать скачать Яндекс для linux, скачать пакет .deb, открыть проводник, пкм – «открыть с помощью» выбрать software installation, готово.

3.1 Импорт user'ов в домен на BR-SRV

Скрипт

3.3 Шифрование IP туннеля

IPSec

3.4 Настройка межсетевого экрана на маршрутизаторах (лучше не делать)

Настройте межсетевой экран на маршрутизаторах HQ-RTR и BR-RTR на
сеть в сторону ISP
• Обеспечьте работу протоколов http, https, dns, ntp, icmp или
дополнительных нужных протоколов
• Запретите остальные подключения из сети Интернет во внутреннюю
сеть.

HQ-RTR:

iptables -P FORWARD DROP
iptables -I FORWARD 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 192.168.10.0/27 -o ens33 -j ACCEPT
iptables -A FORWARD -s 192.168.10.32/28 -o ens33 -j ACCEPT
iptables -A FORWARD -i ens33 -d 192.168.10.2 -p tcp -m multiport --dports 80,443,2026,8080 -j ACCEPT
iptables -A FORWARD -i ens33 -d 192.168.10.2 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i ens33 -d 192.168.10.2 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i ens33 -d 192.168.10.2 -p udp --dport 123 -j ACCEPT
iptables -A FORWARD -i ens33 -p icmp -j ACCEPT
iptables -A FORWARD -o ens33 -p icmp -j ACCEPT
iptables -A FORWARD -s 192.168.10.0/27 -d 192.168.10.32/28 -j ACCEPT
iptables -A FORWARD -s 192.168.10.32/28 -d 192.168.10.0/27 -j ACCEPT
iptables -A FORWARD -s 192.168.10.0/27 -d 192.168.11.0/28 -j ACCEPT
iptables -A FORWARD -s 192.168.10.32/28 -d 192.168.11.0/28 -j ACCEPT
iptables -A FORWARD -s 192.168.11.0/28 -d 192.168.10.0/27 -j ACCEPT
iptables -A FORWARD -s 192.168.11.0/28 -d 192.168.10.32/28 -j ACCEPT
iptables -A INPUT -i ens33 -p esp -j ACCEPT
iptables -A OUTPUT -o ens33 -p esp -j ACCEPT
iptables-save > /etc/iptables/rules.v4

BR-RTR:

iptables -P FORWARD DROP
iptables -I FORWARD 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 192.168.11.0/28 -o ens33 -j ACCEPT
iptables -A FORWARD -i ens33 -d 192.168.11.2 -p tcp -m multiport --dports 80,443,2026,8080 -j ACCEPT
iptables -A FORWARD -i ens33 -d 192.168.11.2 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i ens33 -d 192.168.11.2 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i ens33 -d 192.168.11.2 -p udp --dport 123 -j ACCEPT
iptables -A FORWARD -i ens33 -p icmp -j ACCEPT
iptables -A FORWARD -o ens33 -p icmp -j ACCEPT
iptables -A FORWARD -s 192.168.11.0/28 -d 192.168.10.0/27 -j ACCEPT
iptables -A FORWARD -s 192.168.11.0/28 -d 192.168.10.32/28 -j ACCEPT
iptables -A FORWARD -s 192.168.10.0/27 -d 192.168.11.0/28 -j ACCEPT
iptables -A FORWARD -s 192.168.10.32/28 -d 192.168.11.0/28 -j ACCEPT
iptables -A INPUT -i ens33 -p esp -j ACCEPT
iptables -A OUTPUT -o ens33 -p esp -j ACCEPT
iptables-save > /etc/iptables/rules.v4

Проверка

sudo iptables -L -n -v

3.5 CUPS на HQ-SRV

Настройте принт-сервер cups на сервере HQ-SRV:
• Опубликуйте виртуальный pdf-принтер
• На клиенте HQ-CLI подключите виртуальный принтер как принтер по
умолчанию.

HQ-SRV:

systemctl enable --now cups
systemctl status cups

Далее

nano /etc/cups/cupsd.conf

##Listen localhost:631 поменять на:
Port 631
Listen /var/run/cups/cups.sock

##В <Location />, <Location /admin> и <Location /admin/conf> добавить:
<Location />
Order allow,deny
Allow 192.168.10.0/24
</Location>

Далее

systemctl restart cups
sudo usermod -aG lpadmin sshuser
lpstat -p
sudo lpadmin -p PDF -o printer-is-shared=true
systemctl restart cups

HQ-CLI:

sudo lpadmin -p HQ-PDF -E -v ipp://192.168.10.2:631/printers/PDF -m everywhere
sudo lpadmin -d HQ-PDF
echo "Проверка печати PDF" > test.txt
lp test.txt

Проверка на HQ-SRV:

ls /var/spool/cups-pdf/ANONYMOUS/

3.6 Rsyslog на HQ-SRV
HQ-SRV:

Rsyslog

3.7 Мониторинг на HQ-SRV

На сервере HQ-SRV реализуйте мониторинг устройств с помощью
открытого программного обеспечения
• Обеспечьте доступность по URL - http://mon.au-team.irpo для сетей
офиса HQ, внесите изменения в инфраструктуру разрешения доменных
имён
• Мониторить нужно устройства HQ-SRV и BR-SRV
• В мониторинге должны визуально отображаться нагрузка на ЦП, объем
занятой ОП и основного накопителя
• Логин и пароль для службы мониторинга admin P@ssw0rd
• Организуйте доступ к мониторингу для HQ-CLI, без внешнего доступа
• Выбор программного обеспечения, основание выбора и основные
параметры с указанием порта, на котором работает мониторинг,
отметьте в отчёте

HQ-SRV:

systemctl enable --now prometheus

systemctl enable --now prometheus-node-exporter

systemctl status prometheus

systemctl status prometheus-node-exporter

HQ-CLI браузер:

http://192.168.10.2:9090

BR-SRV:

systemctl enable --now prometheus-node-exporter

systemctl status prometheus-node-exporter

HQ-CLI браузер:

http://192.168.10.2:9100/metrics

http://192.168.11.2:9100/metrics

HQ-SRV:

Prometheus.yml

Далее

systemctl restart prometheus

HQ-SRV браузер, должно быть 4 штуки и все “UP”:

http://192.168.10.2:9090/classic/targets

HQ-SRV:

wget --no-check-certificate https://dl.grafana.com/oss/release/grafana_10.4.0_amd64.deb -O /tmp/grafana.deb

Далее

sudo apt install -y /tmp/grafana.deb --allow-unauthenticated

Далее

sudo systemctl daemon-reload

sudo systemctl enable grafana-server

sudo systemctl start grafana-server

sudo systemctl status grafana-server

HQ-SRV браузер:

http://192.168.10.2:3000

Логин: admin, Пароль: admin

Система попросит сменить пароль → установить P@ssw0rd

Grafana HQ-SRV:

3 полоски левый верхний угол → Connections →Ввести Prometheus в поиске → Add new data source.

В поле Connection URL ввести: http://192.168.10.2:9090

Пролистать вниз → Save & Test

Grafana HQ-SRV:

3 полоски левый верхний угол → Dashboards → New → Import.

В поле Import ввести 1860 и нажать Load.

В настройках выберите источник данных Prometheus и нажать Import

HQ-SRV:

nano /etc/bind/zones/db.au-team.irpo

##Добавить в низ таблицы строку:

mon.au-team.irpo. IN A 192.168.10.2

##В строке с SOA увеличьте первое число (serial) на 1.

Например, было 2 ; Serial → станет 3 ; Serial.

Далее

systemctl restart bind9

HQ-CLI:

nslookup mon.au-team.irpo

ping mon.au-team.irpo

HQ-SRV:

# Разрешить доступ из сети HQ-CLI (192.168.10.32/28)

iptables -A INPUT -p tcp --dport 3000 -s 192.168.10.32/28 -j ACCEPT

iptables -A INPUT -p tcp --dport 3000 -j DROP

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

Проверка в браузере на HQ-CLI:

http://mon.au-team.irpo:3000 — все должно работать

BR-RTR или любая другая машина:

curl http://192.168.10.2:3000 — должно висеть или отказать в соединении

3.8 Инвентаризация ansible на BR-SRV

Inventory

3.9 Fail2ban на HQ-SRV

HQ-SRV:

sudo tee /etc/fail2ban/jail.local << 'EOF'

[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 60
findtime = 600
maxretry = 3
[sshd]
enabled = true
port = 2026
filter = sshd
backend = systemd
maxretry = 3
bantime = 60
findtime = 600
EOF

Проверка:

sudo fail2ban-client -t

Ожидаемый вывод: OK: configuration test is successful.

Далее


sudo systemctl enable --now fail2ban
sudo systemctl status fail2ban
sudo fail2ban-client status
sudo fail2ban-client status sshd

Проверка на BR-SRV:

su - sshuser

ssh -p 2026 sshuser@hq-srv

ввести неправильный пароль 3 раза

Проверка на HQ-SRV:

sudo fail2ban-client status sshd

Для отчета:

Отчет

1.2. Основные сведения о настройке коммутатора и выбора реализации разделения на VLAN

Для реализации логической сегментации трафика в сегменте HQ был выбран метод VLAN на базе стандарта IEEE 802.1Q с использованием подчинённых интерфейсов (ens36.100, ens36.200, ens36.999) на маршрутизаторе HQ-RTR.

Обоснование выбора технологии:

Один физический интерфейс для маршрутизации — полностью соответствует требованию задания о маршрутизации всех VLAN через один адаптер ВМ. Это решение:

  1. Упрощает топологию сети
  2. Снижает потребление ресурсов хоста
  3. Облегчает диагностику и обслуживание

Модуль ядра 8021q — стандартный драйвер Linux для поддержки VLAN:

  1. Не требует установки дополнительных пакетов
  2. Стабильно работает в Debian 12
  3. Поддерживается всеми современными дистрибутивами
  4. Имеет минимальные накладные расходы на производительность

Ручная конфигурация в /etc/network/interfaces вместо автоматических инструментов (netplan, NetworkManager) выбрана по следующим причинам:

  1. Обеспечивает полную воспроизводимость конфигурации
  2. Позволяет явно контролировать порядок поднятия интерфейсов
  3. Гарантирует работу до загрузки графической оболочки

Принцип работы: каждый подчинённый интерфейс (например, ens36.100) добавляет VLAN-тег 802.1Q к исходящим пакетам и удаляет его из входящих. Это позволяет одному физическому интерфейсу передавать трафик нескольких логических сетей одновременно.

Рисунок 1 - Конфигурация VLAN в файле /etc/network/interfaces на HQ-RTR

Рисунок 2 - Вывод команды cat /proc/net/vlan/config или bridge vlan show

1.3. Конфигурация IP туннеля между офисами HQ и BR.

Для организации защищённого канала связи между офисами HQ и BR выбрана технология GRE (Generic Routing Encapsulation).

Обоснование выбора GRE:

Простота настройки и отладки:

  1. Поддерживается ядром Linux (модуль ip_gre)
  2. Не требует установки дополнительных пакетов
  3. Минимальное количество параметров конфигурации
  4. Понятная и предсказуемая работа

Совместимость с протоколами маршрутизации:

  1. GRE-интерфейс ведёт себя как стандартный point-to-point интерфейс
  2. Корректно работает с OSPF, позволяя анонсировать маршруты
  3. Поддерживает multicast-трафик, необходимый для работы протоколов динамической маршрутизации
  4. Обеспечивает инкапсуляцию любых протоколов сетевого уровня

Гибкость и масштабируемость:

  1. Возможность инкапсуляции IPv6 поверх IPv4
  2. Поддержка multiple GRE-туннелей для разных целей
  3. Настраиваемый TTL для контроля времени жизни пакетов

Производительность:

  1. Минимальные накладные расходы (20 байт заголовка GRE + 20 байт IP)
  2. Аппаратное ускорение на современных процессорах
  3. Отсутствие шифрования (в базовой конфигурации) снижает нагрузку на CPU

Конфигурация туннеля:

  1. Локальный адрес: внешний интерфейс HQ-RTR (172.16.1.2)
  2. Удалённый адрес: внешний интерфейс BR-RTR (172.16.2.2)
  3. Адресация туннеля: 10.10.10.0/30 (point-to-point)
  4. TTL: 225

Рисунок 3 - Вывод команды ip tunnel show на HQ-RTR

Рисунок 4 - Результат пинга через туннель: ping -I gre30 10.10.10.2 либо просто ping 10.10.10.2 c HQ-RTR

1.4. Настройка динамической маршрутизации с использованием протокола Link State.

В качестве протокола динамической маршрутизации выбран OSPFv2 (Open Shortest Path First).

Обоснование выбора OSPF:

Алгоритм Link-State (состояние каналов):

  1. Обеспечивает быструю сходимость сети (обычно менее 10 секунд)
  2. Гарантирует отсутствие петель маршрутизации
  3. Каждое устройство имеет полную карту топологии сети

Поддержка аутентификации:

  1. Реализована MD5-аутентификация на интерфейсах
  2. Соответствует требованию парольной защиты из задания
  3. Предотвращает несанкционированное внедрение маршрутизаторов
  4. Защищает от атак типа "rogue router"

Пакет FRR (Free Range Routing):

  1. Современная, активно поддерживаемая реализация
  2. Доступен в официальных репозиториях Debian 12
  3. Удобный CLI через утилиту vtysh
  4. Поддерживает множество протоколов (OSPF, BGP, RIP и др.)

Конфигурация аутентификации:

  1. Тип: message-digest (MD5)
  2. Key ID: 1
  3. Password: admin
  4. Network type: broadcast (для GRE-интерфейса)
  5. Passive interface отключен для активного обмена Hello-пакетами

Область (Area) 0:

  1. Выбрана backbone area как стандарт для простых топологий
  2. Все маршрутизаторы находятся в одной области
  3. Упрощает конфигурацию и диагностику

Рисунок 5 - Вывод команды show ip ospf neighbor на обоих маршрутизаторах с состоянием Full

Рисунок 6 - Таблица маршрутизации: ip route на HQ-CLI с маршрутом в сеть 192.168.11.0/28 через OSPF

1.5. Настройка протокола динамической конфигурации хостов.

DHCP-сервер реализован на базе isc-dhcp-server непосредственно на маршрутизаторе HQ-RTR, как можно увидеть на рисунке 7, конфигурация сервера содержит следующие параметры для клиентов:

  1. Subnet: 192.168.10.32/28 (соответствует подсети VLAN 200)
  2. Range: 192.168.10.34-192.168.10.46 (пул из 13 адресов, исключая адрес самого маршрутизатора 192.168.10.33 и broadcast 192.168.10.47)
  3. Router: 192.168.10.33 (адрес HQ-RTR в VLAN 200)
  4. DNS Server: 192.168.10.2 (HQ-SRV)
  5. Domain Name: au-team.irpo
  6. Lease time: стандартное

Рисунок 7 - Конфигурация dhcp сервера в файле /etc/dhcp/dhcpd.conf

Рисунок 8 - Вывод ip a на HQ-CLI после получения адреса по DHCP

МОДУЛЬ 2

2.1. Конфигурация сервера сетевой файловой системы (NFS) на HQ-SRV

Параметры сервера:

  1. Экспортируемая директория: /raid/nfs
  2. Разрешённая подсеть : 192.168.10.32/28
  3. Опции экспорта:
  4. rw - режим доступа, разрешающий чтение и запись для клиентов подсети
  5. sync - синхронизация, гарантирует запись данных на диск до отправки ответа клиенту (целостность)
  6. no_subtree_check - выключение проверки поддиректорий для повышения производительности и стабильности при экспорте корневой директории
  7. no_root_squash - позволяет удалённому пользователю root управлять файлами как локальный root (необходимо для администрирования и корректной работы веб-приложений)

Рисунок 9 - Вывод команды exportfs -v на HQ-SRV с отображением экспорта /raid/nfs для подсети 192.168.10.32/28 и применённых опций

Рисунок 10 - Вывод df -h /mnt/nfs на HQ-CLI, подтверждающий успешное монтирование NFSv4

Рисунок 11 - Тест чтения/записи: создание файла на HQ-CLI и его чтение на HQ-SRV

2.2. Веб приложение на сервере HQ-SRV

Основные параметры сервера:

  1. Веб-сервер: Apache/2.4
  2. СУБД: MariaDB 10.11
  3. Внутренний порт веб-сервера: 80
  4. Порт для внешнего доступа через статическую трансляцию портов на маршрутизаторе:8080
  5. База данных: webdb
  6. Пользователь БД: web
  7. Путь к приложению: /var/www/html

Рисунок 12 - содержимое файла /var/www/html/index.php с правильными учётными данными для подключения к БД

Рисунок 13 - Скриншот работающего веб-приложения в браузере на HQ-CLI с отображением данных из БД

Рисунок 14 - Вывод mysql -u web -p -e "SHOW TABLES;" webdb с перечнем таблиц

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

Установка выполнена через графический установщик пакетов (.deb).

Рисунок 15 - Окно установщика пакета Яндекс.Браузера с отображением информации о пакете

Рисунок 16 - Запущенный браузер

МОДУЛЬ 3

3.1. Настройка защищенного туннеля между HQ-RTR и BR-RTR

Выбранное программное обеспечение

Для реализации защищенного туннеля между маршрутизаторами HQ-RTR и BR-RTR было выбрано программное обеспечение Libreswan — реализация протокола IPsec для операционных систем на базе Linux.

Обоснование выбора

Выбор Libreswan обусловлен следующими факторами:

Соответствие требованиям экзамена: Libreswan является стандартным решением для организации IPsec-туннелей в дистрибутивах на базе Debian/ALT Linux, доступен в официальных репозиториях.

Поддержка режима GRE over IPsec: Программное обеспечение позволяет шифровать существующий GRE-туннель без изменения его внутренней адресации (10.10.10.0/30), что соответствует требованию задания о «перенастройке» туннеля, а не создании нового.

Прозрачность для протоколов маршрутизации: При использовании режима transport mode протокол OSPF продолжает работать поверх зашифрованного туннеля без необходимости изменения конфигурации, что обеспечивает выполнение требования «протокол динамической маршрутизации должен возобновить работу после перенастройки туннеля».

Поддержка современных алгоритмов шифрования: Libreswan поддерживает отечественные и международные стандарты криптографии (AES, SHA-2, ГОСТ), что важно с точки зрения информационной безопасности.

Простота конфигурации и администрирования: Гибкая система конфигурации через файлы /etc/ipsec.conf и /etc/ipsec.d/, возможность верификации настроек командой ipsec verify.

Основные параметры IPsec-соединения:

  1. Тип соединения - transport - Шифрование только полезной нагрузки (GRE-пакетов) без изменения внешних IP-заголовков
  2. Метод аутентификации - PSK (Pre-Shared Key) - Аутентификация по общему секретному ключу
  3. Секретный ключ - P@ssw0rd
  4. Алгоритм шифрования IKE - aes256-sha2;modp2048 - Шифрование фазы 1 (установление SA)
  5. Алгоритм шифрования ESP - aes256-sha2;modp2048 - Шифрование фазы 2 (передача данных)
  6. Автозапуск - auto=start - Автоматическое поднятие туннеля при загрузке системы

Для обеспечения работы IPsec на обоих маршрутизаторах настроены правила iptables:

  1. Разрешение зашифрованного трафика для протокола ESP
  2. Разрешение протокола UDP на порте 500 для IKE (Internet Key Exchange) - фазы 1
  3. Разрешение протокола UDP на порте 4500 для IKE с NAT-Traversal - фазы 2

Изменения в конфигурации динамической маршрутизации:

Поскольку IPsec настроен в режиме transport mode и шифрует существующий GRE-туннель (10.10.10.0/30), изменения в конфигурации OSPF не потребовались.

Обоснование:

  1. Transport mode сохраняет внешние IP-заголовки (172.16.1.2 ↔ 172.16.2.2) неизменными, шифруя только инкапсулированный GRE-пакет.
  2. GRE-интерфейс с адресацией 10.10.10.1/30 (HQ-RTR) и 10.10.10.2/30 (BR-RTR) продолжает функционировать на том же сетевом уровне.
  3. OSPF-сессия, установленная в Модуле 1, использует интерфейс gre30 с адресом 10.10.10.0/30. Поскольку IPsec прозрачен для верхних уровней стека протоколов, OSPF продолжает работать без изменений конфигурации.
  4. Соседство OSPF автоматически восстанавливается после поднятия IPsec-туннеля, так как:
  5. Интерфейс gre30 остаётся доступным
  6. Multicast-трафик OSPF (224.0.0.5, 224.0.0.6) корректно инкапсулируется в GRE
  7. GRE-пакеты шифруются IPsec и доставляются удалённому маршрутизатору

Рисунок 17 - Конфигурационный файл /etc/ipsec.d/hqrtr.conf с основными параметрами

Рисунок 18 - Результат команды tcpdump -i ens33 -n esp с захватом ESP-пакетов, подтверждающий наличие зашифрованного трафика в туннеле

Рисунок 19 - Вывод команды vtysh -c "show ip ospf neighbor" на HQ-RTR с отображением соседнего маршрутизатора BR-RTR, подтверждающий работоспособность динамической маршрутизации после настройки IPSec

3.2. Мониторинг устройств с помощью открытого программного обеспечения

Для реализации мониторинга выбран стек Prometheus + Grafana + Node Exporter.

Обоснование выбора компонентов:

Prometheus:

  1. Современная система мониторинга с pull-моделью сбора метрик
  2. Мощный язык запросов PromQL для анализа данных
  3. Временная база данных (time-series database) оптимизирована для метрик
  4. Нативная поддержка service discovery
  5. Активное сообщество и регулярные обновления
  6. Версия 2.45+ доступна в репозиториях Debian 12

Grafana:

  1. Лидер среди систем визуализации метрик
  2. Поддержка множества источников данных (Prometheus, InfluxDB, MySQL и др.)
  3. Готовые дашборды (ID 1860 для Node Exporter — стандарт де-факто)
  4. Гибкая система алертинга
  5. Поддержка аутентификации и авторизации

Node Exporter:

  1. Официальный экспортер Prometheus для сбора метрик хоста
  2. Предоставляет информацию о:
  • Загрузке CPU (по ядрам)
  • Использовании оперативной памяти
  • Дисковом пространстве и I/O
  • Сетевых интерфейсах
  • Температуре и вентиляторах (если доступно)
  1. Минимальное потребление ресурсов
  2. Не требует привилегий root

Архитектура решения:

  1. Prometheus (порт 9090) — центральный сервер сбора метрик
  2. Grafana (порт 3000) — веб-интерфейс для визуализации
  3. Node Exporter (порт 9100) — на каждом мониторируемом хосте (HQ-SRV, BR-SRV)
  4. Pull-модель: Prometheus сам опрашивает экспортеры каждые 15 секунд

Безопасность и доступ:

  1. Аутентификация: admin / P@ssw0rd (требование задания)
  2. Ограничение доступа через iptables:
  3. Разрешён доступ к порту 3000 только из сети HQ (192.168.10.32/28)
  4. Запрет доступа из внешних сетей (DROP)
  5. Prometheus доступен только локально (localhost:9090) или через reverse proxy

DNS-интеграция:

  1. Добавлена A-запись: mon.au-team.irpo → 192.168.10.2
  2. Позволяет обращаться по удобному имени вместо IP

Основные параметры:

  1. Система мониторинга: Prometheus 2.45 + Grafana 10.4
  2. Порт Prometheus: 9090
  3. Порт Grafana: 3000
  4. Порт Node Exporter: 9100
  5. Мониторируемые хосты: HQ-SRV (192.168.10.2), BR-SRV (192.168.11.2)
  6. Метрики: CPU, Memory, Disk (через node_exporter)
  7. Интервал опроса: 15 секунд
  8. Доступ: Только из сети HQ (192.168.10.32/28) через iptables
  9. URL: http://mon.au-team.irpo

Рисунок 20 - Страница /targets в Prometheus с 2 активными целями (HQ-SRV и BR-SRV)

Рисунок 21 - Дашборд Grafana с графиками CPU, Memory, Disk для HQ-SRV и BR-SRV

Рисунок 22 - Попытка доступа к http://192.168.10.2:3000 с машины вне сети HQ (отказ в соединении — подтверждение работы firewall)