# Настройка ospf

**URL:** <https://linux.ru/forum/t/ospf/10892>\
**Category:** Общий форум\
**Created:** [16.Июнь.2025 22:22:53 UTC](https://linux.ru/forum/t/ospf/10892 "2025-06-16T22:22:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![powerdevil](https://linux.ru/forum/letter_avatar_proxy/v4/letter/p/90db22/32.png) [@powerdevil](https://linux.ru/forum/u/powerdevil)\
**Post date:** [16.Июнь.2025 22:22:53 UTC](https://linux.ru/forum/t/ospf/10892/1 "2025-06-16T22:22:53Z")

</div>

**Базовая настройка сети linux для начинающих**  
Адресация:  
**Интернет**

**Ens36**

172.16.4.1/28

**Ens37**

172.16.5.1/28

**Роутер**** 1**

**Ens33**

172.16.4.2/28

Gateway 172.16.4.1

Создать директорию ens36 (БЕЗ ВВЕДЕНИЯ IP!)

**Ens36.100**

192.168.1.1/26

**Ens36.200**

192.168.2.1/28

**Ens36.999**

192.168.3.1/29

**роутер**** 2**

**Ens33**

172.16.5.2/28

Gateway 172.16.5.1

**Ens36**

192.168.4.1/27

**сервер**** 2**

**Ens36**

192.168.4.2/27

Gateway 192.168.4.1

**Сервер**** 1**

**Ens36.100**

192.168.1.2/26

Gateway via 192.168.1.1

**Компьютер**

**Ens33.200**

DHCP

**ДЛЯ ТОГО ЧТОБЫ СОЗДАТЬ ДРУГОЙ**** ENS МОЖЕТЕ ПРОСТО СКОПИРОВАТЬ ****ENS33 ЧЕРЕЗ**** CP И ПОМЕНЯТЬ **** DHCP НА СТАТИК (ЕСЛИ НУЖНО).**

**Создание**** vlan:**

**TYPE=vlan**

**BOOTPROTO=static (ГДЕ****НАДО **** dhcp)**

**VID=НОМЕР**** ВЛАНА**

**DISABLED=no**

**HOST=ens36**

ВХОД ДЛЯ АВТОПЕРЕЗАПУСКА СЛУЖБ:  
export EDITOR=nano

Crontab -e

@reboot /bin/systemctl restart network

ОБЯЗАТЕЛЬНО ОСТАВИТЬ ПУСТУЮ СТРОКУ В КОНЦЕ!

**ВСЕ ЭТО ПРОДЕЛЫВАЕМ НА ВСЕХ КОМПЬЮТЕРАХ ДЛЯ ТОГО ЧТОБЫ НАШИ**** IP СРАЗУ ОБНОВЛЯЛИСЬ!**

**Настройка**** Iptables**

На всех машинах нужно включить ip forward, делается это очень легко:  
nano /etc/sysctl.conf

Меняем net.ipv4.ip\_forward=0 на net.ipv4.ip\_forward=1

Далее производим настройку на Интернет, Роутер 1 и роутер 2:  
Интернет:  
iptables -t nat -A POSTROUTING –s 172.16.4.0/28 –o eth0 -j MASQUERADE

iptables -t nat -A POSTROUTING –s 172.16.5.0/28 –o eth0 -j MASQUERADE

iptables-save \> /root/rules

export EDITOR=mcedit

crontab -e

@reboot /sbin/iptables-restore \< /root/rules (Делаем пустую строчку в конце!)

Перезапускаем машину

iptables -t nat -L проверка

**Настройка**** Роутер ****1**  
iptables -t nat -A POSTROUTING -s 192.168.1.0/26 -o eth0 -j MASQUERADE

iptables -t nat -A POSTROUTING -s 192.168.2.0/28 -o eth0 -j MASQUERADE

iptables -t nat -A POSTROUTING -s 192.168.3.0/29 -o eth0 -j MASQUERADE

Далее, выполняем такие же действия как на Интернет.

**Настройка**** роутер ****2**

iptables -t nat -A POSTROUTING -s 192.168.4.0/27 -o eth0 -j MASQUERADE

Далее, выполняем такие же действия как на Интернет.  
**Настройка**** GRE**

**Роутер**** 1**

mkdir /etc/net/ifaces/gre1

nano /etc/net/ifaces/gre1/options

TYPE=iptun

TUNTYPE=gre

TUNLOCAL=172.16.4.2

TUNREMOTE=172.16.5.2

TUNOPTIONS=’ttl 64’

Nano /etc/net/ifaces/gre1/ipv4address

10.0.0.1/30

**роутер**** 2**

mkdir /etc/net/ifaces/gre1

nano /etc/net/ifaces/gre1/options

TYPE=iptun

TUNTYPE=gre

TUNLOCAL=172.16.5.2

TUNREMOTE=172.16.4.2

TUNOPTIONS=’ttl 64’

Nano /etc/net/ifaces/gre1/ipv4address

10.0.0.2/30

**Настройка** **OSPF  
Эти настройки выполнять только на роутерах!  
Роутер \*\*\*\* 1**

/etc/resolv.conf

Apt-get install frr

/etc/frr/deamons

Ospf=yes

Systemctl restart frr

Vtysh

Conf t

Router ospf

Network 10.0.0.0/30 area 0

Network 192.168.1.0/26 area 0

Network 192.168.2.0/28 area 0

Network 192.168.3.0/29 area 0

Do wr mem

exit

Int gre1

Ip ospf authentication message-digest

Ip ospf message-digest-key 1 md5 P@ssw0rd

Do wr mem

**Роутер 2**

Также устанавливаем пакет, включаем frr и пишем:  
Vtysh

Conf t

Router ospf

Network 10.0.0.0/30 area 0

Network 192.168.4.0/27 area 0

Do wr mem

Exit

Int gre1

Ip ospf authentication message-digest

Ip ospf message-digest-key 1 md5 P@ssw0rd

Do wr mem

**Настройка** **dhcp (на Роутер 1)**

Apt-update

Apt-get install dnsmasq

Systemctl enable –now dnsmasq

/etc/dnsmasq.conf

No-resolv

dhcp-range=192.168.2.2,192.168.2.14,9999h

dhcp-option=3,192.168.2.1

dhcp-option=6,192.168.1.2

interface=ens36.200 (ПИШЕМ ИНТЕРФЕЙС ВЛАНА КОТОРЫЙ РОУТЕР 1)

Systemctl restart dnsmasq

Systemctl status dnsmasq

Systemctl restart network

**Можете проверять**** ip адрес на вашем компьютере.**

**Создание учетных записей на серверах:**

useradd sshuser -u 1010

passwd sshuser

P@ssw0rd

/etc/sudoers

Раскомментировать WHEEL\_USERS ALL=(ALL:ALL) NOPASSWD: ALL

Usermod -aG wheel sshuser

Тоже самое делаем и на другом компьютере.

**Создание учетных записей на роутерах:**

Useradd net\_admin -m

Passwd net\_admin

P@$$word

/etc/sudoers

Раскомментировать WHEEL\_USERS ALL=(ALL:ALL) NOPASSWD: ALL

Usermod -aG wheel net\_admin

Тоже самое проделываем на другом роутере.

**Настройка**** DNS на ****Сервер**** 1**

systemctl disable --now bind

/etc/resolv.conf

nameserver 8.8.8.8

apt-get update

apt-get install dnsmasq

systemctl enable --now dnsmasq

/etc/dnsmasq.conf

**no-resolv** (не будет использовать /etc/resolv.conf)

**domain=ВАШ ДОМЕН**

**server=8.8.8.8** (адрес общедоступного DNS-сервера)

**interface=\***

&nbsp;

**address=/hostname Роутер**** 1/192.168.1.1**

**ptr-record=1.1.168.192.in-addr.arpa, hostname Роутер**** 1**

**cname=moodle+ваш**** домен**\*\* , hostname Роутер \*\*\*\* 1\*\*

**cname=wiki+ваш**** домен**\*\* , hostname Роутер \*\*\*\* 1\*\*

&nbsp;

**address=/hostname роутер**** 2/192.168.4.1**

&nbsp;

**address=/hostname Сервер**** 1/192.168.1.2**

**ptr-record=2.1.168.192.in-addr.arpa, hostname Сервер**** 1**

**address=/** \*\* hostname Компьютер/192.168.2.2 ( **Смотрите адрес на** HQ- **CLI , т.к он выдаётся по DHCP** )\*\*

**ptr-record=2.2.168.192.in-addr.arpa, hostname Компьютер**

&nbsp;

**address=/hostname сервер**** 2/192.168.4.2**

**Настройка**** SSH на ****серверах** \*\* :\*\*  
apt-get install openssh-common

/etc/openssh/sshd\_config

Port 2024

MaxAuthTries 2

AllowUsers sshuser

PermitRootLogin no

Banner /root/banner

/root/banner

Authorized access only

Systemctl enable --now sshd

Systemctl restart sshd

Подключаемся через Компьютер через команду ssh sshuser@ipсервера -p 2024  
Тоже самое проделываем на другом сервере.

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;

---

<div class="post-metadata">

**Author:** ![powerdevil](https://linux.ru/forum/letter_avatar_proxy/v4/letter/p/90db22/32.png) [@powerdevil](https://linux.ru/forum/u/powerdevil)\
**Post date:** [16.Июнь.2025 22:30:42 UTC](https://linux.ru/forum/t/ospf/10892/2 "2025-06-16T22:30:42Z")

</div>

Настройка samba

&nbsp;

? Настройка доменного контроллера &nbsp;на alt-linux серВеРе 2 (за пример я взял Samba).

Перед настройкой удалим bind.

Apt-get remove bind

Проверить etc/resolv.conf (nameserver 8.8.8.8)перед скачивание пакета samba, после проверки обновляем и скачиваем.

apt-get update

apt-get install task-samba-dc

После скачивание, resolv возвращаем в исходное положение и также добавляем DNS-сервер(если он имеется)

Nano /etc/resolv.conf

Nameserver 192.168.1.2

Теперь удалим конфиг smb.conf, чтобы он не мешал при настройке службы:

rm -rf /etc/samba/smb.conf

Настроим hosts, добавив новую запись в конец файла:

mcedit /etc/hosts

192.168.4.2 “ваш hostname серВеРа 2”

Теперь в конфигурацию нашего DNS-сервера на сервере 1 добавим следующую строку в dnsmasq.conf:

server=/ww-domain.org/192.168.4.2

systemctl restart dnsmasq

А теперь запускаем автонастройку доменного контроллера на cерВеРе 2(где мы установили samba)

samba-tool domain provision

просто 4-ре раза подряд нажимаем Enter

192.168.1.2 (Здесь вводим значение)

Password

Перемещаем сгенерированный конфиг krb5.conf и включаем службу samba:

mv -f /var/lib/samba/private/krb5.conf /etc/krb5.conf

systemctl enable samba

export EDITOR=nano

crontab -e

И вносим в конец файла следующие строки:

@reboot /bin/systemctl restart network

@reboot /bin/systemctl restart samba

Reboot

Проверка работы домены:

samba-tool domain info 127.0.0.1

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

samba-tool user add user1.ww 123asdW%

samba-tool group add ww-название группы

samba-tool group addmembers ww user1.ww

Теперь введём клиентскую машину в домен, открываем терминал и заходим под root и пишем acc, после нажимем аутентификация.

Далее ставим галочку на “Домен Active Directory” и вводим:

Домен: [WW-DOMAIN.ORG](http://WW-DOMAIN.ORG)

Рабочая группа: WW-DOMAIN

Имя компьютера: “ваш hostname”

Далее вводим пароль, который писали при настройке домена через samba-tool и перезагружаем.

Чтобы настроить права созданных нами пользователей, нужно установить ещё один пакет на серВеРе 2, подключаем нужный репозиторий:

Apt-repo add rpm [http://altrepo.ru/local-p10](http://altrepo.ru/local-p10) noarch local-p10

Apt-get update

Apt-get install sudo-samba-schema

Далее добавляем новую схему следующей командой:

sudo-schema-apply

Откроется следующее диалоговое окно, нажимаем yes и вводим пароль админа, потом ok:

Create-sudo-rule

И вносим следующие изменения (имя правила можно любое):

Имя правила : prava\_ww

sudoCommand : /bin/cat

sudoUser : %ww

Заходим под локальным пользователем на клиентской машине:

Apt-get update

Apt-get install admc

Kinit administrator

Password

И запускаем admc:

admc

Включим дополнительные возможности через настройки.

Поменяем опцию sudoOption в созданном нами ранее правиле prava\_ww (правило всегда будет находиться в OU с названием sudoers):&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

Новое значение будет:

!authenticate

И добавим ещё две команды в опцию sudoCommand (grep и id):

/bin/cat

/bin/grep

/usr/bin/id

Заходим на клиентмкую машину и установить дополнительные пакеты:

apt-get update

apt-get install sudo libsss\_sudo

Разрешаем использование sudo:

&nbsp;control sudo public

Настроим конфиг sssd.conf:

mcedit /etc/sssd/sssd.conf

services = nss, pam, sudo

sudo\_provider = ad

Теперь отредактируем nsswitch.conf:

mcedit /etc/nsswitch.conf

sudoers: files sss

Заходим на клиентскую машину заходим под root и пишем:

rm -rf /var/lib/sss/db/\*

sss\_cache -E

sssd: systemctl restart sssd

Ctrl+Alt+F2 и заходим под root

sudo -l -U user1.ww

Приступаем к следующему этапу – импортируем пользователей из таблицы Users.csv. Для начала скачиваем если не скачан.

curl -L [https://bit.ly/3C1nEYz](https://bit.ly/3C1nEYz) \> /root/users.zip

unzip /root/users.zip

mv /root/Users.csv /opt/Users.csv

Создаём файл import и пишем туда следующий код:

mcedit import

&nbsp;

**#!/bin/bash**

**csv\_file=“/opt/Users.csv”**

**while IFS=“;” read -r firstName lastName role phone ou street zip city country password; do**

**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [“$firstName” == “First Name”]; then**

**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue**

**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi**

**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username=“${firstName,}.${lastName,}”**

**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sudo samba-tool user add “$username” 123asdW%**

**done \< "$** \*\* csv\_ \*\ ***file"**

&nbsp;

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

chmod +x /root/import

bash /root/import

&nbsp;

&nbsp;

&nbsp;

==================================================

?. Конфигурация файлового хранилища на сервере 1

Для начала нужно создать три дополнительных диска размером 1 ГБ каждый.

Теперь заходим в виртуальную машину и просматриваем все диски, которые мы подключили, следующей командой:

Lsblk

Теперь создадим дисковый массив уровня 5 из трёх дополнительных дисков следующей командой: (название дисков может отличаться)

mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sd[b-d]

Посмотрим статус нашего raid-массива и схораним:

cat /proc/mdstat

mdadm --detail -scan --verbose \> /etc/mdadm.conf

Теперь создаём раздел через fdisk.

fdisk /dev/md0

Затем пишем n, потом p и нажимаем 3-раз подряд Enter, потом w.

**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mkfs.ext4 /dev/md0p1**

Теперь настроим автоматическое монтирование в /raid5. Добавляем следующую строку в конец файла /etc/fstab:

/dev/md0p1\<—\>/raid5\<—\>ext4\<—\>defaults\<—\>0\<—\>0

Затем создаём каталог /raid5 и монтируем ФС из /etc/fstab:

mkdir /raid5

mount -a

Теперь настроим сервер файловой системы NFS:

apt-get update

apt-get install nfs-server

Приступаем к самой настройке, создадим каталог, назначим нового владельца и группу ему и выдадим новые права:

mkdir /raid5/nfs

chown 99:99 /raid5/nfs

chmod 777 /raid5/nfs

Откроем каталог для общего доступа в сторону подсети, для этого заходим в /etc/exports:

/raid5/nfs 192.168.2.0/28(rw,sync,no\_subtree\_check)

После выходим и принимаем изменения:

exportfs -a

exportfs -v

systemctl enable –now nfs

systemctl restart nfs

Теперь идём монтировать этот каталог на клиенте для этого нужно:

apt-get update

apt-get install nfs-clients

mkdir -p /mnt/nfs

Добавляем следующую строку в конец файла /etc/fstab:

192.168.1.2:/raid5/nfs\<—\>/mnt/nfs\<—\>nfs\<—\>intr,soft,\_netdev,x-systemd.automount\<—\>0 0

mount -a

mount -v

touch /mnt/nfs/52

?. Настройка службы сетевого времени на базе сервиса chrony

Для его настройки на роутере 1:

Apt-get update

Apt-get install chronyd

Заходим и редактируем файл /ect/chrony.conf

local stratum 5

allow 192.168.1.0/26

allow 192.168.2.0/28

allow 172.16.5.0/28

allow 192.168.4.0/27

и закомментируем

#pool 2.debian

#rtcsync

Потом перезагружаем chrony

systemctl enable --now chrony

systemctl restart chrony

Выключаем теперь ту самую синхронизацию:

timedatectl set-ntp 0

timedatectl

Теперь переходим к настройке клиента и перед установкой новой службы выключим chrony:

systemctl disable --now chronyd

systemctl status chronyd

Обновляем список пакетов и скачиваем службу systemdtimesyncd:

apt-get update

apt-get install systemd-timesyncd

Теперь зайдём в конфиг /etc/systemd/timesyncd.conf и отредактируем только одну строку:

NTP=192.168.1.1

Теперь включим службу systemd-timesyncd и посмотрим её статус работы:

systemctl enable --now systemd-timesyncd

timedatectl timesync-status

Но помните, что **NTP** для **2-ого сервера** – это внешний IP-адрес **&nbsp;1-ого роуиера** , то-есть **172.16.4.2**.

Иногда машина багается и для это нужно Ctrl+Alt+F2 и пропсать startx и нажать продолжить и потом reboot.

?. Сконфигурируйте ansible на серВеРе 2

Для начала проверим, обновлены ли у нас списки пакетов и затем попробуем установить ansible:

apt-get update

apt-get install ansible

Далее нам нужен рабочий каталог для нашего ansible, который может быть уже создан, НО если нет, то создадим его следующей командой:

mkdir /etc/ansible

У нас он уже создан, и там же находится нужный нам файл hosts, тоже уже созданный. Теперь нам нужно написать следующие строки в файл hosts:

nano /etc/ansible/hosts

one-srv ansible\_host=testshuser@192.168.1.2 ansible\_port=2024 ansible\_python\_interpreter=/usr/bin/python3

one-cli ansible\_host=testhuser@192.168.2.5 ansible\_port=2024 ansible\_python\_interpreter=/usr/bin/python3

fir-rtr ansible\_host=test\_admin@192.168.1.1 ansible\_port=22

ansible\_python\_interpreter=/usr/bin/python3

sec-rtr ansible\_host=test\_admin@192.168.4.1 ansible\_port=22

Теперь на серВеРе 2 генерируем ключи RSA, чтобы экспортировать их на машины клиенты, строку с путём и passphrase оставляем пустой:

ssh-keygen -t rsa

Копируем публичный ключ на клиентские машины, первая из них будет sec-rtr:

ssh-copy-id -p 22 test\_admin@192.168.4.1

ssh-copy-id -p 2024 [testshuser@192.168.2.5](mailto:testshuser@192.168.2.5)

ssh-copy-id -p 2024 [testshuser@192.168.1.2](mailto:testshuser@192.168.1.2)

ssh-copy-id -p 22 test\_admin@192.168.1

После этого мы можем проверить связь.

ansible all -m ping

?. Развертывание приложений в Docker на сервере серВеРе 2

Перед настройкой нам необходимо обновить список пакетов и установить docker

apt-get update

apt-get install docker-engine docker-compose

И запустим службу docker:

systemctl enable --now docker

Загружаем образы следующей командой:

docker pull mediawiki

docker pull mariadb

Создаем в домашней директории пользователя файл:

mcedit /home/user/wiki.yml

И заполняем его следующими строками, обратите внимание, что в строках ПРОБЕЛЫ, А НЕ ТАБУЛЯЦИЯ:

**services:**

**&nbsp;| mariadb:**

**&nbsp;&nbsp; || image: mariadb**

**&nbsp;&nbsp; || container\_name: mariadb**

**&nbsp;&nbsp; || restart: always**

**&nbsp;&nbsp; || environment:**

**&nbsp;&nbsp;&nbsp;&nbsp; ||| MYSQL\_ROOT\_PASSWORD: 123asdW%**

**&nbsp;&nbsp;&nbsp;&nbsp; ||| MYSQL\_DATABASE: mediawiki**

**&nbsp;&nbsp;&nbsp;&nbsp; ||| MYSQL\_USER: wiki**

**&nbsp;&nbsp;&nbsp;&nbsp; ||| MYSQL\_PASSWORD: WikiP@ssword**

**&nbsp; ||&nbsp; volumes:**

**&nbsp; ||&nbsp;&nbsp; - mariadb\_data:/var/lib/mysql**

**|&nbsp; wiki:**

**&nbsp;|| image: mediawiki**

**&nbsp;|| container\_name: wiki**

**&nbsp;|| restart: always**

**&nbsp;|| environment:**

**&nbsp; &nbsp;||| MEDIAWIKI\_DB\_HOST: mariadb**

**&nbsp;&nbsp; ||| MEDIAWIKI\_DB\_USER: wiki**

**&nbsp;&nbsp; ||| MEDIAWIKI\_DB\_PASSWORD: WikiP@ssword**

**&nbsp;&nbsp; ||| MEDIAWIKI\_DB\_NAME: mediawiki**

**&nbsp;|| ports:**

**&nbsp;&nbsp; |||&nbsp; - “8080:80”**

**&nbsp; || volumes:**

**&nbsp; ||&nbsp;&nbsp; #- /home/user/mediawiki/LocalSettings.php:/var/www/html/LocalSettings.php**

**volumes:**

**&nbsp; |**** mariadb\_**\*\* data:\*\*

**&nbsp;**

После всех настроек строку volumes. мы обратно раскомментируем, убрав символ #!

Приступаем к запуску контейнера wiki.yml, в зависимости от версии compose, существует ещё одна запись, она для второй его версии:

Обычная версия: docker-compose -f /home/user/wiki.yml up -d

Вторая версия: docker compose -f /home/user/wiki.yml up -d

Заходим с клиента на сайт после запуска контейнера и пишем в браузера:

192.168.4.2:8080

Видим, что файл LocalSettings.php не найден, и нажимаем на complete the installation или set up the wiki.

Видим строки, которые нужно заполнить:

Хост базы данных: mariadb

Имя базы данных (без дефисов): mediawiki

Имя пользователя базы данных: wiki

Пароль базы данных: WikiP@ssw0rd

Прожимаем Далее, оставляя всё как есть

Пишем в строках следующее и выбираем пункты, как на скрине:

Название вики: (можно своё название)

Ваше имя участника: wiki

Пароль: WikiP@ssw0rd

Далее автоматически скачивается файл LocalSettings.php, который нужно переместить теперь на сервер с mediawiki, а именно на серВеРа 2 c cli:

scp -P 2024 /home/user **(**_смотрите под каким пользователем вы авторизировались до настройки_**)**/LocalSettings.php [testshuser@192.168.4.2](mailto:testshuser@192.168.4.2):/home/testshuser/

Теперь заходим на серВеР 2 и перемещаем скачанный файл в /root, но перед этим удаляем то, что создалось в /root (могло и не создаваться, так даже лучше):

rm -rf /home/user/LocalSettings.php

mkdir /home/user/mediawiki

mv /home/user/huser/LocalSettings.php /home/mediawiki/

ls /home/user/mediawiki/

Раскомментируем, как и говорили ранее, строку volumes.

Теперь перезапускаем контейнеры путём запуска контейнера ещё раз:

docker compose -f wiki.yml up -d

?. На маршрутизаторах сконфигурируйте статическую трансляцию портов

Пробросим порт 80 в порт 8080 и порт 2024 в порт 2024 на маршрутизаторе sec-rtr, для обеспечения работы сервиса mediawiki и ssh, правила прописываем через консоль:

iptables -t nat -A PREROUTING -p tcp -d 192.168.4.1 --dport 80 -j DNAT – to-destination 192.168.4.2:8080

iptables -t nat -A PREROUTING -p tcp -d 192.168.4.1 --dport 2024 -j DNAT - -to-destination 192.168.4.2:2024

iptables-save \> /root/rules

Пробросим порт 2024 в порт 2024 на маршрутизаторе fir-rtr, для обеспечения работы сервиса ssh, правило прописываем через консоль:

iptables -t nat -A PREROUTING -p tcp -d 192.168.1.1 --dport 2024 -j DNAT - -to-destination 192.168.1.2:2024

iptables-save \> /root/rules

?. Запустите сервис moodle на сервере 1

Устанавливаем для ряд пакетов, которые будут нам нужны для работы:

apt-get update apt-get install apache2 php8.2 apache2-mod\_php8.2 mariadb-server php8.2- opcache php8.2-curl php8.2-gd php8.2-intl php8.2-mysqli php8.2-xml php8.2- xmlrpc php8.2-ldap php8.2-zip php8.2-soap php8.2-mbstring php8.2-json php8.2-xmlreader php8.2-fileinfo php8.2-sodium

Включаем службы httpd2 и mysqld для дальнейшей работы с ними следующей командой:

systemctl enable –now httpd2 mysqld

Теперь настроим безопасный доступ к нашей будущей базе данных с помощью команды:

mysql\_secure\_installation

Прожимаем просто enter, т.к. сейчас root без пароля: Enter

Прожимаем y для задания пароля: y

Задаем пароль к нашему root, желательно стандартный: 123asdW%

Далее нажимаем на всё y, как на скриншоте: y

Теперь заходим в СУБД для создания и настройки базы данных:

mariadb -u root -p

CREATE DATABASE moodledb;

CREATE USER moodle IDENTIFIED BY ‘P@ssw0rd’;

GRANT ALL PRIVILEGES ON moodledb.\* TO moodle;

FLUSH PRIVILEGES;

Exit

Теперь скачаем сам мудл стабильной версии:

curl -L [https://github.com/moodle/moodle/archive/refs/tags/v4.5.0.zip](https://github.com/moodle/moodle/archive/refs/tags/v4.5.0.zip) \> /root/moodle.zip

Разархивируем его в /var/www/html/ для дальнейшей настройки:

unzip /root/moodle.zip -d /var/www/html

mv /var/www/html/moodle-4.5.0/\* /var/www/html/

ls /var/www/html

Создадим новый каталог moodledata, там будут храниться данные и изменим владельца на каталогах html и moodledata:

mkdir /var/www/moodledata

chown apache2:apache2 /var/www/html

chown apache2:apache2 /var/www/moodledata

Поменяем значение параметра max\_input\_vars в файле php.ini

mcedit /etc/php/8.2/apache2-mod\_php/php.ini

Жмём F7 для поиска нужной нам строки и пишем туда:

max\_input\_vars

Раскомментируем и пишем новое значение: max\_input\_vars = 5000

Удаляем стандартную страницу apache

cd /var/www/html

ls

rm index.html

Перезапускаем службу httpd2:

systemctl restart httpd2

Теперь подключаемся с клиента и начинаем настройку:

[http://192.168.1.2/install.php](http://192.168.1.2/install.php)

Жмём далее

Выбираем MariaDB в качестве драйвера базы данных:

Введём нужные данные в следующие строки:

Название базы данных: moodledb

Пользователь базы данных: moodle

Пароль: P@ssw0rd

Нажимаем “Продолжить”:

Просматриваем всё ли в статус “OK” или “Проверка” и прожимаем “Продолжить”:

После установки видим, что всё прошло успешно и жмём “Продолжить”:

Далее заполняем обязательные поля для создания основного администратора:

Логин: admin

Новый пароль: P@ssw0rd

Имя: Администратор (можно любое)

Фамилия: Пользователь (можно любое)

Адрес электронной почты: [test@mail.ru](mailto:test@mail.ru) (можно любое)

И нажимаем “Обновить профиль”:

Теперь заполним ещё некоторые строки на следующем шаге:

Полное название сайта: moodle

Краткое название сайта: 11

Настройки местоположения: Азия/Барнаул

Контакты службы поддержки: [test.test@mail.ru](mailto:test.test@mail.ru)

И жмём “Сохранить изменения” в конце страницы:

?. Настройте веб-сервер nginx как обратный прокси-сервер на fir-rtr

Поменяем значение wwwroot в конфигурации moodle на сервере 1:

mcedit /var/www/html/config.php

$CFG-\>wwwroot = ‘[http://moodle.ww-domain.org](http://moodle.ww-domain.org)’;

Устанавливаем пакет nginx на fir-rtr:

apt install nginx

Создаём новый конфигурационный файл proxy:

mcedit /etc/nginx/sites-available/proxy

**server {**

**| listen 80;**

**|server\_name [moodle.ww-domain.org](http://moodle.ww-domain.org);**

**|location / {**

**||proxy\_pass [http://192.168.1.2:80](http://192.168.1.2:80);**

**||proxy\_set\_header Host $host;**

**||proxy\_set\_header X-Real-IP&nbsp; $remote\_addr;**

**||proxy\_set\_header X-Forwarded-For $remote\_addr;**

**|}**

**}**

**server {**

**|listen 80;**

**|server\_name [wiki.ww-domain.org](http://wiki.ww-domain.org);**

**|location / {**

**||proxy\_pass [http://192.168.4.2:8080](http://192.168.4.2:8080);**

**||proxy\_set\_header Host $host;**

**||proxy\_set\_header X-Real-IP&nbsp; $remote\_addr;**

**||proxy\_set\_header X-Forwarded-For $remote\_addr;**

**|}**

**}**

&nbsp;

Удаляем конфигурацию (default), которую создал nginx, потом включаем созданную нами ранее (proxy):

rm -rf /etc/nginx/sites-available/default

rm -rf /etc/nginx/sites-enabled/default

ln -s /etc/nginx/sites-available/proxy /etc/nginx/sites-enabled

ls -la /etc/nginx/sites-enabled

systemctl restart nginx

?.

apt-get update

apt-get install yandex-browser-stable
