Skip to content
DauxduPublic

About

Solving the DEMO2023 only on Debian

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

Задание демонстрационного экзамена базового уровня 2023 года

09.02.06 Сетевое и системное администрирование

Модуль 1: Выполнение работ по проектированию сетевой инфраструктуры

Рисунок 1. Логическая схема сети

Рисунок 1

Таблица 1 — Характеристики VMs

Name VM ОС RAM CPU IP Additionally
RTR-L Debian 11/CSR 2 GB 2/4 7.7.7.100/24
192.168.100.254/24
RTR-R Debian 11/CSR 2 GB 2/4 8.8.8.100/24
172.16.100.254 /24
SRV Debian 11/Windows Server 2019 2/4 GB 2/4 192.168.100.200/24 Доп диски 2 шт по 2 GB
WEB-L Debian 11 2 GB 2 192.168.100.100/24
WEB-R Debian 11 2 GB 2 172.16.100.100/24
ISP Debian 11 2 GB 2 7.7.7.1/24
8.8.8.1/24
3.3.3.1/24
CLI Windows 10 4 GB 4 3.3.3.10/24

Данные для авторизации

root | toor

1. Выполнение проектирования кабельной структуры компьютерной сети

1.1. На основе представленных виртуальных машин или шаблонов виртуальных машин создайте отсутствующие виртуальные машины в соответствии со схемой.

  • а. Установите характеристики виртуальных машин в соответствии с Таблицей 1.
  • б. Выполните коммутацию (если она не выполнена) в соответствии со схемой сети.

Решение:

  1. Создайте виртуальные машины в гипервизоре (VirtualBox/VMware/ESXi) со следующими параметрами:
Имя ВМ ОС ОЗУ ЦПУ Примечание
RTR-L Debian 11/CSR 2 ГБ 2/4 2 сетевых интерфейса
RTR-R Debian 11/CSR 2 ГБ 2/4 2 сетевых интерфейса
SRV Debian 11/Windows Server 2019 2/4 ГБ 2/4 +2 диска по 2 ГБ
WEB-L Debian 11 2 ГБ 2 1 сетевой интерфейс
WEB-R Debian 11 2 ГБ 2 1 сетевой интерфейс
ISP Debian 11 2 ГБ 2 3 сетевых интерфейса
CLI Windows 10 4 ГБ 4 1 сетевой интерфейс
  1. Настройте коммутацию согласно логической схеме:
    • ISP подключается к RTR-L (сеть 7.7.7.0/24) и RTR-R (сеть 8.8.8.0/24)
    • RTR-L подключается к внутренней сети 192.168.100.0/24 (SRV, WEB-L)
    • RTR-R подключается к внутренней сети 172.16.100.0/24 (WEB-R)
    • ISP подключается к CLI (сеть 3.3.3.0/24)

1.2. Имена хостов в созданных виртуальных машинах должны быть установлены в соответствии со схемой.

Решение:

Для систем на базе Debian 11:

# Настройка hostname
hostnamectl set-hostname HOSTNAME

# Обновление файла hosts
echo "127.0.0.1 $(hostname)" >> /etc/hosts

# Проверка
hostnamectl

Выполнить на каждой ВМ:

ISP
hostnamectl set-hostname ISP
RTR-L
hostnamectl set-hostname RTR-L
RTR-R
hostnamectl set-hostname RTR-R
SRV
hostnamectl set-hostname SRV
WEB-L
hostnamectl set-hostname WEB-L
WEB-R
hostnamectl set-hostname WEB-R
CLI
Start --> Settings --> System --> About --> Rename this PC

CLI Rename PC

1.3. Адресация должна быть выполнена в соответствии с Таблицей 1;

Решение:

Настройка для систем Debian (nmtui)

ISP
# Интерфейс к RTR-L
nmcli con add type ethernet con-name "ISP-L" ifname eth1 \
  ipv4.addresses 7.7.7.1/24 ipv4.method manual autoconnect yes

# Интерфейс к RTR-R
nmcli con add type ethernet con-name "ISP-R" ifname eth2 \
  ipv4.addresses 8.8.8.1/24 ipv4.method manual autoconnect yes

# Интерфейс к CLI
nmcli con add type ethernet con-name "ISP-CLI" ifname eth3 \
  ipv4.addresses 3.3.3.1/24 ipv4.method manual autoconnect yes

nmcli con up "ISP-L" && nmcli con up "ISP-R" && nmcli con up "ISP-CLI"
RTR-L
# Внешний интерфейс к ISP
nmcli con add type ethernet con-name "ISP-L" ifname eth1 \
  ipv4.addresses 7.7.7.100/24 ipv4.gateway 7.7.7.1 \
  ipv4.method manual autoconnect yes

# Внутренний интерфейс к локальной сети
nmcli con add type ethernet con-name "Left" ifname eth2 \
  ipv4.addresses 192.168.100.254/24 \
  ipv4.method manual autoconnect yes

nmcli con up "ISP-L" && nmcli con up "Left"
RTR-R
# Внешний интерфейс к ISP
nmcli con add type ethernet con-name "ISP-R" ifname eth1 \
  ipv4.addresses 8.8.8.100/24 ipv4.gateway 8.8.8.1 \
  ipv4.method manual autoconnect yes

# Внутренний интерфейс к локальной сети
nmcli con add type ethernet con-name "Right" ifname eth2 \
  ipv4.addresses 172.16.100.254/24 \
  ipv4.method manual autoconnect yes

nmcli con up "ISP-R" && nmcli con up "Right"
SRV
nmcli con add type ethernet con-name "Left" ifname eth1 \
  ipv4.addresses 192.168.100.200/24 ipv4.gateway 192.168.100.254 \
  ipv4.dns "192.168.100.254" ipv4.method manual autoconnect yes
nmcli con up "Left"
WEB-L
nmcli con add type ethernet con-name "Left" ifname eth1 \
  ipv4.addresses 192.168.100.100/24 ipv4.gateway 192.168.100.254 \
  ipv4.method manual autoconnect yes
nmcli con up "Left"
WEB-R
nmcli con add type ethernet con-name "Right" ifname eth1 \
  ipv4.addresses 172.16.100.100/24 ipv4.gateway 172.16.100.254 \
  ipv4.method manual autoconnect yes
nmcli con up "Right"

Настройка для Windows (GUI, cmd)

CLI

CLI Network Connections

1.4. Обеспечьте виртуальные машины дисками, если таковое необходимо в соответствии с Таблицей 1

Решение:

SRV
# Создание RAID1 массива из двух дисков /dev/sdb и /dev/sdc
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

# Создание файловой системы
mkfs.ext4 /dev/md0

# Создание точки монтирования и монтирование
mkdir -p /mnt/storage
mount /dev/md0 /mnt/storage

# Настройка автоматического монтирования
echo '/dev/md0 /mnt/storage ext4 defaults,nofail 0 2' >> /etc/fstab

# Настройка mdadm для восстановления после перезагрузки
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
update-initramfs -u

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

2.1. Настройте статический маршрут по умолчанию на маршрутизаторах RTR-L и RTR-R.

Решение:

RTR-L
# Временная настройка
ip route add default via 7.7.7.1 dev eth1

# Постоянная настройка через nmcli
nmcli con mod "ISP-L" ipv4.gateway 7.7.7.1
nmcli con up "ISP-L"

# Проверка
ip route show | grep default
RTR-R
# Временная настройка
ip route add default via 8.8.8.1 dev eth1

# Постоянная настройка через nmcli
nmcli con mod "ISP-R" ipv4.gateway 8.8.8.1
nmcli con up "ISP-R"

# Проверка
ip route show | grep default

2.2. Настройте динамическую трансляцию портов (PAT):

  • На маршрутизаторе RTR-L настройте динамическую трансляцию портов (PAT) для сети 192.168.100.0/24 в соответствующие адреса исходящего интерфейса;
  • На маршрутизаторе RTR-R настройте динамическую трансляцию портов (PAT) для сети 172.16.100.0/24 в соответствующие адреса исходящего интерфейса.

Решение:

RTR-L
# Включение IP-пересылки
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

# Настройка правил iptables для PAT
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth1 -j MASQUERADE

# Сохранение правил
apt install iptables-persistent -y
netfilter-persistent save
RTR-R
# Включение IP-пересылки
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

# Настройка правил iptables для PAT
iptables -t nat -A POSTROUTING -s 172.16.100.0/24 -o eth1 -j MASQUERADE

# Сохранение правил
apt install iptables-persistent -y
netfilter-persistent save

2.3. Между платформами RTR-L и RTR-R должен быть установлен туннель, позволяющий осуществлять связь между регионами с применением внутренних адресов со следующими параметрами:

  • a. Используйте в качестве VTI интерфейс Tunnel1;
  • b. Между платформами должен быть установлен туннель, позволяющий осуществлять связь между регионами с применением внутренних адресов.

Решение:

Установка StrongSwan на RTR-L и RTR-R

apt update
apt install strongswan strongswan-pki libstrongswan-standard-plugins -y
RTR-L

Конфигурация /etc/ipsec.conf

config setup
  charondebug="ike 2, knl 2, cfg 2"
  uniqueids=never

conn %default
  keyexchange=ikev2
  authby=secret
  ike=aes256-sha256-modp2048!
  esp=aes256-sha256!
  dpdaction=clear
  dpddelay=30s
  rekey=yes

conn tunnel-to-rtrr
  left=7.7.7.100
  leftsubnet=192.168.100.0/24
  right=8.8.8.100
  rightsubnet=172.16.100.0/24
  type=tunnel
  auto=start
  mark=100/0xff
RTR-R

Конфигурация /etc/ipsec.conf

config setup
  charondebug="ike 2, knl 2, cfg 2"
  uniqueids=never

conn %default
  keyexchange=ikev2
  authby=secret
  ike=aes256-sha256-modp2048!
  esp=aes256-sha256!
  dpdaction=clear
  dpddelay=30s
  rekey=yes

conn tunnel-to-rttl
  left=8.8.8.100
  leftsubnet=172.16.100.0/24
  right=7.7.7.100
  rightsubnet=192.168.100.0/24
  type=tunnel
  auto=start
  mark=100/0xff

Конфигурация /etc/ipsec.secrets на RTR-L и RTR-R

7.7.7.100 8.8.8.100 : PSK "DEMO2023!"
RTR-L

Настройка VTI-интерфейса

# Создание VTI-интерфейса
ip link add Tunnel1 type vti local 7.7.7.100 remote 8.8.8.100 key 100
ip addr add 10.0.0.1/30 dev Tunnel1
ip link set Tunnel1 up

# Маршрут к удалённой внутренней сети через туннель
ip route add 172.16.100.0/24 via 10.0.0.2 dev Tunnel1

# Настройка персистентности (добавить в /etc/network/interfaces или создать systemd-юнит)
RTR-R

Настройка VTI-интерфейса

# Создание VTI-интерфейса
ip link add Tunnel1 type vti local 8.8.8.100 remote 7.7.7.100 key 100
ip addr add 10.0.0.2/30 dev Tunnel1
ip link set Tunnel1 up

# Маршрут к удалённой внутренней сети через туннель
ip route add 192.168.100.0/24 via 10.0.0.1 dev Tunnel1

Запуск и проверка IPsec

# Перезапуск службы
ipsec restart

# Проверка статуса
ipsec statusall
# Ожидаемый результат: состояние ESTABLISHED для соединения tunnel-*

2.4. Настройте динамическую маршрутизацию между платформами RTR-L и RTR-R.

Решение:

Установка FRRouting на RTR-L и **RTR-R

# Добавление репозитория
curl -s https://deb.frrouting.org/frr/keys.asc | apt-key add -
echo "deb https://deb.frrouting.org/frr $(lsb_release -s -c) frr-stable" >> /etc/apt/sources.list.d/frr.list

# Установка пакетов
apt update
apt install frr frr-pythontools -y

# Включение OSPF демона
sed -i 's/ospfd=no/ospfd=yes/' /etc/frr/daemons
systemctl restart frr

Конфигурация /etc/frr/frr.conf для RTR-L

frr version 8.0
frr defaults traditional
hostname RTR-L
log syslog informational
!
router ospf
  ospf router-id 1.1.1.1
  network 192.168.100.0/24 area 0.0.0.0
  network 10.0.0.0/30 area 0.0.0.0
  passive-interface eth2
!
ip forwarding
!

Конфигурация /etc/frr/frr.conf для RTR-R

frr version 8.0
frr defaults traditional
hostname RTR-R
log syslog informational
!
router ospf
  ospf router-id 2.2.2.2
  network 172.16.100.0/24 area 0.0.0.0
  network 10.0.0.0/30 area 0.0.0.0
  passive-interface eth2
!
ip forwarding
!

Применение конфигурации

# Перезапуск службы маршрутизации
vtysh -c "write"
systemctl restart frr

# Проверка соседей OSPF
vtysh -c "show ip ospf neighbor"
# Проверка таблицы маршрутизации
vtysh -c "show ip route"

2.5. Трафик, идущий по туннелю между регионами по внутренним адресам не должен транслироваться.

Решение:

Настройка для RTR-L

# Добавление правил исключения из NAT для трафика туннеля
iptables -t nat -I POSTROUTING -o Tunnel1 -j ACCEPT
iptables -t nat -I POSTROUTING -s 192.168.100.0/24 -d 172.16.100.0/24 -j ACCEPT

# Сохранение правил
netfilter-persistent save

Настройка для RTR-R

# Добавление правил исключения из NAT для трафика туннеля
iptables -t nat -I POSTROUTING -o Tunnel1 -j ACCEPT
iptables -t nat -I POSTROUTING -s 172.16.100.0/24 -d 192.168.100.0/24 -j ACCEPT

# Сохранение правил
netfilter-persistent save

Проверка

# Просмотр правил NAT
iptables -t nat -L POSTROUTING -n -v

# Тестирование связности между внутренними сетями
# С WEB-L: ping 172.16.100.100
# С WEB-R: ping 192.168.100.100

Модуль 2: Организация сетевого администрирования

Таблица 2. DNS-записи зон

Zone Record type Key Value
demo.wsr A ISP 3.3.3.1
A www 7.7.7.100
A www 8.8.8.100
CNAME internet ISP
int.demo.wsr A web-l 192.168.100.100
A web-r 172.16.100.100
A srv 192.168.100.200
A rtr-l 192.168.100.254
A rtr-r 172.16.100.254
CNAME webapp-l web-l
CNAME webapp-r web-r
CNAME ntp srv
CNAME dns srv

1. Администрирование локальных вычислительных сетей и принятие мер по устранению возможных сбоев

1.1. Сети, подключённые к ISP, считаются внешними:

  • Запрещено прямое попадание трафика из внутренних сетей во внешние и наоборот;

Решение:

Настройка базового firewall на RTR-L и RTR-R

# Сброс существующих правил
iptables -F
iptables -t nat -F
iptables -X

# Установка политик по умолчанию
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Разрешение установленных и связанных соединений
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Разрешение локального трафика
iptables -A INPUT -i lo -j ACCEPT

# Разрешение трафика внутри внутреннего региона
# Для RTR-L (интерфейс eth2 - внутренняя сеть)
iptables -A FORWARD -i eth2 -o eth2 -j ACCEPT

# Для RTR-R (интерфейс eth2 - внутренняя сеть)
iptables -A FORWARD -i eth2 -o eth2 -j ACCEPT

# Сохранение правил
netfilter-persistent save

Примечание: Правила для разрешённых сервисов (HTTP, HTTPS, SSH, DNS, IPsec) добавляются отдельно в соответствующих заданиях.


1.2. Обеспечьте настройку служб SSH региона Left:

  • а. Подключение со стороны внешних сетей по протоколу к платформе управления трафиком RTR-L на порт 2222 должны быть перенаправлены на WEB-L;
  • b. Подключение со стороны внешних сетей по протоколу к платформе управления трафиком RTR-R на порт 2244 должны быть перенаправлены на WEB-R.

Решение:

Настройка для RTR-L

# DNAT для перенаправления порта 2222 на WEB-L
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 2222 \
  -j DNAT --to-destination 192.168.100.100:22

# Разрешение перенаправленного трафика в правилах FORWARD
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 \
  -d 192.168.100.100 -j ACCEPT

# Сохранение
netfilter-persistent save

Настройка для RTR-R

# DNAT для перенаправления порта 2244 на WEB-R
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 2244 \
  -j DNAT --to-destination 172.16.100.100:22

# Разрешение перенаправленного трафика в правилах FORWARD
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 \
  -d 172.16.100.100 -j ACCEPT

# Сохранение
netfilter-persistent save

Проверка

# С внешнего клиента (CLI) проверка подключения
# ssh -p 2222 [email protected]  # должно подключиться к WEB-L
# ssh -p 2244 [email protected]  # должно подключиться к WEB-R

2. Администрирование сетевых ресурсов в информационных системах

2.1. Выполните настройку первого уровня DNS-системы стенда:

  • а. Используйте ISP;
  • b. Обслуживается зона demo.wsr;
    • Наполнение зоны должно быть реализовано в соответствии с Таблицей 2.
  • c. Сервер делегирует зону int.demo.wsr на SRV;
    • Поскольку SRV находится во внутренней сети западного региона, делегирование происходит на внешний адрес маршрутизатора данного региона;
    • Маршрутизатор региона должен транслировать соответствующие порты DNS-службы в порты сервера SRV.
  • d. Внешний клиент CLI должен использовать DNS-службы, развёрнутую на ISP, по умолчанию.

Решение:

Установка BIND9 на ISP

apt update
apt install bind9 bind9utils dnsutils -y

Настройка /etc/bind/named.conf.local

zone "demo.wsr" {
    type master;
    file "/etc/bind/zones/demo.wsr.zone";
};

zone "int.demo.wsr" {
    type delegate-only;
};

Создание директории и файла зоны

mkdir -p /etc/bind/zones

Файл зоны /etc/bind/zones/demo.wsr.zone

$TTL 86400
@   IN  SOA ns1.demo.wsr. admin.demo.wsr. (
            2023030801  ; Serial
            3600        ; Refresh
            1800        ; Retry
            604800      ; Expire
            86400 )     ; Minimum TTL

; NS Records
@           IN  NS      ISP.demo.wsr.

; A Records
ISP         IN  A       3.3.3.1
www         IN  A       7.7.7.100
www         IN  A       8.8.8.100

; CNAME Records
internet    IN  CNAME   ISP

; Делегирование внутренней зоны
int         IN  NS      rtr-l.int.demo.wsr.
rtr-l.int   IN  A       7.7.7.100

Настройка /etc/bind/named.conf.options

options {
    directory "/var/cache/bind";
    recursion yes;
    allow-recursion { 3.3.3.0/24; localhost; };
    allow-query { any; };
    forwarders { 8.8.8.8; 8.8.4.4; };
    dnssec-validation auto;
};

Проверка и запуск

# Проверка синтаксиса
named-checkconf
named-checkzone demo.wsr /etc/bind/zones/demo.wsr.zone

# Перезапуск службы
systemctl restart bind9
systemctl enable bind9

Настройка перенаправления портов DNS на RTR-L

# Перенаправление входящих DNS-запросов на внутренний сервер SRV
iptables -t nat -A PREROUTING -i eth1 -p udp --dport 53 \
  -j DNAT --to-destination 192.168.100.200:53
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 53 \
  -j DNAT --to-destination 192.168.100.200:53

# Разрешение трафика в FORWARD
iptables -A FORWARD -p udp --dport 53 -d 192.168.100.200 -j ACCEPT
iptables -A FORWARD -p tcp --dport 53 -d 192.168.100.200 -j ACCEPT

netfilter-persistent save

Настройка DNS на клиенте CLI (Windows 10)

# Установка первичного DNS-сервера
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 3.3.3.1

# Проверка
nslookup www.demo.wsr 3.3.3.1

2.2. Выполните настройку второго уровня DNS-системы стенда:

  • а. Используйте SRV;
  • b. Обслуживается зона int.demo.wsr;
    • Наполнение зоны должно быть реализовано в соответствии с Таблицей 2.
  • c. Обслуживаются обратные зоны для внутренних адресов регионов;
    • Имена для разрешения обратных записей следует брать из Таблицей 2.
  • d. Сервер принимает рекурсивные запросы, исходящие от адресов внутренних регионов;
    • Обслуживание клиентов (внешних и внутренних), обращающихся к зоне int.demo.wsr должно производиться без каких либо ограничений по адресу источника.
  • e. Внутренние хосты регионов (равно как и платформы управления трафиком) должны использовать данную DNS-службу для разрешения всех запросов имен.

Решение:

Для Windows Server 2019 (SRV)

# Установка роли DNS-сервера
Install-WindowsFeature DNS -IncludeManagementTools

# Создание прямой зоны int.demo.wsr
Add-DnsServerPrimaryZone -Name "int.demo.wsr" -ZoneFile "int.demo.wsr.dns" -ReplicationScope "Server"

# Добавление записей зоны согласно Таблице 2
Add-DnsServerResourceRecordA -Name "web-l" -ZoneName "int.demo.wsr" -IPv4Address "192.168.100.100"
Add-DnsServerResourceRecordA -Name "web-r" -ZoneName "int.demo.wsr" -IPv4Address "172.16.100.100"
Add-DnsServerResourceRecordA -Name "srv" -ZoneName "int.demo.wsr" -IPv4Address "192.168.100.200"
Add-DnsServerResourceRecordA -Name "rtr-l" -ZoneName "int.demo.wsr" -IPv4Address "192.168.100.254"
Add-DnsServerResourceRecordA -Name "rtr-r" -ZoneName "int.demo.wsr" -IPv4Address "172.16.100.254"

# Добавление CNAME-записей
Add-DnsServerResourceRecordCName -Name "webapp-l" -HostName "web-l" -ZoneName "int.demo.wsr"
Add-DnsServerResourceRecordCName -Name "webapp-r" -HostName "web-r" -ZoneName "int.demo.wsr"
Add-DnsServerResourceRecordCName -Name "ntp" -HostName "srv" -ZoneName "int.demo.wsr"
Add-DnsServerResourceRecordCName -Name "dns" -HostName "srv" -ZoneName "int.demo.wsr"

# Создание обратных зон
Add-DnsServerPrimaryZone -NetworkID "192.168.100.0/24" -ReplicationScope "Server"
Add-DnsServerPrimaryZone -NetworkID "172.16.100.0/24" -ReplicationScope "Server"

# Добавление PTR-записей для обратной зоны 192.168.100.0/24
Add-DnsServerResourceRecordPtr -Name "100" -ZoneName "100.168.192.in-addr.arpa" -PtrDomainName "web-l.int.demo.wsr"
Add-DnsServerResourceRecordPtr -Name "200" -ZoneName "100.168.192.in-addr.arpa" -PtrDomainName "srv.int.demo.wsr"
Add-DnsServerResourceRecordPtr -Name "254" -ZoneName "100.168.192.in-addr.arpa" -PtrDomainName "rtr-l.int.demo.wsr"

# Добавление PTR-записей для обратной зоны 172.16.100.0/24
Add-DnsServerResourceRecordPtr -Name "100" -ZoneName "100.16.172.in-addr.arpa" -PtrDomainName "web-r.int.demo.wsr"
Add-DnsServerResourceRecordPtr -Name "254" -ZoneName "100.16.172.in-addr.arpa" -PtrDomainName "rtr-r.int.demo.wsr"

# Настройка рекурсии
Set-DnsServerRecursion -Enable $true

# Разрешение запросов от внутренних сетей
Add-DnsServerRecursionScope -Name "Internal" -EnableRecursion $true

Для Debian 11 (альтернативный вариант SRV)

apt install bind9 bind9utils -y

# /etc/bind/named.conf.local
zone "int.demo.wsr" {
    type master;
    file "/etc/bind/zones/int.demo.wsr.zone";
    allow-query { any; };
};

zone "100.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/192.168.100.rev";
};

zone "100.16.172.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/172.16.100.rev";
};

Файл зоны /etc/bind/zones/int.demo.wsr.zone

$TTL 86400
@   IN  SOA srv.int.demo.wsr. admin.int.demo.wsr. (
            2023030801  ; Serial
            3600        ; Refresh
            1800        ; Retry
            604800      ; Expire
            86400 )     ; Minimum TTL

@           IN  NS      srv.int.demo.wsr.

; A Records
web-l       IN  A       192.168.100.100
web-r       IN  A       172.16.100.100
srv         IN  A       192.168.100.200
rtr-l       IN  A       192.168.100.254
rtr-r       IN  A       172.16.100.254

; CNAME Records
webapp-l    IN  CNAME   web-l
webapp-r    IN  CNAME   web-r
ntp         IN  CNAME   srv
dns         IN  CNAME   srv

Настройка внутренних клиентов для использования DNS на SRV

# Для Debian-клиентов (WEB-L, WEB-R, RTR-L, RTR-R)
nmcli con mod "<имя_соединения>" ipv4.dns "192.168.100.200"
nmcli con up "<имя_соединения>"

# Или вручную в /etc/resolv.conf
echo "nameserver 192.168.100.200" > /etc/resolv.conf

2.3. Выполните настройку первого уровня системы синхронизации времени:

  • а. Используйте ISP;
  • b. Сервер считает собственный источник времени верным, stratum=4;
  • c. Сервер допускает подключение только через внешний адрес соответствующей платформы управления трафиком;
    • Подразумевается обращение SRV для синхронизации времени.
  • d. Клиент CLI должен использовать службу времени **_ISP

Решение:

Установка NTP на ISP

apt update
apt install ntp -y

Настройка /etc/ntp.conf на ISP

driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# Локальный источник времени с указанным стратумом
server 127.127.1.0
fudge 127.127.1.0 stratum 4

# Разрешение подключения только с внешних адресов маршрутизаторов регионов
restrict 7.7.7.100 mask 255.255.255.255 nomodify notrap noquery
restrict 8.8.8.100 mask 255.255.255.255 nomodify notrap noquery

# Разрешение для клиента CLI
restrict 3.3.3.10 mask 255.255.255.255 nomodify notrap noquery

# Запрет доступа по умолчанию
restrict default ignore
restrict 127.0.0.1
restrict ::1

Перезапуск и проверка

systemctl restart ntp
systemctl enable ntp

# Проверка статуса
ntpq -p
# Ожидаемый результат: локальный источник с меткой .LOCL. и stratum 4

Настройка клиента CLI (Windows 10)

# Настройка синхронизации с сервером времени на ISP
w32tm /config /manualpeerlist:"3.3.3.1" /syncfromflags:manual /reliable:yes /update
w32tm /resync /nowait

# Проверка
w32tm /query /status

2.4. Выполните настройку второго уровня системы синхронизации времени на SRV:

  • а. Сервер синхронизирует время с ISP;
    • Синхронизация с другими источниками запрещена.
  • b. Сервер должен допускать обращение внутренних хостов регионов, в том числе и платформ управления трафиком, для синхронизации времени;
  • c. Все внутренние хосты (в том числе и платформы управления трафиком) должны синхронизировать своё время с SRV.

Решение:

Для Windows Server 2019 (SRV)

# Настройка синхронизации с внешним сервером времени (через RTR-L)
w32tm /config /manualpeerlist:"7.7.7.100" /syncfromflags:manual /reliable:yes /update
w32tm /resync

# Разрешение внутренним клиентам синхронизироваться с этим сервером
# Настройка через реестр или групповые политики:
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer" `
  -Name "Enabled" -Value 1 -PropertyType DWORD -Force

# Перезапуск службы времени
Restart-Service w32time

# Настройка брандмауэра для разрешения NTP-трафика (порт 123/UDP)
New-NetFirewallRule -DisplayName "Allow NTP" -Direction Inbound `
  -Protocol UDP -LocalPort 123 -Action Allow

Для Debian 11 (альтернативный вариант)

# /etc/ntp.conf на SRV
# Удалить или закомментировать все server-строки, кроме одной:
server 7.7.7.100 iburst prefer

# Разрешение внутренним сетям
restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap noquery
restrict 172.16.100.0 mask 255.255.255.0 nomodify notrap noquery

# Перезапуск
systemctl restart ntp

Настройка внутренних клиентов для синхронизации с SRV

# Для Debian-клиентов
# /etc/ntp.conf
server 192.168.100.200 iburst

systemctl restart ntp

# Проверка
ntpq -p

2.5. Реализуйте файловый SMB-сервер на базе SRV

  • а. Сервер должен предоставлять доступ для обмена файлами серверам WEB-L и WEB-R;
  • b. Сервер, в зависимости от ОС, использует следующие каталоги для хранения файлов:
    • /mnt/storage для систем на базе Linux;
    • Диск R:\ для систем на базе Windows.
  • c. Хранение файлов осуществляется на диске (смонтированным по указанным выше адресам), реализованном по технологии RAID1. Решение:

Для Windows Server 2019 (SRV)

# Создание общей папки с правами доступа
New-SmbShare -Name "webshare" -Path "R:\" `
  -FullAccess "BUILTIN\Administrators" `
  -ChangeAccess "WEB-L", "WEB-R" `
  -Description "Shared storage for web servers"

# Настройка прав NTFS (при необходимости)
$Acl = Get-Acl "R:\"
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("WEB-L", "Modify", "ContainerInherit,ObjectInherit", "None", "Allow")
$Acl.AddAccessRule($AccessRule)
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("WEB-R", "Modify", "ContainerInherit,ObjectInherit", "None", "Allow")
$Acl.AddAccessRule($AccessRule)
Set-Acl "R:\" $Acl

Для Debian 11 (альтернативный вариант)

# Установка Samba
apt install samba -y

# Настройка /etc/samba/smb.conf (добавить в конец)
[webshare]
    path = /mnt/storage
    browseable = yes
    read only = no
    valid users = webl, webr
    create mask = 0775
    directory mask = 0775
    force user = nobody
    force group = nogroup

# Создание пользователей Samba
smbpasswd -a webl
smbpasswd -a webr

# Настройка прав доступа к каталогу
chown -R nobody:nogroup /mnt/storage
chmod -R 0775 /mnt/storage

# Перезапуск служб
systemctl restart smbd nmbd
systemctl enable smbd nmbd

Проверка доступа

# С WEB-L (Debian)
apt install smbclient -y
smbclient //SRV/webshare -U webl
# Ввести пароль, затем команды: ls, put, get, exit

# С Windows-клиента
net use Z: \\SRV\webshare /user:webl

2.6. Сервера WEB-L и WEB-R должны использовать службу, настроенную на SRV, для обмена файлов между собой

  • a. В случае применения решения на базе Linux используется центр сертификации типа OpenSSL и располагается по адресу /var/ca;
  • b. Выдаваемые сертификаты должны иметь срок жизни не менее 500 дней;
  • c. Параметры выдаваемых сертификатов:
    • Страна RU;
    • Организация DEMO.WSR;
    • Прочие поля (за исключением CN) должны быть пусты.

Решение:

Подготовка инфраструктуры ЦС на WEB-L

# Создание структуры каталогов
mkdir -p /var/ca/{private,certs,csr,newcerts,crl}
chmod 700 /var/ca/private
touch /var/ca/index.txt
echo '1000' > /var/ca/serial

Создание конфигурационного файла /var/ca/openssl.cnf

[ ca ]
default_ca = CA_default

[ CA_default ]
dir               = /var/ca
certs             = $dir/certs
crl_dir           = $dir/crl
new_certs_dir     = $dir/newcerts
database          = $dir/index.txt
serial            = $dir/serial
private_key       = $dir/private/ca.key
certificate       = $dir/certs/ca.crt
default_md        = sha256
default_days      = 500
preserve          = no
policy            = policy_loose

[ policy_loose ]
countryName             = optional
stateOrProvinceName     = optional
localityName            = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

[ req ]
default_bits        = 2048
distinguished_name  = req_distinguished_name
string_mask         = utf8only
default_md          = sha256
x509_extensions     = v3_ca

[ req_distinguished_name ]
countryName                     = Country Name (2 letter code)
organizationName                = Organization Name
commonName                      = Common Name
countryName_default             = RU
organizationName_default        = DEMO.WSR

[ v3_ca ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign

[ v3_server ]
basicConstraints = CA:FALSE
nsCertType = server
nsComment = "OpenSSL Generated Server Certificate"
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth

Генерация корневого сертификата

# Генерация закрытого ключа ЦС
openssl genrsa -out /var/ca/private/ca.key 2048
chmod 400 /var/ca/private/ca.key

# Создание самоподписанного корневого сертификата
openssl req -config /var/ca/openssl.cnf \
  -key /var/ca/private/ca.key \
  -new -x509 -days 500 -sha256 -extensions v3_ca \
  -out /var/ca/certs/ca.crt \
  -subj "/C=RU/O=DEMO.WSR/CN=DEMO.WSR Root CA"

Выпуск сертификата для веб-сервера

# Генерация ключа и запроса на сертификат (на каждом веб-сервере)
openssl genrsa -out /etc/ssl/private/www.key 2048
chmod 600 /etc/ssl/private/www.key

openssl req -new -key /etc/ssl/private/www.key \
  -out /var/ca/csr/www.csr \
  -subj "/C=RU/O=DEMO.WSR/CN=www.demo.wsr"

# Подписание запроса на ЦС (на сервере ЦС)
openssl ca -config /var/ca/openssl.cnf \
  -extensions v3_server \
  -days 500 -notext -md sha256 \
  -in /var/ca/csr/www.csr \
  -out /var/ca/certs/www.crt \
  -batch

# Копирование сертификата и корневого ЦС на веб-серверы
scp /var/ca/certs/www.crt root@WEB-L:/etc/ssl/certs/
scp /var/ca/certs/ca.crt root@WEB-L:/etc/ssl/certs/
# Повторить для WEB-R

3. Взаимодействие со специалистами смежного профиля при разработке методов, средств и технологий применения объектов профессиональной деятельности

3.1. Образ Docker (содержащий веб-приложение) расположен на ISO-образе дополнительных материалов:

  • a. Выполните установку приложения AppDocker0.

3.2. Пакеты установки Docker расположены на дополнительном ISO-образе

3.3. Инструкция по работе с приложением расположена на дополнительном ISO-образе

Решение:

Монтирование дополнительных образов

# Создание точек монтирования
mkdir -p /mnt/docker-packages /mnt/app-iso

# Монтирование образов (заменить /dev/sr1 и /dev/sr2 на актуальные устройства)
mount /dev/sr1 /mnt/docker-packages
mount /dev/sr2 /mnt/app-iso

Установка Docker с локальных пакетов

# Для Debian 11
cd /mnt/docker-packages
dpkg -i *.deb
apt install -f -y

# Проверка установки
docker --version
systemctl enable docker
systemctl start docker

Импорт и запуск приложения

# Импорт образа из архива
docker load -i /mnt/app-iso/AppDocker0.tar

# Просмотр загруженных образов
docker images

# Запуск контейнера
docker run -d --name appdocker0 \
  --restart=unless-stopped \
  -p 8080:80 \
  appdocker0:latest

3.4. Необходимо реализовать следующую инфраструктуру приложения:

  • a. Клиентом приложения является CLI (браузер Edge);
  • b. Хостинг приложения осуществляется на виртуальной машинах WEB-L и WEB-R;
  • c. Доступ к приложению осуществляется по DNS-имени www.demo.wsr;
    • Имя должно разрешаться во внешние адреса виртуальной машины управления трафиком в обоих регионах;
    • При необходимости доступа к приложению допускается реализовать реверс-прокси или трансляцию портов.
  • d. Доступ к приложению должен быть защищён с применением технологии TLS;
    • Необходимо обеспечить корректное доверие сертификату сайта, без применения исключений и подобных механизмов.
  • e. Незащищённое соединение должно переводится на защищённый канал автоматически.

Решение:

Настройка DNS-записей

Убедиться, что в зоне demo.wsr на сервере ISP присутствуют записи:

www     IN  A       7.7.7.100
www     IN  A       8.8.8.100

Настройка reverse proxy (Nginx) на WEB-L и WEB-R

# Установка Nginx
apt install nginx -y

Конфигурация /etc/nginx/sites-available/demo.wsr

# Редирект HTTP -> HTTPS
server {
    listen 80;
    server_name www.demo.wsr;
    return 301 https://$host$request_uri;
}

# HTTPS сервер
server {
    listen 443 ssl http2;
    server_name www.demo.wsr;

    # Сертификаты
    ssl_certificate /etc/ssl/certs/www.crt;
    ssl_certificate_key /etc/ssl/private/www.key;
    ssl_trusted_certificate /etc/ssl/certs/ca.crt;

    # Параметры TLS
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;

    # Заголовки безопасности
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

Активация конфигурации

# Создание символической ссылки
ln -s /etc/nginx/sites-available/demo.wsr /etc/nginx/sites-enabled/

# Удаление стандартной конфигурации
rm -f /etc/nginx/sites-enabled/default

# Проверка и перезапуск
nginx -t
systemctl restart nginx
systemctl enable nginx

Настройка Port Forwarding на маршрутизаторах

# На RTR-L: перенаправление HTTPS на WEB-L
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 \
  -j DNAT --to-destination 192.168.100.100:443
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 443 \
  -d 192.168.100.100 -j ACCEPT

# На RTR-R: перенаправление HTTPS на WEB-R
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 \
  -j DNAT --to-destination 172.16.100.100:443
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 443 \
  -d 172.16.100.100 -j ACCEPT

netfilter-persistent save

Проверка на клиенте CLI

  1. Убедиться, что корневой сертификат ЦС установлен в доверенные:

    • Открыть файл ca.crt
    • Установить сертификат в "Доверенные корневые центры сертификации"
  2. Проверка доступа в браузере Edge:

    • Открыть https://www.demo.wsr
    • Убедиться в отсутствии предупреждений о сертификате
    • Проверить редирект с http://www.demo.wsr на https://

3.5. Необходимо обеспечить отказоустойчивость приложения:

  • a. Сайт должен продолжать обслуживание (с задержкой не более 25 секунд) в следующих сценариях.
    • Отказ одной из виртуальной машины WEB;
    • Отказ одной из виртуальной машины управления трафиком.

Решение:

Реализация на уровне DNS

  1. Настройка двух записей A для www.demo.wsr с разными приоритетами (если поддерживается) или использование round-robin:
www     IN  A       7.7.7.100
www     IN  A       8.8.8.100
  1. Уменьшение TTL для быстрого обновления кэша:
$TTL 300  ; 5 минут вместо стандартных 86400

Мониторинг доступности и автоматическое переключение

# Установка keepalived для VRRP (опционально, для каждого региона)
apt install keepalived -y

Конфигурация /etc/keepalived/keepalived.conf для RTR-L

vrrp_script chk_http {
    script "/usr/local/bin/check_web_service.sh"
    interval 5
    weight -20
}

vrrp_instance VI_LEFT {
    state MASTER
    interface eth2
    virtual_router_id 51
    priority 100
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass VRRP_PASS
    }

    virtual_ipaddress {
        192.168.100.253/24
    }

    track_script {
        chk_http
    }
}

Скрипт проверки доступности веб-сервиса /usr/local/bin/check_web_service.sh

#!/bin/bash
if curl -sf --connect-timeout 5 http://127.0.0.1:8080/health > /dev/null 2>&1; then
    exit 0
else
    exit 1
fi
chmod +x /usr/local/bin/check_web_service.sh
systemctl enable keepalived
systemctl start keepalived

Проверка отказоустойчивости

# Тест 1: Остановка веб-сервиса на одном из узлов
# На WEB-L:
docker stop appdocker0

# На клиенте CLI:
# - Запустить непрерывный пинг или запросы к www.demo.wsr
# - Зафиксировать время восстановления доступа (должно быть <= 25 секунд)
# - После проверки восстановить сервис: docker start appdocker0

# Тест 2: Имитация отказа маршрутизатора
# На время отключить сетевой интерфейс на RTR-L
ip link set eth1 down

# Проверить доступность через RTR-R
# Восстановить интерфейс: ip link set eth1 up

Модуль 3: Эксплуатация объектов сетевой инфраструктуры

1. Установка, настройка, эксплуатация и обслуживание технических и программно-аппаратных средств компьютерных сетей

1.1. Защита должна обеспечиваться с помощью IPsec между платформами RTR-L И RTR-R

  • a. Используйте аутентификацию по общему ключу;
  • b. Параметры IPsec произвольные.

Решение:

Данная настройка частично выполнена в Задании 2.3 Модуля 1. Необходимо убедиться в корректности параметров аутентификации.

Проверка конфигурации аутентификации по ключу

Файл /etc/ipsec.secrets на обеих платформах должен содержать:

7.7.7.100 8.8.8.100 : PSK "DEMO2023!"

Проверка параметров шифрования в /etc/ipsec.conf

conn tunnel-to-rtrr  # или tunnel-to-rttl на противоположной стороне
  authby=secret
  ike=aes256-sha256-modp2048!
  esp=aes256-sha256!
  # ... остальные параметры

Перезапуск и проверка туннеля

# Перезапуск IPsec
ipsec restart

# Проверка установленных соединений
ipsec statusall

# Проверка политик безопасности
ip xfrm policy
ip xfrm state

# Тестирование защищённого канала
# С одного из внутренних хостов:
tcpdump -i any host 7.7.7.100 and host 8.8.8.100
# Трафик должен быть зашифрован (протокол ESP)

2. Установка, настройка, эксплуатация и обслуживание сетевых конфигураций

2.1. Платформа управления трафиком RTR-R выполняет контроль входящего трафика согласно следующим правилам:

  • a. Разрешаются подключения к портам HTTP и HTTPS для всех клиентов;
    • Порты необходимые для работы настраиваемых служб.
  • b. Разрешается работа выбранного протокола организации защищённой связи;
    • Разрешение портов должно быть выполнено по принципу необходимо и достаточно.
  • c. Разрешается работа протоколов ICMP;
  • d. Разрешается работа протокола SSH;
  • e. Прочие подключения запрещены;
  • f. Для обращений к платформам со стороны хостов, находящихся внутри регионов, ограничений быть не должно.

Решение:

Настройка правил iptables для RTR-R

# Очистка правил (если требуется перенастройка)
iptables -F INPUT
iptables -F FORWARD

# Базовые правила для установленных соединений
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Разрешение служебных портов для внешних клиентов
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT      # HTTP
iptables -A INPUT -i eth1 -p tcp --dport 443 -j ACCEPT     # HTTPS

# Разрешение портов для защищённой связи (IPsec)
iptables -A INPUT -i eth1 -p udp --dport 500 -j ACCEPT     # IKE
iptables -A INPUT -i eth1 -p udp --dport 4500 -j ACCEPT    # NAT-T
iptables -A INPUT -i eth1 -p esp -j ACCEPT                 # ESP

# Разрешение ICMP
iptables -A INPUT -i eth1 -p icmp -j ACCEPT

# Разрешение SSH для управления (ограничить по источнику при необходимости)
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT

# Разрешение всего трафика из внутренней сети
iptables -A INPUT -i eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -j ACCEPT
iptables -A FORWARD -o eth2 -j ACCEPT

# Логирование и блокировка остального входящего трафика
iptables -A INPUT -i eth1 -j LOG --log-prefix "RTR-R-INPUT-DROP: " --log-level 4
iptables -A INPUT -i eth1 -j DROP

# Сохранение правил
netfilter-persistent save

2.2. Платформа управления трафиком RTR-L выполняет контроль входящего трафика согласно следующим правилам:

  • a. Разрешается подключения к портам DNS, HTTP и HTTPS для всех клиентов;
    • Порты необходимы для работы настраиваемых служб.
  • b. Разрешается работа выбранного протокола организации защищённой связи;
    • Разрешение портов должно быть выполнено по принципу необходимо и достаточно.
  • c. Разрешается работа ICMP;
  • d. Разрешается работа SSH;
  • e. Прочие подключения запрещены;
  • f. Для обращений к платформам со стороны хостов, находящихся внутри регионов, ограничений быть не должно.

Решение:

Настройка правил iptables для RTR-L

# Очистка правил (если требуется перенастройка)
iptables -F INPUT
iptables -F FORWARD

# Базовые правила для установленных соединений
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Разрешение служебных портов для внешних клиентов
iptables -A INPUT -i eth1 -p udp --dport 53 -j ACCEPT      # DNS UDP
iptables -A INPUT -i eth1 -p tcp --dport 53 -j ACCEPT      # DNS TCP
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT      # HTTP
iptables -A INPUT -i eth1 -p tcp --dport 443 -j ACCEPT     # HTTPS

# Разрешение портов для защищённой связи (IPsec)
iptables -A INPUT -i eth1 -p udp --dport 500 -j ACCEPT     # IKE
iptables -A INPUT -i eth1 -p udp --dport 4500 -j ACCEPT    # NAT-T
iptables -A INPUT -i eth1 -p esp -j ACCEPT                 # ESP

# Разрешение ICMP
iptables -A INPUT -i eth1 -p icmp -j ACCEPT

# Разрешение SSH для управления
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT

# Разрешение всего трафика из внутренней сети
iptables -A INPUT -i eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -j ACCEPT
iptables -A FORWARD -o eth2 -j ACCEPT

# Логирование и блокировка остального входящего трафика
iptables -A INPUT -i eth1 -j LOG --log-prefix "RTR-L-INPUT-DROP: " --log-level 4
iptables -A INPUT -i eth1 -j DROP

# Сохранение правил
netfilter-persistent save

About

Solving the DEMO2023 only on Debian

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors