Общие сведения о системе РЕД ОС
РЕД ОС — российская многопользовательская, многозадачная операционная система общего назначения для серверов и рабочих станций, предоставляющая универсальную среду для использования прикладного программного обеспечения. Она создана на основе ведущих мировых технологий с открытым исходным кодом, глубоко доработана отечественными инженерами и полностью независима от зарубежных инфраструктур поддержки.
Система обладает высоким уровнем встроенной защиты информации, проходя регулярные аудиторские проверки на отсутствие скрытых закладок и недекларированных возможностей. Платформа сертифицирована ФСТЭК России по 4 уровню доверия, что делает ее идеальным выбором для развертывания в медицинских учреждениях, финансовых структурах, силовых ведомствах и крупных промышленных предприятиях.
Благодаря модульной архитектуре, РЕД ОС легко адаптируется под любые корпоративные задачи: от простой офисной печатной машины до сложнейших вычислительных кластеров и баз данных высокой доступности. Система включает в себя полноценную поддержку шифрования по стандартам ГОСТ, встроенные механизмы мандатного контроля доступа и надежные инструменты аудита системных логов.
В отличие от классических дистрибутивов общего назначения, РЕД ОС предлагает широкую экосистему совместимости, в которую входят сотни отечественных программных продуктов: CRM-системы, офисные редакторы, средства криптографии и специализированное банковское ПО.
РЕД ОС 7.3 Муром
Дистрибутив РЕД ОС 7.3 представляет собой надежную LTS-платформу. Он ориентирован на корпоративных пользователей и государственные ведомства. Включает ядра веток 5.15 LTS и 6.1 LTS, современные пакеты совместимости и графические среды MATE и Cinnamon.
Система обладает расширенным пакетом безопасности для предотвращения несанкционированного доступа. Разработчики постоянно выпускают исправления ошибок и уязвимостей, делая данную платформу одной из самых стабильных для развертывания критически важной инфраструктуры.
Пакетная база 7.3 Муром также полностью поддерживает установку российских криптографических модулей КриптоПро CSP для работы с электронными подписями на государственных порталах.
РЕД ОС 8.0
Новейшая версия операционной системы РЕД ОС 8 предлагает современный интерфейс, усовершенствованную подсистему рендеринга Wayland и оптимизированные инструменты виртуализации. Снижено время отклика ядра и повышена стабильность СУБД под высокими нагрузками.
Платформа также включает встроенную поддержку Flatpak и Docker, позволяя развертывать современные контейнеризированные приложения за несколько кликов с высокой степенью изоляции процессов.
Добавлена поддержка современных протоколов удаленного рабочего стола и тонких клиентов для построения эффективных терминальных станций.
Процесс обновления РЕД ОС
Обновление пакетной базы осуществляется с помощью менеджера пакетов dnf. Перед процедурой рекомендуется обновить локальный индекс пакетов:
dnf clean all
dnf makecache
dnf update -y
Для перехода на новые LTS-версии ядра используйте встроенные системные скрипты обновления, которые автоматически пересобирают необходимые модули для сетевых карт и видеоускорителей.
Вы также можете настроить автоматическое скачивание только критических патчей безопасности через службу dnf-automatic.
Программное обеспечение РЕД ОС
Официальные репозитории содержат тысячи прикладных программ: офисные пакеты (LibreOffice, Р7-Офис), графические редакторы (GIMP, Inkscape), базы данных и средства контейнеризации.
Все программы проходят строгую цифровую подпись и проверку безопасности перед добавлением в репозитории РЕД СОФТ.
Системные администраторы могут использовать локальные зеркала репозиториев для снижения расхода внешнего интернет-трафика.
Поддерживаемое оборудование
РЕД ОС поддерживает широкий спектр периферии, включая сетевые карты, сканеры, МФУ и дискретные графические чипы Nvidia. Для установки закрытых драйверов Nvidia выполните:
dnf install akmod-nvidia nvidia-driver -y
Для принтеров используется встроенная служба CUPS, настройку которой можно производить через веб-интерфейс на порту 631.
Поддерживаются популярные российские архитектуры процессоров, включая Эльбрус и Байкал-М.
Графический интерфейс пользователя
Пользователю доступны две основные легковесные графические оболочки — MATE и Cinnamon. Обе среды поддерживают глубокую кастомизацию, горячие клавиши и виджеты мониторинга ресурсов.
Для тонкой настройки тем оформления и иконок вы можете использовать встроенный «Центр управления».
Для терминальных серверов поддерживается оптимизированная среда XFCE, снижающая нагрузку на оперативную память.
Командная строка и терминал
Командный интерпретатор bash позволяет автоматизировать любые процессы администрирования. Основные команды навигации по файловой системе:
cd /etc/sysconfig
ls -la
pwd
Для просмотра вывода системного журнала используйте journalctl -xe.
Вы также можете использовать шелл Zsh с плагином автодополнения для повышения эффективности работы.
Сетевые настройки и безопасность
За сетевую конфигурацию отвечает служба NetworkManager. Управление брандмауэром firewalld производится через CLI:
firewall-cmd --state
firewall-cmd --get-active-zones
Все изменения брандмауэра записывайте с флагом --permanent для сохранения после перезагрузки.
Для глубокого анализа трафика вы можете использовать консольный сниффер tcpdump.
Администрирование пользователей
Для добавления новых пользователей в систему и настройки их прав sudo используйте команды:
useradd -m newuser
passwd newuser
usermod -aG wheel newuser
Файл настроек привилегий расположен по пути /etc/sudoers.
Управление парольными политиками (срок действия, минимальная длина) настраивается в файле /etc/login.defs.
11.1 Подготовка к установке серверной ОС
Установка серверной версии РЕД ОС начинается с подготовки аппаратного обеспечения и разметки дискового пространства. Для серверных платформ критически важно обеспечить отказоустойчивость дисковой подсистемы, поэтому на этапе разметки дисков настоятельно рекомендуется использовать технологию LVM (Logical Volume Manager) или аппаратный/программный RAID-массив.
Рекомендуемая схема разметки диска для сервера:
/boot— не менее 1 ГБ (файловая система ext4) для размещения ядер Linux и файлов загрузчика GRUB./boot/efi— 500 МБ (FAT32) для систем с UEFI./(root) — от 20 ГБ до 50 ГБ (XFS или ext4) под системные файлы./var— основной объем диска (XFS), так как здесь будут располагаться базы данных, логи веб-служб и конфигурации домена.swap— размер равен объему RAM (если RAM < 8 ГБ) или половине объема (если RAM > 8 ГБ).
При выборе пакетов на этапе установки выберите профиль "Минимальная установка" (Minimal Install) для минимизации площади атаки и снижения потребления ресурсов сервера, либо "Сервер" без графического окружения.
11.2 Пошаговая настройка служб
Настройте имена устройств согласно топологии. Используем полное доменное имя: hostnamectl hostname host-name.au-team.irpo (где host-name имя вашего устройства, например (hq-srv, br-rtr, isp))
На всех устройствах необходимо сконфигурировать IPv4:
− nmtui > Изменить подключение > Выбираем нужный интерфейс > Стрелочка вправо > Изменить > Конфигурация IPv4:
Изменить с Автоматически на вручную и нажать > Показать > Адреса > Добавить, после чего задаём IP-адрес и при необходимости шлюз и серверы DNS, после чего сохраняем изменения с помощью ОК.
Для начала можно использовать DNS сервер Yandex:(77.88.8.7)
Для применения изменений выходим в командную строку и прописываем команду:
nmcli connection up (INTERFACE)
(где INTERFACE – название вашего интерфейса, настройки которого необходимо обновить (например, ens33))
На маршрутизаторах (ISP/BR-RTR/HQ-RTR) включаем параметр, отвечающий за пересылку пакетов:
echo “net.ipv4.ip_forward=1” >> /etc/sysctl.conf
sysctl -p
Таблица IP-адресов:
Имя устройства IP-адрес Шлюз по умолчанию
ISP ens33:DHCP -----
ens34: 172.16.1.1 /28
ens35: 172.16.2.1 /28
HQ-RTR ens33: 172.16.4.2/28 ens33:172.16.1.1
ens34.vlan100:
192.168.100.1/27
ens34.vlan200:
192.168.200.1/27
ens34.vlan999:
192.168.99.1/29
BR-RTR
ens33: 172.16.5.2/28 ens:33.172.16.2.1
ens34: 172.30.100.1/28
HQ-SRV
ens33.vlan100: ens33:192.168.100.1
192.168.100.10/27
BR-SRV
ens33: 172.30.100.10/28 ens33:172.30.100.1
HQ-CLI
ens33.vlan200: DHCP DHCP
2) Настройка ISP
Настройте адресацию на интерфейсах:
● Интерфейс, подключенный к магистральному провайдеру,
получает адрес по DHCP
● Настройте маршруты по умолчанию там, где это необходимо
● Интерфейс, к которому подключен HQ-RTR, подключен к сети
172.16.1.0/28
● Интерфейс, к которому подключен BR-RTR, подключен к сети
172.16.2.0/28
● На ISP настройте динамическую сетевую трансляцию в сторону
HQ-RTR и BR-RTR для доступа к сети Интернет
НА ISP
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
3)Создание локальных учетных записей
● Создайте пользователя remote_user на серверах HQ-SRV и BR-SRV
● Пароль пользователя remote_user с паролем P@ssw0rd
● Идентификатор пользователя 2026
● Пользователь remote_user должен иметь возможность запускать sudo без дополнительной аутентификации.
useradd -m -U -s /bin/bash -u 2026 remote_user
passwd remote_user
P@ssw0rd
P@ssw0rd
echo “remote_user ALL=(ALL) NOPASSWD: ALL” >> /etc/sudoers
Создайте пользователя net_admin на маршрутизаторах HQ-RTR и BR-RTR
● Пароль пользователя net_admin с паролем P@ssw0rd
● При настройке на EcoRouter пользователь net_admin должен обладать максимальными привилегиями
● При настройке ОС на базе Linux,запускать sudo без дополнительной аутентификации
useradd -m -U -s /bin/bash net_admin
passwd net_admin
P@ssw0rd
P@ssw0rd
echo “net_admin ALL=(ALL) NOPASSWD: ALL” >> /etc/sudoers
4)Настройте на интерфейсе HQ-RTR в сторону офиса HQ
виртуальный коммутатор:
● Сервер HQ-SRV должен находиться в ID VLAN 100
● Клиент HQ-CLI в ID VLAN 200
● Создайте подсеть управления с ID VLAN 999
● Основные сведения о настройке коммутатора и выбора реализации разделения на VLAN занесите в отчёт
nmtui > Изменить подключение > Добавить > VLAN и настраиваем VLAN.
Данный шаг выполняем на HQ-RTR – ens34, HQ-SRV – ens33, HQ-CLI – cens33. (Шлюз и Серверы DNS для HQ-CLI и HQ-SRV)
5)Настройка безопасного удаленного доступа на серверах HQ-SRV и BR- SRV:
● Для подключения используйте порт 2026
● Разрешите подключения только пользователю remote_user
● Ограничьте количество попыток входа до двух
● Настройте баннер «Authorized access only»
Создаём баннер:
echo “Authorized access only” > /etc/ssh/banner.txt
Настраиваем SSH:
nano /etc/ssh/sshd_config
Port 2026
AllowUsers remote_user
MaxAuthTries 2
Banner /etc/ssh/banner.txt
Разрешаем подключение по порту 2026:
Выключаем SELinux и перезапускаем сервер:
nano /etc/selinux/config
Меняем значение на disabled:
SELINUX=disabled
перезапускаем сервер:
reboot
Перезапускаем ssh:
systemctl restart sshd
Далее с HQ-RTR и BR-RTR проверяем доступ до соответствующих серверов в своей локальной сети:
ssh -l sshuser 172.30.100.10 -p 2026
ssh -l sshuser 192.168.100.10 -p 2026
6)Между офисами HQ и BR необходимо сконфигурировать ip туннель:
• Сведения о туннеле занесите в отчёт
• На выбор технологии GRE или IP in IP
Заходим в nmtui: Стрелочка вправо – добавить; Выбираем IP-Туннель; Конфигурируем дальше по скринам (записям), не забыв изменить режим на GRE HQ-RTR:
HQ-RTR:
Имя профиля: tun0
Устройство: tun0
Режим: <GRE>
Родительский: ens33
Локальный IP: 172.16.1.2
Удаленный IP: 172.16.2.2
КОНФИГУРАЦИЯ IPv4: <Вручную>
Адреса: 10.10.10.1/30
BR-RTR:
Имя профиля: tun0
Устройство: tun0
Режим: <GRE>
Родительский: ens33
Локальный IP: 172.16.2.2
Удаленный IP: 172.16.1.2
КОНФИГУРАЦИЯ IPv4: <Вручную>
Адреса: 10.10.10.2/30
ПОСЛЕ ЭТОГО НА ОБОИХ РОУТЕРАХ ПИШЕМ:
nmcli connection modify tun0 ip-tunnel.ttl 64
И перезапускаем tunnel через nmtui (выключаем и включаем интерфейс; Проверяем пинги с двух роутеров на 10.10.10.1 и 10.10.10.2
7)Обеспечьте динамическую маршрутизацию: ресурсы одного офиса должны быть доступны из другого офиса. Для обеспечения динамической маршрутизации используйте link state протокол на ваше усмотрение.
● Разрешите выбранный протокол только на интерфейсах в ip туннеле
● Маршрутизаторы должны делиться маршрутами только друг с другом
● Обеспечьте защиту выбранного протокола посредством парольной защиты
● Сведения о настройке и защите протокола занесите в отчёт
HQ-RTR И BR-RTR:
dnf install frr
systemctl enable --now frr
nano /etc/frr/daemons
заменить no на yes в ospfd=yes
systemctl restart frr
vtysh
ДАЛЕЕ РАБОТА КАК В CISCO:
conf t
router ospf
Команды для HQ-RTR:
network 192.168.100.0/27 area 0
network 192.168.200.0/27 area 0
network 192.168.99.0/29 area 0
network 10.10.10.0/30 area 0
ospf router-id 172.16.1.2
exit
int ens33 (все тоже самое и на ens34 ,ens35)
ip opsf passive
Команды для BR-RTR
network 172.30.100.0/28 area 0
network 10.10.10.0/30 area 0
ospf router-id 172.16.2.2
int ens33 (все тоже самое и на ens34)
ip opsf passive
(Данные команды одновременно пишем в OSPF на HQ-RTR И BR-RTR, но это не точно)
area 0 authentication
exit
interface tun0
ip ospf authentication
ip ospf authentication-key P@ssw0rd
do wr
exit
exit
exit
8)Настройка динамической трансляции адресов.
● Настройте динамическую трансляцию адресов для обоих офисов.
● Все устройства в офисах должны иметь доступ к сети Интернет
НА HQ-RTR И BR-RTR:
systemctl --now enable firewalld
firewall-cmd --set-default-zone=trusted
firewall-cmd --zone=trusted --add-masquerade --permanent
systemctl restart firewalld
9)Настройка протокола динамической конфигурации хостов.
● Настройте нужную подсеть
● Для офиса HQ в качестве сервера DHCP выступает маршрутизатор HQ-RTR.
● Клиентом является машина HQ-CLI.
● Исключите из выдачи адрес маршрутизатора
● Адрес шлюза по умолчанию – адрес маршрутизатора HQ-RTR.
● Адрес DNS-сервера для машины HQ-CLI – адрес сервера HQ-SRV.
● DNS-суффикс для офисов HQ – au-team.irpo
● Сведения о настройке протокола занесите в отчёт
dnf install dhcp-server
nano /etc/dhcp/dhcpd.conf
Пишем это в файле:
subnet 192.168.200.0 netmask 255.255.255.224 {
range 192.168.200.2 192.168.200.30;
option routers 192.168.200.1;
option domain-name-servers 192.168.100.10;
option domain-name “au-team.irpo”;
}
subnet (IP-адрес сети) netmask (маска) {
range (начальный IP-адрес) (конечный IP-адрес);
option routers (шлюз по умолчанию);
option broadcast-address (широковещательный IP-адрес);
option domain-name-servers (IP-адрес DNS сервера);
option domain-name ("суффик домена");
}
systemctl enable --now dhcpd
dhcpd
Получаем адрес на HQ-CLI путём отключения и включения интерфейса ens33.vlan200.
ПРОВЕРЯЕМ НА HQ-RTR, ЧТО ЕСТЬ ЗАПИСЬ В ФАЙЛЕ, УКАЗЫВАЮЩАЯ НА ПОЛУЧЕНИЕ АДРЕС КЛИЕНТОМ:
cat /var/lib/dhcpd/dhcpd.leases
10)Настройка DNS для офисов HQ и BR.
● Основной DNS-сервер реализован на HQ-SRV.
● Сервер должен обеспечивать разрешение имён в сетевые адреса устройств и обратно в соответствии с таблицей 2
● В качестве DNS сервера пересылки используйте любой общедоступный DNS сервер
Устройство Запись Тип
HQ-RTR hq-rtr.au-team.irpo A,PTR
BR-RTR br-rtr.au-team.irpo A
HQ-SRV hq-srv.au-team.irpo A,PTR
HQ-CLI hq-cli.au-team.irpo A,PTR
BR-SRV br-srv.au-team.irpo A
ISP docker.au-team.irpo A
ISP web.au-team.irpo A
dnf install bind
nano /etc/named.conf
Изменить строчки, на которые указывают стрелочки:
options {
listen-on port 53 { any; }; <---
listen-on-06 port 53 {::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; }; <---
forwarders { 77.88.8.7; }; <---
(Вместо 77.88.8.7 ставим 10.39.0.1)
И в конец добавить:
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";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
Далее копируем файл шаблона и заполняем по скринам.
mkdir /opt/dns
cd /opt/dns
cp /var/named/named.empty au-team.irpo
nano au-team.irpo
(/opt/dns/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
docker A 172.16.1.1
web A 172.16.2.1
cp /var/named/named.empty 100.168.192.in-addr.arpa
nano 100.168.192.in-addr.arpa
(/opt/dns/100.168.192.in-addr.arpa)
$TTL 3H
@ IN SOA au-team.irpo. au-team.irpo. (
0; serial
1D; refresh
1H; retry
1W; expire
3H); minimum
NS hq-srv.au-team.irpo.
1 PTR hq-rtr
10 PTR hq-srv
cp /var/named/named.empty 200.168.192.in-addr.arpa
nano 200.168.192.in-addr.arpa
(/opt/dns/200.168.192.in-addr.arpa)
$TTL 3H
@ IN SOA au-team.irpo. au-team.irpo. (
0; serial
1D; refresh
1H; retry
1W; expire
3H); minimum
NS hq-srv.au-team.irpo.
1 PTR hq-rtr
2 PTR hq-cli
chmod -R 777 /opt/dns
ПРОВЕРЯЕМ КОНФИГУРАЦИЮ И ИСПРАВЛЯЕМ ОШИБКИ ЕСЛИ ЕСТЬ:
named-checkconf -z
systemctl restart named
Далее заходим в nmtui и меняем ДНС сервер с 77.88.8.7 (10.39.0.1) на 192.168.100.10. Так же указываем домен поиска au-team.irpo. После этого в nmtui переходим на вкладку «Активировать подключение». Выключаем и включаем интерфейс, на который ставили ДНС.
Пример:
Имя профиля: ens33
Устройство: ens33 (00:0C:29:6C:FA:98)
КОНФИГУРАЦИЯ IPv4: <Вручную>
Адреса: 172.16.1.2/28
Шлюз: 172.16.1.1
Серверы DNS: 192.168.100.10
Домены поиска: au-team.irpo
Проверяем
НА HQ-CLI И ПРОВЕРЯЕМ РАБОТОСПОБНОСТЬ
ping br-rtr
ping br-srv
ping hq-rtr
ping hq-srv
ping ya.ru
11) Настройте часовой пояс на всех устройствах, согласно месту проведения экзамена.
timedatectl set-timezone Europe/Moscow
timedatectl
(ПРОВЕРИТЬ ЗОНУ, ПО ЗАДАНИЮ ВРЕМЯ МЕНЯТЬ НЕ ПРОСЯТ)
11.3 Завершение установки и проверка
После того как все службы настроены, необходимо провести комплексное тестирование всей сетевой инфраструктуры. Начните с проверки получения IP-адреса на клиентской машине HQ-CLI по протоколу DHCP в VLAN 200.
Чек-лист для проверки работоспособности сети:
- Проверка связности между филиалами: отправьте ICMP-запросы по GRE-туннелю с роутера HQ-RTR на BR-RTR.
- Проверка работы DNS: выполните утилиту dig или nslookup на клиенте HQ-CLI для разрешения имени сервера
hq-srv.au-team.irpo. - Аудит безопасности портов: убедитесь с помощью утилиты ss, что службы SSH и DNS слушают только разрешенные интерфейсы и порты:
ss -tulnp | grep -E "2026|53"
После прохождения всех тестов сервер готов к сдаче в промышленную эксплуатацию.
РЕД АДМ
РЕД АДМ позволяет централизованно управлять инфраструктурой на базе ОС Linux и Windows, развертывать домены, управлять учетными записями пользователей и настраивать групповые политики GPO.
Инструмент включает веб-консоль для удаленного администрирования, позволяя развертывать ПО на рабочие станции без прямого физического доступа к ним.
Администраторы могут настраивать шаблоны конфигураций для разных отделов, обеспечивая гибкое разграничение доступов к принтерам и дисковым массивам.
РЕД Виртуализация
РЕД Виртуализация — это отечественное решение для построения отказоустойчивых облачных сред, управления виртуальными машинами, хранологическим размещением данных и сетевыми коммутаторами на базе KVM.
Благодаря поддержке кластеризации вы можете организовывать пулы высокой доступности для СУБД и веб-ресурсов.
Интегрирована поддержка "живой" миграции виртуальных машин между физическими хостами без приостановки выполнения задач пользователями.
СУБД в РЕД ОС
РЕД ОС обеспечивает отличную совместимость с популярными СУБД, включая защищенную версию Ред База Данных, PostgreSQL 15, MariaDB и ClickHouse. Обеспечена высокая скорость транзакций.
Для баз данных высокой емкости рекомендуется использовать файловую систему XFS с оптимизированным размером блока ввода-вывода.
Для крупных ERP-систем поставляется преднастроенная конфигурация PostgreSQL, учитывающая специфику российских учетных систем.
15.1 Общие сведения о веб-серверах и прокси
Веб-сервер — это специализированное серверное программное обеспечение, предназначенное для обработки HTTP/HTTPS запросов от клиентов (веб-браузеров) и выдачи им ответов в виде HTML-страниц, медиафайлов или текстовых данных. В экосистеме РЕД ОС основными веб-серверами являются Nginx и Apache HTTP Server (httpd).
Прокси-сервер выполняет роль посредника между клиентским устройством и конечным веб-ресурсом. Он принимает запросы от пользователей, при необходимости модифицирует их (например, кэширует статические элементы, фильтрует нежелательное содержимое, балансирует нагрузку между серверами бэкенда или маскирует реальный IP-адрес отправителя) и перенаправляет целевому серверу.
Использование веб-серверов в связке с обратными прокси-серверами (Reverse Proxy) позволяет строить высокодоступные, защищенные и легко масштабируемые сетевые архитектуры любой сложности.
15.2 Настройка и оптимизация веб-сервисов
Для достижения максимальной скорости обработки конкурентных запросов веб-серверы требуют тонкой настройки конфигурационных параметров под выделенные системные ресурсы.
Рекомендации по оптимизации Nginx:
- Параметр
worker_processes auto;позволяет автоматически распределить рабочие процессы Nginx по всем доступным ядрам центрального процессора. - Настройка пула соединений
worker_connections 1024;определяет максимальное количество одновременных подключений к одному процессу. - Включение сжатия Gzip снижает объем передаваемого трафика на 50–70%, ускоряя рендеринг у конечного пользователя.
Кэширование статических файлов (картинок, стилей, JS-скриптов) на уровне прокси-сервера позволяет значительно разгрузить бэкенд-серверы приложений и ускорить обработку динамической выдачи.
15.3 Завершение установки и проверка
1)Настройте контроллер домена Samba DC на сервере BR-SRV:
• Имя домена au-team.irpo
• Введите в созданный домен машину HQ-CLI
• Создайте 5 пользователей для офиса HQ: имена пользователей формата hquser№ (например, hquser1, hquser2 и т.д.)
• Создайте группу hq, введите в группу созданных пользователей
• Убедитесь, что пользователи группы hq имеют право аутентифицироваться на HQ-CLI
• Пользователи группы hq должны иметь возможность повышать привилегии для выполнения ограниченного набора команд: cat, grep, id.
Запускать другие команды с повышенными привилегиями пользователи группы права не имеют.
На HQ-SRV:
systemctl restart named
На BR-SRV:
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
Изменяем файл следующим образом:
(скриншот)
-----------------------------------------------------------------
[libdefaults]
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
permitted_enctypes = aes256-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 ca...
-----------------------------------------------------------------
Для этого ставим курсор на существующую строчку permitted_enctypes, нажимаем CTRL+K и три раза CTRL+U. После этого изменяем начало первых двух строчек.
Выходим из nano: нажимаем ctrl+x, затем y
samba-tool domain provision --use-rfc2307 --interactive
Жмём Enter 3 раза. Далее на моменте DNS backend пишем NONE. Затем указываем пароль администратора P@ssw0rd
(скриншот)
-----------------------------------------------------------------
samba-tool domain provision -use-rfc2307 --interactive
Realm [AU-TEAM.IRPO]:
Domain [AU-TEAM]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: NONE
Administrator password:
Retype password:
-----------------------------------------------------------------
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
nano /etc/krb5.conf
В realms добавляем kdc:
(скриншот)
-----------------------------------------------------------------
[libdefaults]
default_realm AU-TEAM.IRPO
dns_lookup_realm = false
dns_lookup_kdc = true
[realms]
AU-TEAM.IRPO = {
default_domain au-team.irpo
kdc = br-sru.au-team.irpo <---
}
[domain_realm]
br-sru = AU-TEAM.IRPO
-----------------------------------------------------------------
kdc = br-srv.au-team.irpo
Выходим из nano: нажимаем ctrl+x, затем y
systemctl enable --now samba
Если запустить службы smb nmb winbind krb5kdc, то присоединить HQCLI к домену не получится. Решение - перезапуск BR-SRV
kinit administrator@AU-TEAM.IRPO
Что должно быть на экране:
(скриншот)
-----------------------------------------------------------------
kinit administrator@AU-TEAM.IRPO
Password for administrator@AU-TEAM.IRPO:
Warning: Your password will expire in 41 days on Вт 18 ноя 2025 17:34:11
-----------------------------------------------------------------
На HQ-CLI:
echo “ au-team.irpo” >> /etc/hosts
realm join -U -v Administrator@AU-TEAM.IRPO
В конце добавления должна появиться надпись “Successfully enrolled machine in realm”
Если не получилось то:
nano /etc/krb5.conf
Приводим файл к следующему виду:
(скриншот)
-----------------------------------------------------------------
#To opt out of the system crypto-policies configuration of krb5, remove the
#symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated.
includedir /etc/krb5.conf.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
spake_preauth_groups = edwards25519
dns_canonicalize_hostname = fallback
qualify_shortname =
# default_realm = EXAMPLE.COM
default_ccache_name = KEYRING: persistent: %{uid}
udp_preference_limit = 0
default_realm = AU-TEAM.IRPO
[realms]
AU-TEAM.IRPO = {
kdc = br-srv.au-team.irpo
admin_server = br-srv.au-team.irpo
}
[domain_realm]
.au-team.irpo = AU-TEAM.IRPO
au-team.irpo = AU-TEAM.IRPO
-----------------------------------------------------------------
[realms]
AU-TEAM.IRPO = {
kdc = br-srv.au-team.irpo
admin_server = br-srv.au-team.irpo
}
[domain_realm]
.au-team.irpo = AU-TEAM.IRPO
au-team.irpo = AU-TEAM.IRPO
и дальше повторяем не получившееся действие:
realm join -U -v Administrator@AU-TEAM.IRPO
На 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
Что должно быть на экране:
(скриншот)
-----------------------------------------------------------------
samba-tool group listmembers hq
hquser2
hquser4
hquser1
hquser3
hquser5
-----------------------------------------------------------------
На HQ-CLI:
sudo -i
nano /etc/sssd/sssd.conf
[sssd]
domains au-team.irpo
config_file_version = 2
services = nss, pam
(скриншот)
-----------------------------------------------------------------
[domain/au-team.irpo]
default_shell = /bin/bash
ad_server = br-srv.au-team.irpo <-----
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = AU-TEAM.IRPO
realmd_tags = manages-system joined-with-adcli
-----------------------------------------------------------------
Дописываем в подчёркнутой строчке br-srv. (как на скриншоте)
Выходим из nano: нажимаем ctrl+x, затем y
systemctl restart sssd
Выходим из nano: нажимаем ctrl+x, затем y
Далее переходим в «Настройки» - «Сетевые учетные записи». Выбираем Kerberos, вводим administrator@AU-TEAM.IRPO и P@ssw0rd
-----------------------------------------------------------------
(скриншот)
(на графическом интерфейсе на HQ-CLI)
Учетная запись Вход в систему (Kerberos)
Вход в систему (Kerberos)
administrator@AU-TEAM.IRPO
Использовать для Сетвевые ресурсы (включенный тумблер)
(Удалить учетную запись)
-----------------------------------------------------------------
sss_cache -E
nano /etc/sudoers
Пишем в файл следующую строку:
%hq@au-team.irpo ALL=(ALL) /bin/cat, /bin/grep, /bin/id
-----------------------------------------------------------------
(скриншот)
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING,
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
%hq@au-team.irpo ALL=(ALL) /bin/cat, /bin/grep, /bin/id
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
-----------------------------------------------------------------
Выходим: нажимаем ctrl+x, затем y
Проверяем:
id hquser1@AU-TEAM.IRPO
su - hquser1@AU-TEAM.IRPO
-----------------------------------------------------------------
(скриншот)
[root@hq-cli username]# id hquser1@AU-TEAM.IRPO
uid=10601109 (hquser1@au-team.irpo) gid=10600513(domain users@au-team.irpo) группы=10600513(domain users@au-team.irpo), 10601103 (hq@au-team.irpo)
[root@hq-cli username]# su - hquser1@AU-TEAM.IRPO
Последний вход в систему: Пн окт 13 17:23:28 MSK 2025 на pts/0
[hquser1@au-team.irpo@hq-cli ~]$
выход
[root@hq-cli username]#
-----------------------------------------------------------------
sudo cat /etc/hosts | grep au-team
id
-----------------------------------------------------------------
(скриншот)
[root@hq-cli username]# su - hquser1@AU-TEAM.IRPO
Последний вход в систему: Пн окт 13 17:28:06 MSK 2025 на pts/0
[hquser1@au-team.irpo@hq-cli ~]$ sudo cat /etc/hosts | grep au-team
172.30.100.2 au-team.irpo
[hquser1@au-team.irpo@hq-cli ~]$ id
uid=10601109 (hquser1@au-team.irpo) gid=10600513(domain users@au-team.irp
о) группы=10600513(domain users@au-team.irpo), 10601103 (hq@au-team.irpo)
контекст=unconfined_u:unconfined_r:unconfined_t:so-s0:co.c1023
[hquser1@au-team.irpo@hq-cli ~]$
выход
[root@hq-cli username]#
-----------------------------------------------------------------
2)Сконфигурируйте файловое хранилище на сервере HQ-SRV:
• При помощи двух подключенных к серверу дополнительных дисков
размером 1 Гб сконфигурируйте дисковый массив уровня 0
• Имя устройства – md0, при необходимости конфигурация массива
размещается в файле /etc/mdadm.conf
• Создайте раздел, отформатируйте раздел, в качестве файловой системы
используйте ext4
• Обеспечьте автоматическое монтирование в папку /raid
На HQ-SRV:
Проверяем наличие дисков командой. Должны быть sdb, sdc:
lsblk
-----------------------------------------------------------------
(скриншот)
[root@hq-sru ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 20G 0 disk
-sda1 8:1 0 1M 0 part
-sda2 8:2 0 1G 0 part /boot
-sda3 8:3 0 2G 0 part [SWAP]
-sda4 8:4 0 17G 0 part /
sdb 8:16 0 1G 0 disk <---
sdc 8:32 0 1G 0 disk <---
sr0 11:0 1 4,4G 0 rom
zram0 252:0 0 3,8G 0 disk [SWAP]
[root@hq-sru ~]#
-----------------------------------------------------------------
Форматируем диски:
fdisk /dev/sdb
g
n
Жмём Enter 3 раза
w
Аналогично для диска sdc
Должно получиться так:
-----------------------------------------------------------------
(скриншот)
[root@hq-sru ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 20G 0 disk
-sda1 8:1 0 1M 0 part
-sda2 8:2 0 1G 0 part /boot
-sda3 8:3 0 2G 0 part [SWAP]
-sda4 8:4 0 17G 0 part /
sdb 8:16 0 1G 0 disk
-sdb1 8:17 0 1022M 0 part <---
sdc 8:32 0 1G 0 disk
-sdc1 8:33 0 1022M 0 part <---
sr0 11:0 1 4,4G 0 rom
zram0 252:0 0 3,8G 0 disk [SWAP]
[root@hq-sru ~]#
-----------------------------------------------------------------
mdadm --create /dev/md0 --level=0 --raid-device=2 /dev/sdb1 /dev/sdc1
Далее проверяем, у md0 в типе должно быть написано raid0
-----------------------------------------------------------------
(скриншот)
[root@hq-sru ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 20G 0 disk
-sda1 8:1 0 1M 0 part
-sda2 8:2 0 1G 0 part /boot
-sda3 8:3 0 2G 0 part [SWAP]
-sda4 8:4 0 17G 0 part /
sdb 8:16 0 1G 0 disk
-sdb1 8:17 0 1022M 0 part
-md0 9:0 0 2G 0 radi0 <-----
sdc 8:32 0 1G 0 disk
-sdc1 8:33 0 1022M 0 part
-md0 9:0 0 2G 0 radi0 <-----
sr0 11:0 1 4,4G 0 rom
zram0 252:0 0 3,8G 0 disk [SWAP]
[root@hq-sru ~]#
-----------------------------------------------------------------
mdadm --detail --scan --verbose >> /etc/mdadm.conf
mkfs.ext4 /dev/md0
mkdir /raid
nano /etc/fstab
В конец добавляем следующую строчку:
-----------------------------------------------------------------
(скриншот)
#/etc/fstab
#Created by anaconda on Wed Sep 4 14:28:47 2024
#
#Accessible filesystems, by reference, are maintained under '/dev/disk/'
#See man pages fstab (5), findfs(8), mount (8) and/or blkid(8) for more info.
#
#After editing this file, run 'systemctl daemon-reload' to update systend
#units generated from this file.
#
UUID=17edef9e-a50e-42b3-b70c-b95ffc8a7845 / ext4 defaults 1 1
UUID=42507379-de96-4b77-820e-aec6b82caeb5 /boot ext4 defaults 1 2
UUID=ad6593ae-4f04-429e-8909-794a01660015 none swap defaults 0 0
/dev/md0 /raid ext4 defaults 0 0
-----------------------------------------------------------------
/dev/md0 /raid ext4 defaults 0 0
Выходим из nano: нажимаем ctrl+x, затем y
systemctl daemon-reload
mount -a
df -h
Должна быть строчка с примонтированной директорией /raid:
-----------------------------------------------------------------
(скриншот)
[root@hq-sru dns]# df -h
Файловая система Размер Использовано Дост Использовано% Смонтировано в
deutmpfs 4,0M 0 4,0M 0% /dev
tmpfs 2,0G 0 2,0G 0% /dev/shm
tmpfs 784M 3,2M 781M 1% /run
/dev/sda4 17G 4,2G 12G 27% /
tmpfs 2,0G 0 2,0G 0% /tmp
/dev/sda2 974M 165M 742M 19% /boot
tmpfs 392M 4,0K 392M 1% /run/user/0
/dev/md0 2,0G 24K 1,9G 1% /raid
-----------------------------------------------------------------
3)Настройте сервер сетевой файловой системы (nfs) на HQ-SRV:
• В качестве папки общего доступа выберите /raid/nfs, доступ для чтения и записи исключительно для сети в сторону HQ-CLI
• На HQ-CLI настройте автомонтирование в папку /mnt/nfs
• Основные параметры сервера отметьте в отчёте
На HQ-SRV:
dnf install nfs4-acl-tools -y
mkdir /raid/nfs
chown nobody:nobody /raid/nfs
chmod 777 /raid/nfs
nano /etc/exports
Добавляем в него следующую строчку:
/raid/nfs 192.168.200.0/27(rw) 192.168.100.1(rw)
Прописываем на всякий случай 192.168.100.1(rw), так как на HQ-RTR включен NAT на все интерфейсы и происходит подмена 192.168.200.2 на 192.1689.100.1
Выходим из nano: нажимаем ctrl+x, затем y
exportfs -a
systemctl enable --now nfs-server
Переходим на HQ-CLI:
mkdir /mnt/nfs
nano /etc/fstab
Добавляем в конец следующую строчку:
:/raid/nfs /mnt/nfs nfs auto 0 0
-----------------------------------------------------------------
(скриншот)
#/etc/fstab
#Created by anaconda on Wed Sep 4 14:28:47 2024
#
#Accessible filesystems, by reference, are maintained under '/dev/disk/'
#See man pages fstab (5), findfs(8), mount (8) and/or blkid(8) for more info.
#
#After editing this file, run 'systemctl daemon-reload' to update systend
#units generated from this file.
#
UUID=17edef9e-a50e-42b3-b70c-b95ffc8a7845 / ext4 defaults 1 1
UUID=42507379-de96-4b77-820e-aec6b82caeb5 /boot ext4 defaults 1 2
UUID=ad6593ae-4f04-429e-8909-794a01660015 none swap defaults 0 0
192.1689.100.10:/raid/nfs /mnt/nfs nfs auto 0 0
-----------------------------------------------------------------
4)Настройте службу сетевого времени на базе сервиса chrony на
маршрутизаторе ISP:
• Вышестоящий сервер ntp на маршрутизаторе ISP - на выбор участника
• Стратум сервера - 5
• В качестве клиентов ntp настройте: HQ-SRV, HQ-CLI, BR-RTR, BR-SRV.
На ISP:
nano /etc/chrony.conf
Добавляем # к трём любым строчкам, начинающимся с server ntp и
дописываем ещё три строчки как на скриншоте:
-----------------------------------------------------------------
(скриншот)
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
server ntp1.uniiftri.ru iburst
#server ntp2.uniiftri.ru iburst
#server ntp3.uniiftri.ru iburst
#server ntp4.uniiftri.ru iburst
local stratum 5
allow 0/0
hwtimestamp *
-----------------------------------------------------------------
local stratum 5
allow 0/0
hwtimestamp *
Выходим из nano: нажимаем ctrl+x, затем y
systemctl restart chronyd
chronyc sources
-----------------------------------------------------------------
[root@isp ~]# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
======================================================================
^* ntp1.uniiftri.ru 1 6 17 57 -237us[ -893] +/- 9217us
[root@isp ~]#
-----------------------------------------------------------------
На HQ-SRV, HQ-CLI, BR-RTR, BR-SRV:
nano /etc/chrony.conf
Комментируем все сервера и добавляем созданный:
-----------------------------------------------------------------
(скриншот)
#server ntp1.uniiftri.ru iburst
#server ntp2.uniiftri.ru iburst
#server ntp3.uniiftri.ru iburst
#server ntp4.uniiftri.ru iburst
server 172.16.4.1 iburst prefer
-----------------------------------------------------------------
server iburst prefer
Выходим из nano: нажимаем ctrl+x, затем y
systemctl restart chronyd
chronyc sources
-----------------------------------------------------------------
(скриншот)
[root@isp ~]# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
======================================================================
^* ntp1.uniiftri.ru 2 6 1 1 -128us[ -120] +/- 10ms
[root@isp ~]#
-----------------------------------------------------------------
5)Сконфигурируйте ansible на сервере BR-SRV:
• Сформируйте файл инвентаря, в инвентарь должны входить HQ-SRV, HQCLI, HQ-RTR и BR-RTR
• Рабочий каталог ansible должен располагаться в /etc/ansible
• Все указанные машины должны без предупреждений и ошибок отвечать pong на команду ping в ansible посланную с BR-SRV.
На BR-SRV:
nano /etc/ansible/demo.ini
Пишем в файл:
-----------------------------------------------------------------
(скриншот)
[HQ-SRV]
192.168.100.10 ansible_user=sshuser ansible_port=2024
[HQ-CLI]
192.168.200.2 ansible_user=username
[HQ-RTR]
192.168.100.1 ansible_user=net_admin
[BR-RTR]
172.30.100.1 ansible_user=net_admin
-----------------------------------------------------------------
[HQ-SRV]
ansible_user=sshuser ansible_port=2026
[HQ-CLI]
ansible_user=username
[HQ-RTR]
ansible_user=net_admin
[BR-RTR]
ansible_user=net_admin
Выходим из nano: нажимаем ctrl+x, затем y
ssh-keygen -t rsa
Жмём Enter всегда до конца выполнения команды
Далее копируем ключи. На вопрос с сохранением отпечатка пишем yes, все пароли – P@ssw0rd
ssh-copy-id -p 2026 sshuser@
ssh-copy-id username@
ssh-copy-id net_admin@
ssh-copy-id net_admin@
Составляем конфигурационный файл:
nano /etc/ansible/ansible.cfg
-----------------------------------------------------------------
(скриншот)
# For previous versions of Ansible you
# Note that this file was always incom
# for example, for 2.9: https://github
[defaults]
Inventory = /etc/ansible/demo.ini
ask_pass = False
host_ket_cheking = False
interpreter_python=/usr/bin/python
-----------------------------------------------------------------
[defaults]
Inventory = /etc/ansible/demo.ini
ask_pass = False
host_ket_cheking = False
interpreter_python=/usr/bin/python
Выходим из nano: нажимаем ctrl+x, затем y
ansible -m ping all
Вывод должен быть следующим:
-----------------------------------------------------------------
(скриншот)
[root@br-sro username]# ansible -m ping all
HQ-CLI I SUCCESS => {
"changed": false,
"ping": "pong"
}
BR-RTR | SUCCESS => {
"changed": false,
"ping": "pong"
}
HQ-SRU I SUCCESS => {
"changed": false,
"ping": "pong"
}
HQ-RTR | SUCCESS => {
changed: false,
"ping": "pong"
}
HQ-SRV I SUCCESS => {
"changed": false,
"ping": "pong"
}
HQ-RTR | SUCCESS => {
"changed": false,
"ping": "pong"
}
[root@br-sru username]#
-----------------------------------------------------------------
6)Разверните веб приложение в docker на сервере BR-SRV:
• Средствами docker должен создаваться стек контейнеров с вебприложением и базой данных
• Используйте образы site_latest и mariadb_latest, располагающиеся в директории docker в образе Additional.iso
• Основной контейнер testapp должен называться testapp
• Контейнер с базой данных должен называться db
• Импортируйте образы в docker, укажите в yaml файле параметры подключения к СУБД, имя БД -testdb, пользователь test с паролем P@ssw0rd, порт приложения 8080, при необходимости другие параметры
• Приложение должно быть доступно для внешних
подключений через порт 8080
На BR-SRV:
Перед развертыванием выполняем монтирование ISO образа с необходимыми Docker-образами.
Для этого переходим через VMWare WorkStation в настройки виртуальной машины. Там выбираем CD/DVD driver 1 > Use ISO image file > Browse > Additional.iso > Open > OK.
Выходит уведомление, соглашаемся
После этого заново заходим в настройки BR-SRV, выбираем CD/DVD driver 1 > Connected > OK.
На BR-SRV:
mount /dev/cdrom /mnt
dnf install docker-ce docker-compose –y
systemctl enable --now docker
docker --version
docker load < /mnt/docker/site_latest.tar
docker load < /mnt/docker/mariadb_latest.tar
Проверка:
docker images
-----------------------------------------------------------------
(скриншот)
[root@br-sru ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
site latest 27cd88ea6100 3 months ago 347MB
mariadb latest dace79266a80 4 months ago 326MB
[root@br-srv ~]#
-----------------------------------------------------------------
nano site.yml
-----------------------------------------------------------------
(скриншот)
services:
db:
image: mariadb
container_name: db
environment:
MARIADB_ROOT_PASSWORD: P@ssw0rd
MARIADB_DATABASE: testdb
MARIADB_USER: test
MARIADB_PASSWORD: P@ssw0rd
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: P@ssw0rd
DB_PORT: 3306
ports:
- "8080:8000"
depends_on:
- db
restart: unless-stopped
volumes:
db_data:
-----------------------------------------------------------------
services:
db:
image: mariadb
container_name: db
environment:
MARIADB_ROOT_PASSWORD: P@ssw0rd
MARIADB_DATABASE: testdb
MARIADB_USER: test
MARIADB_PASSWORD: P@ssw0rd
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: P@ssw0rd
DB_PORT: 3306
ports:
- "8080:8000"
depends_on:
- db
restart: unless-stopped
volumes:
db_data:
Выходим из nano: нажимаем ctrl+x, затем y
docker-compose -f site.yml up -d
На HQ-CLI:
Открываем браузер и заходим на :8080
-----------------------------------------------------------------
(скриншот)
На скринщоте показан сайт, который находиться на BR-SRV
На самом сайте должно быть написано "Очень нужный и важный сайт"
-----------------------------------------------------------------
7)Разверните веб приложение на сервере HQ-SRV:
• Используйте веб-сервер apache
• В качестве системы управления базами данных используйте mariadb
• Файлы веб приложения и дамп базы данных находятся в директории web образа Additional.iso
• Выполните импорт схемы и данных из файла dump.sql в базу данных webdb
• Создайте пользователя web с паролем P@ssw0rd и предоставьте ему права доступа к этой базе данных
• Файлы index.php и директорию images скопируйте в каталог веб сервера apache
• В файле index.php укажите правильные учётные данные для подключения к БД
• Запустите веб сервер и убедитесь в работоспособности приложения
• Основные параметры отметьте в отчёте
На HQ-SRV:
Перед развертыванием выполняем монтирование ISO образа с
необходимыми Docker-образами. Для этого переходим через VMWare
WorkStation в настройки виртуальной машины. Там выбираем CD/DVD driver 1 > Use ISO image file > Browse > Additional.iso > Open < OK.
Выходит уведомление, соглашаемся
После этого заново заходим в настройки HQ-SRV, выбираем CD/DVD driver 1 > Connected > OK
На HQ-SRV:
mount /dev/cdrom /mnt
dnf install mariadb-server httpd php php-mysqlnd php-cli -y
systemctl enable --now mariadb httpd
Для проверки на hq-cli открываем в браузере
-----------------------------------------------------------------
(скриншот)
На скринщоте показан сайт, который находиться на HQ-SRV
На самом сайте должно быть написано "RedOS Test Page"
и еще маленькими буквами "Red OS Apacher HTTP Server"
-----------------------------------------------------------------
mysql_secure_installation
P@ssw0rd
n
n
y
y
y
y
-----------------------------------------------------------------
(скриншот)
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'
Switch to unix socket authentication [Y/n] n
. . . skipping.
You already have your root account protected, so you can safely answer 'n'
Change the root password? [Y/n] n
. . . skipping.
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
. . . Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
. . . Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
. . . Success!
- Removing privileges on test database...
. . . Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect innediately.
Reload privilege tables now? [Y/n] y
. . . Success!
Cleaning up..
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
[root@hq-sru dns]#
-----------------------------------------------------------------
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
Меняем значения как на скриншоте:
-----------------------------------------------------------------
(скриншот)
-----------------------------------------------------------------
(скриншот)
На скринщоте показан сайт, который находиться на HQ-SRV
На самом сайте должно быть написано "Задание 7 модуль 2 База данных сотрудников"
-----------------------------------------------------------------
8)На маршрутизаторах сконфигурируйте статическую трансляцию портов:
• Пробросьте порт 8080 в порт приложения testapp BR-SRV на маршрутизаторе BR-RTR, для обеспечения работы приложения testapp извне
• Пробросьте порт 8080 в порт веб приложения на HQ-SRV на маршрутизаторе HQ-RTR, для обеспечения работы веб приложения извне
• Пробросьте порт 2026 на маршрутизаторе HQ-RTR в порт 2026 сервера HQ-SRV, для подключения к серверу по протоколу ssh из внешних сетей
• Пробросьте порт 2026 на маршрутизаторе BR-RTR в порт 2026 сервера BRSRV, для подключения к серверу по протоколу ssh из внешних сетей.
На BR-RTR:
iptables -t nat -A PREROUTING -p tcp -m tcp -d /28
--dport 8080 -j DNAT --to-destination :8080
iptables -t nat -A PREROUTING -p tcp -m tcp -d /28
--dport 2026 -j DNAT --to-destination :2026
iptables-save > /etc/sysconfig/iptables
НО ТАК КАК МФ ИСПОЛЬЗОВАЛИ НА ДАННЫХ МАРШРУТИЗАТОРАХ FIREWALLD, ТО ЛУЧШЕ ПРОКИДЫВАТЬ ПОРТЫ ЧЕРЕЗ НЕГО ЖЕ:
(ДОВОЛЬНО СЛОЖНО В НАСТРОЙКЕ, НЕ РЕКОМЕНДУЕТСЯ)
firewall-cmd --permanent --zone=trused --add-forward-port=port=8080:proto=tcp:toport=8080:toaddr=
firewall-cmd --permanent --zone=trused --add-forward-port=port=2026:proto=tcp:toport=2026:toaddr=
firewall-cmd --reload
На hq-cli в браузере открываем :8080, должен открыться сайт как в задании 6.
Пробуем подключиться по ssh, должно подключить к br-srv:
ssh sshuser@ -p 2026
-----------------------------------------------------------------
(скриншот)
[root@hq-sru html]# ssh sshuser@172.16.2.2 -p 2026
The authenticity of host '[172.16.2.21:2026 ([172.16.2.21:2026)' can't be established.
ED25519 key fingerprint is SHA256: IpWsP9g5GBCJ5Ma4/QnsEkA3KpJBgwZQuWKi GEyr jGU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added [172.16.2.21:2026' (ED25519) to the list of known hosts.
Authorized access only
sshuser@172.16.2.2's password:
Last login: Mon Oct 6 18:25:14 2025 from 172.30.100.1
Isshuser@br-sru ~]$
-----------------------------------------------------------------
На HQ-RTR:
iptables -t nat -A PREROUTING -p tcp -m tcp -d /28 --
dport 8080 -j DNAT --to-destination :80
iptables -t nat -A PREROUTING -p tcp -m tcp -d /28 --
dport 2026 -j DNAT --to-destination :2026
iptables-save > /etc/sysconfig/iptables
НО ТАК КАК МФ ИСПОЛЬЗОВАЛИ НА ДАННЫХ МАРШРУТИЗАТОРАХ FIREWALLD, ТО ЛУЧШЕ ПРОКИДЫВАТЬ ПОРТЫ ЧЕРЕЗ НЕГО ЖЕ:
(ДОВОЛЬНО СЛОЖНО В НАСТРОЙКЕ, НЕ РЕКОМЕНДУЕТСЯ)
firewall-cmd --permanent --zone=trused --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=
firewall-cmd --permanent --zone=trused --add-forward-port=port=2026:proto=tcp:toport=2026:toaddr=
firewall-cmd --reload
На hq-cli в браузере открываем :8080, должен
открыться сайт как в задании 7.
Пробуем подключиться по ssh, должно подключить к hq-srv:
ssh sshuser@ -p 2026
-----------------------------------------------------------------
(скриншот)
[root@br-rtr "1# ssh sshuser@172.16.1.2 -p 2026
The authenticity of host '[172.16.1.2]:2026 ([172.16.1.2]:2026)' can't be established.
ED25519 key fingerprint is SHA256:6uaZ3S+jzL13QaaA+yw/yw8w14YQ03K7QP30hGXIr6o.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[172.16.1.21:2026' (ED25519) to the list of known hosts.
Authorized access only
sshuser@172.16.1.2's password:
Last login: Wed Oct 8 19:08:20 2025 from 192.168.100.1
[sshuser@hq-sru ~]$
-----------------------------------------------------------------
9)Настройте веб-сервер nginx как обратный прокси-сервер на ISP
• При обращении по доменному имени web.au-team.irpo у клиента должно открываться веб приложение на HQ-SRV
• При обращении по доменному имени docker.au-team.irpo клиента должно открываться веб приложение testapp
На ISP:
dnf install nginx -y
systemctl enable --now nginx
nano /etc/nginx/nginx.conf
В файле комментируем созданный по умолчанию сервер и добавляем в
него 2 других, как показано на рисунке:
-----------------------------------------------------------------
(скриншот)
# server {
# listen 80;
# listen [::]:80;
# server_name _;
# root /usr/share/nginx/html;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
# }
server {
listen 80;
server_name docker.au-team.irpo;
location / {
proxy_pass http://172.16.5.2:8080;
}
}
server {
listen 80:
server_name web.au-team.irpo;
location / {
proxy_pass http://172.16.4.2:8080;
}
}
-----------------------------------------------------------------
server {
listen 80;
server_name docker.au-team.irpo;
location / {
proxy_pass http://172.16.5.2:8080;
}
}
server {
listen 80:
server_name web.au-team.irpo;
location / {
proxy_pass http://172.16.4.2:8080;
}
}
Выходим из nano: нажимаем ctrl+x, затем y
systemctl restart nginx
nano /etc/selinux/config
Меняем параметр SELINUX на disabled
Выходим из nano: нажимаем ctrl+x, затем y
reboot
На hq-cli в браузере открываем docker.au-team.irpo, должен открыться сайт
из задания 6, открываем web.au-team.irpo, там сайт из задания 7
10)На маршрутизаторе ISP настройте web-based аутентификацию:
• При обращении к сайту web.au-team.irpo клиенту должно быть предложено ввести аутентификационные данные
• В качестве логина для аутентификации выберите WEB с паролем P@ssw0rd
• Выберите файл /etc/nginx/.htpasswd в качестве хранилища учётных записей
• При успешной аутентификации клиент должен перейти на веб сайт.
На ISP:
dnf install httpd-tools -y
htpasswd -c /etc/nginx/.htpasswd WEB
P@ssw0rd
P@ssw0rd
nano /etc/nginx/nginx.conf
Добавляем строчки auth_basic как на скриншоте:
-----------------------------------------------------------------
(скриншот)
# server {
# listen 80;
# listen [::]:80;
# server_name _;
# root /usr/share/nginx/html;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
# }
server {
listen 80;
server_name docker.au-team.irpo;
location / {
proxy_pass http://172.16.5.2:8080;
}
}
server {
listen 80:
server_name web.au-team.irpo;
location / {
auth basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://172.16.4.2:8080;
}
}
-----------------------------------------------------------------
auth_basic “Restricted Content”;
auth_basic_user_file /etc/nginx/.htpasswd;
Выходим из nano: нажимаем ctrl+x, затем y
nginx -t
-----------------------------------------------------------------
(скриншот)
[root@isp ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@isp ~]#
-----------------------------------------------------------------
systemctl restart nginx
На hq-cli в браузере открываем web.au-team.irpo, вводим логин WEB и пароль P@ssw0rd, должен открыться сайт из задания 7
-----------------------------------------------------------------
(скриншот)
Вход
http://web.au-team.irpo
Подключение к сайту не защищено
Имя пользователя:
Пароль:
Отмена Вход
-----------------------------------------------------------------
11)Удобным способом установите приложение Яндекс Браузер на HQ-CLI
• Установку браузера отметьте в отчёте.
На HQ-CLI:
Заходим в «Окно настройки РЕДОС», переходим во вкладку «Партнерские приложения» и нажимаем на Яндекс браузер.
После загрузки нажимаем на клавишу WIN и выбираем «Другие приложения». Переходим на вторую страницу и запускаем браузер.
Средства разработки
Для программистов доступны компиляторы GCC, Clang, интерпретаторы Python 3, PHP, Node.js, а также популярные средства контроля версий (Git) и сборщики проектов.
Все компиляторы оптимизированы для сборки бинарных файлов под российские процессоры «Эльбрус» и «Байкал».
Поддерживается интеграция со средами разработки Eclipse, VS Code и IntelliJ IDEA.
17.1 Основные понятия
1)Выполните импорт пользователей в домен au-team.irpo:
• В качестве файла источника выберите файл users.csv располагающийся в образе Additional.iso
• Пользователи должны быть импортированы со своими паролями и другими атрибутами
• Убедитесь, что импортированные пользователи могут войти на машину HQ-CLI
Выполняем импортирование пользователей на сервере BR-SRV:
Монтируем образ Additional.iso:
mount /dev/cdrom /mnt
Проверяем, что users.csv имеет данные:
cat /mnt/Users.csv
Создаём файл import.sh и пишем скрипт для быстрого импорта данных:
nano import.sh
#!/bin/bash
tail -n +2 /mnt/Users.csv | while IFS=';' read -r firstName lastName _ _ ou _ _ _ _ password
do
samba-tool ou create "OU=$ou"
samba-tool user create "${firstName}${lastName}" "P@ssw0rd1" \
--userou="OU=$ou"
done
(скриншот)
-----------------------------------------------------------------
#!/bin/bash
tail -n +2 /mnt/Users.csv | while IFS=';' read -r firstName lastName _ _ ou _ _ _ _ password
do
samba-tool ou create "OU=$ou"
samba-tool user create "${firstName}${lastName}" "P@ssw0rd1" \
--userou="OU=$ou"
done
-----------------------------------------------------------------
Выдаём файлу права на исполнение:
chmod +x import.sh
./import.sh
На HQ-CLI попробовать зайти по данным:
Логин: MalachiAlexander@au-team.irpo
Пароль: P@ssw0rd1
2)Выполните настройку центра сертификации на базе HQ-SRV:
• Необходимо использовать отечественные алгоритмы шифрования
• Сертификаты выдаются на 30дней
• Обеспечьте доверие сертификату для HQ-CLI
• Выдайте сертификаты веб серверам
• Перенастройте ранее настроенный реверсивный прокси nginx на протокол https
• При обращении к веб серверам https://web.au-team.irpo и https://docker.au-team.irpo у браузера клиента не должно возникать предупреждений.
Центра сертификации необходимо развернуть на HQ-SRV:
Устанавливаем пакет openssl-gost-engine, обеспечивающий поддержку алгоритмов ГОСТ:
dnf install openssl-gost-engine
Активируем поддержку ГОСТ в openssl:
openssl-switch-config gost
Применяем модуль политики, определяющий используемые методы шифрования ГОСТ:
update-crypto-policies --set GOST-ONLY:GOST
Проверяем используемую в системе политики шифрования:
update-crypto-policies --show
Генерируем закрытый ключ для удостоверяющего центра:
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out CA.key
Создаем самоподписанный корневой сертификат (Root CA):
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"
Генерируем закрытый ключ для веб-серверов:
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out au-team.irpo.key
Создаём файл расширений:
nano 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
(скриншот)
-----------------------------------------------------------------
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
-----------------------------------------------------------------
Создаем запрос на сертификат (CSR):
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
Создаём папку для хранения и дальнейшего переноса сертификатов:
mkdir -p /home/sshuser/certs
Копируем в папку файлы:
cp fullchain.crt /home/sshuser/certs
cp au-team.irpo.key /home/sshuser/certs
cp CA.crt /home/sshuser/certs
Редактируем права на файлы:
chmod 755 -R /home/sshuser/certs
Теперь необходимо произвести настройку nginx на ISP, чтобы сайты работали по https:
Устанавливаем пакет openssl-gost-engine, обеспечивающий поддержку алгоритмов ГОСТ:
dnf install openssl-gost-engine
Активируем поддержку ГОСТ в openssl:
openssl-switch-config gost
Применяем модуль политики, определяющий используемые методы шифрования ГОСТ:
update-crypto-policies --set GOST-ONLY:GOST
Проверяем используемую в системе политики шифрования:
update-crypto-policies --show
Создаём папку для хранения сертификатов:
mkdir -p /etc/ssl/site
Копируем сертификаты:
scp -P 2026 sshuser@172.16.1.2:/home/sshuser/certs/* /etc/ssl/site
Редактируем файл nginx.conf и добавляем серверы https после http серверов:
server {
listen 443 ssl;
server_name docker.au-team.irpo;
ssl_certificate /etc/ssl/site/fullchain.crt;
ssl_certificate_key /etc/ssl/site/au-team.irpo.key;
ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH:MEDIUM;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://172.16.2.2:8080;
}
}
server {
listen 443 ssl;
server_name web.au-team.irpo;
ssl_certificate /etc/ssl/site/fullchain.crt;
ssl_certificate_key /etc/ssl/site/au-team.irpo.key;
ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH:MEDIUM;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://172.16.1.2:8080;
}
}
(скриншот)
-----------------------------------------------------------------
server {
listen 443 ssl;
server_name docker.au-team.irpo;
ssl_certificate /etc/ssl/site/fullchain.crt;
ssl_certificate_key /etc/ssl/site/au-team.irpo.key;
ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH:MEDIUM;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://172.16.2.2:8080;
}
}
server {
listen 443 ssl;
server_name web.au-team.irpo;
ssl_certificate /etc/ssl/site/fullchain.crt;
ssl_certificate_key /etc/ssl/site/au-team.irpo.key;
ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH:MEDIUM;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://172.16.1.2:8080;
}
}
-----------------------------------------------------------------
Проверяем, что конфиг без ошибок:
nginx -t
Если команда не выдала ошибок, то перезапускаем сервис:
systemctl restart nginx
Теперь необходимо произвести настройку на HQ-CLI:
Монтируем Additional.iso:
mount /dev/cdrom /mnt
Копируем файлы КриптоПро для открытия сайтов с сертификатами ГОСТ:
cp -r /mnt/cryptopro/linux-amd64/ .
Копируем корневой сертификат для дальнейшей установки для доверии браузера работы по https:
scp -P 2026 sshuser@192.168.100.2:/home/sshuser/certs/CA.crt /home/username
Выдаём права на исполнение исполняемых файлов:
chmod +x linux-amd64/*.sh
Запускаем установку графической версии КриптоПро:
./linux-amd64/install_gui.sh
Открывается установщик КриптоПро, нажимаем далее:
(скриншот)
-----------------------------------------------------------------
Установщик КриптоПро СЅР
Добро пожаловать в мастер установки КриптоПро СЅР
Мастер установки позволит установить, переустановить и удалить КриптоПро CSP с компьютера. Нажмите Далее для продолжения или Выход для выхода из мастера установки.
<Далее><--- <Выход>
-----------------------------------------------------------------
Здесь необходимо выбрать все пакеты с помощью пробел и нажимаем далее:
(скриншот)
-----------------------------------------------------------------
Установщик КриптоПро СЅР
Выберите набор для установки.
Не устанавливайте пакеты без необходимости: это усложнит настройку и может снизить производительность.
[*] Криптовалютный провайдер KSI
[*] Провайдер КС2 (только по необходимости)
[*] Графические диалоги
[*] cptools, многоцелевое графическое приложение
[*] Поддержка токенов и смарт-карт
[*] Браузерный плагин CADES
[*] Библиотека РКСЅ #11 (для gosuslugi.ru)
[*] Импортировать корневые сертификаты из ОС
<Далее><--- <Выход>
-----------------------------------------------------------------
Начинаем установку пакетов КриптоПро:
(скриншот)
-----------------------------------------------------------------
Установщик КриптоПро СЅР
Будут установлены:
* Криптопровайдер КС1
* Криптопровайдер КС2
* Графические диалоги
* cptools, многоцелевое графическое приложение
* Поддержка токенов и смарт-карт
* Браузерный плагин + CADES
* Библиотека РКСЅ #11 (для gosuslugi.ru)
* Импортировать корневые сертификаты из ОС
* stunnel, SSL/TLS туннель с поддержкой ГОСТ
Нажмите Установить, чтобы начать установку. Чтобы вернуться и изменить
настройки, нажмите Назад.
<Установить><--- <Назад>
-----------------------------------------------------------------
В процесс установки необходимо подтвердить установку пакетов:
(скриншот)
-----------------------------------------------------------------
Результат транзакции
--------------------------
--------------------------
Установка 29 Пакетов
Общий размер: 23 М
Объем изменений: 100 M
Продолжить? [д/Н]: у
-----------------------------------------------------------------
После окончательной установки пакетов, КриптоПро будет успешно установлен.
(скриншот)
-----------------------------------------------------------------
Установщик КриптоПро СЅР
Пакеты КриптоПро СЅР успешно установлены
<Ок><---
-----------------------------------------------------------------
При запросе лицензионного ключа, выбираем позже:
(скриншот)
-----------------------------------------------------------------
Установщик КриптоПро СЅР
Хотите ввести лицензионный ключ сейчас или сделать это позже?
<Ввести лицензию> <Позже><---
-----------------------------------------------------------------
Выходим из установщика:
(скриншот)
-----------------------------------------------------------------
Установщик КриптоПро СЅР
Выберите операцию, которую нужно выполнить.
Переустановить пакеты КриптоПро СЅР
Удалить пакеты КриптоПро CSP
Ввести или проверить лицензию
<Выбрать> <Выход><---
-----------------------------------------------------------------
Находим приложение «Инструменты КриптоПро» и запускаем его:
(скриншот)
-----------------------------------------------------------------
Показан экран на котором обведена программа "Инструменты КриптоПро"
-----------------------------------------------------------------
После открытия приложения необходимо перемещать мышь в окне или нажимать клавиши для генерации случайной последовательности:
(скриншот)
-----------------------------------------------------------------
Показан экран на котором открыто окно:
КриптоПро CSP
Перемещайте указатель мыши в окне или клавиши для генерации случайной последовательности
-----------------------------------------------------------------
Добавляем корневой сертификат во вкладку «Сертификаты», выбрав хранилище сертификатов «Доверенные корневые центры сертификации» и «Устанавливаем сертификат».
(скриншот)
-----------------------------------------------------------------
Доверенные корневые центры сертификации v
...
...
Контейнеры
Сертификаты <---
Создание подписи
...
...
Установить сертификаты <---
-----------------------------------------------------------------
И добавляем сертификат центра, который копировали ранее:
(скриншот)
-----------------------------------------------------------------
На экране показано добавление сертификата "CA.crt"
-----------------------------------------------------------------
Выйдет уведомление о добавление сертификата, нажимаем «ОК».
(скриншот)
-----------------------------------------------------------------
КриптоПро CSP
Внимание: установка корневого сертификата с неподтвержденным отпечатком
представляет риск для безопасности. Вы хотите установить этот сертификат?
Субъект: МСК-KTITS CA Root
Отпечаток (sha1): 83E735CFD8614C74C234D2D1135557C6D9ADA27B
<ОК> <Отмена>
-----------------------------------------------------------------
Проверяем наличие сертификата в хранилище:
(скриншот)
-----------------------------------------------------------------
Имя субъекта Имя издателя Срок действия Серийный номер
MCK-KTITS CA Root MCK-KTITS CA Root 15/02/2027 617993284cd2c77ff967e234233f99...
vTrus Root CAvTrus Root CA 31/07/2043 43e37113d8b359145db7ce8cfd35fd...
VTrus ECC Root CAVTrus ECC Root CA 31/07/2043 6e6abc59aa53be983967a2d26ba4...
-----------------------------------------------------------------
Запускаем браузер Яндекс.Браузер и проверяем сайты https://web.au-team.irpo и https://web.au-team.irpo, что подключения защищены(чтобы это просмотреть нажмите на замок около ссылки страницы):
(скриншот)
-----------------------------------------------------------------
На экране показано что подключение защищено статус "Protect"
-----------------------------------------------------------------
3)Перенастройте ip-туннель с базового до уровня туннеля, обеспечивающего шифрование трафика
• Настройте защищенный туннель между HQ-RTR и BR-RTR
• Внесите необходимые изменения в конфигурацию динамической маршрутизации, протокол динамической маршрутизации должен возобновить работу после перенастройки туннеля
• Выбранное программное обеспечение, обоснование его выбора и его основные параметры, изменения в конфигурации динамической маршрутизации отметьте в отчёте.
Устанавливаем strongswan на HQ-RTR и BR-RTR:
dnf install strongswan -y
Добавляем strongswan в автозагрузку:
systemctl enable --now strongswan
Создаём конфигурационный файл на HQ-RTR:
nano /etc/strongswan/swanctl/conf.d/swanctl.conf
Добавляем конфигурацию IPSec:
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
start_action = trap #если нужна автозагрузка туннеля
}
}
}
}
secrets {
ike-1 {
secret = "P@ssw0rd"
}
}
Перезапускаем службу strongswan:
systemctl restart strongswan
Создаём конфигурационный файл на BR-RTR:
nano /etc/strongswan/swanctl/conf.d/swanctl.conf
Добавляем конфигурацию IPSec:
connections {
my-tunnel {
local_addrs = 172.16.2.2
remote_addrs = 172.16.1.2
local {
auth = psk
}
remote {
auth = psk
}
children {
net {
mode = transport
esp_proposals = aes256-sha256
start_action = trap #если нужна автозагрузка туннеля
}
}
}
}
secrets {
ike-1 {
secret = "P@ssw0rd"
}
}
Перезапускаем службу strongswan:
systemctl restart strongswan
Принудительно инициируем соединение (BR-RTR или HQ-RTR):
swanctl --initiate --child net
Проверяем работу:
swanctl --list-conns
(Вывод должен быть приблизительно таким)
(скриншот)
-----------------------------------------------------------------
[root@hq-rtr ~]# swanctl --list-sas
plugin 'sqlite': failed to load sqlite_plugin_create not found and no plugin file available
my-tunnel: #1, ESTABLISHED, IKEUZ, 6cfd82ad4f7e4beb_i 28842142dc39f06c_r*
local '172.16.1.2′ 172.16.1.2[4500]
remote '172.16.2.2 @ 172.16.2.2[4500]
AES_CBC-128/HMAC_SHA2_256_128/PRF_HMAC_SHAZ_256/ECP_256
established 83s ago, rekeying in 13916s
net: #1, reqid 1, INSTALLED, TRANSPORT, ESP: AES_CBC-256/HMAC_SHAZ_256_128
installed 83s ago, rekeying in 3310s, expires in 3877s
in c5e1586b, 576 bytes, 8 packets, 6s ago
out cb7b0af7, 576 bytes, 8 packets, 3s ago
local 172.16.1.2/32
remote 172.16.2.2/32
-----------------------------------------------------------------
Также дополнительно проверяем, например, с HQ-RTR, что пакеты имеют заголовок ESP, что подтверждает работу IPSec:
tcpdump -i ens33 -n host 172.16.2.2
(скриншот)
-----------------------------------------------------------------
[root@hq-rtr ~]# sudo tcpdump -i ens33 -n host 172.16.2.2
dropped prius to tcpdump
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), snapshot length 262144 bytes
12:55:00.768726 IP 172.16.1.2 > 172.16.2.2: ESP(spi=0xcb7b0af7,seq=0x3), length 120
12:55:07.635771 IP 172.16.2.2 > 172.16.1.2: ESP(spi=0xc5e1586b,seq=0x4), length 120
12:55:10.768803 IP 172.16.1.2 > 172.16.2.2: ESP(spi=0xcb7b0af7,seq=0x4), length 120
12:55:17.637644 IP 172.16.2.2 > 172.16.1.2: ESP(spi=0xc5e1586b,seq=0x5), length 120
12:55:20.769424 IP 172.16.1.2 > 172.16.2.2: ESP(spi=0xcb7b0af7,seq=0x5), length 120
12:55:27.636600 IP 172.16.2.2 > 172.16.1.2: ESP(spi=0xc5e1586b,seq=0x6), length 120
12:55:30.769696 IP 172.16.1.2 > 172.16.2.2: ESP(spi=0xcb7b0af7,seq=0x6), length 120
-----------------------------------------------------------------
4)Настройте межсетевой экран на маршрутизаторах HQ-RTR и BR-RTR на сеть в сторону ISP
• Обеспечьте работу протоколов http, https, dns, ntp, icmp или дополнительных нужных протоколов
• Запретите остальные подключения из сети Интернет во внутреннюю сеть.
На 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 --permanent --zone=external --add-forward-port=port=2026:proto=tcp:toport=2026:toaddr=192.168.100.2
firewall-cmd --permanent --zone=external --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=192.168.100.2
firewall-cmd --permanent --direct --add-passthrough ipv4 -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
firewall-cmd --reload
На BR-RTR:
firewall-cmd --permanent --zone=external --change-interface=ens33
firewall-cmd --permanent --zone=internal --change-interface=ens34
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 --permanent --zone=external --add-forward-port=port=2026:proto=tcp:toport=2026:toaddr=172.30.100.2
firewall-cmd --permanent --zone=external --add-forward-port=port=8080:proto=tcp:toport=8080:toaddr=172.30.100.2
firewall-cmd --permanent --direct --add-passthrough ipv4 -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
firewall-cmd --reload
5)Настройте принт-сервер cups на сервере HQ-SRV:
• Опубликуйте виртуальный pdf-принтер
• На клиенте HQ-CLI подключите виртуальный принтер как принтер по умолчанию.
Разворачиваем принт-сервер CUPS на HQ-SRV:
dnf install cups cups-pdf -y –-nogpgcheck
Добавляем службу в автозагрузку:
systemctl enable –-now cups
Вносим изменения в файл:
nano /etc/cups/cupsd.conf
В строке Listen localhost:631 меняем localhost на *:
(скриншот)
-----------------------------------------------------------------
# Only listen for connections from the local machine
Listen *:631
Listen/run/cups/cups.sock
-----------------------------------------------------------------
В строках с доступом на сервер и с доступом на страницу админа добавляем строки Allow all:
(скриншот)
-----------------------------------------------------------------
# Restrict access to the server...
<Location />
Order allow,deny
Allow all
</Location>
# Restrict access to the admin pages...
<Location /admin>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow all
</Location>
-----------------------------------------------------------------
Перезапускаем службу cups:
systemctl restart cups
Создаём принтер на HQ-SRV:
lpadmin -p Virtual_PDF -E -v cups-pdf:/ -m everywhere
(Если выскочит ошибка то, lpinfo -m | grep -i pdf и после вывода информации
пишем тот драйвер который похож на данное название дравера: CUPS-PDF.ppd)
Проверяем создание принтера на HQ-SRV:
lpstat -p
(скриншот)
-----------------------------------------------------------------
[root@hq-sru ~]# lpstat -p
принтер Cups-PDF свободен. Включен с момента Вс 15 фев 2026 15:02:17
[root@hq-sru ~]#
-----------------------------------------------------------------
Переходим в настройки на HQ-CLI и добавляем принтер. Для этого сначала необходимо разблокировать доступ к добавлению и изменению настроек:
(скриншот)
-----------------------------------------------------------------
|
|
... |
Клавиатура |
Принтеры |
Съемный носитель| Принтеров нет
... |
| Добавить принтер...
-----------------------------------------------------------------
Добавляем принтер:
(скриншот)
-----------------------------------------------------------------
Принтеры Добавить принтер <---
v1-1
Готов
Модель Generic Text-Only Printer
-----------------------------------------------------------------
Вводим IP-адрес сервера HQ-SRV и выбираем принтер с HQ-SRV:
(скриншот)
-----------------------------------------------------------------
Отменить Добавить принтер Добавить
CUPS-PDF-Printer
Cups-PDF <---
192.168.100.2
-----------------------------------------------------------------
После добавления принтера, настраиваем принтер для использования по умолчанию, необходимо, что появилась галочка у пункта «Использовать по умолчанию»(Нажимаем на шестеренку Cups-PDF и там ставим галочку на пункте "Использовать по умолчанию").
(скриншот)
-----------------------------------------------------------------
Cups-PDF
Готов Нет активных заданий (шестеренка -> Использовать по умолчанию)
Модель Generic CUPS-PDF Printer (no options)
v1-1
Готов Нет активных заданий
Модель Generic Text-Only Printer
-----------------------------------------------------------------
После этого, дополнительно проверяем, выбрав пункт «Сведения о принтере», что принтер действительно с HQ-SRV. Должен быть IP HQ-SRV.
(скриншот)
-----------------------------------------------------------------
Подробности Cups-PDF
Имя Cups-PDF
Местоположение
Адрес 192.168.100.2
Драйвер Generic CUPS-PDF Printer (no options)
Поиск драйверов
Выбратьт из базы данных...
Использовать файл PPD...
-----------------------------------------------------------------
6)Реализуйте логирование при помощи rsyslog на устройствах HQ-RTR, BR-RTR, BR-SRV:
• Сервер сбора логов расположен на HQ-SRV, убедитесь, что сервер не является клиентом самому себе
• Приоритет сообщений должен быть не ниже warning
• Все журналы должны находиться в директории /opt. Для каждого устройства должна выделяться своя поддиректория, которая совпадает с именем машины
• Реализуйте ротацию собранных логов на сервере HQ-SRV:
• Ротируются все логи, находящиеся в директории и поддиректориях /opt
• Ротация производится один раз в неделю
• Логи необходимо сжимать
• Минимальный размер логов для ротации – 10МБ.
Развернём сервер сбора логов на HQ-SRV:
Необходимо включить прием логов по UDP (или TCP) и настроить шаблоны для записи в /opt.
Открываем и редактируем файл /etc/rsyslog.conf.
nano /etc/rsyslog.conf
Необходимо расскоментировать строки связанные с udp (module и input):
(скриншот)
-----------------------------------------------------------------
# Provides UDP syslog reception
# for parameters see http://www.rsyslog.com/doc/imudp.html
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
-----------------------------------------------------------------
В конце добавляем шаблон для записи логов с удаленных серверов в /opt и исключения hq-srv из записи в папку /opt:
$template RemoteLogs,"/opt/%HOSTNAME%/%HOSTNAME%.log"
if $hostname != 'HQ-SRV' then {
*.warning ?RemoteLogs
& stop
}
(скриншот)
-----------------------------------------------------------------
$template RemoteLogs,"/opt/%HOSTNAME%/%HOSTNAME%.log"
if $hostname != 'HQ-SRV' then {
*.warning ?RemoteLogs
& stop
}
-----------------------------------------------------------------
На клиентах HQ-RTR, BR-RTR, BR-SRV в файле /etc/rsyslog.conf добавляем запись, для отправки логов на сервер логов (можно также в конце):
nano /etc/rsyslog.conf
(скриншот)
-----------------------------------------------------------------
#Target="remote_host" Port="XXX" Protocol="tcp")
*.warning @192.168.100.2:514
-----------------------------------------------------------------
На HQ-RTR, BR-RTR, BR-SRV, HQ-SRV перезапускаем службу rsyslog:
systemctl restart rsyslog
На HQ-SRV настраиваем ротацию логов. Для этого создаём файл /etc/logrotate.d/remote_logs.
nano /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
}
На HQ-RTR, BR-RTR, BR-SRV, HQ-SRV перезапускаем службу logrotate:
systemctl restart logrotate
7)На сервере HQ-SRV реализуйте мониторинг устройств с помощью открытого программного обеспечения
• Обеспечьте доступность по URL - http://mon.au-team.irpo для сетей офиса HQ, внесите изменения в инфраструктуру разрешения доменных имён
• Мониторить нужно устройства HQ-SRV и BR-SRV
• В мониторинге должны визуально отображаться нагрузка на ЦП, объем занятой ОП и основного накопителя
• Логин и пароль для службы мониторинга admin P@ssw0rd
• Организуйте доступ к мониторингу для HQ-CLI, без внешнего доступа
• Выбор программного обеспечения, основание выбора и основные параметры с указанием порта, на котором работает мониторинг, отметьте в отчёте
Разворачиваем на сервере HQ-SRV Grafana, Prometheus и node_exporter:
dnf install -y grafana prometheus prometheus-node_exporter –-nogpgcheck
После установки редактируем файл prometheus.yml, добавляем адреса клиентов node_exporter для сбора метрик:
nano /etc/prometheus/prometheus.yml
Редактируем там строчку, добавив адреса 192.168.100.2:9100 и 172.30.100.2:9100:
static_configs:
- targets: ['localhost:9090','192.168.100.2:9100','172.30.100.2:9100']
(скриншот)
-----------------------------------------------------------------
static_configs:
- targets: ["localhost:9090", "192.168.100.2:9100","172.30.100.2:9100"]
# The label name is added as a label 'label_name=<label_value>` to any timeseries scraped from this config.
labels:
app: "prometheus"
-----------------------------------------------------------------
Добавляем в автозагрузку сервисы:
systemctl enable --now grafana-server
systemctl enable --now prometheus
systemctl enable --now node_exporter
Разворачиваем на BR-SRV node_exporter:
dnf install -y prometheus-node_exporter
Добавляем в автозагрузку сервиc node_exporter:
systemctl enable --now node_exporter
Переходим на HQ-CLI для настройки Grafana. Открываем браузер и переходим по адресу http://192.168.100.2:3000. Откроется веб-интерфейс Grafana.
(скриншот)
-----------------------------------------------------------------
В окне браузера показано начальный вход в Grafana
-----------------------------------------------------------------
Авторизуемся с помощью логина и пароля admin:admin. После этого Grafana запросит новый пароль для учетной записи admin. Задаём новый пароль P@ssw0rd.
(скриншот)
-----------------------------------------------------------------
В окне браузера показано смена пароля пользователя admin
-----------------------------------------------------------------
После чего, открывается веб-интерфейс Grafana.
(скриншот)
-----------------------------------------------------------------
В окне браузера показано веб-интерфейс Grafana
-----------------------------------------------------------------
Добавляем подключение к Prometheus. Для этого переходим во вкладку Connections и добавляем новое подключение через «Add new connection»
(скриншот)
-----------------------------------------------------------------
Welcome to Connections
Connections Add new connections
-----------------------------------------------------------------
Находим в DataSources Prometheus
(скриншот)
-----------------------------------------------------------------
В окне браузера показано много сервисов и выбран Prometheus
-----------------------------------------------------------------
В connection пишем адрес Prometheus – http://localhost:9090
(скриншот)
-----------------------------------------------------------------
В окне браузера показан Prometheus
Connections
Prometheus server URL http://localhost:9090
-----------------------------------------------------------------
После чего Datasource Prometheus должно успешно добавиться.
(скриншот)
-----------------------------------------------------------------
В окне браузера показано успешное добавление Prometheus
Successfully queried the Prometheus API
-----------------------------------------------------------------
Добавляем Dashboard, выбрав вкладку Dashboards и создаём дашборд «Create Dashboard»
(скриншот)
-----------------------------------------------------------------
Dashboards
...
Dashboards
...
+ Create dashboard
-----------------------------------------------------------------
Импортируем Dashboard, выбрав «Import Dashboard»
(скриншот)
-----------------------------------------------------------------
Start your new dashboard by adding a visualization
+ Add visualization
Import panel Import a dashboard <---
-----------------------------------------------------------------
Добавляем номер dashboard 11074 и загружаем его «Load».
(скриншот)
-----------------------------------------------------------------
Import dashboard
...
Dashboards
...
11076 Load
+ Create dashboard
-----------------------------------------------------------------
После этого выбираем Prometheus, который ранее был подключен к Grafana и импортирует дашборд.
(скриншот)
-----------------------------------------------------------------
Import dashboard
...
Dashboards
...
prometheus
Import <--- Cancel
-----------------------------------------------------------------
В результате получаем дашборд с мониторингом серверов HQ-SRV и BR-SRV.
(скриншот)
-----------------------------------------------------------------
В окне браузера показано система мониторинга, в которой добавлены HQ-SRV и BR-SRV
-----------------------------------------------------------------
После этого необходимо настроить доступ к мониторингу по доменному имени http://mon.au-team.irpo. Для этого переходим на HQ-SRV и открываем файл /opt/dns/au-team.irpo и добавляем A запись для mon.au-team.irpo, указав адрес HQ-SRV.
nano /opt/dns/au-team.irpo
(скриншот)
-----------------------------------------------------------------
STTL 3H
au-team.irpo. IN SOA au-team.irpo. au-team.irpo. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
NS hq-sru.au-tean.irpo.
hq-rtr A 192.168.100.1
br-rtr A 172.30.100.1
hq-srv A 192.168.100.2
hq-cli A 192.168.200.2
br-srv A 172.30.100.2
docker A 172.16.1.1
web A 172.16.2.1
mon A 192.168.100.2
-----------------------------------------------------------------
После этого перезапускаем службу named.
systemctl restart named
Теперь открываем мониторинг на HQ-CLI через адрес http://mon.au-team.irpo:3000.
(скриншот)
-----------------------------------------------------------------
В окне браузера показано начальный вход в Grafana по адресу http://mon.au-team.irpo:3000
-----------------------------------------------------------------
8)Реализуйте механизм инвентаризации машин HQ-SRV и HQ-CLI через Ansible на BR-SRV:
• Плейбук должен собирать информацию о рабочих местах:
Имя компьютера
IP-адрес компьютера
• Плейбук, должен быть размещен в директории /etc/ansible, отчёты в поддиректории PC-INFO, в формате .yml. Файлы должны называется именем компьютера, который был инвентаризирован
• Файл плейбука располагается в образе Additional.iso в директории playbook
Монтируем образ Additional.iso:
mount /dev/cdrom /mnt
Копируем playbook из образа:
cp /mnt/playbook/get_hostname_address.yml /etc/ansible
Добавяем группу хостов inventory c HQ-SRV и HQ-СLI в файл инвентаризации demo.ini:
nano /etc/ansible/demo.ini
(скриншот)
-----------------------------------------------------------------
[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=remote_user
-----------------------------------------------------------------
Редактирует плейбук и приводим к виду:
---
- 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
Переходим в директорию ansible:
cd /etc/ansible
Запускаем исполнение плейбука:
-----------------------------------------------------------------
[root@br-sru ansible]# ansible-playbook get_hostname_address.ynli demo.ini
PLAY [Inventory of HQ-SRU and HQ-CLI] ***************************
TASK [Gathering Facts] ******************************************
ok: [hq-sru]
ok: [hq-clil
TASK (получение данных с хоста] *********************************
changed: [hq-sru -> localhost]
changed: [hq-cli -> localhost]
PLAY RECAP ******************************************************
hq-cli : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hq-srv : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
-----------------------------------------------------------------
ansible-playbook get_hostname_address.yml -i demo.ini
После этого проверяем, что файлы были созданы:
ls /etc/ansible/PC-INFO
Проверяем содержимое:
cat /etc/ansible/PC-INFO/hq-cli.yml
cat /etc/ansible/PC-INFO/hq-srv.yml
9)На HQ-SRV настройте программное обеспечение fail2ban для защиты ssh
• Укажите порт ssh
• При 3 неуспешных авторизациях адрес атакующего попадает в бан
• Бан производится на 1минуту
Выполняем установку fail2ban на HQ-SRV:
dnf install fail2ban -y --nogpgcheck
Создаём файл с конфигурацией:
nano /etc/fail2ban/jail.local
Пишем следующие конфигурацию:
[sshd]
enabled = true
port = 2026
filter = sshd
maxretry = 3
bantime = 60
findtime = 120
Перезапускаем службу fail2ban:
systemctl restart fail2ban
Добавляем службу в автозагрузку:
systemctl enable --now fail2ban
Проверяем статус настроек:
fail2ban-client status sshd
17.2 Общие сведения о контейнеризации
Контейнеризация — это метод виртуализации на уровне операционной системы, позволяющий запускать изолированные приложения в единой среде (пространстве пользователя) без необходимости развертывания полноценной гостевой ОС. Контейнеры делят одно и то же ядро хостовой операционной системы, что делает их чрезвычайно быстрыми и экономичными с точки зрения потребления диска и оперативной памяти.
В отличие от традиционных виртуальных машин, каждый контейнер содержит в себе только само приложение и все необходимые для его работы зависимости (библиотеки, конфигурационные файлы). Основными инструментами контейнеризации в экосистеме РЕД ОС являются Docker и Podman.
17.3 Среды виртуализации и оркестрации
Гипервизорная виртуализация (KVM/QEMU) позволяет создавать полностью изолированные виртуальные машины с собственными ядрами операционных систем, что критически важно для изоляции несовместимых корпоративных сред или запуска устаревших систем.
Для управления большим числом контейнеров на нескольких серверах используются системы оркестрации, такие как Kubernetes или упрощенные легковесные кластеры. Они обеспечивают автоматическое масштабирование приложений, балансировку сетевых нагрузок, самовосстановление упавших контейнеров и непрерывное обновление ПО без прерывания обслуживания пользователей.
Мониторинг системы
Анализ журналов и логов в реальном времени осуществляется через journalctl. Для мониторинга потребления ресурсов используются утилиты htop, top, iotop и netstat.
Для постоянного логирования параметров сети рекомендуется использовать Prometheus Node Exporter.
Также в состав системы входит утилита sar для накопления и анализа долгосрочной статистики загрузки ресурсов.
Резервное копирование
Защита данных от утери обеспечивается утилитами rsync (синхронизация директорий), tar (архивирование логов), а также возможностью создания снапшотов LVM.
Скрипты инкрементального копирования rsync можно запускать по расписанию через планировщик cron.
Для создания резервных копий баз данных используйте стандартные дамперы СУБД с автоматическим сжатием.
Часто задаваемые вопросы (FAQ)
Сброс паролей пользователей, пересборка меню загрузчика GRUB при повреждениях системных секторов диска, устранение конфликтов библиотек dnf.
Для сброса пароля root перезагрузите сервер, в меню GRUB нажмите 'e', допишите init=/bin/sh в строку параметров ядра, смонтируйте корень в rw и смените пароль.
При ошибках монтирования разделов проверьте целостность файловой системы с помощью утилиты fsck.ext4 или xfs_repair.