Skip to main content

На подумать

8) Настройка DNS для SRV1-HQ и SRV1-DT

11.jpg 111.jpg 1111.jpg 111111.jpg 11111.jpg

a) Реализация основного DNS сервера компании на SRV1-HQ

  1. Создание записей 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.
      
  2. Создание записей CNAME для сервисов предприятия:

    • Записи CNAME используются для создания псевдонимов для существующих записей A. Например:
      www.au.team.        IN    CNAME    SRV1-HQ.au.team.
      mail.au.team.       IN    CNAME    SRV1-DT.au.team.
      
  3. Ограничение загрузки записей с 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
      };
      

b) Настройка SRV1-DT как резервного DNS сервера

  1. Настройка 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 серверов

  1. Настройка 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)
  2. Пример настройки DNS на устройстве CLI-HQ:

    • В файле /etc/resolv.conf:
      nameserver 192.168.11.10
      nameserver 192.168.33.10
      

d) Настройка DNS сервера пересылки

  1. Использование общедоступного 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 сервера

  1. Настройка 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 и предоставлять время другим устройствам в сети.
  2. Настройка московского часового пояса:

    • На всех устройствах необходимо установить московский часовой пояс (MSK). Это можно сделать с помощью команды:
      timedatectl set-timezone Europe/Moscow
      

b) Настройка всех устройств на синхронизацию времени с SRV1-HQ

  1. Настройка NTP клиентов на устройствах:
    • На всех устройствах необходимо настроить NTP-клиент для синхронизации времени с SRV1-HQ.
    • Пример настройки для chrony:
      server 192.168.11.10 iburst
      
    • Это позволит устройствам синхронизировать время с SRV1-HQ.

c) Использование chrony для синхронизации времени

  1. Установка и настройка chrony:

    • На устройствах, где это возможно, следует использовать chrony для синхронизации времени. Установка chrony:
      sudo apt-get install chrony
      
    • После установки необходимо настроить файл конфигурации /etc/chrony/chrony.conf:
      server 192.168.11.10 iburst
      
  2. Проверка синхронизации времени:

    • После настройки можно проверить статус синхронизации с помощью команды:
      chronyc tracking
      

10) Реализация доменной инфраструктуры SAMBA AD

a) Настройка основного доменного контроллера на SRV1-HQ

  1. Установка и настройка 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
      
  2. Создание пользователей и групп:

    • Создайте 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
      
  3. Создание подразделений 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
      
  4. Настройка общей папки SAMBA:

    • Создайте общую папку на SRV1-HQ:
      sudo mkdir -p /opt/data/SAMBA
      sudo chmod 777 /opt/data/SAMBA
      
    • Настройте SAMBA для предоставления доступа к этой папке:
      [SAMBA]
      path = /opt/data/SAMBA
      read only = no
      

b) Настройка резервного контроллера домена на SRV1-DT

  1. Настройка SRV1-DT как резервного контроллера домена:

    • На SRV1-DT необходимо настроить SAMBA как дополнительный контроллер домена (Additional Domain Controller, ADC):
      sudo samba-tool domain join au.team DC -UAdministrator
      
  2. Использование модуля BIND9_DLZ:

    • Настройте BIND9_DLZ для интеграции с SAMBA AD, чтобы обеспечить DNS-сервис для домена.

11) Управление доменом с помощью ADMC

a) Управление доменом с помощью ADMC с ADMIN-HQ

  1. Установка ADMC (Active Directory Management Console):

    • На ADMIN-HQ необходимо установить инструменты для управления доменом, такие как RSAT (Remote Server Administration Tools) или аналогичные инструменты для Linux, если используется SAMBA AD.
    • Для Windows:
      • Установите RSAT через "Управление дополнительными компонентами" в Windows.
    • Для Linux:
      • Используйте sssd и realmd для интеграции с доменом SAMBA AD.
  2. Подключение к домену:

    • Настройте ADMIN-HQ для подключения к домену au.team:
      sudo realm join au.team -U Administrator
      

b) Настройка политик для подразделения CLI

  1. Настройка политики изменения рабочего стола:

    • Используя ADMC, создайте групповую политику (GPO) для подразделения CLI, которая будет изменять обои рабочего стола на картинку компании.
    • Пример настройки GPO:
      • Перейдите в "Групповые политики" в ADMC.
      • Создайте новую политику и примените её к подразделению CLI.
      • В разделе "Конфигурация пользователя" -> "Политики" -> "Административные шаблоны" -> "Рабочий стол" -> "Обои" укажите путь к изображению.
  2. Запрет изменения сетевых настроек и графических параметров:

    • В той же GPO настройте запрет на изменение сетевых настроек и параметров рабочего стола:
      • В разделе "Конфигурация пользователя" -> "Политики" -> "Административные шаблоны" -> "Панель управления" -> "Сеть" запретите изменение сетевых настроек.
      • В разделе "Конфигурация пользователя" -> "Политики" -> "Административные шаблоны" -> "Рабочий стол" запретите изменение параметров рабочего стола.

c) Подключение общей папки SAMBA для подразделения ADMIN

  1. Настройка групповой политики для подключения общей папки:
    • Создайте GPO для подразделения ADMIN, которая будет автоматически подключать общую папку SAMBA.
    • В разделе "Конфигурация пользователя" -> "Политики" -> "Настройки Windows" -> "Сопоставление дисков" настройте подключение сетевого диска к общей папке SAMBA.

12) Настройка межсетевого экрана

  1. Настройка правил межсетевого экрана для офиса DT:

    • Настройте правила на межсетевом экране (например, iptables или firewalld) для офиса DT:
      • Сервера и администраторы офиса DT должны иметь доступ ко всем устройствам.
      • Клиенты офиса DT должны иметь доступ только к серверам.
      • Разрешите ICMP-запросы администраторам офиса DT на внутренние интерфейсы межсетевого экрана.
  2. Пример настройки 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) Настройка бекапа

  1. Создание скрипта для архивации:

    • Создайте скрипт /usr/local/bin/backup.sh для архивации данных:
      #!/bin/bash
      tar -czf /var/bac/backup_$(date +%Y%m%d_%H%M%S).tar.gz /opt/data/SAMBA
      
  2. Создание юнита systemd для бекапа:

    • Создайте файл /etc/systemd/system/backup.service:
      [Unit]
      Description=Backup SAMBA folder
      
      [Service]
      Type=oneshot
      ExecStart=/usr/local/bin/backup.sh
      
  3. Создание таймера для ежедневного выполнения:

    • Создайте файл /etc/systemd/system/backup.timer:
      [Unit]
      Description=Run backup daily at 8 PM
      
      [Timer]
      OnCalendar=*-*-* 20:00:00
      Persistent=true
      
      [Install]
      WantedBy=timers.target
      
  4. Запуск и активация таймера:

    • Запустите и активируйте таймер:
      sudo systemctl enable backup.timer
      sudo systemctl start backup.timer
      

14) Развертывание приложений в Docker на SRV2-DT

a) Создание локального Docker Registry

  1. Запуск локального Docker Registry:
    • На SRV2-DT запустите локальный Docker Registry:
      docker run -d -p 5000:5000 --restart=always --name registry registry:2
      

b) Создание Dockerfile для приложения web

  1. Создание Dockerfile:

    • Создайте файл Dockerfile:
      FROM nginx:alpine
      COPY index.html /usr/share/nginx/html/index.html
      
  2. Создание index.html:

    • Создайте файл index.html:
      <html>
      <body>
      <center><h1><b>WEB</b></h1></center>
      </body>
      </html>
      
  3. Сборка и загрузка образа:

    • Соберите образ и загрузите его в локальный Registry:
      docker build -t localhost:5000/web:1.0 .
      docker push localhost:5000/web:1.0
      

c) Развертывание Docker контейнера

  1. Запуск контейнера:

    • Запустите контейнер из локального Registry:
      docker run -d --name web -p 80:80 localhost:5000/web:1.0
      
  2. Обеспечение автозапуска контейнера:

    • Настройте контейнер для автозапуска после перезагрузки:
      docker update --restart unless-stopped web
      

15) Настройка системы централизованного мониторинга

a) Установка Zabbix на SRV3-DT

  1. Установка PostgreSQL и Zabbix:

    • Установите PostgreSQL и Zabbix на SRV3-DT:
      sudo apt-get install postgresql zabbix-server-pgsql zabbix-frontend-php zabbix-apache-conf zabbix-agent
      
  2. Настройка базы данных:

    • Создайте базу данных и пользователя для Zabbix:
      sudo -u postgres createuser --pwprompt zabbix
      sudo -u postgres createdb -O zabbix zabbix
      
  3. Настройка Zabbix:

    • Настройте Zabbix для использования PostgreSQL:
      sudo nano /etc/zabbix/zabbix_server.conf
      
      • Укажите параметры базы данных:
        DBHost=localhost
        DBName=zabbix
        DBUser=zabbix
        DBPassword=zabbixpwd
        
  4. Запуск Zabbix:

    • Запустите и активируйте Zabbix:
      sudo systemctl enable zabbix-server zabbix-agent apache2
      sudo systemctl start zabbix-server zabbix-agent apache2
      

b) Настройка узлов мониторинга

  1. Добавление узлов в Zabbix:
    • Добавьте устройства SRV1-DT, SRV2-DT, SRV3-DT и SRV-HQ в Zabbix через веб-интерфейс.
    • Убедитесь, что имя узла соответствует полному имени устройства.

16) Настройка веб-сервера nginx как обратного прокси-сервера на SRV1-DT

a) Настройка nginx для перенаправления

  1. Установка nginx:

    • Установите nginx на SRV1-DT:
      sudo apt-get install nginx
      
  2. Настройка конфигурации 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
          }
      }
      
  3. Перезапуск nginx:

    • Перезапустите nginx для применения изменений:
      sudo systemctl restart nginx
      

17) Настройка узла управления Ansible

a) Настройка Ansible на ADMIN-DT

  1. Установка Ansible:

    • Установите Ansible на ADMIN-DT:
      sudo apt-get install ansible
      
  2. Создание инвентаря:

    • Создайте файл /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
      
  3. Настройка SSH:

    • Убедитесь, что все устройства доступны по SSH с использованием пользователя sshuser:
      ssh sshuser@R-DT
      
  4. Тестовая команда "ping":

    • Выполните тестовую команду:
      ansible all -m ping
      

18) Настройка резервного копирования

a) Установка и настройка Кибер Бекап

  1. Установка Кибер Бекап:

    • Установите Кибер Бекап 17 версии на ADMIN-HQ.
  2. Настройка организации и пользователя:

    • Создайте организацию wsr и пользователя wsradmin с паролем P@ssw0rd.
  3. Установка агента на CLI-HQ:

    • Установите агент Кибер Бекап на CLI-HQ и подключите его к серверу с использованием токена.
  4. Настройка устройства хранения:

    • Подключите блочное устройство sdb в формате xfs и примонтируйте его в папку /backups.
  5. Создание плана резервного копирования:

    • Создайте план полного резервного копирования для сервера ADMIN-HQ и выполните резервное копирование на узел хранения.

Модуль Г. Обеспечение отказоустойчивости

1) Подготовка машины ControlVM

a) Общие указания
  1. Создание виртуального инстанса ControlVM:

    • Создайте виртуальную машину с именем ControlVM и подключите её к сети интернет.
    • Установите параметры:
      • Тип виртуальной машины: 2 vCPU, 4 ГБ RAM.
      • Размер диска: 30 ГБ SSD.
    • В качестве операционной системы выберите Альт Сервер 10.
  2. Настройка SSH для внешнего подключения:

    • Убедитесь, что на ControlVM разрешены внешние подключения по SSH.
    • Сохраните ключевую пару для доступа на локальном ПК в формате .pem.
  3. Настройка PuTTY для подключения:

    • Установите PuTTY на локальный ПК.
    • Создайте профиль с именем cloud и настройте подключение к ControlVM с использованием ключевой пары.

2) Подготовка облачной инфраструктуры

a) Требования к виртуальным машинам
  1. Создание виртуальных машин:

    • Создайте виртуальные машины в соответствии с топологией:
      • Web1 и Web2: 1 vCPU, 1024 МБ RAM, 10 ГБ HDD.
      • WebAdm: 1 vCPU, 1024 МБ RAM, 30 ГБ HDD.
    • Используйте операционную систему Альт p10 StarterKit или Альт Сервер p10-cloud.
  2. Настройка сетей:

    • Создайте сети и подсети в соответствии с топологией.
    • Назначьте IP-адреса всем виртуальным машинам и сохраните их в файле /home/altlinux/white.ip на ControlVM.
  3. Настройка безопасности:

    • Разрешите ICMP-трафик для диагностики сетевых подключений.
    • Настройте аутентификацию по SSH с использованием открытых ключей.
  4. Балансировка нагрузки:

    • Создайте балансировщик нагрузки для распределения трафика между Web1 и Web2.
    • Ограничьте доступ к балансировщику только протоколами HTTP и HTTPS.
    • Используйте алгоритм round robin для балансировки.
  5. Настройка VPN туннеля:

    • Настройте VPN туннель между WebAdm и серверами Web1 и Web2.
    • Убедитесь, что ControlVM может подключаться к WebAdm по SSH через глобальный IP-адрес.

3) Создание и настройка скрипта на машине ControlVM

a) Создание скрипта автоматизации
  1. Создание скрипта cloudinit.sh:

    • Создайте скрипт в директории /home/altlinux/bin:
      #!/bin/bash
      source /home/altlinux/bin/cloud.conf
      # Скрипт для автоматизации развёртывания облачной инфраструктуры
      
    • Скрипт должен использовать файл конфигурации /home/altlinux/bin/cloud.conf для настройки подключения к облачному провайдеру.
  2. Проверка доступности ресурсов:

    • Скрипт должен проверять доступность созданных ресурсов, включая доступность веб-серверов через балансировщик нагрузки.

4) Развертывание приложений в Docker

a) Развертывание Python-скрипта в Docker
  1. Создание 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 не найден")
      
  2. Создание Dockerfile:

    • Создайте Dockerfile для сборки образа:
      FROM python:3.8-alpine
      COPY py.py /py.py
      COPY input.txt /root/input.txt
      CMD ["python", "/py.py"]
      
  3. Сборка и запуск контейнера:

    • Соберите образ и запустите контейнер:
      docker build -t file-copy-python .
      docker run file-copy-python
      
b) Развертывание WordPress с использованием Docker Compose
  1. Создание файла 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:
      
  2. Запуск стека:

    • Запустите Docker Compose:
      docker-compose -f wordpress.yml up -d
      
c) Развертывание базового стека ELK
  1. Создание файла 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:
      
  2. Запуск стека:

    • Запустите Docker Compose:
      docker-compose -f elk.yml up -d
      

5) Развёртывание облачных сервисов

a) Создание скрипта DeployApp.sh
  1. Создание скрипта:

    • Создайте скрипт /home/altlinux/bin/DeployApp.sh для развёртывания веб-приложения:
      #!/bin/bash
      docker run -d -p 80:80 localhost:5000/web:1.0
      
  2. Настройка балансировки нагрузки:

    • Убедитесь, что веб-приложение доступно через балансировщик нагрузки по протоколу HTTPS.

6) Завершение работы

  1. Освобождение ресурсов:

    • Удалите все автоматически созданные виртуальные машины, сети и другие ресурсы, кроме ControlVM.
  2. Проверка выполнения задания:

    • Убедитесь, что в облачной инфраструктуре остались только ресурсы, необходимые для работы ControlVM.