На подумать
8) Настройка DNS для SRV1-HQ и SRV1-DT
a) Реализация основного DNS сервера компании на SRV1-HQ
-
Создание записей A и PTR для всех устройств обоих офисов:
- На SRV1-HQ необходимо настроить DNS-сервер, который будет содержать записи A (для преобразования доменных имен в IP-адреса) и PTR (для обратного преобразования IP-адресов в доменные имена) для всех устройств в офисах HQ и DT.
- Пример записи A:
SRV1-HQ.au.team. IN A 192.168.11.10 CLI-HQ.au.team. IN A 192.168.11.20 - Пример записи PTR:
10.11.168.192.in-addr.arpa. IN PTR SRV1-HQ.au.team. 20.11.168.192.in-addr.arpa. IN PTR CLI-HQ.au.team.
-
Создание записей CNAME для сервисов предприятия:
- Записи CNAME используются для создания псевдонимов для существующих записей A. Например:
www.au.team. IN CNAME SRV1-HQ.au.team. mail.au.team. IN CNAME SRV1-DT.au.team.
- Записи CNAME используются для создания псевдонимов для существующих записей A. Например:
-
Ограничение загрузки записей с SRV1-HQ только для SRV1-DT:
- На SRV1-HQ необходимо настроить зону передачи (zone transfer) таким образом, чтобы только SRV1-DT мог запрашивать и загружать DNS-записи. Это можно сделать с помощью настроек в конфигурационном файле DNS-сервера (например, BIND):
zone "au.team" { type master; file "/etc/bind/db.au.team"; allow-transfer { 192.168.33.10; }; // Разрешить передачу зоны только для SRV1-DT };
- На SRV1-HQ необходимо настроить зону передачи (zone transfer) таким образом, чтобы только SRV1-DT мог запрашивать и загружать DNS-записи. Это можно сделать с помощью настроек в конфигурационном файле DNS-сервера (например, BIND):
b) Настройка SRV1-DT как резервного DNS сервера
- Настройка SRV1-DT как вторичного DNS сервера:
- На SRV1-DT необходимо настроить DNS-сервер как вторичный (slave) для зоны "au.team". Это позволит SRV1-DT получать обновления зоны с SRV1-HQ.
- Пример конфигурации на SRV1-DT:
zone "au.team" { type slave; file "/etc/bind/db.au.team"; masters { 192.168.11.10; }; // Указать SRV1-HQ как мастер-сервер };
c) Настройка всех устройств на использование внутренних DNS серверов
-
Настройка DNS-серверов на устройствах:
- Для офиса HQ:
- Основной DNS-сервер: SRV1-HQ (192.168.11.10)
- Резервный DNS-сервер: SRV1-DT (192.168.33.10)
- Для офиса DT:
- Основной DNS-сервер: SRV1-DT (192.168.33.10)
- Резервный DNS-сервер: SRV1-HQ (192.168.11.10)
- Для офиса HQ:
-
Пример настройки DNS на устройстве CLI-HQ:
- В файле
/etc/resolv.conf:nameserver 192.168.11.10 nameserver 192.168.33.10
- В файле
d) Настройка DNS сервера пересылки
- Использование общедоступного DNS сервера для пересылки запросов:
- На SRV1-HQ и SRV1-DT необходимо настроить пересылку DNS-запросов на внешний DNS-сервер (например, Google DNS или Cloudflare DNS) для запросов, которые не могут быть разрешены локально.
- Пример настройки в BIND:
options { forwarders { 8.8.8.8; 8.8.4.4; }; // Использовать Google DNS для пересылки forward only; };
9) Настройка синхронизации времени между сетевыми устройствами по протоколу NTP
a) Настройка SRV1-HQ как NTP сервера
-
Настройка NTP сервера на SRV1-HQ:
- На SRV1-HQ необходимо установить и настроить NTP-сервер (например,
chronyилиntpd). - Пример конфигурации для
chrony:server ntp2.vniiftri.ru iburst stratum 5 allow 192.168.11.0/24 allow 192.168.33.0/24 - Это позволит SRV1-HQ синхронизировать время с внешним сервером
ntp2.vniiftri.ruи предоставлять время другим устройствам в сети.
- На SRV1-HQ необходимо установить и настроить NTP-сервер (например,
-
Настройка московского часового пояса:
- На всех устройствах необходимо установить московский часовой пояс (MSK). Это можно сделать с помощью команды:
timedatectl set-timezone Europe/Moscow
- На всех устройствах необходимо установить московский часовой пояс (MSK). Это можно сделать с помощью команды:
b) Настройка всех устройств на синхронизацию времени с SRV1-HQ
- Настройка NTP клиентов на устройствах:
- На всех устройствах необходимо настроить NTP-клиент для синхронизации времени с SRV1-HQ.
- Пример настройки для
chrony:server 192.168.11.10 iburst - Это позволит устройствам синхронизировать время с SRV1-HQ.
c) Использование chrony для синхронизации времени
-
Установка и настройка
chrony:- На устройствах, где это возможно, следует использовать
chronyдля синхронизации времени. Установкаchrony:sudo apt-get install chrony - После установки необходимо настроить файл конфигурации
/etc/chrony/chrony.conf:server 192.168.11.10 iburst
- На устройствах, где это возможно, следует использовать
-
Проверка синхронизации времени:
- После настройки можно проверить статус синхронизации с помощью команды:
chronyc tracking
- После настройки можно проверить статус синхронизации с помощью команды:
10) Реализация доменной инфраструктуры SAMBA AD
a) Настройка основного доменного контроллера на SRV1-HQ
-
Установка и настройка SAMBA AD:
- На SRV1-HQ необходимо установить и настроить SAMBA в режиме Active Directory Domain Controller (AD DC).
- Пример команды для установки SAMBA:
sudo apt-get install samba smbclient winbind libnss-winbind libpam-winbind krb5-user - После установки необходимо настроить SAMBA как доменный контроллер с помощью команды:
sudo samba-tool domain provision --use-rfc2307 --interactive
-
Создание пользователей и групп:
- Создайте 30 пользователей (user1-user30) с паролем
P@ssw0rd:sudo samba-tool user create user1 P@ssw0rd sudo samba-tool user create user2 P@ssw0rd ... - Создайте группы и добавьте пользователей в соответствующие группы:
sudo samba-tool group add group1 sudo samba-tool group addmembers group1 user1,user2,...,user10 sudo samba-tool group add group2 sudo samba-tool group addmembers group2 user11,user12,...,user20 sudo samba-tool group add group3 sudo samba-tool group addmembers group3 user21,user22,...,user30
- Создайте 30 пользователей (user1-user30) с паролем
-
Создание подразделений CLI и ADMIN:
- Создайте подразделения (OU) для клиентов и администраторов:
sudo samba-tool ou create OU=CLI,DC=au,DC=team sudo samba-tool ou create OU=ADMIN,DC=au,DC=team - Поместите клиентов в соответствующие подразделения:
sudo samba-tool user move CLI-HQ OU=CLI,DC=au,DC=team sudo samba-tool user move ADMIN-HQ OU=ADMIN,DC=au,DC=team
- Создайте подразделения (OU) для клиентов и администраторов:
-
Настройка общей папки SAMBA:
- Создайте общую папку на SRV1-HQ:
sudo mkdir -p /opt/data/SAMBA sudo chmod 777 /opt/data/SAMBA - Настройте SAMBA для предоставления доступа к этой папке:
[SAMBA] path = /opt/data/SAMBA read only = no
- Создайте общую папку на SRV1-HQ:
b) Настройка резервного контроллера домена на SRV1-DT
-
Настройка SRV1-DT как резервного контроллера домена:
- На SRV1-DT необходимо настроить SAMBA как дополнительный контроллер домена (Additional Domain Controller, ADC):
sudo samba-tool domain join au.team DC -UAdministrator
- На SRV1-DT необходимо настроить SAMBA как дополнительный контроллер домена (Additional Domain Controller, ADC):
-
Использование модуля BIND9_DLZ:
- Настройте BIND9_DLZ для интеграции с SAMBA AD, чтобы обеспечить DNS-сервис для домена.
11) Управление доменом с помощью ADMC
a) Управление доменом с помощью ADMC с ADMIN-HQ
-
Установка ADMC (Active Directory Management Console):
- На ADMIN-HQ необходимо установить инструменты для управления доменом, такие как RSAT (Remote Server Administration Tools) или аналогичные инструменты для Linux, если используется SAMBA AD.
- Для Windows:
- Установите RSAT через "Управление дополнительными компонентами" в Windows.
- Для Linux:
- Используйте
sssdиrealmdдля интеграции с доменом SAMBA AD.
- Используйте
-
Подключение к домену:
- Настройте ADMIN-HQ для подключения к домену
au.team:sudo realm join au.team -U Administrator
- Настройте ADMIN-HQ для подключения к домену
b) Настройка политик для подразделения CLI
-
Настройка политики изменения рабочего стола:
- Используя ADMC, создайте групповую политику (GPO) для подразделения CLI, которая будет изменять обои рабочего стола на картинку компании.
- Пример настройки GPO:
- Перейдите в "Групповые политики" в ADMC.
- Создайте новую политику и примените её к подразделению CLI.
- В разделе "Конфигурация пользователя" -> "Политики" -> "Административные шаблоны" -> "Рабочий стол" -> "Обои" укажите путь к изображению.
-
Запрет изменения сетевых настроек и графических параметров:
- В той же GPO настройте запрет на изменение сетевых настроек и параметров рабочего стола:
- В разделе "Конфигурация пользователя" -> "Политики" -> "Административные шаблоны" -> "Панель управления" -> "Сеть" запретите изменение сетевых настроек.
- В разделе "Конфигурация пользователя" -> "Политики" -> "Административные шаблоны" -> "Рабочий стол" запретите изменение параметров рабочего стола.
- В той же GPO настройте запрет на изменение сетевых настроек и параметров рабочего стола:
c) Подключение общей папки SAMBA для подразделения ADMIN
- Настройка групповой политики для подключения общей папки:
- Создайте GPO для подразделения ADMIN, которая будет автоматически подключать общую папку SAMBA.
- В разделе "Конфигурация пользователя" -> "Политики" -> "Настройки Windows" -> "Сопоставление дисков" настройте подключение сетевого диска к общей папке SAMBA.
12) Настройка межсетевого экрана
-
Настройка правил межсетевого экрана для офиса DT:
- Настройте правила на межсетевом экране (например,
iptablesилиfirewalld) для офиса DT:- Сервера и администраторы офиса DT должны иметь доступ ко всем устройствам.
- Клиенты офиса DT должны иметь доступ только к серверам.
- Разрешите ICMP-запросы администраторам офиса DT на внутренние интерфейсы межсетевого экрана.
- Настройте правила на межсетевом экране (например,
-
Пример настройки
iptables:- Разрешить доступ администраторам:
iptables -A INPUT -s 192.168.33.0/24 -p icmp -j ACCEPT - Ограничить доступ клиентам:
iptables -A INPUT -s 192.168.33.0/24 -d 192.168.33.10 -j ACCEPT iptables -A INPUT -s 192.168.33.0/24 -j DROP
- Разрешить доступ администраторам:
13) Реализация бекапа общей папки на SRV1-HQ с использованием systemctl
a) Настройка бекапа
-
Создание скрипта для архивации:
- Создайте скрипт
/usr/local/bin/backup.shдля архивации данных:#!/bin/bash tar -czf /var/bac/backup_$(date +%Y%m%d_%H%M%S).tar.gz /opt/data/SAMBA
- Создайте скрипт
-
Создание юнита
systemdдля бекапа:- Создайте файл
/etc/systemd/system/backup.service:[Unit] Description=Backup SAMBA folder [Service] Type=oneshot ExecStart=/usr/local/bin/backup.sh
- Создайте файл
-
Создание таймера для ежедневного выполнения:
- Создайте файл
/etc/systemd/system/backup.timer:[Unit] Description=Run backup daily at 8 PM [Timer] OnCalendar=*-*-* 20:00:00 Persistent=true [Install] WantedBy=timers.target
- Создайте файл
-
Запуск и активация таймера:
- Запустите и активируйте таймер:
sudo systemctl enable backup.timer sudo systemctl start backup.timer
- Запустите и активируйте таймер:
14) Развертывание приложений в Docker на SRV2-DT
a) Создание локального Docker Registry
- Запуск локального Docker Registry:
- На SRV2-DT запустите локальный Docker Registry:
docker run -d -p 5000:5000 --restart=always --name registry registry:2
- На SRV2-DT запустите локальный Docker Registry:
b) Создание Dockerfile для приложения web
-
Создание Dockerfile:
- Создайте файл
Dockerfile:FROM nginx:alpine COPY index.html /usr/share/nginx/html/index.html
- Создайте файл
-
Создание
index.html:- Создайте файл
index.html:<html> <body> <center><h1><b>WEB</b></h1></center> </body> </html>
- Создайте файл
-
Сборка и загрузка образа:
- Соберите образ и загрузите его в локальный Registry:
docker build -t localhost:5000/web:1.0 . docker push localhost:5000/web:1.0
- Соберите образ и загрузите его в локальный Registry:
c) Развертывание Docker контейнера
-
Запуск контейнера:
- Запустите контейнер из локального Registry:
docker run -d --name web -p 80:80 localhost:5000/web:1.0
- Запустите контейнер из локального Registry:
-
Обеспечение автозапуска контейнера:
- Настройте контейнер для автозапуска после перезагрузки:
docker update --restart unless-stopped web
- Настройте контейнер для автозапуска после перезагрузки:
15) Настройка системы централизованного мониторинга
a) Установка Zabbix на SRV3-DT
-
Установка PostgreSQL и Zabbix:
- Установите PostgreSQL и Zabbix на SRV3-DT:
sudo apt-get install postgresql zabbix-server-pgsql zabbix-frontend-php zabbix-apache-conf zabbix-agent
- Установите PostgreSQL и Zabbix на SRV3-DT:
-
Настройка базы данных:
- Создайте базу данных и пользователя для Zabbix:
sudo -u postgres createuser --pwprompt zabbix sudo -u postgres createdb -O zabbix zabbix
- Создайте базу данных и пользователя для Zabbix:
-
Настройка Zabbix:
- Настройте Zabbix для использования PostgreSQL:
sudo nano /etc/zabbix/zabbix_server.conf- Укажите параметры базы данных:
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbixpwd
- Укажите параметры базы данных:
- Настройте Zabbix для использования PostgreSQL:
-
Запуск Zabbix:
- Запустите и активируйте Zabbix:
sudo systemctl enable zabbix-server zabbix-agent apache2 sudo systemctl start zabbix-server zabbix-agent apache2
- Запустите и активируйте Zabbix:
b) Настройка узлов мониторинга
- Добавление узлов в Zabbix:
- Добавьте устройства SRV1-DT, SRV2-DT, SRV3-DT и SRV-HQ в Zabbix через веб-интерфейс.
- Убедитесь, что имя узла соответствует полному имени устройства.
16) Настройка веб-сервера nginx как обратного прокси-сервера на SRV1-DT
a) Настройка nginx для перенаправления
-
Установка nginx:
- Установите nginx на SRV1-DT:
sudo apt-get install nginx
- Установите nginx на SRV1-DT:
-
Настройка конфигурации nginx:
- Создайте конфигурационный файл для перенаправления:
server { listen 80; server_name www.au.team; location / { proxy_pass http://192.168.33.20; # SRV2-DT } } server { listen 80; server_name zabbix.au.team; location / { proxy_pass http://192.168.33.30; # SRV3-DT } }
- Создайте конфигурационный файл для перенаправления:
-
Перезапуск nginx:
- Перезапустите nginx для применения изменений:
sudo systemctl restart nginx
- Перезапустите nginx для применения изменений:
17) Настройка узла управления Ansible
a) Настройка Ansible на ADMIN-DT
-
Установка Ansible:
- Установите Ansible на ADMIN-DT:
sudo apt-get install ansible
- Установите Ansible на ADMIN-DT:
-
Создание инвентаря:
- Создайте файл
/etc/ansible/inventory:[Networking] R-DT R-HQ [Servers] SRV1-HQ SRV1-DT SRV2-DT SRV3-DT [Clients] ADMIN-HQ ADMIN-DT CLI-HQ CLI-DT
- Создайте файл
-
Настройка SSH:
- Убедитесь, что все устройства доступны по SSH с использованием пользователя
sshuser:ssh sshuser@R-DT
- Убедитесь, что все устройства доступны по SSH с использованием пользователя
-
Тестовая команда "ping":
- Выполните тестовую команду:
ansible all -m ping
- Выполните тестовую команду:
18) Настройка резервного копирования
a) Установка и настройка Кибер Бекап
-
Установка Кибер Бекап:
- Установите Кибер Бекап 17 версии на ADMIN-HQ.
-
Настройка организации и пользователя:
- Создайте организацию
wsrи пользователяwsradminс паролемP@ssw0rd.
- Создайте организацию
-
Установка агента на CLI-HQ:
- Установите агент Кибер Бекап на CLI-HQ и подключите его к серверу с использованием токена.
-
Настройка устройства хранения:
- Подключите блочное устройство
sdbв форматеxfsи примонтируйте его в папку/backups.
- Подключите блочное устройство
-
Создание плана резервного копирования:
- Создайте план полного резервного копирования для сервера ADMIN-HQ и выполните резервное копирование на узел хранения.
Модуль Г. Обеспечение отказоустойчивости
1) Подготовка машины ControlVM
a) Общие указания
-
Создание виртуального инстанса ControlVM:
- Создайте виртуальную машину с именем ControlVM и подключите её к сети интернет.
- Установите параметры:
- Тип виртуальной машины: 2 vCPU, 4 ГБ RAM.
- Размер диска: 30 ГБ SSD.
- В качестве операционной системы выберите Альт Сервер 10.
-
Настройка SSH для внешнего подключения:
- Убедитесь, что на ControlVM разрешены внешние подключения по SSH.
- Сохраните ключевую пару для доступа на локальном ПК в формате
.pem.
-
Настройка PuTTY для подключения:
- Установите PuTTY на локальный ПК.
- Создайте профиль с именем cloud и настройте подключение к ControlVM с использованием ключевой пары.
2) Подготовка облачной инфраструктуры
a) Требования к виртуальным машинам
-
Создание виртуальных машин:
- Создайте виртуальные машины в соответствии с топологией:
- Web1 и Web2: 1 vCPU, 1024 МБ RAM, 10 ГБ HDD.
- WebAdm: 1 vCPU, 1024 МБ RAM, 30 ГБ HDD.
- Используйте операционную систему Альт p10 StarterKit или Альт Сервер p10-cloud.
- Создайте виртуальные машины в соответствии с топологией:
-
Настройка сетей:
- Создайте сети и подсети в соответствии с топологией.
- Назначьте IP-адреса всем виртуальным машинам и сохраните их в файле
/home/altlinux/white.ipна ControlVM.
-
Настройка безопасности:
- Разрешите ICMP-трафик для диагностики сетевых подключений.
- Настройте аутентификацию по SSH с использованием открытых ключей.
-
Балансировка нагрузки:
- Создайте балансировщик нагрузки для распределения трафика между Web1 и Web2.
- Ограничьте доступ к балансировщику только протоколами HTTP и HTTPS.
- Используйте алгоритм round robin для балансировки.
-
Настройка VPN туннеля:
- Настройте VPN туннель между WebAdm и серверами Web1 и Web2.
- Убедитесь, что ControlVM может подключаться к WebAdm по SSH через глобальный IP-адрес.
3) Создание и настройка скрипта на машине ControlVM
a) Создание скрипта автоматизации
-
Создание скрипта
cloudinit.sh:- Создайте скрипт в директории
/home/altlinux/bin:#!/bin/bash source /home/altlinux/bin/cloud.conf # Скрипт для автоматизации развёртывания облачной инфраструктуры - Скрипт должен использовать файл конфигурации
/home/altlinux/bin/cloud.confдля настройки подключения к облачному провайдеру.
- Создайте скрипт в директории
-
Проверка доступности ресурсов:
- Скрипт должен проверять доступность созданных ресурсов, включая доступность веб-серверов через балансировщик нагрузки.
4) Развертывание приложений в Docker
a) Развертывание Python-скрипта в Docker
-
Создание Python-скрипта:
- Создайте скрипт
py.pyв домашней директории пользователя:import os if os.path.exists("/root/input.txt"): with open("/root/input.txt", "r") as f: print(f.read()) else: print("Файл input.txt не найден")
- Создайте скрипт
-
Создание Dockerfile:
- Создайте
Dockerfileдля сборки образа:FROM python:3.8-alpine COPY py.py /py.py COPY input.txt /root/input.txt CMD ["python", "/py.py"]
- Создайте
-
Сборка и запуск контейнера:
- Соберите образ и запустите контейнер:
docker build -t file-copy-python . docker run file-copy-python
- Соберите образ и запустите контейнер:
b) Развертывание WordPress с использованием Docker Compose
-
Создание файла
wordpress.yml:- Создайте файл
wordpress.ymlдля развертывания WordPress и MySQL:version: '3' services: wordpress: image: wordpress:latest ports: - "80:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress networks: - wordpress-network db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress volumes: - db_data:/var/lib/mysql networks: - wordpress-network networks: wordpress-network: volumes: db_data:
- Создайте файл
-
Запуск стека:
- Запустите Docker Compose:
docker-compose -f wordpress.yml up -d
- Запустите Docker Compose:
c) Развертывание базового стека ELK
-
Создание файла
elk.yml:- Создайте файл
elk.ymlдля развертывания Elasticsearch, Logstash и Kibana:version: '3' services: elasticsearch: image: elasticsearch:7.10.1 ports: - "9200:9200" networks: - elk-network logstash: image: logstash:7.10.1 ports: - "5000:5000" networks: - elk-network kibana: image: kibana:7.10.1 ports: - "5601:5601" networks: - elk-network networks: elk-network:
- Создайте файл
-
Запуск стека:
- Запустите Docker Compose:
docker-compose -f elk.yml up -d
- Запустите Docker Compose:
5) Развёртывание облачных сервисов
a) Создание скрипта DeployApp.sh
-
Создание скрипта:
- Создайте скрипт
/home/altlinux/bin/DeployApp.shдля развёртывания веб-приложения:#!/bin/bash docker run -d -p 80:80 localhost:5000/web:1.0
- Создайте скрипт
-
Настройка балансировки нагрузки:
- Убедитесь, что веб-приложение доступно через балансировщик нагрузки по протоколу HTTPS.
6) Завершение работы
-
Освобождение ресурсов:
- Удалите все автоматически созданные виртуальные машины, сети и другие ресурсы, кроме ControlVM.
-
Проверка выполнения задания:
- Убедитесь, что в облачной инфраструктуре остались только ресурсы, необходимые для работы ControlVM.




