
Устройство | Операционная система | Пользователь/Пароль |
---|---|---|
RTR1 |
RedOS 7.3.3
|
root / toor |
user / P@ssw0rd |
||
RTR2 |
Astra Linux 2.12.46.6 |
user / P@ssw0rd |
SRV1 |
Astra Linux 2.12.46.6 |
user / P@ssw0rd |
SRV2 |
Astra Linux 2.12.46.6 |
user / P@ssw0rd |
CLI1 |
RedOS 7.3.3
|
root / toor |
user / P@ssw0rd |
||
CLI2 |
Astra Linux 2.12.46.6 |
user / P@ssw0rd |
Модуль Б и Модуль В — переделан с учётом назначения IP — адресов, и понятия «первый» и «последний» адрес в сети
Замена скриншотов произведена не будет
На момент выполнения Модуля Г — IP адреса следующие:
RTR1 — 192.168.100.253/24
RTR2 — 192.168.100.252/24
SRV1 — 192.168.100.2/24
SRV2 — 192.168.100.3/23
т.к. для использования в vrrp в качестве виртуального адреса 192.168.100.255 может вызвать ряд ошибок, но по факту данный адрес тоже является адресом в данной сети и является «последним».
hostnamectl set-hostname <FQDN_NAME>;exec bash
где:
<FQDN_NAME> — Fully Qualified Domain Name — «полностью определённое имя домена», иногда сокращается до «полное имя домена»
exec bash — перезапуск оболочки bash для отображения нового хостнейма
Пример:
hostnamectl set-hostname rtr1.company.prof;exec bash

(аналогичным образом на всех остальных хостах)
b) Настройте адресацию устройств согласно топологии
Адрес сети – согласно топологии:
Для RTR1 – последний адрес сети минус 1
Для RTR2 – последний адрес сети минус 2
Для SRV1 – первый адрес сети плюс 1
Для SRV2 – первый адрес сети плюс 2
Для CLI1 – десятый адрес сети
Для CLI2 – двадцатый адрес сети
Адрес шлюза по умолчанию:
Для SRV1 – адрес маршрутизатора RTR1
Для SRV2 – адрес маршрутизатора RTR2
Для CLI1 – адрес маршрутизатора RTR1
Для CLI2 – адрес маршрутизатора RTR2
DNS-суффикс – company.prof
Используйте в качестве домена поиска
Адрес DNS-сервера:
Для RTR1 – адрес 77.88.8.8
Для RTR2 – адрес 77.88.8.1
Для SRV1 – адрес маршрутизатора RTR1
Для SRV2 – адрес маршрутизатора RTR2
Для CLI1 – адрес маршрутизатора RTR1
Для CLI2 – адрес маршрутизатора RTR2
На хостах с ОС Astra настраиваем в стиле debian и правим конфигурационный файл «/etc/network/interfaces»
На хостах с ОС RedOS настраиваем в стеле RHEL и правим конфигурационные файлы в директории «/etc/sysconfig/network-scripts/»
Также необходимо сразу включить «forwarding» (пересылку пакетов) на маршрутизаторах
Локальных репозиториев нет, пакеты необходимо будет брать из Интернета, т.е. на «внешний» сетевой интерфейс подключённый к сети Интернет получаем настройки по DHCP
RTR1
Настраиваем «внутренний» интерфейс для сети LAN:
vi /etc/sysconfig/network-scripts/ifcfg-ens34

systemctl restart NetworkManager
Проверяем:

где:
ens34 — внутренний интерфейс
Включаем forwarding:
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf;sysctl -p

где:
net.ipv4.ip_forward=1 — параметр ядра, разрешающий пересылку пакетов между интерфейсами;
/etc/sysctl.conf — файл, в котором хранятся опции ядра;
sysctl -p — команда, которая читает файл /etc/sysctl.conf и применяет перечисленные в нем параметры.
RTR2
Настраиваем «внутренний» интерфейс для сети LAN:
vi /etc/network/interfaces

systemctl restart networking
Проверяем:

Включаем forwarding:
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf;sysctl -p

Аналогичным образом настраиваем сетевые интерфейсы на остальных хостах:
SRV1:
ip — 192.168.100.1/24
gateway — 192.168.100.254
dns — 192.168.100.254
domain — company.prof
SRV2:
ip — 192.168.100.2/24gateway — 192.168.100.253
dns — 192.168.100.253
domain — company.prof
ip — 192.168.100.10/24gateway — 192.168.100.254
dns — 192.168.100.254
domain — company.prof
ip — 192.168.100.20/24gateway — 192.168.100.253
dns — 192.168.100.253
domain — company.prof
Пример для SRV1 (Astra):
vi /etc/network/interfaces

vi /etc/resolv.conf

Пример для CLI1 (RedOS):
vi /etc/sysconfig/network-interfaces/ifcfg-ens33

Пользователь sshuser должен иметь возможность запуска утилиты sudo без дополнительной аутентификации.
Создадим пользователя без домашнего каталога:
useradd -M sshuser
Зададим пароль для пользователя (при необходимости):
passwd sshuser
Разрешим данному пользователя использовать sudo без доп.аутентификации:
echo "sshuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Проверим:

Аналогичным образом на всех необходимых хостах
2. Настройка дисковой подсистемы
Уровень дискового массива RAID 1.
Используйте два неразмеченных жестких диска
Настройте автоматическое монтирование дискового массива.
Точка монтирования /opt/data.

Для создания RAID массива используем диски sdb и sdc.
На новых неразмеченных дисках необходимо создать разделы при помощи утилиты cfdisk:
cfdisk /dev/sdb
Откроется псевдографическая утилита, на данном этапе необходимо указать метку раздела — значение по умолчанию, GPT.

Далее необходимо выбрать Новый для создания нового раздела.

Далее указывается размер создаваемого раздела, по умолчанию указывается все свободное пространство целевого диска. Нажатием Enter происходит соглашение с размером раздела.

После чего необходимо перейти в опцию меню Тип, чтобы указать, какой формат разметки выбрать. По умолчанию выбирается Linux Filesystem, но для создания RAID-массива потребуется отформатировать диск в Linux RAID.

В указанном списке выбирается Linux RAID.

Запишем изменения.

Вручную пишется слово yes, чтобы принять изменения и отформатировать диск.

После внесенных правок необходимо покинуть утилиту cfdisk, выбрав параметр Выход.

Необходимо повторить данную процедуру также и со вторым добавленным диском.
Проверим:
lsblk

Далее необходимо собрать RAID1-массив:
mdadm --create /dev/md0 –-level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
где:
mdadm — обращение к утилите mdadm;—create — создать новый массив;
/dev/md0 — указывается, как будет называться логический том RAID-массива, /dev/mdX, где Х — порядковый номер RAID-массива, а mdX — зарезервированное имя устройства для RAID в Linux;
—level=1 — указывается уровень RAID-массива. 1 — указывает на RAID1 («Зеркало»);
—raid-devices=2 — указывается количество устройств, добавленных в RAID-массив;
/dev/sdb1 /dev/sdc1 — перечисляются диски, которые добавим в RAID-массив.
Проверим:
lsblk

После того, как массив собран, его необходимо сохранить:
mdadm --detail --scan --verbose | tee -a /etc/mdadm.conf

После того, как массив собран, необходимо форматировать его в необходимую файловую систему, например ext4 и настроить автоматическое монтирование при загрузке в директорию /opt/data.
Форматируем в ext4:
mkfs.ext4 /dev/md0

Далее необходимо создать точку монтирования данного массива:
mkdir /opt/data
После этого необходимо добавить запись в файл /etc/fstab:
vi /etc/fstab

где:
/dev/md0 — указывается устройство, планируемое к монтированию в операционную систему (можно также использовать и «UUID» получив из вывода команды «blkid /dev/md0»);
/opt/data — указывается точка монтирования — созданная ранее директория;
ext4 — указывается файловая система целевого устройства;
defaults — указывает, что параметры монтирования файловой системы будут выполнены по умолчанию;
первый ноль — указывает параметр, который должен использоваться, если в системе установлены утилиты резервного копирования. Если установлен 0, значит, резервное копирование выключено;
второй ноль — если установлен 0, то данный раздел не проверяется на ошибки разделов утилитой fsck, иные значения указывают на проверку раздела.
Применяем монтирование и проверяем результат:
mount -av


Используйте два неразмеченных жестких диска
Настройте автоматическое монтирование тома
Точка монтирования /opt/data

Для конфигурации LVM используем диски sdb и sdc.
Для работы с LVM необходима установка одноименной утилиты
apt update && apt install -y lvm2
Помечаем диски, что они будут использоваться для LVM
pvcreate /dev/sdb /dev/sdc

Посмотреть, что диск может использоваться LMV можно командой:
pvdisplay

где:
PV Name — имя диска.
VG Name — группа томов, в которую входит данный диск (в нашем случае пусто, так как мы еще не добавили его в группу).
PV Size — размер диска.
Allocatable — распределение по группам. Если NO, то диск еще не задействован и его необходимо для использования включить в группу.
PE Size — размер физического фрагмента (экстента). Пока диск не добавлен в группу, значение будет 0.
Total PE — количество физических экстентов.
Free PE — количество свободных физических экстентов.
Allocated PE — распределенные экстенты.
PV UUID — идентификатор физического раздела.
Инициализированные на первом этапе диски должны быть объединены в группы.
vgcreate vg01 /dev/sdb /dev/sdc

где: vg01 — произвольное (необходимое по заданию) имя группы
Просмотреть информацию о созданных группах можно командой:
vgdisplay

где:
VG Name — имя группы.Format — версия подсистемы, используемая для создания группы.
Metadata Areas — область размещения метаданных. Увеличивается на единицу с созданием каждой группы.
VG Access — уровень доступа к группе томов.
VG Size — суммарный объем всех дисков, которые входят в группу.
PE Size — размер физического фрагмента (экстента).
Total PE — количество физических экстентов.
Alloc PE / Size — распределенное пространство: количество экстентов / объем.
Free PE / Size — свободное пространство: количество экстентов / объем.
VG UUID — идентификатор группы.
Последний этап — создание логического раздела из группы томов
lvcreate -l 100%FREE -n lv01 vg01

где:
-l 100%FREE – создание логического тома, используя все свободное пространство группы томов.
ещё варианты записи:
-L 1G: том на 1 гб
-L50: том на 50мб
-l 40%VG использовать 40% от дискового пространства группы
Посмотрим информацию о созданном томе
lvdisplay

где:
LV Path — путь к устройству логического тома.
LV Name — имя логического тома.
VG Name — имя группы томов.
LV UUID — идентификатор.
LV Write Access — уровень доступа.
LV Creation host, time — имя компьютера и дата, когда был создан том.
LV Size — объем дискового пространства, доступный для использования.
Current LE — количество логических экстентов.
Чтобы начать использовать созданный том, необходимо его отформатировать, создав файловую систему и примонтировать раздел в каталог
Создадим файловую систему ext4:
mkfs.ext4 /dev/vg01/lv01

Далее необходимо создать точку монтирования
mkdir /opt/data
После этого необходимо добавить запись в файл /etc/fstab:
vi /etc/fstab

Применяем монтирование и проверяем результат:
mount -av


Настройте возможность удаленного подключения к серверу баз данных пользователю root с любых адресов
Устанавливаем MariaDB
dnf install -y mariadb-server
apt install -y mariadb-server
Разрешаем автозапуск демона и запускаем его
systemctl enable --now mariadb
Установим пароль для пользователя root:
mysqladmin -uroot password
система запросит новый пароль. Его нужно ввести дважды.

Настраиваем удалённое подключение к БД
Правим конфигурационный файл:
vi /etc/my.cnf.d/mariadb-server.cnf
vi /etc/mysql/mariadb.conf.d/50-server.cnf
Необходимо добавить в секцию [ mysqld ] строку: bind-address 0.0.0.0 — тогда сервер будет слушать все интерфейсы компьютера и доступ к БД будет с любых адресов

Перезапускаем MariaDB
systemctl restart mariadb
Проверим:
ss -tlpn | grep 3306

Обновим привилегии пользователя root для возможности удалённого подключения:
mysql -uroot -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'P@ssw0rd' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

После проверяем удалённое подключение с RTR2 на RTR1 для пользователя root

Аналогичным образом в обратную сторону
В качестве веб-сервера используйте Apache
Используйте phpMyAdmin версии 4.9.11
Веб панель phpMyAdmin должна быть доступна по адресу
http://<IP адрес RTR1>/phpmyadmin для RTR1
http://<IP адрес RTR2>/phpmyadmin для RTR2
При авторизации через Веб панель phpMyAdmin должна быть возможность явно указать адрес сервера баз данных
При работе phpMyAdmin не должен выдавать ошибки и предупреждающие сообщения
Установка веб-сервера Apache
dnf install -y httpd httpd-tools
apt install -y apache2 apache2-utils
Запускаем веб-сервер и добавляем в автозагрузку:
systemctl enable --now httpd
systemctl enable --now apache2
Устанавливаем PHP и часто используемые модули
dnf install -y php php-{mysqlnd,dom,simplexml,xml,curl,exif,ftp,gd,iconv,json,mbstring,posix}
systemctl enable --now php-fpm
apt install -y php libapache2-mod-php php-{cli,fpm,json,pdo,mysql,zip,gd,mbstring,curl,xml,pear,bcmath}
Установка phpMyAdmin
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.11/phpMyAdmin-4.9.11-all-languages.zip
Распакуем архив phpMyAdmin
unzip phpMyAdmin-4.9.11-all-languages.zip
Переместим в каталог /usr/share
mv phpMyAdmin-4.9.11-all-languages /usr/share/phpmyadmin
Настройка phpMyAdmin
Создадим поддиректорию
mkdir -p /var/lib/phpmyadmin/tmp
Назначаем владельца
chown -R apache:apache /var/lib/phpmyadmin
chown -R www-data:www-data /var/lib/phpmyadmin
Копируем шаблон config.inc.php и редактируем
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
vi /usr/share/phpmyadmin/config.inc.php
находим и правим следующую строку: $cfg[‘blowfish_secret’] = » «;

а также раскомментируем следующий блок

Создаем базу данных и таблицы хранилища конфигурации
mariadb < /usr/share/phpmyadmin/sql/create_tables.sql
Заходим в MariaDB и предоставляем все необходимые привилегии базе данных phpMyAdmin
mysql -uroot -p
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'P@ssw0rd';
EXIT;
Настроим Apache для phpMyAdmin
vi /etc/httpd/conf.d/phpmyadmin.conf
И добавляем следующую конфигурацию:
Alias /phpMyAdmin /usr/share/phpmyadmin/ Alias /phpmyadmin /usr/share/phpmyadmin/ <Directory /usr/share/phpmyadmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory>
vi /etc/apache2/conf-available/phpmyadmin.conf
И добавляем следующую конфигурацию:
Перезапустим веб-сервер Apache
systemctl restart httpd
a2enconf phpmyadmin.conf
systemctl reload apache2
Проверяем доступ к веб-интерфейсу с клиентов:


P.S. если не пускает под root на RTR2 (Астра):
mysql -uroot -p
use mysql; update user set plugin='' where User='root'; flush privileges; exit;
systemctl restart mariadb
Настройте Rsyslog
Настройте взаимосвязь сервера баз данных с Rsyslog
В качестве сервера баз данных используйте MariaDB на RTR2
Настройте возможность приема сообщений по протоколам TCP и UDP по порту 514
Установите LogAnalyzer
В качестве веб-сервера используйте Apache
Используйте базу данных, с которой работает Rsyslog
Веб панель LogAnalyzer должна быть доступна по адресу http://<IP адрес RTR2>/loganalyzer
Для авторизации в веб панели LogAnalyzer необходимо использовать пользователя admin с паролем P@ssw0rd
Установим необходимый пакет
apt install -y rsyslog rsyslog-mysql

Далее необходимо импортировать схему базы данных rsyslog в MariaDB
Файл по пути «/usr/share/dbconfig-common/data/rsyslog-mysql/install/mysql» для импорта должен иметь следующий вид (в соответствие с требуемыми параметрами):

mysql -uroot -p < /usr/share/dbconfig-common/data/rsyslog-mysql/install/mysql

Можно проверить через phpMyAdmin развёрнутый ранее:

Затем необходимо создать пользователя rsyslog и предоставьте ему права к базе данных Syslog
mysql -uroot -p
GRANT ALL PRIVILEGES ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'rsyslog';
FLUSH PRIVILEGES;
exit
Далее настраиваем rsyslog:
Для разрешения серверу принимать соединение по TCP и UDP в конфигурационном файле /etc/rsyslog.conf раскомментируйте строки в секции Modules
vi /etc/rsyslog.conf

vi /etc/rsyslog.d/mysql.conf

Проверяем конфигурационные файлы
rsyslog -N1
Для применения внесенных изменений перезагрузите службу rsyslog
systemctl restart rsyslog
Теперь можно перейти к установке веб-приложения LogAnalyzer
wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.13.tar.gz
tar xzf loganalyzer-4.1.13.tar.gz
Далее переместите приложение в каталог веб-сервера по умолчанию
mv loganalyzer-4.1.13/src /var/www/html/loganalyzer
Создайте файл конфигурации config.php в каталоге loganalyzer и предоставьте локальному пользователю соответствующие права для внесения изменений в файл
cd /var/www/html/loganalyzer/src
touch config.php
chmod 777 config.php
Настройка веб-приложения LogAnalyzer
C CLI1 откройте браузер и в адресной строке пропишите http://192.168.100.253/loganalyzer/src/index.php
На стартовой странице нажмите Next.

На втором шаге производится проверка на наличие файла конфигурации config.php. В него будут записаны последующие настройки. Рядом с обнаруженным файлом обязательно должна отображаться надпись «Writeable». При ее отсутствии в файл не могут быть записаны настройки.

На третьей странице задается базовая конфигурация приложения

Если настройка проведена корректно, будет открыта страница с предупреждением о внесении изменений в конфигурационный файл config.php. Подключение к базе данных успешно установлено. Нажмите Next.

На данной странице будет выведено сообщение об успешном создании таблицы в базе данных, а также отобразится количество успешных операций и ошибок.

Здесь будет предложено создать первого пользователя для веб-приложения. Данный пользователь будет иметь административные права и доступ к центру администрирования (admin:P@ssw0rd по заданию).

На этой странице необходимо снова указать источник, который ведет системный журнал.

!!! На скриншоте допущена ошибка — обратите внимание что «Database TableName» должно быть «SystemEvents», данную информацию можно было посмотреть в phpMyAdmin (внимательно с регистром, скриншот заменён не будет, но ошибка исправлена)
Если настройка выполнена верно, будет открыта страница с сообщением об успешной установке LogAnalyzer. Нажмите Finish для перехода на страницу аутентификации.

После успешной аутентификации будут открыты логи в удобном для просмотра формате.


Для доступа по «http://192.168.100.253/loganalyzer»
mv -r /var/www/html/loganalyzer/src/* /var/www/html/loganalyzer
Настройка RTR1, SRV1 и SRV2, который будет отправлять лог-сообщения
Для создания правила на клиенте воспользуйтесь директорией rsyslog.d, которая является дополнительной для конфигурационных файлов
Если мы хотим передавать только сообщения об ошибках, добавляем строку в файл конфигурации rsyslog:
vi /etc/rsyslog.d/erors.conf

Перезапускаем сервис логов
systemctl restart rsyslog
Аналогично на SRV1 и SRV2
Для проверки в loganalyzer, для RTR1 добавим возможность отправлять все логи:
vi /etc/rsyslog.d/all.conf
*.* @@192.168.100.253:514
systemctl restart rsyslog
Проверяем в loganalyzer:

Вам доступна документация на сайте https://www.zabbix.com/ru/В качестве сервера баз данных используйте MariaDB на RTR1
В качестве веб-сервера используйте Apache
Администратором системы мониторинга должен быть пользователь admin с паролем P@ssw0rd
В качестве узлов сети используйте устройства RTR2, SRV1, SRV2На устройствах, где нет доступа в Интернет, установите Zabbix-agent используя установочный диск
Имя узла сети должно соответствовать полному имени устройства
Установим необходимые пакеты
dnf install -y zabbix-server-mysql zabbix-apache-conf zabbix-sql-scripts
Создадим пользователя и базу данных для zabbix
mysql -uroot -p
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;
exit
Импортируем схему базы данных и начальные данные
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -pzabbix zabbix
Проверить успешность импорта схем можно с CLI1 через phpMyAdmin

После этого отредактируем файл конфигурации сервера zabbix. Пропишем данные для подключения к базе данных
vi /etc/zabbix/zabbix_server.conf

Также необходимо отредактировать файл php.ini
vi /etc/php.ini



Запустим zabbix
Настройка из веб-интерфейса
Для того чтобы войти в веб-интерфейс, укажите в адресной строке браузера http://192.168.100.254/zabbix
Выберете язык и нажмите Next step.

Далее вы попадете на страницу преднастроек. Если вы ранее указали временную зону, то во всех пунктах должно быть «ОК».

Укажите данные для подключения к ранее созданной базе данных

В следующем окне нужно ввести IP-адрес хоста сервера zabbix и номер порта для его работы. Можно оставить значения по умолчанию

Проверьте правильность введенных данных и нажмите «Next step»

При успешном окончании установки вы увидите следующую страницу

Введите логин и пароль сервера zabbix. По умолчанию имя пользователя — Admin (регистр важен), пароль — zabbix.


Теперь необходимо сменить пароль для пользователя «Admin» на «P@ssw0rd»


Настройка zabbix-agent на RTR2, SRV1, SRV2
Настройте файл конфигурации
По умолчанию достаточно просто прописать IP-адрес сервера мониторинга

Запустите сервис и добавьте его в автозапуск
В веб-интерфейсе zabbix-сервера добавьте новый узел



Аналогично на SRV1 и SRV2
6. Настройка SSH на управляемых серверах
На устройствах, где нет доступа в Интернет, для установки пакетов используйте установочный дискДоступ разрешен только пользователю sshuser.
Доступ пользователю root запрещен в явном виде
Доступ по паролю запрещен
Скопируйте правильный публичный ключ на устройства с операционной системой RedOS.
Скопируйте правильный публичный ключ на устройства с операционной системой Astra.
На всех устройствах за исключением клиентов:
Генерация ключевой пары SSH
Создаём config для ssh подключений

Копирования публичного ключа на устройства с Astra
Копирование публичного ключа на устройства с RedOS
На всех устройствах за исключением клиентов правим конфигурационный файл «/etc/ssh/sshd_config»

Перезапускаем сервис
Проверяем с CLI1

Установочные файлы находятся в addons_final.isoВам доступна документация на сайте https://docs.ansible.com/
Создайте файл инвентаря с именем hosts
Настройте запуск данного инвентаря по умолчанию
Сформируйте группы серверовRTR1 – включается маршрутизатор RTR1RTR2 – включается маршрутизатор RTR2Router – включаются группы серверов RTR1 и RTR2SRV1 – включается сервер SRV1SRV2 – включается сервер SRV2Server – включаются группы серверов SRV1 и SRV2
Все параметры должны быть размещены в папке group_vars в качестве переменныхВыполните тестовые подключения, добавьте хосты в список известных.
Убедитесь, что все сервера отвечают “pong” без предупреждающих сообщений
Убедитесь, что команды ansible выполняются от пользователя user без использования sudo
Установим Ansible
В домашнем каталоге пользователя user создадим директорию для ansible из под пользователя user
Из под root правим конфигурационный файл «/etc/ansible/ansible.cfg» для указания инвентарного файла в домашней каталоге пользователя user в каталоге ansible

Из под пользователя user создаём инвентарный файл hosts

Создадим каталог для хранения групповых переменных
В ней создадим файлы для хранения переменных для групп




Выполним проверку

Создаём структуру директорий для следующего задания

Модуль В. (Автоматизация)
8. Настройка динамической трансляции адресов
В качестве плейбука используйте файл playbook_1.yml в каталоге project_1Плейбук должен содержать действия по настройке динамической трансляцию адресов
Используйте firewalld
Использование плагина shell и command НЕ допускается
Использование запрещенных плагинов обнулит весь пункт при проверке
Всё из под пользователя «user»
Создадим playbook_1.yml


В качестве плейбука используйте файл playbook_2.yml в каталоге project_1Плейбук должен содержать действия по настройке динамической трансляцию адресов
Используйте iptables
Использование плагина shell и command НЕ допускается
Использование запрещенных плагинов обнулит весь пункт при проверке
Всё из под пользователя «user»
Создадим playbook_2.yml
Настраиваем доступ в Интернет для установки необходимой коллекции
Из под пользователя user ставим недостающую коллекцию
Запускаем playbook_2

Проверяем с SRV2

-
В качестве плейбука используйте файл playbook_1.yml в каталоге project_2
-
Плейбук должен содержать действия по настройке перенаправляющего DNS
-
Используйте bind9
-
Все запросы должны пересылаться внешнему DNS-серверу
-
Для RTR1 на 77.88.8.8
-
Для RTR2 на 77.88.8.1
-
-
В зависимости от операционной системы, конфигурационные файлы и файлы зон должны располагаться в стандартных каталогах и иметь стандартные имена
-
Использование плагина shell и command НЕ допускается
-
Использование запрещенных плагинов обнулит весь пункт при проверке
-
-
Плейбук должен содержать действия по перенастройке адреса DNS-сервера на маршрутизаторах на 127.0.0.1
-
Использование плагина shell и command НЕ допускается
-
Использование запрещенных плагинов обнулит весь пункт при проверке
-
-
Всё из под пользователя «user»
Создадим директорию для шаблонов
Создадим шаблон для конфигурационного файла DNS спервера для RedOS
Создадим шаблон для конфигурационного файла DNS спервера для Astra
Создадим шаблон для конфигурационного файла resolv.conf:

Проверяем с SRV1 и SRV2

-
В качестве плейбука используйте файл playbook_1.yml в каталоге project_3
-
Плейбук должен содержать действия по настройке протокола динамической конфигурации хостов
-
Адрес сети – согласно топологии
-
Адрес шлюза по умолчанию – адрес маршрутизатора RTR1
-
DNS-суффикс – company.prof
-
Адрес DNS-сервера – адрес маршрутизатора RTR1
-
Адрес NTP-сервера – адрес маршрутизатора RTR1
-
Выдаваемые адреса:
-
Первый адрес – первый адрес сети плюс 5
-
Последний адрес – общее количество адресов в сети разделенное на 2
-
В зависимости от операционной системы, конфигурационные файлы должны располагаться в стандартных каталогах и иметь стандартные имена
-
Использование плагина shell и command НЕ допускается
-
Использование запрещенных плагинов обнулит весь пункт при проверке
-
-
-
Всё из под пользователя «user»
Создадим директорию для шаблона
Создадим шаблон для конфигурационного файла DHCP сервера
Запускаем playbook

-
В качестве плейбука используйте файл playbook_2.yml в каталоге project_3
-
Плейбук должен содержать действия по настройке протокола динамической конфигурации хостов
-
Адрес сети – согласно топологии
-
Адрес шлюза по умолчанию – адрес маршрутизатора RTR2
-
DNS-суффикс – company.prof
-
Адрес DNS-сервера – адрес маршрутизатора RTR2
-
Адрес NTP-сервера – адрес маршрутизатора RTR2
-
Выдаваемые адреса:
-
Первый адрес – общее количество адресов в сети разделенное на 2 плюс 1
-
Последний адрес – последний адрес сети минус 5
-
В зависимости от операционной системы, конфигурационные файлы должны располагаться в стандартных каталогах и иметь стандартные имена
-
Использование плагина shell и command НЕ допускается
-
Использование запрещенных плагинов обнулит весь пункт при проверке
-
-
-
Всё из под пользователя «user»
Шаблон используется один для двух playbook
Запускаем playbook

-
Применение Ansible НЕ требуется
Выполнено как и в начале задания для внешних интерфейсов RTR1 и RTR2


-
В качестве плейбука используйте файл playbook_1.yml в каталоге project_4
-
Плейбук должен содержать действия по установке и настройке сервера времени
-
Используйте сервер времени на базе Chrony
-
Используйте часовой пояс Europe/Moscow
-
Использование плагина shell и command НЕ допускается
-
Использование запрещенных плагинов обнулит весь пункт при проверке
-
-
Всё из под пользователя «user»
Создадим директорию для шаблонов
Создадим шаблон конфигурационного файла NTP сервера для RTR1
Создадим шаблон конфигурационного файла NTP сервера для RTR2
Запустим playbook

-
В качестве плейбука используйте файл playbook_2.yml в каталоге project_4
-
Проект должен содержать действия по установке и настройке NTP клиента
-
Используйте NTP клиент на базе Chrony
-
Используйте часовой пояс Europe/Moscow
-
Использование плагина shell и command НЕ допускается
-
Использование запрещенных плагинов обнулит весь пункт при проверке
-
-
Всё из под пользователя «user»
Запускаем playbook

Проверим с RTR1 и RTR2 клиентов NTP

-
В качестве плейбука используйте файл playbook_1.yml в каталоге project_5
-
Плейбук должен содержать действия по настройке NFS сервера
-
Настройте общий доступ к директории /opt/data
-
Всё из под пользователя «user»
Запускаем playbook

-
В качестве плейбука используйте файл playbook_2.yml в каталоге project_5
-
Плейбук должен содержать действия по настройке NFS клиента
-
На SRV1 настройте автоматическое подключение NFS каталога
-
Используйте локальную точку монтирования /mnt/data
-
Используйте общую папку на RTR1
-
-
На SRV2 настройте автоматическое подключение NFS каталога
-
Используйте локальную точку монтирования /mnt/data
-
Используйте общую папку на RTR2
-
-
Всё из под пользователя «user»
Запускаем playbook

Проверяем с SRV1 и SRV2

-
Имя группы – NAT
-
Иерархия группы — RTR1 -> RTR2
-
Виртуальный адрес группы — последний адрес сети
Установим пакет keepalived
Описываем конфигурационный файл keepalived.conf
где:
-
global_defs: Этот блок используется для задания глобальных настроек Keepalived.
-
router_id LVS_DEVEL: Этот параметр устанавливает идентификатор маршрутизатора (Router ID) для Keepalived. Идентификатор маршрутизатора используется для уникальной идентификации маршрутизатора в группе. В данном случае, идентификатор маршрутизатора установлен как «LVS_DEVEL».
-
vrrp_instance NAT: Это блок, который определяет настройки для конкретной группы VRRP. В данной конфигурации создается группа VRRP с именем «NAT».
-
state MASTER: Указывает, что этот маршрутизатор (или Keepalived инстанс) является активным мастером (первичным).
-
interface ens34: Здесь указывается интерфейс, к которому привязана эта группа VRRP.
-
virtual_router_id 10: Устанавливает уникальный идентификатор группы VRRP. Этот идентификатор должен быть одинаковым на всех маршрутизаторах, участвующих в группе.
-
priority 100: Устанавливает приоритет этого маршрутизатора в группе VRRP. Маршрутизатор с более высоким приоритетом станет мастером (активным) при старте Keepalived или после восстановления.
-
advert_int 1: Устанавливает интервал отправки объявлений VRRP в секундах. В данном случае, объявления будут отправляться каждую секунду.
-
virtual_ipaddress: Здесь указывается виртуальный IP-адрес, который будет назначен группе VRRP. Этот IP-адрес будет переноситься между мастером и резервными маршрутизаторами в случае сбоя.
Запускаем на RTR1 и RTR2 keepalived
Проверяем:

Видно, что на RTR1 появился виртуальный адрес, в случае если выполнить остановку службы keepalived, то видно что роль MASTER переходит к RTR2
После того как роль MASTER переходит к RTR2, виртуальный IP адрес на RTR1 изчезает
При возобнавлении работы службы keepalived на RTR1 видим что RTR2 переходит из роли MASTER в BACKUP, а на RTR1 возвращается виртуальный IP адрес

На SRV1 и SRV2 выполняем переконфигурирование шлюза по умолчанию и назначаем в качестве адреса шлюза — виртуальный адрес 192.168.100.254

-
Имя группы – DNS
-
Иерархия группы — RTR1 -> RTR2
-
Виртуальный адрес группы — последний адрес сети
Добавляем в конфигурационный файл keepalived.conf группу для перенаправляющего DNS
На устройствах RTR1 и RTR2 перезапускаем службу keepalived
На RTR1 и RTR2 в конфигурационных файлах перенаправляющего DNS сервера необходимо указать, что теперь мы слушаем запросы только с localhost и только с виртуального адреса — 192.168.100.254
Для RTR1 — /etc/named.conf
Для RTR2 — /etc/bind/named.conf.options

Выполнить перезагрузку службы bind
Для RTR1 — systemctl restart named
Для RTR2 — systemctl restart bind9
Также на SRV1 и SRV2 переконфигурируем адрес DNS сервера на адрес 192.168.100.254 после чего проверяем:

-
Имя группы – NTP
-
Иерархия группы – RTR1 -> RTR2
-
Виртуальный адрес группы — последний адрес сети
Добавляем в конфигурационный файл keepalived.conf группу для NTP
На устройствах RTR1 и RTR2 перезапускаем службу keepalived
-
RTR1 – primary
-
RTR2 – secondary
-
Индекс разделения работы между DHCP серверами – 128
-
Имя пира – DHCP
-
Выдаваемые адреса:
-
Первый адрес – первый адрес сети плюс 5
-
Последний адрес – последний адрес сети минус 5
-
-
Адрес NTP-сервера – адреса доменных NTP серверов
-
Проверьте работоспособность DHCP failover на клиентах
-
Используйте NTP клиент на базе Chrony
-
Используйте часовой пояс Europe/Moscow
Модифицируем ранее созданный конфигурационный файл DHCP — сервера «/etc/dhcp/dhcpd.conf»:
В файле «/etc/dhcp/dhcpd.conf» — будем хранить только настройки отказоустойчивости;
Поскольку всё кроме настройки отказоустойчивости на RTR1 и RTR2 будет одинаковым — вынесем конфиги в отдельную дирректорию, затем эту дирректорию можно будет спокойно копировать на второй сервер
Для того чтобы основной файл /etc/dhcp/dhcpd.conf — ссылался на то что лежит в дирректории /etc/dhcp/dhcpd.conf.d/, сотрём в нём всё и пропишим опции include
Теперь прописываем опции касающиеся отказоустойчивости в «/etc/dhcp/dhcpd.conf» выше опций include
Необходимо указать failover peer для subnet-ов, в файле «/etc/dhcp/dhcpd.conf.d/subnets.conf» и параметры согласно заданию
Перезагружаем DHCP сервер
Проверяем:

Аналогичным образом настраиваем RTR2 только в качестве SECONDARY
Редактируем параметры в /etc/dhcp/dhcpd.conf на DHCP secondary — для настройки этого сервера как secondary
Файл «/etc/dhcp/dhcpd.conf.d/subnets.conf» должен быть точно таким же как и на RTR1
Перезапускаем DHCP сервер
Проверяем

Проверяем функциональность работы DHCP failover Включаем CLI1 и CLI2 и получаем настройки сетевых параметров по DHCP и проверяем журналы
RTR1 — на запрос получения IP адреса 192.168.100.247 передал его на peer, тоесть на RTR2

RTR2 — выдал IP адрес 192.168.100.247, а запрос на получения IP адреса 192.168.100.128 передал его на peer, тоесть на RTR1

На клиентах также необходимо установить chrony чтобы успешно синхронизировать время с доменными NTP серверами



-
Разверните домен на базе FreeIPA
-
Основной сервер — SRV1
-
Дополнительный сервер (реплика) — SRV2
-
-
Имя домена — company.prof
-
DNS сервер — интегрированный с IPA
-
Запросы, которые выходят за рамки зоны, пересылаются на виртуальный адрес перенаправляющего DNS-сервера
-
Обратная зона — согласно топологии
-
Все устройства сети должны быть доступны по имени
-
-
CA сервер — интегрированный с IPA
-
Клиенты домена должны доверять центру сертификации
-
-
NTP сервер — интегрированный с IPA
-
NTP сервер должен синхронизировать время с отказоустойчивым сервером времени
-
-
Пароль администратора домена — P@ssw0rd
-
Создайте пользователей user1, user2 и mon с паролем P@ssw0rd,
-
Пользователей user1, user2 включите в группу prof
-
Пользователя mon включите в группу admins
-
Создайте правило admin_sudo, разрешающее группе пользователей admins использовать sudo на всех компьютерах в домене без ограничения.
-
Обеспечьте доменному пользователю admin, после успешной авторизации на клиентах, возможность заходить в интерфейс FreeIPA без использования пароля. Для аутентификации и авторизации используйте Kerberos.
-
Используйте LDAP в качестве аутентификацию по умолчанию
-
Используйте доменного пользователя mon
Установим необходимый пакет
Инициализация сервера FreeIPA с помощью инструмента командной строки astra-freeipa-server может быть осуществлена командой

Проверка запущенных служб и ролей FreeIPA

С клиента проверяем доступ к веб-интерфейса для управления доменом


Подготавливаем основной контроллер домена для добавления репликации
В веб-интерфейсе управления необходимо в зоне обратного просмотра создать запись для SRV2



Проверяем

В качестве DNS сервера необходимо указать IP адрес SRV1

Настроить разрешение имен

Установить инструменты для запуска и настрой
Установить клиента FreeIPA, указав имя домена к которому нужно подключаться (команда ipa-replica-install может сама установить клиента FreeIPA, однако рекомендуется установить клиента используя инструмент astra-freeipa-client, который автоматически выполняет дополнительные настройки)

Проверим

Установить реплику (после запуска команды нужно ввести пароль администратора домена)

Проверка успеха запуска
Сервер-реплика должен появиться в группе серверов ipaservers (перед выполнением команды следует получить билет Kerberos)

Проверяем


Настраиваем, чтобы запросы которые выходят за рамки зоны, пересылаются на виртуальный адрес перенаправляющего DNS-сервера

Проверяем

Настраиваем DNS записи типа A и PTR для всех устройств


Аналогичным образом добавляем RTR2
Проверяем



Настраиваем динамическое обновление DNS клиентских машин
Создать ключ для сервера DHCP. Ключ будет автоматически сохранен в файле /etc/bind/rndc.key
В файл конфигурации сервера DNS /etc/bind/named.conf после раздела «options» добавить строчку
Также необходимо передать данный файл «/etc/bind/rndc.key» на SRV2 и добавить строку в файл конфигурации сервера DNS /etc/bind/named.conf
Также передать «/etc/bind/rndc.key» на RTR1 и RTR2 в /etc
Запустить WEB-интерфейс управления сервера FreeIPA и в свойствах необходимой прямой зоны в разделе «Политика обновления BIND» добавить запись:

В свойствах соответствующей обратной зоны в том же разделе «Политика обновления BIND» добавить запись:

Сохраняем и заставляем сервер имен перечитать свою конфигурацию:
перезапустить службы FreeIPA
Добавляем в /etc/dhcp/dhcpd.conf.d/subnets.conf необходимую конфигурацию для работы с DNS на SRV1 и SRV2 c целью динамического обновления записей для клиентов
В конечном итоге файл должен выглядеть одинагово как на RTR1 так и на RTR2
P.S. — файл сгенерированный на SRV1 /etc/bind/rndc.key должен быть передан на DHCP сервера (RTR1, RTR2) в каталог /etc
На RTR2 конфигурационный файл аналогичен RTR1
Перезапускаем DHCP сервера
Включаем CLI1 и CLI2 и проверяем на DHCP серверах журналы


Проверяем через веб-интерфейс freeipa


Проверяем доступ всех устройств по имени

Для того чтобы клиенты доверяли Центру Сертификации интегрированному с IPA неободимо передать корневой сертификат который расположен на SRV1 по пути /etc/ipa/ca.crt
Передаём данный сертификат на клиентов, а с клиентов выполняем следующие действия
Например
Действия выполняются от суперпользователя
Проверяем, посредством доступа к веб-интерфейсу freeipa, но уже с корректным сертификатом

Действия выполняются от суперпользователя
Проверяем, посредством доступа к веб-интерфейсу freeipa, но уже с корректным сертификатом

Через веб-интерфейс создаём необходимых пользователей и групп
Создаём группа prof


Создаём пользователя user1

Создаём пользователя user2

Создаём пользователя mon

Добавляем пользователей user1 и user2 в группу prof


Добавляем пользователя mon в группу admins


Создаём правило «admin_sudo»




Или припомощи команд на SRV1 из под пользователя admin

Введём CLI1 и CLI2 в домен




Установим пакет fly-admin-freeipa-client




