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
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
с использованием одного сетевого адаптера ВМ/физического порта
• Сведения о настройке коммутации внесите в отчёт.
HQ-RTR, HQ-SRV, HQ-CLI:
nano /etc/modules
8021q
Далее
modprobe 8021q
lsmod | grep 8021q
Маски:
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
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
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 + Аутентификация
2.11 Яндекс браузер на HQ-CLI
Удобным способом установите приложение Яндекс Браузер на HQ-CLI
• Установку браузера отметьте в отчёте.
HQ-CLI:
В Firefox написать скачать Яндекс для linux, скачать пакет .deb, открыть проводник, пкм – «открыть с помощью» выбрать software installation, готово.
3.1 Импорт user'ов в домен на BR-SRV
3.3 Шифрование IP туннеля
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:
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:
Далее
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
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 через один адаптер ВМ. Это решение:
- Упрощает топологию сети
- Снижает потребление ресурсов хоста
- Облегчает диагностику и обслуживание
Модуль ядра 8021q — стандартный драйвер Linux для поддержки VLAN:
- Не требует установки дополнительных пакетов
- Стабильно работает в Debian 12
- Поддерживается всеми современными дистрибутивами
- Имеет минимальные накладные расходы на производительность
Ручная конфигурация в /etc/network/interfaces вместо автоматических инструментов (netplan, NetworkManager) выбрана по следующим причинам:
- Обеспечивает полную воспроизводимость конфигурации
- Позволяет явно контролировать порядок поднятия интерфейсов
- Гарантирует работу до загрузки графической оболочки
Принцип работы: каждый подчинённый интерфейс (например, 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:
Простота настройки и отладки:
- Поддерживается ядром Linux (модуль ip_gre)
- Не требует установки дополнительных пакетов
- Минимальное количество параметров конфигурации
- Понятная и предсказуемая работа
Совместимость с протоколами маршрутизации:
- GRE-интерфейс ведёт себя как стандартный point-to-point интерфейс
- Корректно работает с OSPF, позволяя анонсировать маршруты
- Поддерживает multicast-трафик, необходимый для работы протоколов динамической маршрутизации
- Обеспечивает инкапсуляцию любых протоколов сетевого уровня
Гибкость и масштабируемость:
- Возможность инкапсуляции IPv6 поверх IPv4
- Поддержка multiple GRE-туннелей для разных целей
- Настраиваемый TTL для контроля времени жизни пакетов
Производительность:
- Минимальные накладные расходы (20 байт заголовка GRE + 20 байт IP)
- Аппаратное ускорение на современных процессорах
- Отсутствие шифрования (в базовой конфигурации) снижает нагрузку на CPU
Конфигурация туннеля:
- Локальный адрес: внешний интерфейс HQ-RTR (172.16.1.2)
- Удалённый адрес: внешний интерфейс BR-RTR (172.16.2.2)
- Адресация туннеля: 10.10.10.0/30 (point-to-point)
- 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 (состояние каналов):
- Обеспечивает быструю сходимость сети (обычно менее 10 секунд)
- Гарантирует отсутствие петель маршрутизации
- Каждое устройство имеет полную карту топологии сети
Поддержка аутентификации:
- Реализована MD5-аутентификация на интерфейсах
- Соответствует требованию парольной защиты из задания
- Предотвращает несанкционированное внедрение маршрутизаторов
- Защищает от атак типа "rogue router"
Пакет FRR (Free Range Routing):
- Современная, активно поддерживаемая реализация
- Доступен в официальных репозиториях Debian 12
- Удобный CLI через утилиту vtysh
- Поддерживает множество протоколов (OSPF, BGP, RIP и др.)
Конфигурация аутентификации:
- Тип: message-digest (MD5)
- Key ID: 1
- Password: admin
- Network type: broadcast (для GRE-интерфейса)
- Passive interface отключен для активного обмена Hello-пакетами
Область (Area) 0:
- Выбрана backbone area как стандарт для простых топологий
- Все маршрутизаторы находятся в одной области
- Упрощает конфигурацию и диагностику
Рисунок 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, конфигурация сервера содержит следующие параметры для клиентов:
- Subnet: 192.168.10.32/28 (соответствует подсети VLAN 200)
- Range: 192.168.10.34-192.168.10.46 (пул из 13 адресов, исключая адрес самого маршрутизатора 192.168.10.33 и broadcast 192.168.10.47)
- Router: 192.168.10.33 (адрес HQ-RTR в VLAN 200)
- DNS Server: 192.168.10.2 (HQ-SRV)
- Domain Name: au-team.irpo
- Lease time: стандартное
Рисунок 7 - Конфигурация dhcp сервера в файле /etc/dhcp/dhcpd.conf
Рисунок 8 - Вывод ip a на HQ-CLI после получения адреса по DHCP
МОДУЛЬ 2
2.1. Конфигурация сервера сетевой файловой системы (NFS) на HQ-SRV
Параметры сервера:
- Экспортируемая директория: /raid/nfs
- Разрешённая подсеть : 192.168.10.32/28
- Опции экспорта:
- rw - режим доступа, разрешающий чтение и запись для клиентов подсети
- sync - синхронизация, гарантирует запись данных на диск до отправки ответа клиенту (целостность)
- no_subtree_check - выключение проверки поддиректорий для повышения производительности и стабильности при экспорте корневой директории
- 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
Основные параметры сервера:
- Веб-сервер: Apache/2.4
- СУБД: MariaDB 10.11
- Внутренний порт веб-сервера: 80
- Порт для внешнего доступа через статическую трансляцию портов на маршрутизаторе:8080
- База данных: webdb
- Пользователь БД: web
- Путь к приложению: /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-соединения:
- Тип соединения - transport - Шифрование только полезной нагрузки (GRE-пакетов) без изменения внешних IP-заголовков
- Метод аутентификации - PSK (Pre-Shared Key) - Аутентификация по общему секретному ключу
- Секретный ключ - P@ssw0rd
- Алгоритм шифрования IKE - aes256-sha2;modp2048 - Шифрование фазы 1 (установление SA)
- Алгоритм шифрования ESP - aes256-sha2;modp2048 - Шифрование фазы 2 (передача данных)
- Автозапуск - auto=start - Автоматическое поднятие туннеля при загрузке системы
Для обеспечения работы IPsec на обоих маршрутизаторах настроены правила iptables:
- Разрешение зашифрованного трафика для протокола ESP
- Разрешение протокола UDP на порте 500 для IKE (Internet Key Exchange) - фазы 1
- Разрешение протокола UDP на порте 4500 для IKE с NAT-Traversal - фазы 2
Изменения в конфигурации динамической маршрутизации:
Поскольку IPsec настроен в режиме transport mode и шифрует существующий GRE-туннель (10.10.10.0/30), изменения в конфигурации OSPF не потребовались.
Обоснование:
- Transport mode сохраняет внешние IP-заголовки (172.16.1.2 ↔ 172.16.2.2) неизменными, шифруя только инкапсулированный GRE-пакет.
- GRE-интерфейс с адресацией 10.10.10.1/30 (HQ-RTR) и 10.10.10.2/30 (BR-RTR) продолжает функционировать на том же сетевом уровне.
- OSPF-сессия, установленная в Модуле 1, использует интерфейс gre30 с адресом 10.10.10.0/30. Поскольку IPsec прозрачен для верхних уровней стека протоколов, OSPF продолжает работать без изменений конфигурации.
- Соседство OSPF автоматически восстанавливается после поднятия IPsec-туннеля, так как:
- Интерфейс gre30 остаётся доступным
- Multicast-трафик OSPF (224.0.0.5, 224.0.0.6) корректно инкапсулируется в GRE
- 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:
- Современная система мониторинга с pull-моделью сбора метрик
- Мощный язык запросов PromQL для анализа данных
- Временная база данных (time-series database) оптимизирована для метрик
- Нативная поддержка service discovery
- Активное сообщество и регулярные обновления
- Версия 2.45+ доступна в репозиториях Debian 12
Grafana:
- Лидер среди систем визуализации метрик
- Поддержка множества источников данных (Prometheus, InfluxDB, MySQL и др.)
- Готовые дашборды (ID 1860 для Node Exporter — стандарт де-факто)
- Гибкая система алертинга
- Поддержка аутентификации и авторизации
Node Exporter:
- Официальный экспортер Prometheus для сбора метрик хоста
- Предоставляет информацию о:
- Загрузке CPU (по ядрам)
- Использовании оперативной памяти
- Дисковом пространстве и I/O
- Сетевых интерфейсах
- Температуре и вентиляторах (если доступно)
- Минимальное потребление ресурсов
- Не требует привилегий root
Архитектура решения:
- Prometheus (порт 9090) — центральный сервер сбора метрик
- Grafana (порт 3000) — веб-интерфейс для визуализации
- Node Exporter (порт 9100) — на каждом мониторируемом хосте (HQ-SRV, BR-SRV)
- Pull-модель: Prometheus сам опрашивает экспортеры каждые 15 секунд
Безопасность и доступ:
- Аутентификация: admin / P@ssw0rd (требование задания)
- Ограничение доступа через iptables:
- Разрешён доступ к порту 3000 только из сети HQ (192.168.10.32/28)
- Запрет доступа из внешних сетей (DROP)
- Prometheus доступен только локально (localhost:9090) или через reverse proxy
DNS-интеграция:
- Добавлена A-запись: mon.au-team.irpo → 192.168.10.2
- Позволяет обращаться по удобному имени вместо IP
Основные параметры:
- Система мониторинга: Prometheus 2.45 + Grafana 10.4
- Порт Prometheus: 9090
- Порт Grafana: 3000
- Порт Node Exporter: 9100
- Мониторируемые хосты: HQ-SRV (192.168.10.2), BR-SRV (192.168.11.2)
- Метрики: CPU, Memory, Disk (через node_exporter)
- Интервал опроса: 15 секунд
- Доступ: Только из сети HQ (192.168.10.32/28) через iptables
- 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)