Общие сведения о системе РЕД ОС

РЕД ОС — российская многопользовательская, многозадачная операционная система общего назначения для серверов и рабочих станций, предоставляющая универсальную среду для использования прикладного программного обеспечения. Она создана на основе ведущих мировых технологий с открытым исходным кодом, глубоко доработана отечественными инженерами и полностью независима от зарубежных инфраструктур поддержки.

Система обладает высоким уровнем встроенной защиты информации, проходя регулярные аудиторские проверки на отсутствие скрытых закладок и недекларированных возможностей. Платформа сертифицирована ФСТЭК России по 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.2 Пошаговая настройка служб

1. ISP

# Имя и часовой пояс
hostnamectl hostname isp.au-team.irpo
timedatectl set-timezone Europe/Moscow

# Маршрутизация пакетов
echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf
sysctl -p

# Сетевые интерфейсы
nmcli connection modify ens33 ipv4.method auto
nmcli connection modify ens34 ipv4.method manual ipv4.addresses 172.16.1.1/28
nmcli connection modify ens35 ipv4.method manual ipv4.addresses 172.16.2.1/28

nmcli connection up ens33
nmcli connection up ens34
nmcli connection up ens35

# NAT и фаервол
dnf install iptables-services -y
systemctl enable --now iptables
iptables -F
iptables -t nat -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
iptables-save > /etc/sysconfig/iptables



2. HQ-RTR

# Имя и часовой пояс
hostnamectl hostname hq-rtr.au-team.irpo
timedatectl set-timezone Europe/Moscow

# Маршрутизация пакетов
echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf
sysctl -p

# Внешний интерфейс
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 172.16.1.2/28 ipv4.gateway 172.16.1.1 ipv4.dns "192.168.100.10" ipv4.dns-search "au-team.irpo"
nmcli connection up ens33

# VLAN интерфейсы на ens34
nmcli connection add type vlan con-name ens34.vlan100 ifname ens34.100 dev ens34 id 100 ipv4.method manual ipv4.addresses 192.168.100.1/27
nmcli connection add type vlan con-name ens34.vlan200 ifname ens34.200 dev ens34 id 200 ipv4.method manual ipv4.addresses 192.168.200.1/28
nmcli connection add type vlan con-name ens34.vlan999 ifname ens34.999 dev ens34 id 999 ipv4.method manual ipv4.addresses 192.168.99.1/29

nmcli connection up ens34.vlan100
nmcli connection up ens34.vlan200
nmcli connection up ens34.vlan999

# GRE туннель
nmcli connection add type ip-tunnel con-name tun0 ifname tun0 mode gre remote 172.16.2.2 local 172.16.1.2 ipv4.method manual ipv4.addresses 10.10.10.1/30 ip-tunnel.ttl 64
nmcli connection up tun0

# Пользователь net_admin
useradd -m -U -s /bin/bash net_admin
echo "net_admin:P@ssw0rd" | chpasswd
echo "net_admin ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

# NAT
dnf install iptables-services -y
systemctl enable --now iptables
iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables

# DHCP Сервер
dnf install dhcp-server -y
cat << 'EOF' > /etc/dhcp/dhcpd.conf
subnet 192.168.200.0 netmask 255.255.255.240 {
    range 192.168.200.2 192.168.200.14;
    option routers 192.168.200.1;
    option domain-name-servers 192.168.100.10;
    option domain-name "au-team.irpo";
}
EOF
systemctl enable --now dhcpd

# FRR (OSPF)
dnf install frr -y
sed -i 's/ospfd=no/ospfd=yes/g' /etc/frr/daemons
systemctl enable --now frr

vtysh << 'EOF'
conf t
router ospf
 ospf router-id 172.16.1.2
 network 192.168.100.0/27 area 0
 network 192.168.200.0/28 area 0
 network 192.168.99.0/29 area 0
 network 10.10.10.0/30 area 0
 passive-interface ens33
 passive-interface ens34
exit
interface tun0
 ip ospf authentication message-digest
 ip ospf message-digest-key 1 md5 P@ssw0rd
exit
do wr
exit
EOF





3. BR-RTR

# Имя и часовой пояс
hostnamectl hostname br-rtr.au-team.irpo
timedatectl set-timezone Europe/Moscow

# Маршрутизация пакетов
echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf
sysctl -p

# Сетевые интерфейсы
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 172.16.2.2/28 ipv4.gateway 172.16.2.1 ipv4.dns "192.168.100.10" ipv4.dns-search "au-team.irpo"
nmcli connection modify ens34 ipv4.method manual ipv4.addresses 172.30.100.1/30

nmcli connection up ens33
nmcli connection up ens34

# GRE туннель
nmcli connection add type ip-tunnel con-name tun0 ifname tun0 mode gre remote 172.16.1.2 local 172.16.2.2 ipv4.method manual ipv4.addresses 10.10.10.2/30 ip-tunnel.ttl 64
nmcli connection up tun0

# Пользователь net_admin
useradd -m -U -s /bin/bash net_admin
echo "net_admin:P@ssw0rd" | chpasswd
echo "net_admin ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

# NAT
dnf install iptables-services -y
systemctl enable --now iptables
iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables

# FRR (OSPF)
dnf install frr -y
sed -i 's/ospfd=no/ospfd=yes/g' /etc/frr/daemons
systemctl enable --now frr

vtysh << 'EOF'
conf t
router ospf
 ospf router-id 172.16.2.2
 network 172.30.100.0/30 area 0
 network 10.10.10.0/30 area 0
 passive-interface ens33
exit
interface tun0
 ip ospf authentication message-digest
 ip ospf message-digest-key 1 md5 P@ssw0rd
exit
do wr
exit
EOF




4. BR-FW
# Имя и часовой пояс
hostnamectl hostname br-fw.au-team.irpo
timedatectl set-timezone Europe/Moscow

# Маршрутизация пакетов
echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf
sysctl -p

# Сетевые интерфейсы
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 172.30.100.2/30 ipv4.gateway 172.30.100.1 ipv4.dns "192.168.100.10" ipv4.dns-search "au-team.irpo"
nmcli connection modify ens34 ipv4.method manual ipv4.addresses 172.30.200.1/28

nmcli connection up ens33
nmcli connection up ens34

# FRR (OSPF)
dnf install frr -y
sed -i 's/ospfd=no/ospfd=yes/g' /etc/frr/daemons
systemctl enable --now frr

vtysh << 'EOF'
conf t
router ospf
 ospf router-id 172.30.100.2
 network 172.30.100.0/30 area 0
 network 172.30.200.0/28 area 0
 passive-interface ens34
exit
do wr
exit
EOF







5. HQ-SRV

# Имя и часовой пояс
hostnamectl hostname hq-srv.au-team.irpo
timedatectl set-timezone Europe/Moscow

# Сетевой интерфейс (VLAN 100)
nmcli connection add type vlan con-name ens33.vlan100 ifname ens33.100 dev ens33 id 100 ipv4.method manual ipv4.addresses 192.168.100.10/27 ipv4.gateway 192.168.100.1 ipv4.dns "127.0.0.1" ipv4.dns-search "au-team.irpo"
nmcli connection up ens33.vlan100

# Пользователь sshuser
useradd -m -U -s /bin/bash -u 2027 sshuser
echo "sshuser:P@ssw0rd" | chpasswd
echo "sshuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

# Настройка SSH
echo "Authorized access only" > /etc/ssh/banner.txt

cat << 'EOF' >> /etc/ssh/sshd_config
Port 2027
AllowUsers sshuser
MaxAuthTries 2
Banner /etc/ssh/banner.txt
EOF

semanage port -a -t ssh_port_t -p tcp 2027 || setenforce 0
systemctl restart sshd

# Настройка DNS (BIND)
dnf install bind bind-utils -y

cat << 'EOF' > /etc/named.conf
options {
    listen-on port 53 { any; };
    listen-on-v6 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 { 8.8.8.8; 1.1.1.1; };
    recursion yes;
    dnssec-validation no;
};

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.30.172.in-addr.arpa" IN {
    type master;
    file "/opt/dns/200.30.172.in-addr.arpa";
};
EOF

mkdir -p /opt/dns

cat << 'EOF' > /opt/dns/au-team.irpo
$TTL 3H
@       IN SOA  au-team.irpo. root.au-team.irpo. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN NS   hq-srv.au-team.irpo.
hq-rtr  IN A    172.16.1.2
br-rtr  IN A    172.16.2.2
br-fw   IN A    172.30.100.2
hq-srv  IN A    192.168.100.10
hq-cli  IN A    192.168.200.2
br-srv  IN A    172.30.200.10
docker  IN A    172.16.1.1
web     IN A    172.16.2.1
EOF

cat << 'EOF' > /opt/dns/100.168.192.in-addr.arpa
$TTL 3H
@       IN SOA  au-team.irpo. root.au-team.irpo. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN NS   hq-srv.au-team.irpo.
10      IN PTR  hq-srv.au-team.irpo.
EOF

cat << 'EOF' > /opt/dns/200.30.172.in-addr.arpa
$TTL 3H
@       IN SOA  au-team.irpo. root.au-team.irpo. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN NS   hq-srv.au-team.irpo.
10      IN PTR  br-srv.au-team.irpo.
EOF

chown -R named:named /opt/dns/
named-checkconf -z
systemctl enable --now named








6. BR-SRV

# Имя и часовой пояс
hostnamectl hostname br-srv.au-team.irpo
timedatectl set-timezone Europe/Moscow

# Сетевой интерфейс
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 172.30.200.10/28 ipv4.gateway 172.30.200.1 ipv4.dns "192.168.100.10" ipv4.dns-search "au-team.irpo"
nmcli connection up ens33

# Пользователь sshuser
useradd -m -U -s /bin/bash -u 2027 sshuser
echo "sshuser:P@ssw0rd" | chpasswd
echo "sshuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

# Настройка SSH
echo "Authorized access only" > /etc/ssh/banner.txt

cat << 'EOF' >> /etc/ssh/sshd_config
Port 2027
AllowUsers sshuser
MaxAuthTries 2
Banner /etc/ssh/banner.txt
EOF

semanage port -a -t ssh_port_t -p tcp 2027 || setenforce 0
systemctl restart sshd









7. HQ-CLI

# Имя и часовой пояс
hostnamectl hostname hq-cli.au-team.irpo
timedatectl set-timezone Europe/Moscow

# Сетевой интерфейс (VLAN 200 с получением по DHCP)
nmcli connection add type vlan con-name ens33.vlan200 ifname ens33.200 dev ens33 id 200 ipv4.method auto
nmcli connection up ens33.vlan200

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 и домен

# На 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

cat << 'EOF' > /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 camellia256-cts-cmac aes128-cts-hmac-sha1-96 aes128-cts-hmac-sha256-128 camellia128-cts-cmac
EOF

samba-tool domain provision --realm=AU-TEAM.IRPO --domain=AU-TEAM --server-role=dc --dns-backend=NONE --adminpass="P@ssw0rd" --use-rfc2307

cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
cat << 'EOF' > /etc/krb5.conf
[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-srv.au-team.irpo
}

[domain_realm]
    br-srv = AU-TEAM.IRPO
EOF

systemctl enable --now samba

# Проверка билета Kerberos и настройка политик паролей:
echo "P@ssw0rd" | kinit administrator@AU-TEAM.IRPO
samba-tool domain passwordsettings set --min-pwd-length=8 --account-lockout-threshold=5
samba-tool domain passwordsettings show

# Создание пользователей и группы:
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

# На HQ-CLI (Ввод в домен и настройка SSSD/sudo):
echo "172.30.200.10 au-team.irpo" >> /etc/hosts

cat << 'EOF' > /etc/krb5.conf
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_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
EOF

echo "P@ssw0rd" | realm join -U Administrator AU-TEAM.IRPO

sed -i '/\[domain\/au-team.irpo\]/a ad_server = br-srv.au-team.irpo' /etc/sssd/sssd.conf
systemctl restart sssd
sss_cache -E

echo "%hq@au-team.irpo ALL=(ALL) NOPASSWD: /bin/cat, /bin/grep, /bin/id" >> /etc/sudoers



2. RAID 0 (HQ-SRV)

# Создание разделов на дисках sdb и sdc
echo -e "g\nn\n\n\n\nw" | fdisk /dev/sdb
echo -e "g\nn\n\n\n\nw" | fdisk /dev/sdc

# Сборка массива RAID 0 и форматирование
mdadm --create /dev/md0 --level=0 --raid-device=2 /dev/sdb1 /dev/sdc1
mdadm --detail --scan --verbose >> /etc/mdadm.conf
mkfs.ext4 /dev/md0

# Автомонтирование /raid
mkdir -p /raid
echo "/dev/md0 /raid ext4 defaults 0 0" >> /etc/fstab
systemctl daemon-reload
mount -a
df -h



3. NFS Сервер и Клиент

# На HQ-SRV:
dnf install nfs4-acl-tools exportfs -y
mkdir -p /raid/nfs
chown nobody:nobody /raid/nfs
chmod 777 /raid/nfs

echo "/raid/nfs 192.168.200.0/28(rw)" >> /etc/exports
exportfs -a
systemctl enable --now nfs-server

# На HQ-CLI:
mkdir -p /mnt/nfs
echo "192.168.100.10:/raid/nfs /mnt/nfs nfs auto 0 0" >> /etc/fstab
systemctl daemon-reload
mount -a
df -h



4. Chrony (NTP)

# На ISP:
cat << 'EOF' > /etc/chrony.conf
server ntp1.vniiftri.ru iburst
local stratum 5
allow 0/0
hwtimestamp *
EOF
systemctl restart chronyd
chronyc sources

# На HQ-SRV, HQ-CLI, BR-RTR, BR-SRV:
sed -i 's/^server/#server/' /etc/chrony.conf
echo "server 172.16.1.1 iburst prefer" >> /etc/chrony.conf
systemctl restart chronyd
chronyc sources



5. Ansible (BR-SRV)

# На BR-SRV:
dnf install ansible -y
mkdir -p /etc/ansible

cat << 'EOF' > /etc/ansible/demo.ini
[HQ_SRV]
192.168.100.10 ansible_user=sshuser ansible_port=2027
[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
EOF

cat << 'EOF' > /etc/ansible/ansible.cfg
[defaults]
inventory = /etc/ansible/demo.ini
ask_pass = False
host_key_checking = False
interpreter_python = /usr/bin/python
EOF

ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
ssh-copy-id -p 2027 sshuser@192.168.100.10
ssh-copy-id username@192.168.200.2
ssh-copy-id net_admin@192.168.100.1
ssh-copy-id net_admin@172.30.100.1

ansible -m ping all



6. Docker (BR-SRV)

# Монтирование ISO и установка Docker
mount /dev/cdrom /mnt
dnf install docker-ce docker-compose -y
systemctl enable --now docker

# Загрузка образов и запуск приложения
docker load < /mnt/docker/site_latest.tar
docker load < /mnt/docker/mariadb_latest.tar
cp /mnt/docker/compose.yml .
docker-compose -f compose.yml up -d
docker ps



7. Веб-приложение LAMP (HQ-SRV)

# Монтирование ISO и установка стека
mount /dev/cdrom /mnt
dnf install mariadb-server httpd php php-mysqlnd php-cli -y
systemctl enable --now mariadb httpd

# База данных
mysql -u root << 'EOF'
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;
EOF

mysql -u root webdb < /mnt/web/dump.sql

# Копирование файлов сайта
cp /mnt/web/index.php /var/www/html/
cp /mnt/web/logo.png /var/www/html/

cat << 'EOF' > /var/www/html/index.php
 /etc/sysconfig/iptables

# На HQ-RTR:
iptables -t nat -A PREROUTING -p tcp -m tcp -d 172.16.1.2 --dport 8080 -j DNAT --to-destination 192.168.100.10:80
iptables -t nat -A PREROUTING -p tcp -m tcp -d 172.16.1.2 --dport 2027 -j DNAT --to-destination 192.168.100.10:2027
iptables-save > /etc/sysconfig/iptables
9. Яндекс браузер • Установку браузера отметьте в отчёте. На HQ-CLI: Заходим в «Окно настройки РЕДОС», переходим во вкладку «Партнерские приложения» и нажимаем на Яндекс браузер. После загрузки нажимаем на клавишу WIN и выбираем «Другие приложения». Переходим на вторую страницу и запускаем браузер.

Средства разработки

Для программистов доступны компиляторы GCC, Clang, интерпретаторы Python 3, PHP, Node.js, а также популярные средства контроля версий (Git) и сборщики проектов.

Все компиляторы оптимизированы для сборки бинарных файлов под российские процессоры «Эльбрус» и «Байкал».

Поддерживается интеграция со средами разработки Eclipse, VS Code и IntelliJ IDEA.

17.1 Настройка служб (Модуль 3)

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

# Подключаем диск с доп. материалами
mount /dev/cdrom /mnt
cat /mnt/Users.csv

# Копируем готовый скрипт импорта и даём права на запуск
cp /mnt/import.sh .
chmod +x import.sh
./import.sh

# ВАЖНО:
# Проверяем успешность импорта и авторизацию на машине HQ-CLI:
# Логин: MalachiAlexander@au-team.irpo
# Пароль: P@ssw0rd1



2. Nginx Reverse Proxy (ISP)

# Установка веб-сервера
dnf install nginx -y
systemctl enable --now nginx

# Настройка виртуальных хостов для перенаправления HTTP-запросов
cat << 'EOF' > /etc/nginx/conf.d/proxy.conf
server {
    listen       80;
    server_name  docker.au-team.irpo;
    location / {
        proxy_pass http://172.16.2.2:8080;
    }
}

server {
    listen       80;
    server_name  web.au-team.irpo;
    location / {
        proxy_pass http://172.16.1.2:8080;
    }
}
EOF

systemctl restart nginx

# ВАЖНО: 
# Обязательно отключаем SELinux, иначе проксирование выдаст 502 Bad Gateway
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
reboot

# Проверка:
# На HQ-CLI открываем docker.au-team.irpo (сайт из Модуля 2)
# и web.au-team.irpo (база сотрудников).



3. Web-based аутентификация HTTP Basic Auth (ISP)

# Создание файла учётных записей и добавление пользователя WEB
dnf install httpd-tools -y
htpasswd -cb /etc/nginx/.htpasswd WEB P@ssw0rd

# Подключение базовой аутентификации только для сайта web.au-team.irpo
cat << 'EOF' > /etc/nginx/conf.d/proxy.conf
server {
    listen       80;
    server_name  docker.au-team.irpo;
    location / {
        proxy_pass http://172.16.2.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.1.2:8080;
    }
}
EOF

nginx -t
systemctl restart nginx

# Проверка:
# При открытии web.au-team.irpo должно появиться окно авторизации. Вводим WEB / P@ssw0rd.



4. Центр сертификации ГОСТ и HTTPS (HQ-SRV -> ISP -> HQ-CLI)

# --- [ HQ-SRV: Развертывание CA и генерация сертификатов ] ---
dnf install openssl-gost-engine -y
openssl-switch-config gost
update-crypto-policies --set GOST-ONLY:GOST
update-crypto-policies --show

# 1. Генерация ключа и самоподписанного корневого сертификата (Root CA)
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out CA.key
openssl req -new -x509 -md_gost12_256 -days 365 -key CA.key -out CA.crt -subj "/C=RU/ST=Russia/L=Kazan/O=MCK-KTITS/OU=MCK-KTITS CA/CN=MCK KTITS CA Root"

# 2. Ключ для веб-серверов и файл альтернативных имён (SAN)
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out au-team.irpo.key

cat << 'EOF' > 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
EOF

# 3. Выпуск сертификата на 30 дней и сборка цепочки
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 au-team.irpo.key CA.crt /home/sshuser/certs/
chmod 755 -R /home/sshuser/certs

# --- [ ISP: Настройка SSL с ГОСТ шифрованием в Nginx ] ---
dnf install openssl-gost-engine -y
openssl-switch-config gost
update-crypto-policies --set GOST-ONLY:GOST

mkdir -p /etc/ssl/site
scp -P 2027 sshuser@172.16.1.2:/home/sshuser/certs/* /etc/ssl/site/

cat << 'EOF' >> /etc/nginx/conf.d/proxy.conf
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;
    }
}
EOF

nginx -t
systemctl restart nginx

# --- [ HQ-CLI: Установка КриптоПро и импорт Root CA ] ---
mount /dev/cdrom /mnt
cp -r /mnt/cryptopro/linux-amd64/ .
scp -P 2027 sshuser@192.168.100.10:/home/sshuser/certs/CA.crt /home/username/
chmod +x linux-amd64/*.sh
./linux-amd64/install_gui.sh

# ВАЖНО:
# 1. В установщике КриптоПро выбираем ВСЕ компоненты через Пробел. Лицензию выбираем «Позже».
# 2. Открываем приложение «Инструменты КриптоПро» (двигаем мышкой для ДСЧ).
# 3. Раздел «Сертификаты» -> выбираем хранилище «Доверенные корневые центры сертификации» -> «Установить сертификаты» -> указываем CA.crt.
# 4. В Яндекс.Браузере открываем https://docker.au-team.irpo и https://web.au-team.irpo — статус соединения должен быть зеленым/защищенным (Protect), без ошибок сертификата.



5. Мониторинг утилитой atop (HQ-SRV)

dnf install atop -y

# ВАЖНО: интервал сбора данных 7 минут = 420 секунд
cat << 'EOF' > /etc/sysconfig/atop
CURDAY=`date +%Y%m%d`
LOGPATH=/var/log/atop
BINPATH=/usr/bin
PIDFILE=/var/run/atop.pid
LOGINTERVAL=420
EOF

systemctl daemon-reload
systemctl enable --now atop atopacct
systemctl restart atop

# Проверка:
pgrep -a atop
ls -la /var/log/atop/
# Для просмотра лога: atop -r /var/log/atop/atop_YYYYMMDD (выход — клавиша q)



6. Виртуальный принт-сервер CUPS (HQ-SRV)

# Установка и запуск службы
dnf install cups cups-pdf -y --nogpgcheck
systemctl enable --now cups

# Разрешаем прослушивание всех интерфейсов и доступ для клиентов
sed -i 's/Listen localhost:631/Listen *:631/' /etc/cups/cupsd.conf
sed -i '//a \ \ Allow all' /etc/cups/cupsd.conf
sed -i '//a \ \ Allow all' /etc/cups/cupsd.conf

systemctl restart cups

# Создаем виртуальный PDF-принтер
lpadmin -p Virtual_PDF -v cups-pdf:/ -E -m CUPS-PDF_noopt.ppd
lpstat -p

# ВАЖНО (Настройка на HQ-CLI):
# 1. Открываем «Параметры» -> «Принтеры».
# 2. Нажимаем «Разблокировать» (пароль пользователя).
# 3. «Добавить принтер» -> вводим IP HQ-SRV: 192.168.100.10.
# 4. Выбираем найденный Virtual_PDF.
# 5. В свойствах принтера обязательно ставим галочку «Использовать по умолчанию».



7. Ansible сбор информации о хостах (BR-SRV)

mount /dev/cdrom /mnt
cp /mnt/playbook/get_hostname_address.yml /etc/ansible/

# Добавляем хосты в инвентарь demo.ini
cat << 'EOF' >> /etc/ansible/demo.ini

[inventory]
hq-cli ansible_host=192.168.200.2 ansible_user=username
hq-srv ansible_host=192.168.100.10 ansible_port=2027 ansible_user=sshuser
EOF

# Проверяем структуру плейбука (делегирование локально на BR-SRV):
cat << 'EOF' > /etc/ansible/get_hostname_address.yml
- name: Inventory of HQ-SRV and HQ-CLI
  hosts: inventory
  gather_facts: yes
  tasks:
    - name: получение данных с хоста
      copy:
        dest: /etc/ansible/PC-INFO/{{ ansible_hostname }}.yml
        content: |
          Hostname: {{ ansible_hostname }}
          IP_Address: {{ ansible_default_ipv4.address }}
      delegate_to: localhost
EOF

mkdir -p /etc/ansible/PC-INFO
cd /etc/ansible
ansible-playbook get_hostname_address.yml -i demo.ini

# Проверка: файлы отчетов должны появиться в папке PC-INFO
ls -la /etc/ansible/PC-INFO
cat /etc/ansible/PC-INFO/hq-cli.yml
cat /etc/ansible/PC-INFO/hq-srv.yml



8. Защита от подбора паролей Fail2ban (HQ-SRV)

dnf install fail2ban -y --nogpgcheck

# ВАЖНО: указываем порт SSH (2027), 3 попытки, бан 60 секунд (1 минута)
cat << 'EOF' > /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2027
filter = sshd
maxretry = 3
bantime = 60
findtime = 120
EOF

systemctl enable --now fail2ban
systemctl restart fail2ban

# Проверка статуса джейла:
fail2ban-client status sshd



9. Резервное копирование «Кибер Бэкап 18»

# --- [ HQ-SRV: Сервер управления и локальный агент ] ---
useradd -m -U -s /bin/bash irpoadmin
echo "irpoadmin:P@ssw0rd" | chpasswd

mount /dev/cdrom /mnt
cp /mnt/cyberbackup/CyberBackup_18_64-bit.x86_64 .
chmod +x CyberBackup_18_64-bit.x86_64
./CyberBackup_18_64-bit.x86_64
# В мастере установки выбираем:
# 1. Management Server + Agent for Linux
# 2. База данных: Встроенная SQLite
# 3. Порты по умолчанию: 9877 (Web), 7780 (TCP обмен)

# --- [ HQ-CLI: Узел хранения (Storage Node) ] ---
mount /dev/cdrom /mnt
cp /mnt/cyberbackup/CyberBackup_18_64-bit.x86_64 .
chmod +x CyberBackup_18_64-bit.x86_64
./CyberBackup_18_64-bit.x86_64
# В мастере установки выбираем:
# 1. Agent for Linux + Storage Node
# 2. Сервер управления: 192.168.100.10
# 3. Учётная запись для регистрации: root / P@ssw0rd

# Создаем папку под бэкапы на клиенте:
mkdir -p /backup
chmod 777 /backup

# --- [ Настройка через Веб-интерфейс (https://192.168.100.10:9877) ] ---
# Вход под root / P@ssw0rd:
# 1. Лицензия: активируем «Запустить пробную версию на 30 дней».
# 2. Настройки -> Учётные записи:
#    - Создать отдел -> имя «irpo».
#    - Внутри отдела добавить учётную запись «irpoadmin», назначить роль «Администратор».
# 3. Хранилища резервных копий -> Добавить хранилище:
#    - Тип: «Узел хранения».
#    - Выбираем узел: hq-cli.au-team.irpo (192.168.200.2).
#    - Путь: /backup/.
#    - Логин/пароль узла: root / P@ssw0rd.
# 4. Планы -> Защита -> Создать план:
#    - Имя плана: «Резервная копия HQ-SRV».
#    - Устройство: hq-srv.au-team.irpo.
#    - Выбор данных: «Файлы/папки» -> указать каталог «/etc/».
#    - Место сохранения: созданный Узел хранения (/backup).
# 5. Нажимаем кнопку воспроизведения («Запустить план») -> выбрать «Полное».
# 6. Проверяем в разделе «Хранилища», что появилась точка восстановления размером ~4.5 МБ.

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.