RedOS Infrastructure Docs
Полная документация по настройке инфраструктуры ИКС. Пошаговые инструкции, команды, конфигурационные файлы для всех модулей демоэкзамена.
Разделы документации
📡 Модуль 1
Сетевая инфраструктура: IP, VLAN, туннели, маршрутизация, DNS, DHCP
🖥 Модуль 2
Сервисы: Samba DC, NFS, RAID, Docker, Apache, Nginx, Ansible
🔒 Модуль 3
Безопасность: PKI, IPSec, Firewall, Grafana, Fail2ban, Rsyslog
📋 Справочник
Таблица адресации, пароли, учётные записи
Топология сети
Инфраструктура состоит из двух офисов — HQ и BR, соединённых через провайдера ISP.
| Устройство | Роль | IP-адрес |
|---|---|---|
| ISP | Провайдер (NAT, NTP, Nginx) | ens34: 172.16.4.1/28 | ens35: 172.16.5.1/28 |
| HQ-RTR | Маршрутизатор офиса HQ | ens33: 172.16.4.2/28 |
| BR-RTR | Маршрутизатор офиса BR | ens33: 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 | Клиент HQ | DHCP (192.168.200.x) |
Базовая настройка устройств
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: Вручную → Показать → Добавить адрес.
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 / маска | Шлюз |
|---|---|---|---|
| ISP | ens33 | DHCP | — |
| ISP | ens34 | 172.16.4.1/28 | — |
| ISP | ens35 | 172.16.5.1/28 | — |
| HQ-RTR | ens33 | 172.16.4.2/28 | 172.16.4.1 |
| HQ-RTR | ens34.vlan100 | 192.168.100.1/26 | — |
| HQ-RTR | ens34.vlan200 | 192.168.200.1/28 | — |
| HQ-RTR | ens34.vlan999 | 192.168.99.1/29 | — |
| BR-RTR | ens33 | 172.16.5.2/28 | 172.16.5.1 |
| BR-RTR | ens34 | 172.30.100.1/27 | — |
| HQ-SRV | ens33.vlan100 | 192.168.100.10/26 | 192.168.100.1 |
| BR-SRV | ens33 | 172.30.100.10/27 | 172.30.100.1 |
| HQ-CLI | ens33.vlan200 | DHCP | DHCP |
Настройка 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
Создание локальных учётных записей
Пользователь 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
| VLAN ID | Назначение | Сеть |
|---|---|---|
| 100 | HQ-SRV | 192.168.100.0/26 |
| 200 | HQ-CLI | 192.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
ssh -l sshuser 192.168.100.10 -p 2024GRE туннель между HQ-RTR и BR-RTR
nmtui → Добавить → IP-туннель → режим GRE
HQ-RTR (tun0)
| Параметр | Значение |
|---|---|
| Режим | GRE |
| Родительский | ens33 |
| Локальный IP | 172.16.4.2 |
| Удалённый IP | 172.16.5.2 |
| Адрес туннеля | 10.10.10.1/30 |
BR-RTR (tun0)
| Параметр | Значение |
|---|---|
| Локальный IP | 172.16.5.2 |
| Удалённый IP | 172.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
cat /var/lib/dhcpd/dhcpd.leasesDNS сервер (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-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
Настройка через браузер
- Открыть
http://192.168.100.2:3000 - Войти:
admin / admin→ новый пароль:P@ssw0rd - Connections → Add new connection → Prometheus
- URL:
http://localhost:9090→ Save & test - 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 / маска | Шлюз |
|---|---|---|---|
| ISP | ens33 | DHCP | — |
| ISP | ens34 | 172.16.4.1/28 | — |
| ISP | ens35 | 172.16.5.1/28 | — |
| HQ-RTR | ens33 | 172.16.4.2/28 | 172.16.4.1 |
| HQ-RTR | ens34.100 | 192.168.100.1/26 | — |
| HQ-RTR | ens34.200 | 192.168.200.1/28 | — |
| HQ-RTR | ens34.999 | 192.168.99.1/29 | — |
| HQ-RTR | tun0 | 10.10.10.1/30 | — |
| BR-RTR | ens33 | 172.16.5.2/28 | 172.16.5.1 |
| BR-RTR | ens34 | 172.30.100.1/27 | — |
| BR-RTR | tun0 | 10.10.10.2/30 | — |
| HQ-SRV | ens33.100 | 192.168.100.10/26 | 192.168.100.1 |
| BR-SRV | ens33 | 172.30.100.10/27 | 172.30.100.1 |
| HQ-CLI | ens33.200 | DHCP | DHCP |
Учётные записи и пароли
| Пользователь | Пароль | Где используется |
|---|---|---|
| sshuser | P@ssw0rd | HQ-SRV, BR-SRV (SSH, Ansible) |
| net_admin | P@$$w0rd | HQ-RTR, BR-RTR |
| hquser1..5 | P@ssw0rd | Samba домен |
| Administrator (Samba) | P@ssw0rd | BR-SRV DC |
| web (MariaDB) | P@ssw0rd | HQ-SRV Apache |
| test (MariaDB) | Passw0rd | BR-SRV Docker testdb |
| WEB (nginx auth) | P@ssw0rd | ISP nginx basic auth |
| admin (Grafana) | P@ssw0rd | HQ-SRV Grafana |
| OSPF auth-key | P@ssw0rd | HQ-RTR, BR-RTR |
| IPSec PSK | P@ssw0rd | HQ-RTR, BR-RTR StrongSwan |