Задание модуль 1

VLAN 999 можно не выпускать в сеть

1. Произведите базовую настройку устройств

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

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

  • Настройте имена устройств согласно топологии. Используйте полное доменное имя
На ISP:
hostnamectl set-hostname <ISP>; exec bash

HQ-SRV:
hostnamectl set-hostname <hq-srv>.<au-team.irpo>; exec bash

HQ-CLI:
hostnamectl set-hostname <hq-cli>.<au-team.irpo>; exec bash

BR-SRV:
hostnamectl set-hostname <br-srv>.<au-team.irpo>; exec bash

HQ-RTR:
ecorouter>enable 
 ecorouter#conf t
  ecorouter(config)#hostname hq-rtr
  hq-rtr(config)#ip domain-name au-team.irpo
  hq-rtr(config)#write memory

BR-RTR:
ecotouter>enable 
 ecotouter#conf t
  ecorouter(config)#hostname bq-rtr
  br-rtr(config)#ip domain-name au-team.irpo
  br-rtr(config)#write memory

На всех устройствах необходимо сконфигурировать IPv4:

  • IP-адрес должен быть из приватного диапазона, в случае, если сеть локальная, согласно RFC1918:
  • Локальная сеть в сторону HQ-SRV(VLAN 100) должна вмещать не более 32 адресов
  • Локальная сеть в сторону HQ-CLI(VLAN 200) должна вмещать не менее 16 адресов
  • Локальная сеть для управления(VLAN 999) должна вмещать не более 8 адресов
hq-rtr(config)#ip route 0.0.0.0/0 172.16.1.1
hq-rtr(config)#interface ISP
hq-rtr(config-if)#ip address 172.16.1.2/28
hq-rtr(config-if)#exit
hq-rtr(config)#port ge0
hq-rtr(config-if)#service-instance ge0/ISP
hq-rtr(config-if)#encapsulation untagged
hq-rtr(config-if)#connect ip interface ISP
hq-rtr(config-if)#exit
hq-rtr(config)#interface VLAN100
hq-rtr(config-if)#ip address 192.168.100.1/27
hq-rtr(config-if)#exit
hq-rtr(config)#interface VLAN200
hq-rtr(config-if)#ip address 192.168.200.1/28
hq-rtr(config-if)#exit
hq-rtr(config)#interface VLAN999
hq-rtr(config-if)#ip address 192.168.99.1/29
hq-rtr(config-if)#exit
hq-rtr(config)#port ge1
hq-rtr(config-port)#service-instance ge1/VLAN100
hq-rtr(config-service-instance)#encapsulation dot1q 100 exact
hq-rtr(config-service-instance)#rewrite pop 1
hq-rtr(config-service-instance)#connect ip interface VLAN100
hq-rtr(config-service-instance)#exit
hq-rtr(config-port)#service-instance ge1/VLAN200
hq-rtr(config-service-instance)#encapsulation dot1q 200 exact
hq-rtr(config-service-instance)#rewrite pop 1
hq-rtr(config-service-instance)#connect ip interface VLAN200
hq-rtr(config-service-instance)#exit
  // vlan 999 можно не присоединять а прост осоздать, это не обязанность
hq-rtr(config-port)#service-instance ge1/VLAN999
hq-rtr(config-service-instance)#encapsulation dot1q 999 exact
hq-rtr(config-service-instance)#rewrite pop 1
hq-rtr(config-service-instance)#connect ip interface VLAN999
hq-rtr(config-service-instance)#exit
hq-rtr(config)#write memory
  • Локальная сеть в сторону BR-SRV должна вмещать не более 16 адресов
br-rtr(config)#ip route 0.0.0.0/0 172.16.2.1
br-rtr(config)#interface ISP
br-rtr(config-port)#ip address 172.16.2.2/28
br-rtr(config-port)# exit
br-rtr(config)#port ge0
br-rtr(config-if)#service-instance ge0/ISP
br-rtr(config-if)#encapsulation untagged
br-rtr(config-if)#connect ip interface ISP
br-rtr(config-if)#exit
br-rtr(config)#interface LOCAL
br-rtr(config-port)#ip address 192.168.0.1/28
br-rtr(config-port)# exit
br-rtr(config)#port ge1
br-rtr(config-if)#service-instance ge1/LOCAL
br-rtr(config-if)#encapsulation untagged
br-rtr(config-if)#connect ip interface LOCAL
br-rtr(config-if)#exit
br-rtr(config)#write memory
  • Сведения об адресах занесите в таблицу 2, в качестве примера используйте Прил3О1_КОД 09.02.06-1-2026-М1
root@hq-srv:
cd /etc/net/ifaces/<имя сетевой карты выходящей в интернет>enp6s19/options:

TYPE=eth
DISABLED=no
BOOTPROTO=static
SYSTEMD_BOOTPROTO=static
CONFIG_IPV4=yes
SYSTEMD_CONTROLLED=no
NM_CONTROLLED=no

nano ipv4address
192.168.100.2/27
nano ipv4route
default via 192.168.100.1
root@br-srv:
cd /etc/net/ifaces/<имя сетевой карты выходящей в интернет>enp6s19/options:

TYPE=eth
DISABLED=no
BOOTPROTO=static
SYSTEMD_BOOTPROTO=static
CONFIG_IPV4=yes
SYSTEMD_CONTROLLED=no
NM_CONTROLLED=no

nano options
192.168.0.2/28
nano ipv4route
default via 192.168.0.1

2. Настройте доступ к сети Интернет, на маршрутизаторе ISP

  • Настройте адресацию на интерфейсах:
  • Интерфейс, подключенный к магистральному провайдеру, получает адрес по DHCP
TYPE=eth
CONFIG_IPV4=yes
BOOTPROTO=dhcp
SYSTEMD_BOOTPROTO=dhcp4
CONFIG_WIRELESS=no
DISABLED=no
NM_CONTROLLED=no
SYSTEMD_CONTROLLED=no

cd /etc/net/ifaces/<имя сетевой карты выходящей в интернет>enp6s19/options:

cd /etc/net/ifaces<имя интерфейса смотрящего в торону HQ-RTR>enp6s20
nano ipv4address
в файле пишем 172.16.1.1/28

TYPE=eth
CONFIG_IPV4=yes
BOOTPROTO=static
SYSTEMD_BOOTPROTO=static
CONFIG_WIRELESS=no
DISABLED=no
NM_CONTROLLED=no
SYSTEMD_CONTROLLED=no

systemctl restart network
  • Настройте интерфейс, в сторону BR-RTR, интерфейс подключен к сети 172.16.2.0/28
если нет папки создаём mkdir -p enp6s21 && cd enp6s21
cd /etc/net/ifaces<имя интерфейса смотрящего в торону BR-RTR>enp6s21
Cоздать файлы:
touch options
touch ipv4address
nano options

TYPE=eth
BOOTPROTO=static
SYSTEMD_BOOTPROTO=static
CONFIG_IPV4=yes
SYSTEMD_CONTROLLED=no
NM_CONTROLLED=no
DISABLED=no

nano ipv4address
172.16.2.1/28
systemctl restart network
  • На ISP настройте динамическую сетевую трансляцию портов для доступа к сети Интернет HQ-RTR и BR-RTR.

В конфигурационном файле /etc/net/sysctl.conf в параметре net.ipv4.ip_forward = 0 заменить значение с 0 на 1.

Скриншот настройки HQ-RTR

Настройка через nftables

Установим службу nftables:

apt-get update && apt-get install -y nftables

Добаавим nftables в автозапуск и тут же проверим статус:

systemctl enable --now nftables && systemctl status nftables

Создаем таблицу для NAT (если её еще нет)

nft add table ip nat

Создаем цепочку POSTROUTING с приоритетом srcnat (100)

sudo nft add chain ip nat postrouting { type nat hook postrouting priority srcnat \; }

Добавляем правила маскарадинга для ваших подсетей через интерфейс который смотрит в Интернет

sudo nft add rule ip nat postrouting ip saddr 172.16.1.0/28 oifname "enp6s19" masquerade
sudo nft add rule ip nat postrouting ip saddr 172.16.2.0/28 oifname "enp6s19" masquerade

Для сохранения текущего набора правил выполните:

sudo nft list ruleset | sudo tee /etc/nftables.conf

Просмотр правил NAT (Вместо iptables -t nat -L -n -v)

nft list table ip nat

Настройка через iptables

Установим службу iptables:

apt-get update && apt-get install -y iptables

Для применения настроек необходимо перезагрузить службу network командой:

systemctl restart network
systemctl start iptables

iptables -t nat -A POSTROUTING -s 172.16.1.0/28 -o enp6s19 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.2.0/28 -o enp6s19 -j MASQUERADE
iptables-save >> /etc/sysconfig/iptables

iptables -t nat -L -n -v

Не забывайте проверить статус : systemctl status iptables

Скриншот настройки ISP

3. Создайте локальные учетные записи на серверах HQ-SRV и BR-SRV

  • Создайте пользователя sshuser
  • Пароль пользователя sshuser с паролем P@ssw0rd
  • Идентификатор пользователя 2026
useradd sshuser –u 2026    #создать пользователя с uid 2026
passwd sshuser             #задать пароль P@ssw0rd
  • Пользователь sshuser должен иметь возможность запускать sudo без ввода пароля
usermod -aG wheel sshuser

echo "sshuser ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers
  • Создайте пользователя net_admin на маршрутизаторах HQ-RTR и BR-RTR
  • Пароль пользователя net_admin с паролем P@ssw0rd
hq-rtr(config)#username net_admin
hq-rtr(config-user)#password P@ssw0rd
hq-rtr(config-user)#role admin
hq-rtr(config-user)#exit
hq-rtr(config)#write memory
  • При настройке ОС на базе Linux, запускать sudo без ввода пароля
  • При настройке ОС отличных от Linux пользователь должен обладать максимальными привилегиями.

4. Настройте коммутацию в сегменте HQ следующим образом

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

5. Настройте безопасный удаленный доступ на серверах HQ-SRV и BR-SRV

  • Для подключения используйте порт 2026
  • Разрешите подключения исключительно пользователю sshuser
  • Ограничьте количество попыток входа до двух
  • Настройте баннер «Authorized access only»
Port 2026
AllowUsers sshuser
MaxAuthTries 2
Banner /etc/openssh/banner
touch banner
echo "Authorized access only" > /etc/openssh/banner
systemctl restart sshd
systemctl status sshd

6. Между офисами HQ и BR, на маршрутизаторах HQ-RTR и BR-RTR необходимо сконфигурировать ip туннель

  • На выбор технологии GRE или IP in IP
hq-rtr(config)#interface tunnel.1
hq-rtr(config-if-tunnel)#ip address 10.0.0.1/30
hq-rtr(config-if-tunnel)#ip tunnel 172.16.1.2 172.16.2.2 mode gre
hq-rtr(config-if-tunnel)#exit
hq-rtr(config)#write memory
br-rtr(config)#interface tunnel.1
br-rtr(config-if-tunnel)#ip address 10.0.0.2/30
br-rtr(config-if-tunnel)#ip tunnel 172.16.2.2 172.16.1.2 mode gre
br-rtr(config-if-tunnel)#exit
br-rtr(config)#write memory
  • Сведения о туннеле занесите в отчёт.

7. Обеспечьте динамическую маршрутизацию на маршрутизаторах HQ-RTR и BR-RTR

Сети одного офиса должны быть доступны из другого офиса и наоборот. Для обеспечения динамической маршрутизации используйте link state протокол на усмотрение участника:

  • Разрешите выбранный протокол только на интерфейсах ip туннеля
  • Маршрутизаторы должны делиться маршрутами только друг с другом
  • Обеспечьте защиту выбранного протокола посредством парольной защиты
hq-rtr(config)#router ospf 1
hq-rtr(config-router)#ospf router-id 1.1.1.1
hq-rtr(config-router)#passive-interface default
hq-rtr(config-router)#no passive-interface tunnel.1
hq-rtr(config-router)#network 10.0.0.0/30 area 0
hq-rtr(config-router)#network 192.168.100.0/27 area 0
hq-rtr(config-router)#network 192.168.200.0/24 area 0
hq-rtr(config-router)#network 192.168.99.0/29 area 0
hq-rtr(config-router)#exit
hq-rtr(config)#interface tunnel.1
hq-rtr(config-if-tunnel)#ip ospf authentication message-digest
hq-rtr(config-if-tunnel)#ip ospf message-digest-key 1 md5 P@ssw0rd
hq-rtr(config-if-tunnel)#exit
hq-rtr(config)#write memory
br-rtr(config)#router ospf 1
br-rtr(config-router)#ospf router-id 2.2.2.2
br-rtr(config-router)#passive-interface default
br-rtr(config-router)#no passive-interface tunnel.1
br-rtr(config-router)#network 192.168.0.0/28 area 0
br-rtr(config-router)#network 10.0.0.0/30 area 0
br-rtr(config-router)#exit
br-rtr(config)#interface tunnel.1
br-rtr(config-if-tunnel)#ip ospf authentication message-digest
br-rtr(config-if-tunnel)#ip ospf message-digest-key 1 md5 P@ssw0rd
br-rtr(config-if-tunnel)#exit
br-rtr(config)#write memory
  • Сведения о настройке и защите протокола занесите в отчёт.

8. Настройка динамической трансляции адресов маршрутизаторах HQ-RTR и BR-RTR

  • Настройте динамическую трансляцию адресов для обоих офисов в сторону ISP, все устройства в офисах должны иметь доступ к сети Интернет
hq-rtr(config)#interface ISP
hq-rtr(config-if)#ip nat outside
hq-rtr(config-if)#exit
hq-rtr(config)#interface VLAN100
hq-rtr(config-if)#ip nat inside
hq-rtr(config-if)#exit
hq-rtr(config)#interface VLAN200
hq-rtr(config-if)#ip nat inside
hq-rtr(config-if)#exit
hq-rtr(config)#interface VLAN999
hq-rtr(config-if)#ip nat inside
hq-rtr(config-if)#exit
hq-rtr(config)#ip nat pool VLAN100 192.168.100.1-192.168.100.30
hq-rtr(config)#ip nat pool VLAN200 192.168.200.1-192.168.200.254
hq-rtr(config)#ip nat pool VLAN999 192.168.99.1-192.168.99.6
hq-rtr(config)#ip nat source dynamic inside-to-outside pool VLAN100 overload interface ISP
hq-rtr(config)#ip nat source dynamic inside-to-outside pool VLAN200 overload interface ISP
hq-rtr(config)#ip nat source dynamic inside-to-outside pool VLAN999 overload interface ISP
hq-rtr(config)#write memory
br-rtr(config)#interface ISP
br-rtr(config-if)#ip nat outside
br-rtr(config-if)#exit
br-rtr(config)#interface LOCAL
br-rtr(config-if)#ip nat inside
br-rtr(config-if)#exit
br-rtr(config)#ip nat pool BR-Net 192.168.0.1-192.168.0.14
br-rtr(config)#ip nat source dynamic inside-to-outside pool BR-Net overload interface ISP
br-rtr(config)#exit
br-rtr#write memory

9. Настройте протокол динамической конфигурации хостов для сети в сторону HQ-CLI (DHCP)

  • Настройте нужную подсеть
  • В качестве сервера DHCP выступает маршрутизатор HQ-RTR
  • Клиентом является машина HQ-CLI
  • Исключите из выдачи адрес маршрутизатора
  • Адрес шлюза по умолчанию – адрес маршрутизатора HQ-RTR
  • Адрес DNS-сервера для машины HQ-CLI – адрес сервера HQ-SRV
  • DNS-суффикс – au-team.irpo
hq-rtr(config)#ip pool VLAN200 192.168.200.2-192.168.200.254
hq-rtr(config)#dhcp-server 1
hq-rtr(config-dhcp-server)#pool VLAN200 1
hq-rtr(config-dhcp-server-pool)#mask 24
hq-rtr(config-dhcp-server-pool)#gateway 192.168.200.1
hq-rtr(config-dhcp-server-pool)#dns 192.168.100.2
hq-rtr(config-dhcp-server-pool)#domain-name au-team.irpo
hq-rtr(config-dhcp-server-pool)#exit
hq-rtr(config-dhcp-server)#exit
hq-rtr(config)#int VLAN200
hq-rtr(config-if)#dhcp-server 1
hq-rtr(config-if)#exit
hq-rtr(config)#write memory
Building configuration...
  • Сведения о настройке протокола занесите в отчёт.

10. Настройте инфраструктуру DNS

  • Основной DNS-сервер реализован на HQ-SRV
  • Сервер должен обеспечивать разрешение имён в сетевые адреса устройств и обратно в соответствии с таблицей 3
  • В качестве DNS сервера пересылки используйте любой общедоступный DNS сервер(77.88.8.7, 77.88.8.3 или другие)

Настройка через DNSMASQ

Установка службы DNSMASQ

apt-get update && apt-get install -y dnsmasq

Либо через nano/micro вручную редактируете файл /etc/dnsmasq.conf

no-hosts
server=77.88.8.8
cache-size=1000
all-servers
no-negcache
interface=*
host-record=hq-rtr.au-team.irpo,192.168.100.1
host-record=hq-rtr.au-team.irpo,192.168.200.1
host-record=hq-rtr.au-team.irpo,192.168.99.1
host-record=hq-srv.au-team.irpo,192.168.100.2
host-record=hq-cli.au-team.irpo,192.168.200.2
address=/br-rtr.au-team.irpo/192.168.0.1
address=/br-srv.au-team.irpo/192.168.0.2
address=/docker.au-team.irpo/172.16.1.1
address=/web.au-team.irpo/172.16.2.1

... либо копируете нижнюю команду которая автоматически все отредактирует

cat <<EOF > /etc/dnsmasq.conf
no-hosts
server=77.88.8.8
cache-size=1000
all-servers
no-negcache
interface=*
host-record=hq-rtr.au-team.irpo,192.168.100.1
host-record=hq-rtr.au-team.irpo,192.168.200.1
host-record=hq-rtr.au-team.irpo,192.168.99.1
host-record=hq-srv.au-team.irpo,192.168.100.2
host-record=hq-cli.au-team.irpo,192.168.200.2
address=/br-rtr.au-team.irpo/192.168.0.1
address=/br-srv.au-team.irpo/192.168.0.2
address=/docker.au-team.irpo/172.16.1.1
address=/web.au-team.irpo/172.16.2.1
EOF

Далее ищем процесс который висит на 53-ем порту:

ss -tlpn | grep :53

При его наличии убиваем его командой с указанием процесса который занимает порт 53:

kill (id process)

Включаем службу dnsmasq в автозапуск командой:

systemctl enable --now dnsmasq.service

И сразу после проверим статус:

systemctl status dnsmasq

Настройка через BIND

Установка и базовая настройка BIND (DNS-сервер)

apt-get update && apt-get install bind bind-utils -y

Настройка DNS-резолвера

cat << EOF > enp7s1/resolv.conf
nameserver 192.168.100.2
echo search au-team.irpo
echo domain au-team.irpo
EOF

Редактирование глобальных опций BIND (/var/lib/bind/etc/options.conf)

listen-on {192.168.100.2; };
listen-on-v6 { none; };
forwarders {77.88.8.8; };
allow-query {any; };
allow-recursion {any; };
dnssec-validation no;
Скриншот настройки SSH

Добавление зон в /var/lib/bind/etc/rfc1912.conf

cat << EOF >> /var/lib/bind/etc/rfc1912.conf

zone "au-team.irpo" {
        type master;
        file "au-team.irpo";
};

zone "100.168.192.in-addr.arpa" {
         type master;
         file "100.168.192.in-addr.arpa";
};

zone "200.168.192.in-addr.arpa" {
         type master;
         file "200.168.192.in-addr.arpa";
};
EOF

Создание файлов зон из шаблона empty

cd /var/lib/bind/etc/zone
cp /var/lib/bind/etc/zone/empty /var/lib/bind/etc/zone/au-team.irpo
cp /var/lib/bind/etc/zone/empty /var/lib/bind/etc/zone/100.168.192.in-addr.arpa
cp /var/lib/bind/etc/zone/empty /var/lib/bind/etc/zone/200.168.192.in-addr.arpa

Наполнение прямой зоны (au-team.irpo)

cat << EOF > /var/lib/bind/etc/zone/au-team.irpo
\$TTL    1D
@       IN      SOA     au-team.irpo. root.au-team.irpo. (
                                2025110500      ; serial
                                12H             ; refresh
                                1H              ; retry
                                1W              ; expire
                                1H              ; ncache
                        )
        IN      NS      au-team.irpo.
        IN      A       192.168.100.2
hq-srv  IN      A       192.168.100.2
hq-cli  IN      A       192.168.200.2
hq-rtr  IN      A       192.168.100.1
hq-rtr  IN      A       192.168.200.1
hq-rtr  IN      A       192.168.99.1
docker  IN      A       172.16.1.1
web     IN      A       172.16.2.1
br-srv  IN      A       192.168.0.2
br-rtr  IN      A       192.168.0.1
EOF

Наполнение обратных зон (PTR-записи) /var/lib/bind/etc/zone/200.168.192.in-addr.arpa

cat << EOF > /var/lib/bind/etc/zone/200.168.192.in-addr.arpa

\$TTL    1D
@       IN      SOA     au-team.irpo. root.au-team.irpo. (
                                2025110500      ; serial
                                12H             ; refresh
                                1H              ; retry
                                1W              ; expire
                                1H              ; ncache
                        )
        IN      NS      au-team.irpo.
1       IN      PTR     hq-rtr.au-team.irpo.
2       IN      PTR     hq-srv.au-team.irpo.
EOF
cat << EOF > /var/lib/bind/etc/zone/100.168.192.in-addr.arpa
\$TTL    1D
@       IN      SOA     au-team.irpo. root.au-team.irpo. (
                                2025110500      ; serial
                                12H             ; refresh
                                1H              ; retry
                                1W              ; expire
                                1H              ; ncache
                        )
        IN      NS      au-team.irpo.
1       IN      PTR     hq-rtr.au-team.irpo.
2       IN      PTR     hq-srv.au-team.irpo.
EOF

Генерация ключа rndc и проверка конфигурации (опционально)

rndc-confgen > /etc/bind/rndc.key
sed -i '6,$d' /etc/bind/rndc.key

named-checkconf 
named-checkconf -z

Установка прав и запуск службы BIND

chown -R root:named /var/lib/bind/etc/zone/*
systemctl enable --now bind.service
systemctl status bind

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

На устройствах с ОС «Альт» необходимо выполнить следующую команду:

timedatectl set-timezone <ЧАСОВАЯ_ЗОНА>

Например:

timedatectl set-timezone Europe/Moscow

На устройствах с ОС «EcoRouterOS» необходимо выполнить следующую команду из режима администрирования (conf t):

ntp timezone utc+<ЦИФРА>

Например:

ntp timezone utc+3

Как проверить?
На устройствах с ОС «Альт» воспользоваться утилитой timedatectl:
На устройствах с ОС «EcoRouterOS» воспользоваться командой из привилегированного режима:

show ntp timezone