2.5.1.2 Базовая настройка DHCP
Установка и первоначальная настройка
Устанавливаем DHCP:
dnf install dhcp-server
Настройки для диапазона адресов IPv4 производятся в файле /etc/dhcp/dhcpd.conf. Пример данного файла можно посмотреть в файле /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example. Ваша версия dhcpd в пути может отличаться.
Вы можете подробнее ознакомиться c базовой настройкой DHCP, просмотрев наши обучающие видео:
на RuTube — Базовая настройка DHCP;
в Яндекс.Дзен — Базовая настройка DHCP;
в VK Видео — Базовая настройка DHCP.
На наших каналах вы также сможете найти много другой полезной информации.
Содержание
Модуль 1
1. Задаём хостнейм на устройство
hostnamectl set-hostname <NAME>; exec bash
Например:
hostnamectl set-hostname hq-rtr.demo.rtk; exec bash
2. Настройка IP адресации осуществляется через утилиту nmtui
Настройка IP адресации осуществляется через утилиту nmtui
Для настройки подсети с заданой маской используем сайт ipmeter.ru
Для настроки nat, создадим правило nftables. Создаём и открываем файл /etc/nftables/isp.nft
table inet nat {
chain POSTROUTING {
type nat hook postrouting priority srcnat;
oifname "ens18" masquerade
}
}
Где ens18 - порт в интернет
Теперь вносим ссылку на наш конфиг в файл /etc/sysconfig/nftables.conf
include "/etc/nftables/isp.nft"
Сохраняем файл.
Редактируем файл /etc/sysctl.conf
net.ipv4.ip_forward = 1
Сохраняем файл и вводим команду sysctl -p
Аналогичные действия выполняем на остальных роутерах (HQ и BR)
3. Настройка часового пояса
Устанавливаем часовой пояс
timedatectl set-timezone Europe/Kiev
Проверяем
date
4. Настройка пользователей
Для создания пользователя используем команду
useradd -U ssh_user -u 1030
-U используется для создания одноименной группы
-u используется для указания id пользователя
Задаем пароль пользователю
passwd ssh_user
Добавляем пользователя в группу wheel
usermod -aG wheel ssh_user
Для того, чтобы пользователь мог использовать sudo без ввода пароля, редактируем visudo
ssh_user ALL=(ALL) NOPASSWD: ALL
и для группы wheel
%wheel ALL=(ALL) NOPASSWD: ALL
5. Настройка ssh сервера
Открываем файл /etc/ssh/sshd_config и вносим изменения по заданию
Port 2222
AllowUsers server_admin
MaxAuthTries 3
LoginGraceTime 3m
Banner /etc/ssh/ssh_banner
Создаем и редактируем файл /etc/ssh/ssh_banner
pop pop bob
Перезагружаем службу sshd:
systemctl restart sshd
6. Настройка IP-туннеля
Для настройки GRE туннеля открываем утилиту nmtui.
- Выбираем «Изменить подключение»
- Выбираем «Добавить»
- Выбираем «IP-туннель
- Задаём понятные имена «Имя профиля» и «Устройство» (В инструкции будет tun1)
- «Режим работы» выбираем «GRE»
- «Родительский» указываем интерфейс в сторону ISP (
ens18
) - задаём «Локальный IP» (IP на интерфейсе текущего роутера в сторону ISP
172.16.0.2
) - задаём «Удалённый IP» (IP на интерфейсе второго роутера в сторону ISP
192.168.100.2
) - переходим к «КОНФИГУРАЦИЯ IPv4»
- задаём адрес IPv4 для туннеля (
10.10.0.1/30
)
nmcli connection modify tun1 ip-tunnel.ttl 64
7. Настройка динамической маршрутизации посредством frr
при необходимости устанавливаем frr
dnf install frr -y
Меняем значение параметра ospfd
ospfd=yes
Активируем службу frr
systemctl enable --now frr
# conf t
# router ospf
# passive-interface default
# network LAN area 0
# network GRE area 0
# area 0 authentication
# exit
# interface tun1
# no ip ospf network broadcast
# no ip ospf passive
# ip ospf authentication
# ip ospf authentication-key password
# exit
# wr
LAN - ip адрес сети и маска, направленные в локальную сеть роутера (Например 192.168.100.0/24)
GRE - ip адрес сети и маска настроенного ранее ip-туннеля (Например 10.10.0.0/30)
Перезагружаем службу frr
systemctl restart frr
Возможно, придётся перезагрузить виртуальную машину! (У меня иначе не работает)
Для проверки динамической маршрутизации, открываем vtysh и вводим команды
show ip ospf neighbor
show ip route ospf
8. Настройка DHCP
При необходимости устанавливаем утилиту dhcp
dnf install dhcp-server -y
Открываем файл /etc/dhcp/dhcpd.conf и задаем настройки согласно заданию
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.5 192.168.100.25;
option domain-name-servers 192.168.100.2,77.88.8.8;
option domain-name "demo.rtk";
option routers 192.168.100.1;
}
Для резервации ip адресов дописываем ниже
host BR-SRV {
hardware ethernet aa:bb:cc:dd:ee:ff; # MAC адрес устройства
fixed-address 192.168.100.2; # IP адрес
}
Запускаем службу
systemctl enable --now dhcpd
9. Настройка DNS
Устанавливаем утилиту
dnf install bind bind-utils -y
Редактируем файл /etc/named.conf
Изменяем следующие строки:
listen-on port 53 {192.168.100.0/24; 172.16.0.0/24; }; вписываем сети
listen-on-v6 port 53; { none; }
allow-query { any; };
forwarders { 77.88.8.8; };
dnssec-validation (заменить на none)
В конце ЭТОГО ЖЕ файла дописываем файлы зон, настраеваемых поздее
zone "demo.rtk" {
type master;
file "master/demo-rtk.db";
};
zone "100.168.192.in-addr.arpa" {
type master;
file "master/demo-rtk_rev.db";
}
Должно получиться примерно вот так:
Сохраняем файл и проверяем
named-checkconf
Если ничего не вывело, значит ошибок нет.
Настраиваем файлы зон
Создаем папку с мастер-зонами
mkdir /var/named/master
Для простоты настройки зоны, копируем шаблон
cp /var/named/named.localhost /var/named/master/demo-rtk.db
Редактируем созданный файл и приводим его к виду:
Аналогично копируем файл обратной зоны
cp /var/named/named.loopback /var/named/master/demo-rtk_rev.db
Редактируем файл и приводим к следующему виду:
Далее назначаем владельца и права
chown -R root:named /var/named/master
chmod 0640 /var/named/master/*
Проверям наличие ошибок в конфигурационных файлах
named-checkconf -z
Если всё хорошо, то продолжаем дальше
Запускаем службу
systemctl enable --now named
Далее указываем в настройках nmtui в качестве dns адрес сервера, на котором он настроен (На всех устройствах! CLI получает его автоматически)
Для проверки работы dns, вводим команды на машинах, подключеных к нашему dns
ping hq-rtr.demo.rtk
host br-rtr.demo.rtk
host 192.168.100.1
Также можно использовать nslookup
nslookup cloud.demo.rtk
Модуль 2
1. Настройка службы сетегого времени
Устанавливаем утилиту
dnf install chrony
После установки открываем конфиг /etc/chrony.conf
Комментируем заданные в нем сервера и прописывам свой
server 127.0.0.1 iburst prefer
local stratum 5
allow 192.168.100.0/24
allow 172.16.0.0/24
Перезагружаем службу
systemctl restart chronyd
Добавляем в автозапуск
systemctl enable --now chronyd
Проверяем
chronyc sources
Далее подключаем клиентов
Открываем конфиг /etc/chrony.conf, комментриуем стандартные сервера и вставляем свой
server 192.168.100.1 iburst
Поднимаем службу
systemctl enable --now chronyd
Проверяем
chronyc sources
Проверяем клиентов на сервере
chronyc clients
2. Установка Ansible
скачиваем утилиту
dnf install ansible -y
Создаем пару ключей шифрования
ssh-keygen -t rsa
Отправляем созданные ключи на машины
ssh-copy-id -p 2222 server_admin@192.168.100.1
Создаём инвентарный файл
nano /etc/ansible/demo
Прописываем в него хостов по примеру
ansible_port - порт для подключения по ssh, заданный в 1 модуле
ansible_user - пользователь, к которому выполняется подключени по ssh
Для проверки запускаем модуль ping через ansible
ansible all -i /etc/ansible/demo -m ping
Для отключения розового предупреждения, редактируем файл /etc/ansible/ansible.cfg
Находим или создаем раздел [defaults]
Приводим его к виду
Повторно проверяем хосты
ansible all -i /etc/ansible/demo -m ping
3. Развертка приложения в Docker
Устанавливаем средство контейнеризации
dnf install docker-ce docker-ce-cli -y
После установки включаем службу и добавляем в автозагрузку
systemctl enable docker --now
Проверяем статус службы
systemctl status docker
Если необходимо получить информацию о Docker
docker info
Устанавливаем Docker Compose
dnf install docker-compose -y
Для удобного создания сервиса MediaWiki подключаемся по ssh к серверу с CLI устройства
Далее в поисковой системе пишем mediawiki docker-compose
и переходим на официальный сайт
На странице находим раздел Adding a Database Server
Копируем содержимое
Создаем файл wiki.yaml в домашней директории пользователя на сервере
cd /home/sshuser
nano wiki.yml
Вставляем в него скопированный код и вносим некторые изменения
Значения могут отличаться, смотреть в задании!
Создаём раздел Docker
docker volume create dbvolume
Посмотреть имеющиеся разделы можно при помощи команды
docker volume ls
Выполняем сборку и запуск стека контейнеров с приложением MediaWiki и базой данных описанных в файле wiki.yml
docker-compose -f wiki.yml up -d
Для просмотра списка контейнеров, можно воспользоваться командой
docker ps
Дальше открываем браузер и заходим на адрес нашего сервера с заданым портом (8080)
Нажимаем set up the wiki
Выбираем язык и жмём Далее
После проверки внешней среды ждем Далее
Заполняем параметры подключение к БД в соответствие с заданными переменными окружения в wiki.yml, которые соответствуют заданию
Ставим галочку Использовать ту же учётную запись, что и для установки и нажимаем Далее
Вносим необходимые сведения
Будет автоматически скачен файл LocalSettings.php - который необходимо передать на сервер в директорию пользователя, туда же где лежит wiki.yml
scp -P 2222 /home/user/Загрузки/LocalSettings.php sshuser@192.168.200.2:/home/sshuser
Возвращаемся в файл wiki.yml и раскомментируем строчку с LocalSettings
Далее перезагружаем сервисы средствами docker-compose
docker-compose -f wiki.yml stop
docker-compose -f wiki.yml up -d
Проверяем доступ к Wiki
Полезные команды (Вводить по необходимости):
Остановка всех контейнеров
docker stop $(docker ps -qa)
Удаление всех контейнеров
docker rm $(docker ps -qa)
Удаление всех образов
docker rmi -f $(docker images -qa)
Удаление всх томов
docker volume rm $(docker volume ls -q)
Удаление всех сетей
docker network rm $(docker network ls -q)