Пошаговая настройка сети

Открыть PDF-инструкцию: gaidVan

Открыть PDF: Modul1-25_v2

Открыть PDF: Modul2-25V3

Скачать файл: demo.txt

Скачать файл: demo_modu.txt

Скачать файл: demodocker.txt

1. Схема IP-адресации

Схема IP-адресацииСхема IP-адресации 2Схема адресации 3

↑ К началу

2. Переименование устройств

hostnamectl set-hostname device-name; exec bash
Переименование устройства

↑ К началу

3. Настройка сетевых интерфейсов

nmtui
выбр manual

↑ К началу

4. Включение маршрутизации

nano /etc/net/sysctl.conf
net.ipv4.ip_forward=1

↑ К началу

5. NAT и доступ в интернет

Если iptables не работает:

Проблемы с iptables

если все же не заработал то смотрим дальше

Восстановление работы iptables:
systemctl enable iptables
apt update && apt install iptables -y
echo $PATH
export PATH=$PATH:/sbin
echo 'export PATH=$PATH:/sbin' >> ~/.bashrc
source ~/.bashrc
iptables -L -n -v   # это проверка

modprobe iptable_nat

echo "iptable_nat" >> /etc/modules-load.d/iptables.conf

cat /etc/resolv.conf

nslookup google.com

nano /etc/resolv.conf   # изменить nameserver на 8.8.8.8

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
Проверка iptables
Настройка NAT с использованием iptables

# Настройка NAT (MASQUERADE) на ISP
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
# enp0s3 — интерфейс, направленный в сторону провайдера

# Разрешение пересылки трафика
iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
iptables -A FORWARD -i enp0s9 -o enp0s3 -j ACCEPT

# Сохранение iptables
iptables-save > /etc/iptables.rules
HQ-R:
# Настройка NAT на HQ-R
iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE

# Добавляем маршрут по умолчанию (через ISP)
ip route add default via (IP ISP)
BR-R:
# Настройка NAT на BR-R
iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE

# Добавление маршрута по умолчанию (через ISP)
ip route add default via (IP ISP)

↑ К началу

6. Настройка VLAN

VLAN (ТОЛЬКО НА HQ-RTR)
systemctl enable --now openvswitch

Создаем мост (виртуальный коммутатор) hq-sw, добавляем порты и назначаем VLAN:

ovs-vsctl add-br hq-sw
ovs-vsctl add-port hq-sw ens20 tag=100
ovs-vsctl add-port hq-sw ens21 tag=200
ovs-vsctl add-port hq-sw ens22 tag=999
ovs-vsctl add-port hq-sw vlan100 tag=100 -- set interface vlan100 type=internal
ovs-vsctl add-port hq-sw vlan200 tag=200 -- set interface vlan200 type=internal
ovs-vsctl add-port hq-sw vlan999 tag=999 -- set interface vlan999 type=internal

Перезагружаем openvswitch и NetworkManager:
systemctl restart openvswitch
systemctl restart NetworkManager

Включаем мост:
ip link set hq-sw up

Создаем скрипт для настройки и восстановления ip-адресов VLAN после перезагрузки:
nano ip.sh

Пишем текст скрипта:
#!/bin/bash/
ip a add 192.168.0.62/26 dev vlan100
ip a add 192.168.0.78/28 dev vlan200
ip a add 192.168.0.86/29 dev vlan999

Добавляем запуск при загрузке:
nano ~/.bashrc

Добавляем строчку и сохраняем:
bash ip.sh
bashrc запуск скрипта
Запускаем скрипт:
bash ip.sh

↑ К началу

7. Создание пользователей

adduser sshuser -u 1010 -s /bin/bash
passwd sshuser

↑ К началу

8. GRE-туннель и OSPF

nmcli connection modify tun1 ip-tunnel.ttl 64

# OSPF

/etc/frr/daemons
# Переводим ospfd=no в ospfd=yes

# Включаем и добавляем в автозагрузку службу frr
systemctl enable --now frr

# Настраиваем OSPFv2 через vtysh
vtysh
conf t
router ospf
passive-interface default
network 10.5.5.0/30 area 0
network 192.168.0.0/26 area 0
network 192.168.0.64/28 area 0
network 192.168.0.80/29 area 0
area 0 authentication
ex
# Конфигурируем туннель
interface tun1
no ospf network broadcast
no ip ospf passive
ip ospf authentication
ip ospf authentication-key P@ssw0rd
ex
ex
wr
OSPF настройка через vtysh
# Проверяем конфигурацию OSPF
vtysh
show ip route ospf

↑ К началу

9. DHCP

• Организуйте DHCP на HQ-RTR для офиса HQ:
  o Исключите из выдачи адрес маршрутизатора.
  o Укажите адрес сервера HQ-SRV как DNS-сервер.
  o Установите шлюз по умолчанию как HQ-RTR.
  o Добавьте DNS-суффикс au-team.irpo.
Для настройки понадобится скачать dhcp

Команда: apt-get install dhcp-server

И нам нужен файл dhcpd.conf

Если его нет, стоит сделать
cp /etc/dhcp/dhcpd.conf.example /etc/dhcp/dhcpd.conf
dhcpd.conf пример
nano /etc/dhcp/dhcpd.conf

# Присвоение интерфейса, на котором будет работать DHCP
Откройте файл /etc/sysconfig/dhcpd
sysconfig dhcpd
systemctl restart dhcpd
systemctl status dhcpd

Переходим на HQ-CLI и проверяем, раздался ли адрес

↑ К началу

10. SSH переход на ansible чуть ниже

apt-get install openssh-server
nano /etc/ssh/sshd_config
SSH настройкаSSH баннер
Port 2024
AllowUsers sshuser

Создайте пользователя sshuser на HQ-SRV и BR-SRV
Создайте пользователя net_admin на HQ-RTR и BR-RTR

# Команда для создания пользователя на HQ-SRV и BR-SRV
useradd -u 1010 -m sshuser

# Настройка прав без ввода пароля для (sudo)
ls -l /etc/sudoers  # проверка прав на файл
Права на файл sudoers
Если видим такую картину, значит, что файл можно только читать, но не редактировать.
Чтобы файл можно было изменить, изменим права:
Изменение прав на sudoers
На HQ-RTR и BR-RTR:
Создаем пользователя, используя команду (на HQ-R и BR-R):
useradd -m -s /bin/bash net_admin
# Задаем пароль пользователю
passwd net_admin

# Даем права
usermod -aG wheel net_admin

# Проверка
groups net_admin
nano /etc/sudoers
Проверка sudoers
# Перезагружаем SSH
systemctl restart sshd

# Создать файл для настройки баннера
nano /etc/issue.net

# Добавить текст:
Authorized access only

# Сервера
adduser sshuser -u 1010 -s /bin/bash
passwd sshuser
P@ssw0rd
P@ssw0rd
usermod -aG wheel sshuser

# Маршрутизатор (RTR)
adduser net_admin -s /bin/bash
passwd net_admin
P@$$word
P@$$word
usermod -aG wheel net_admin
echo "net_admin ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers

↑ К началу → Ansible

↑ К началу

11. DNS

DNS таблица
Устанавливаем bind на HQ-SRV
apt-get install bind

Создаем зоны
файл зоны прямого разрешения:

Изменение настроек в options conf
Настройки options.conf
Оформление зон в bind
Оформление зон
Создание файлов зон
Файл зоныФайл зоны au-team.irpo
[root@HQ-SRV bind]# cd zone
[root@HQ-SRV zone]# ls 
localhost managed-keys.bind managed-keys.bind.jnl slave 127. in-addr.arpa empty localdomain 
[root@HQ-SRV zone]# cp localdomain au-team.irpo 
[root@HQ-SRV zone]# cp 127.in-addr.arpa 2.168.192
[root@HQ-SRV zone]# cp 127.in-addr.arpa 3.168.192
[root@HQ-SRV zone]# cp 127.in-addr.arpa 4.168.192 
[root@HQ-SRV zone]# cp 127.in-addr.arpa 4.168.192.in-addr.arpa
[root@HQ-SRV zone]# cp 127.in-addr.arpa 3.168.192.in-addr.arpa 
[root@HQ-SRV zone]# cp 127.in-addr.arpa 2.168.192.in-addr.arpa
[root@HQ-SRV zone]# rm -f 2.168.192 3.168.192 4.168.192
[root@HQ-SRU zone]#
Создание обратных зон
Обратная зонаdddddfff
При настройке важно смотреть ваш текущий используемый dns
cat /etc/resolv.conf
Если там адрес не соответствует вашим желаниям, то редактируйте в файле 
/etc/systemd/resolved.conf
Отключите dnssec
Раскоментируйте DNSsec и поставьте no
И установите параметр no напротив dnstublistener 
Так же раскоментировав строчку
nano /etc/bind/options.conf
nano /etc/bind/zone/au-team.irpo

↑ К началу

12. Часовой пояс

Будем синхронизировать с BR-SRV
Скачиваем chrony
apt-get install chrony
chrony установка
На клиент тоже скачиваем и прописываем в конфиге
chrony конфиг клиент
Вписываем адрес устройства, с которым синхронизируется
timedatectl set-timezone Europe/Moscow

↑ К началу

13. Настройка доменного контроллера Samba на BR-SRV

Настройка Samba AD:

Удаляем smb.conf и другие конфигурационные файлы
rm -f /etc/samba/smb.conf

Запускаем автоматическую настройку
samba-tool domain provision --use-rfc2307 --interactive

Задаем все параметры по умолчанию кроме:
DNS backend: NONE
Password: P@ssw0rd
Retype password: P@ssw0rd

После успешной настройки покажет параметры домена

Настраиваем Kerberos
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

Добавляем адрес DNS сервера в smb.conf
nano /etc/samba/smb.conf
Добавляем строчку dns forwarder
dns forwarder = 192.168.0.1
Kerberos настройка
Настраиваем группу и пользователя
создаем группу для пользователей домена
samba-tool group add hq
создаем пользователей
samba-tool user add user1.hq "P@ssw0rd" --home-directory=/home/AU-TEAM/user1.hq --uid=user1.hq
Добавляем пользователя в группу
samba-tool group addmembers hq user1.hq
samba-tool group addmembers "Account Operators" hq
samba-tool group addmembers "Allowed RODC Password Replication Group" hq

Перезагружаем samba
systemctl restart samba

Внимание рекомендую перезагрузить сервер
reboot

Вводим в домен hq-cli
На клиентском компьютере заходим в терминал

Вводим команду подключения к домену
realm join -U user1.hq au-team.irpo
вводим пароль: P@ssw0rd
Добавляем доменную группу
realm permit -g hq
Добавляем права доменных пользователей
echo "%hq ALL=(ALL) NOPASSWD:/bin/cat,/bin/grep,/usr/bin/id" > /etc/sudoers.d/hq

Импорт пользователей на сервере BR-SRV:
Создайте скрипт для импорта на сервере:
nano /opt/import_users.sh

Пишем
#!/bin/bash
CSV_FILE="/opt/users.csv"
while IFS=, read -r username password group; do
 # Создание пользователя
 samba-tool user create "$username" "$password" --home-directory="/home/$username" --uid="$username"
 # Добавление в группу
 samba-tool group addmembers "$group" "$username"
done < "$CSV_FILE"
Скрипт импорта пользователей
Сделайте скрипт исполняемым:
chmod +x /opt/import_users.sh
Запустите его:
/opt/import_users.sh

Сконфигурируйте файловое хранилище:
Выводим список подключенных дисков и их имена.
# lsblk

Создание таблицы разделов
Для разбиения диска, запускаем fdisk с именем устройства:
# fdisk /dev/sdb

Последовательно выполняем команды
Вводим g чтобы создать новую пустую таблицу разделов:
Command (m for help): g
Вводим команду n чтобы создать новый раздел:
Command (m for help): n
Будет предложено ввести номер раздела. Жмем «Enter», чтобы использовать значение по умолчанию (1)
Далее необходимо указать первый сектор, используем значение по умолчанию. Жмем «Enter»
При следующем запросе необходимо ввести последний сектор, Жмем «Enter», так как используем весь диск
Сохраняем изменения, запустив команду w (Жмем w)
Команда запишет таблицу на диск и выйдет из меню fdisk.
Ядро прочитает таблицу разделов устройства без перезагрузки системы.
Аналогично создаем разделы на других дисках /dev/sdc, /dev/sdd

Создание программного RAID5
Для сборки массива применяем следующую команду:
# mdadm --create --verbose /dev/md0 -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1

Посмотреть состояние всех RAID можно командой:
# cat /proc/mdstat
RAID5
Отформатируем разделы в ext4:
# mkfs.ext4 /dev/md0

В корне системы создадим директорию /raid5
# mkdir /raid5

Примонтируем к RAID директорию /raid5 командой:
# mount /dev/md0 /raid5

Чтобы разделы монтировались при загрузке системы
Открываем fstab:
# nano /etc/fstab

И добавляем строки
/dev/md0 /raid5 ext4 defaults 0 0

Проверяем примонтированные разделы:
# df -h

↑ К началу

14. Сервер NFS

Создаем папку общего доступа /raid5/nfs
# mkdir /raid5/nfs

Измените права доступа
sudo chmod 777 /raid5/nfs

Запускаем nfs сервер:
systemctl enable --now nfs

Открываем на редактирование файл /etc/exports который содержит информацию о каталогах, экспортируемых с сервера:
# nano /etc/exports

Создаем шару из каталога /raid5/nfs, которая будет доступна для всех узлов сети 192.168.0.64/27.
Добавим в него строку:
/raid5/nfs 192.168.0.64/28(rw,subtree_check)
NFS экспорт
Выполняем экспорт данных (перечитаем конфигурационный файл /etc/exports, чтобы сервер начал отдавать настроенные шары):
# exportfs -a

Автомонтирование
На HQ-CLI устанавливаем компонент для клиентской части NFS:

Создаем директорию для автомонтирования /mnt/nfs
# mkdir /mnt/nfs

Пробуем примонтировать шару:
# mount -t nfs 192.168.0.1:/raid5/nfs /mnt/nfs
NFS монтирование HQ-CLI
Для автоматического монтирования на HQ-CLI после перезагрузки, используем fstab. Открываем файл fstab:
# nano /etc/fstab

И добавляем строку:
192.168.0.2:/raid5/nfs /mnt/nfs nfs auto 0 0
NFS fstab HQ-CLI

↑ К началу

15. Ansible на сервере BR-SRV

Создание пары SSH-ключей.
Чтобы заходить на удаленные машины, пользователь на BR-SRV (sshuser и root) должен создать пару из закрытого/открытого RSA ключа. Это делается следующей командой:
# ssh-keygen -t rsa
Далее Enter
В результате в каталоге /home/sshuser/.ssh или /root/.ssh будут созданы файлы ключей:
ls -l ~/.ssh
id_rsa # закрытый ключ
id_rsa.pub # открытый ключ
ssh-keygen
Заходим под пользователем sshuser и root (выполняется аналогично)
# su — sshuser
Копируем открытый SSH-ключ на удаленные устройства под пользователем sshuser:
Копируем ключ для пользователя sshuser на HQ-SRV
На HQ-SRV ssh порт изменен, указываем его
ssh-copy-id -p 2024 sshuser@192.168.0.1
ssh-copy-id HQ-SRV
Копируем ключ для пользователя user на HQ-CLI
ssh-copy-id user@192.168.0.65
Копируем ключ для пользователя net_admin на HQ-RTR
ssh-copy-id net_admin@172.16.4.1
ssh-copy-id HQ-CLI/HQ-RTR
Копируем ключ для пользователя net_admin на BR-RTR
ssh-copy-id net_admin@172.16.5.1

Подготовка файла инвентаря (hosts)
Создаем файл инвентаря /etc/ansible/demo
nano /etc/ansible/inv

Сначала указывается название группы в квадратных скобках, затем перечисляются хосты.
Имена хостов прописываются в виде ip.
После названия хоста можно указать параметры подключения к хосту в одну строку.
ansible inventory
Запуск команд с пользовательским инвентарем
ansible all -i /etc/ansible/inv -m ping
Может появиться предупреждение про обнаружение интерпретатора Python, на целевом хосте
ansible ping warning
Для управления поведением обнаружения в глобальном масштабе необходимо в файле конфигурации ansible /etc/ansible/ansible.cfg в разделе [defaults] прописать ключ interpreter_python с параметром auto_silent. В большинстве дистрибутивов прописываем вручную.
# nano /etc/ansible/ansible.cfg
ansible.cfg
Проверяем
ansible check

↑ К началу