RedOS Infrastructure Docs

Полная документация по настройке инфраструктуры ИКС. Пошаговые инструкции, команды, конфигурационные файлы для всех модулей демоэкзамена.

RedOS Networking Linux Exam 2026
⚠️ Данная документация предназначена для настройки учебной инфраструктуры. Все команды проверены на RedOS 8.x. Перед выполнением убедитесь в правильности IP-адресов для вашего варианта.

Разделы документации

Топология сети

Инфраструктура состоит из двух офисов — HQ и BR, соединённых через провайдера ISP.

УстройствоРольIP-адрес
ISPПровайдер (NAT, NTP, Nginx)ens34: 172.16.4.1/28 | ens35: 172.16.5.1/28
HQ-RTRМаршрутизатор офиса HQens33: 172.16.4.2/28
BR-RTRМаршрутизатор офиса BRens33: 172.16.5.2/28
HQ-SRVСервер HQ (DNS, NFS, Apache, Grafana)192.168.100.10/26
BR-SRVСервер BR (Samba DC, Docker, Ansible)172.30.100.10/27
HQ-CLIКлиент HQDHCP (192.168.200.x)

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

Выполняется на всех устройствах: ISP, HQ-RTR, BR-RTR, HQ-SRV, BR-SRV, HQ-CLI

1. Имена устройств (hostname)

# Формат: host-name.au-team.irpo
hostnamectl hostname hq-srv.au-team.irpo
hostnamectl hostname br-rtr.au-team.irpo
hostnamectl hostname isp.au-team.irpo

2. Настройка IPv4 через nmtui

Запустить: nmtui → Изменить подключение → выбрать интерфейс → Изменить → Конфигурация IPv4: Вручную → Показать → Добавить адрес.

На этом шаге настраиваем ISP, BR-RTR, BR-SRV. На HQ-RTR — только интерфейс в сторону ISP. Интерфейсы HQ-RTR в сторону локалки настраиваются в пункте про VLAN.

3. Применить настройки интерфейса

nmcli connection up ens33

4. Включить IP forwarding на роутерах (ISP, HQ-RTR, BR-RTR)

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

Таблица адресации

УстройствоИнтерфейсIP / маскаШлюз
ISPens33DHCP
ISPens34172.16.4.1/28
ISPens35172.16.5.1/28
HQ-RTRens33172.16.4.2/28172.16.4.1
HQ-RTRens34.vlan100192.168.100.1/26
HQ-RTRens34.vlan200192.168.200.1/28
HQ-RTRens34.vlan999192.168.99.1/29
BR-RTRens33172.16.5.2/28172.16.5.1
BR-RTRens34172.30.100.1/27
HQ-SRVens33.vlan100192.168.100.10/26192.168.100.1
BR-SRVens33172.30.100.10/27172.30.100.1
HQ-CLIens33.vlan200DHCPDHCP

Настройка ISP

NAT через iptables

dnf install iptables-services -y
systemctl enable --now iptables
iptables -F
iptables -A FORWARD -s 172.16.0.0/16 -j ACCEPT
iptables -A FORWARD -d 172.16.0.0/16 -j ACCEPT
iptables -t nat -A POSTROUTING -o ens33 -s 172.16.0.0/16 -j MASQUERADE
systemctl stop firewalld
systemctl disable firewalld
iptables-save > /etc/sysconfig/iptables
✓ Проверка: пинг 8.8.8.8 с HQ-RTR и BR-RTR должен проходить

Создание локальных учётных записей

Пользователь sshuser на HQ-SRV и BR-SRV

useradd -m -U -s /bin/bash -u 1010 sshuser
passwd sshuser
# ввести: P@ssw0rd
echo "sshuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

Пользователь net_admin на HQ-RTR и BR-RTR

useradd -m -U -s /bin/bash net_admin
passwd net_admin
# ввести: P@$$w0rd
echo "net_admin ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

Настройка VLAN на HQ-RTR

nmtui → Изменить подключение → Добавить → VLAN. Выполнять на HQ-RTR (ens34), HQ-SRV (ens33), HQ-CLI (ens33)
VLAN IDНазначениеСеть
100HQ-SRV192.168.100.0/26
200HQ-CLI192.168.200.0/28
999Управление192.168.99.0/29

Параметры VLAN в nmtui

  • Имя профиля: VLAN100
  • Устройство: ens34.100
  • Родительский: ens34
  • Идентификатор VLAN: 100
  • Конфигурация IPv4: Вручную

Настройка SSH на HQ-SRV и BR-SRV

Создание баннера

echo "Authorized access only" > /etc/ssh/banner.txt

Конфигурация /etc/ssh/sshd_config

nano /etc/ssh/sshd_config
# Добавить/изменить:
Port 2024
AllowUsers sshuser
MaxAuthTries 2
Banner /etc/ssh/banner.txt

Разрешить порт в SELinux и перезапустить

semanage port -m -t ssh_port_t -p tcp 2024
systemctl restart sshd
Проверка с HQ-RTR: ssh -l sshuser 192.168.100.10 -p 2024

GRE туннель между HQ-RTR и BR-RTR

nmtui → Добавить → IP-туннель → режим GRE

HQ-RTR (tun0)

ПараметрЗначение
РежимGRE
Родительскийens33
Локальный IP172.16.4.2
Удалённый IP172.16.5.2
Адрес туннеля10.10.10.1/30

BR-RTR (tun0)

ПараметрЗначение
Локальный IP172.16.5.2
Удалённый IP172.16.4.2
Адрес туннеля10.10.10.2/30

Дополнительно — TTL на обоих роутерах

nmcli connection modify tun0 ip-tunnel.ttl 64
# Перезапустить через nmtui: выключить/включить интерфейс
Проверка: ping 10.10.10.1 и ping 10.10.10.2 с обоих роутеров

Динамическая маршрутизация OSPF (FRR)

Установка и включение FRR

dnf install frr
systemctl enable --now frr
nano /etc/frr/daemons
# изменить: ospfd=yes
systemctl restart frr
vtysh

Настройка HQ-RTR (в vtysh)

conf t
router ospf
  ospf router-id 172.16.4.2
  network 192.168.100.0/26 area 0
  network 192.168.200.0/28 area 0
  network 192.168.99.0/29 area 0
  network 10.10.10.0/30 area 0
  passive-interface ens33
  passive-interface ens34
  area 0 authentication
interface tun0
  ip ospf authentication
  ip ospf authentication-key P@ssw0rd
do wr

Настройка BR-RTR (в vtysh)

conf t
router ospf
  ospf router-id 172.16.5.2
  network 172.30.100.0/27 area 0
  network 10.10.10.0/30 area 0
  passive-interface ens33
  passive-interface ens34
  passive-interface ens35
  area 0 authentication
interface tun0
  ip ospf authentication
  ip ospf authentication-key P@ssw0rd
do wr

Динамическая трансляция адресов (NAT)

Выполняется на HQ-RTR и BR-RTR

systemctl --now enable firewalld
firewall-cmd --set-default-zone=trusted
firewall-cmd --zone=trusted --add-masquerade --permanent
systemctl restart firewalld

DHCP сервер на HQ-RTR

dnf install dhcp-server
nano /etc/dhcp/dhcpd.conf

Содержимое dhcpd.conf

subnet 192.168.200.0 netmask 255.255.255.240 {
  range 192.168.200.2 192.168.200.14;
  option routers 192.168.200.1;
  option broadcast-address 192.168.200.15;
  option domain-name-servers 192.168.100.10;
  option domain-name "au-team.irpo";
}
systemctl enable --now dhcpd
Проверка (на HQ-RTR): cat /var/lib/dhcpd/dhcpd.leases

DNS сервер (BIND) на HQ-SRV

dnf install bind
nano /etc/named.conf

Изменения в named.conf

  • listen-on port 53 { any; };
  • allow-query { any; };
  • forwarders { 10.39.0.1; };

Зоны (добавить в конец named.conf)

zone "au-team.irpo" IN {
  type master;
  file "/opt/dns/au-team.irpo";
};
zone "100.168.192.in-addr.arpa" IN {
  type master;
  file "/opt/dns/100.168.192.in-addr.arpa";
};
zone "200.168.192.in-addr.arpa" IN {
  type master;
  file "/opt/dns/200.168.192.in-addr.arpa";
};

Создание зонных файлов

mkdir /opt/dns && cd /opt/dns
cp /var/named/named.empty au-team.irpo

Содержимое au-team.irpo

$TTL 3H
au-team.irpo. IN SOA au-team.irpo. au-team.irpo. (
  0 ; serial
  1D ; refresh
  1H ; retry
  1W ; expire
  3H ) ; minimum
    NS  hq-srv.au-team.irpo.
hq-rtr  A  192.168.100.1
hq-rtr  A  192.168.200.1
br-rtr  A  172.30.100.1
hq-srv  A  192.168.100.10
hq-cli  A  192.168.200.2
br-srv  A  172.30.100.10
wiki    CNAME  hq-rtr.au-team.irpo.
moodle  CNAME  hq-rtr.au-team.irpo.
chmod -R 777 /opt/dns
named-checkconf -z
systemctl restart named

Настройка часового пояса

Выполняется на всех устройствах.

timedatectl set-timezone Europe/Moscow
timedatectl # проверить, время менять не нужно

Samba DC на BR-SRV

Установка и provisioning

dnf install -y samba* krb5*
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
mv /etc/krb5.conf /etc/krb5.conf.bak
nano /etc/krb5.conf.d/crypto-policies
# Изменить permitted_enctypes:
# default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192
# default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192
samba-tool domain provision --use-rfc2307 --interactive
# Enter 3 раза → DNS backend: NONE → пароль: P@ssw0rd
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
nano /etc/krb5.conf
# В [realms] добавить: kdc = br-srv.au-team.irpo
systemctl enable --now samba
# Если проблемы — перезагрузить BR-SRV
kinit administrator@AU-TEAM.IRPO

Ввод HQ-CLI в домен (на HQ-CLI)

echo "<ip-br-srv> au-team.irpo" >> /etc/hosts
realm join -U -v Administrator@AU-TEAM.IRPO
# Должно появиться: Successfully enrolled machine in realm

Создание группы и пользователей (BR-SRV)

samba-tool group add hq
for i in {1..5}; do
  samba-tool user add hquser$i P@ssw0rd
  samba-tool group addmembers hq hquser$i
done
samba-tool group listmembers hq

sudo для группы hq (на HQ-CLI)

visudo
# Добавить строку:
%hq@au-team.irpo ALL=(ALL) /bin/cat, /bin/grep, /bin/id

RAID 0 на HQ-SRV

lsblk # проверить наличие sdb и sdc
fdisk /dev/sdb
# g → n → Enter 3 раза → w
# Аналогично для /dev/sdc
mdadm --create /dev/md0 --level=0 --raid-device=2 /dev/sdb1 /dev/sdc1
mdadm --detail --scan --verbose >> /etc/mdadm.conf
mkfs.ext4 /dev/md0
mkdir /raid
echo "/dev/md0 /raid ext4 defaults 0 0" >> /etc/fstab
systemctl daemon-reload && mount -a
df -h # должна появиться строка /raid

NFS сервер (HQ-SRV) и клиент (HQ-CLI)

Сервер HQ-SRV

dnf install nfs4-acl-tools -y
mkdir /raid/nfs
chown nobody:nobody /raid/nfs
chmod 777 /raid/nfs
echo "/raid/nfs 192.168.200.0/27 (rw)" > /etc/exports
exportfs -a
systemctl enable --now nfs-server

Клиент HQ-CLI

mkdir /mnt/nfs
echo "<ip-hq-srv>:/raid/nfs /mnt/nfs nfs auto 0 0" >> /etc/fstab
systemctl daemon-reload && mount -a
df -h # должна появиться строка с /mnt/nfs

NTP сервер Chrony на ISP

Настройка ISP

nano /etc/chrony.conf
# Закомментировать 3 строки с server ntp, добавить:
local stratum 5
allow 0/0
hwtimestamp *
systemctl restart chronyd && chronyc sources

Клиенты: HQ-SRV, HQ-CLI, BR-RTR, BR-SRV

nano /etc/chrony.conf
# Закомментировать все server, добавить:
server <ip-isp-ens34> iburst prefer
systemctl restart chronyd && chronyc sources

Ansible на BR-SRV

Файл инвентаря /etc/ansible/demo.ini

[all]
hq-srv ansible_host=192.168.100.10 ansible_user=sshuser ansible_port=2026
hq-cli ansible_host=192.168.200.2 ansible_user=username
hq-rtr ansible_host=192.168.100.1 ansible_user=net_admin
br-rtr ansible_host=172.30.100.1 ansible_user=net_admin

Генерация и копирование ключей

ssh-keygen -t rsa # Enter до конца
ssh-copy-id -p 2026 sshuser@<ip-hq-srv>
ssh-copy-id username@<ip-hq-cli>
ssh-copy-id net_admin@<ip-hq-rtr>
ssh-copy-id net_admin@<ip-br-rtr>
# Пароли: P@ssw0rd

ansible.cfg

[defaults]
Inventory = /etc/ansible/demo.ini
ask_pass = False
host_key_checking = False
interpreter_python=/usr/bin/python
ansible -m ping all # все должны ответить pong

Docker на BR-SRV

mount /dev/cdrom /mnt
dnf install docker-ce docker-compose -y
systemctl enable --now docker
docker load < /mnt/docker/site_latest.tar
docker load < /mnt/docker/mariadb_latest.tar
docker images # проверить

docker-compose файл site.yml

services:
  db:
    image: mariadb:10.11
    container_name: db
    environment:
      MARIADB_DATABASE: testdb
      MARIADB_USER: test
      MARIADB_PASSWORD: Passw0rd
      MARIADB_ROOT_PASSWORD: Passw0rd
    volumes:
      - db_data:/var/lib/mysql
    restart: unless-stopped
  testapp:
    image: site
    container_name: testapp
    environment:
      DB_TYPE: maria
      DB_HOST: db
      DB_NAME: testdb
      DB_USER: test
      DB_PASS: Passw0rd
      DB_PORT: 3306
    ports:
      - "8080:8000"
    depends_on:
      - db
    restart: unless-stopped
volumes:
  db_data:
docker-compose -f site.yml up -d

Apache + MariaDB на HQ-SRV

mount /dev/cdrom /mnt
dnf install mariadb-server httpd php php-mysqlnd php-cli -y
systemctl enable --now mariadb httpd

Защита MariaDB

mysql_secure_installation
# P@ssw0rd → n → n → y → y → y → y

Создание БД и пользователя

mysql -u root -p
# P@ssw0rd
CREATE USER 'web'@'localhost' IDENTIFIED BY 'P@ssw0rd';
CREATE DATABASE webdb DEFAULT CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON webdb.* TO 'web'@'localhost';
flush privileges;
\q

Импорт и настройка веб-приложения

mysql -u root -p webdb < /mnt/web/dump.sql
cp /mnt/web/index.php /var/www/html
cp /mnt/web/logo.png /var/www/html
nano /var/www/html/index.php
# Изменить:
$servername = "localhost";
$username = "web";
$password = "P@ssw0rd";
$dbname = "webdb";
systemctl restart httpd

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

BR-RTR

firewall-cmd --permanent --zone=trusted --add-forwardport=port=8080:proto=tcp:toaddr=<ip-br-srv>:toport=8080
firewall-cmd --permanent --zone=trusted --add-forwardport=port=2026:proto=tcp:toaddr=<ip-br-srv>:toport=2026
firewall-cmd --reload && systemctl restart firewalld

HQ-RTR

firewall-cmd --permanent --zone=trusted --add-forwardport=port=8080:proto=tcp:toaddr=<ip-hq-srv>:toport=80
firewall-cmd --permanent --zone=trusted --add-forwardport=port=2026:proto=tcp:toaddr=<ip-hq-srv>:toport=2026
firewall-cmd --reload && systemctl restart firewalld

Nginx как обратный прокси на ISP

dnf install nginx -y
systemctl enable --now nginx
nano /etc/nginx/nginx.conf

Добавить серверы в nginx.conf (закомментировать дефолтный)

server {
  listen 80;
  server_name docker.au-team.irpo;
  location / {
    proxy_pass http://<ip-br-rtr-ens33>:8080;
  }
}
server {
  listen 80;
  server_name web.au-team.irpo;
  location / {
    proxy_pass http://<ip-hq-rtr-ens33>:8080;
  }
}
nano /etc/selinux/config
# SELINUX=disabled
systemctl restart nginx
reboot

Basic Auth для web.au-team.irpo (ISP)

dnf install httpd-tools -y
htpasswd -c /etc/nginx/.htpasswd WEB
# ввести: P@ssw0rd

Добавить в блок server для web.au-team.irpo

location / {
  auth_basic "Restricted Content";
  auth_basic_user_file /etc/nginx/.htpasswd;
  proxy_pass http://<ip-hq-rtr>:8080;
}
nginx -t && systemctl restart nginx

Импорт пользователей в домен (BR-SRV)

mount /dev/cdrom /mnt
cat /mnt/Users.csv # проверить данные
nano import.sh

Скрипт import.sh

#!/bin/bash
tail -n +2 /mnt/Users.csv | while IFS=';' read -r firstName lastName _ _ ou _ _ _ _ password
do
  if ! samba-tool ou list | grep -q "OU=$ou"; then
    samba-tool ou create "OU=$ou"
  fi
  samba-tool user create "${firstName}${lastName}" "$password" \
    --userou="OU=$ou"
done
chmod +x import.sh && ./import.sh
Проверка на HQ-CLI: логин MalachiAlexander@au-team.irpo / P@ssw0rd1

Центр сертификации ГОСТ на HQ-SRV

dnf install openssl-gost-engine
openssl-switch-config gost
update-crypto-policies --set GOST-ONLY:GOST
update-crypto-policies --show

Генерация ключей и сертификата CA

openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out CA.key
openssl req -new -x509 -md_gost12_256 -days 365 -key CA.key -out CA.crt \
  -subj "/C=RU/ST=Russia/L=Kazan/O=MCK-KTITS/OU=MCK-KTITS CA/CN=MCK-KTITS CA Root"

Ключ и CSR для веб-серверов

openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out au-team.irpo.key
nano au-team.irpo.ext

Содержимое au-team.irpo.ext

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = au-team.irpo
DNS.2 = docker.au-team.irpo
DNS.3 = web.au-team.irpo
IP.1 = 172.16.1.2
IP.2 = 172.16.2.2
openssl req -new -md_gost12_256 -key au-team.irpo.key -out au-team.irpo.csr \
  -subj "/C=RU/L=Kazan/O=AU-TEAM Site GOST/CN=*.au-team.irpo"
openssl x509 -req -in au-team.irpo.csr -CA CA.crt -CAkey CA.key \
  -CAcreateserial -out au-team.irpo.crt -days 30 -extfile au-team.irpo.ext
cat au-team.irpo.crt CA.crt > fullchain.crt
openssl-switch-config default
update-crypto-policies --set DEFAULT
mkdir -p /home/sshuser/certs
cp fullchain.crt au-team.irpo.key CA.crt /home/sshuser/certs/
chmod 755 -R /home/sshuser/certs

IPSec туннель (StrongSwan)

dnf install strongswan -y
systemctl enable --now strongswan
nano /etc/strongswan/swanctl/conf.d/swanctl.conf

HQ-RTR конфиг

connections {
  my-tunnel {
    local_addrs = 172.16.1.2
    remote_addrs = 172.16.2.2
    local { auth = psk }
    remote { auth = psk }
    children {
      net {
        mode = transport
        esp_proposals = aes256-sha256
      }
    }
  }
}
secrets {
  ike-1 { secret = "P@ssw0rd" }
}

BR-RTR конфиг (local/remote поменять местами)

# local_addrs = 172.16.2.2
# remote_addrs = 172.16.1.2
systemctl restart strongswan
swanctl --initiate --child net
swanctl --list-sas # проверить ESTABLISHED

Firewalld на HQ-RTR и BR-RTR

HQ-RTR

firewall-cmd --permanent --zone=external --change-interface=ens33
firewall-cmd --permanent --zone=internal --change-interface=ens34
firewall-cmd --permanent --zone=internal --change-interface=ens34.100
firewall-cmd --permanent --zone=internal --change-interface=ens34.200
firewall-cmd --permanent --zone=internal --add-interface=tun0
firewall-cmd --permanent --new-policy int-to-ext
firewall-cmd --permanent --policy int-to-ext --add-ingress-zone=internal
firewall-cmd --permanent --policy int-to-ext --add-egress-zone=external
firewall-cmd --permanent --policy int-to-ext --set-target=ACCEPT
firewall-cmd --permanent --zone=external --add-service=http
firewall-cmd --permanent --zone=external --add-service=https
firewall-cmd --permanent --zone=external --add-service=dns
firewall-cmd --permanent --zone=external --add-service=ntp
firewall-cmd --permanent --zone=external --add-port=2026/tcp
firewall-cmd --permanent --zone=external --add-port=8080/tcp
firewall-cmd --permanent --zone=external --add-protocol=gre
firewall-cmd --permanent --zone=external --add-port=500/udp
firewall-cmd --permanent --zone=external --add-port=4500/udp
firewall-cmd --permanent --zone=external --add-protocol=esp
firewall-cmd --permanent --zone=external --add-protocol=ah
firewall-cmd --permanent --zone=internal --add-protocol=ospf
firewall-cmd --reload

CUPS принт-сервер на HQ-SRV

dnf install cups cups-pdf -y --nogpgcheck
systemctl enable --now cups
nano /etc/cups/cupsd.conf
# Listen localhost:631 → Listen *:631
# В Location / и Location /admin добавить: Allow all
systemctl restart cups
lpadmin -p Virtual_PDF -E -v cups-pdf:/ -m raw
lpstat -p # проверить

На HQ-CLI: Настройки → Принтеры → Добавить принтер → ввести IP HQ-SRV → выбрать CUPS-PDF → Использовать по умолчанию

Rsyslog: сервер HQ-SRV, клиенты HQ-RTR/BR-RTR/BR-SRV

Сервер HQ-SRV — /etc/rsyslog.conf

# Раскомментировать UDP:
module(load="imudp")
input(type="imudp" port="514")

# В конец добавить:
$template RemoteLogs,"/opt/%HOSTNAME%/%HOSTNAME%.log"
if $hostname != 'hq-srv' then {
  *.warning ?RemoteLogs
  & stop
}

Клиенты HQ-RTR, BR-RTR, BR-SRV — добавить в rsyslog.conf

*.warning @192.168.100.2:514
systemctl restart rsyslog # на всех устройствах

Ротация логов /etc/logrotate.d/remote_logs

/opt/*/*.log {
  weekly
  rotate 4
  compress
  minsize 10M
  missingok
  notifempty
  sharedscripts
  postrotate
    /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
  endscript
}

Grafana + Prometheus мониторинг

Установка на HQ-SRV

dnf install -y grafana prometheus prometheus-node_exporter --nogpgcheck
nano /etc/prometheus/prometheus.yml
# Изменить targets:
static_configs:
  - targets: ['localhost:9090','192.168.100.2:9100','172.30.100.2:9100']

systemctl enable --now grafana-server prometheus node_exporter

Установка node_exporter на BR-SRV

dnf install -y prometheus-node_exporter
systemctl enable --now node_exporter

Настройка через браузер

  1. Открыть http://192.168.100.2:3000
  2. Войти: admin / admin → новый пароль: P@ssw0rd
  3. Connections → Add new connection → Prometheus
  4. URL: http://localhost:9090 → Save & test
  5. Dashboards → Create → Import → ID: 11074 → Load → выбрать Prometheus → Import

DNS запись для мониторинга

nano /opt/dns/au-team.irpo
# Добавить:
mon  A  192.168.100.2
systemctl restart named

Доступ: http://mon.au-team.irpo:3000

Ansible инвентаризация HQ-SRV и HQ-CLI

Добавить в demo.ini группу inventory

[inventory]
hq-cli ansible_host=192.168.200.2 ansible_user=username
hq-srv ansible_host=192.168.100.2 ansible_port=2026 ansible_user=sshuser

Плейбук get_hostname_address.yml

---
- name: Inventory of HQ-SRV and HQ-CLI
  hosts: inventory
  gather_facts: yes
  tasks:
    - name: получение данных с хоста
      copy:
        dest: /etc/ansible/PC-INFO/{{ ansible_hostname }}.yml
        content: |
          Hostname: {{ ansible_hostname }}
          IP_Address: {{ ansible_default_ipv4.address }}
      delegate_to: localhost
mkdir -p /etc/ansible/PC-INFO
cd /etc/ansible
ansible-playbook get_hostname_address.yml -i demo.ini
ls /etc/ansible/PC-INFO # проверить файлы

Fail2ban защита SSH на HQ-SRV

dnf install fail2ban -y --nogpgcheck
nano /etc/fail2ban/jail.local

Содержимое jail.local

[sshd]
enabled = true
port = 2026
filter = sshd
maxretry = 3
bantime = 60
findtime = 120
systemctl enable --now fail2ban
fail2ban-client status sshd # проверить

Полная таблица адресации

УстройствоИнтерфейсIP / маскаШлюз
ISPens33DHCP
ISPens34172.16.4.1/28
ISPens35172.16.5.1/28
HQ-RTRens33172.16.4.2/28172.16.4.1
HQ-RTRens34.100192.168.100.1/26
HQ-RTRens34.200192.168.200.1/28
HQ-RTRens34.999192.168.99.1/29
HQ-RTRtun010.10.10.1/30
BR-RTRens33172.16.5.2/28172.16.5.1
BR-RTRens34172.30.100.1/27
BR-RTRtun010.10.10.2/30
HQ-SRVens33.100192.168.100.10/26192.168.100.1
BR-SRVens33172.30.100.10/27172.30.100.1
HQ-CLIens33.200DHCPDHCP

Учётные записи и пароли

ПользовательПарольГде используется
sshuserP@ssw0rdHQ-SRV, BR-SRV (SSH, Ansible)
net_adminP@$$w0rdHQ-RTR, BR-RTR
hquser1..5P@ssw0rdSamba домен
Administrator (Samba)P@ssw0rdBR-SRV DC
web (MariaDB)P@ssw0rdHQ-SRV Apache
test (MariaDB)Passw0rdBR-SRV Docker testdb
WEB (nginx auth)P@ssw0rdISP nginx basic auth
admin (Grafana)P@ssw0rdHQ-SRV Grafana
OSPF auth-keyP@ssw0rdHQ-RTR, BR-RTR
IPSec PSKP@ssw0rdHQ-RTR, BR-RTR StrongSwan