Настройка маршрутизатора HQ-RTR

Подготовка системы

Задаём имя хоста для корректной идентификации устройства в сети.

hostnamectl set-hostname HQ-RTR
exec bash

Настройка интерфейса WAN

Основной интерфейс для выхода в сторону ISP. Получает адрес по DHCP или статически в зависимости от схемы.

echo "source /etc/network/interfaces.d/*" > /etc/network/interfaces
echo -e "\nauto lo" >> /etc/network/interfaces
echo "iface lo inet loopback" >> /etc/network/interfaces

Определяем внешний интерфейс и назначаем ему статический адрес.

IF1=$(ip -br a | awk 'NR==2 {print $1}')

echo "auto $IF1" >> /etc/network/interfaces
echo "iface $IF1 inet static" >> /etc/network/interfaces
echo "address 172.16.4.2/28" >> /etc/network/interfaces
echo -e "gateway 172.16.4.1\n" >> /etc/network/interfaces

Настройка VLAN интерфейсов

Создаём trunk-интерфейс и разделяем его на VLAN 100, 200 и 99. Эти сети используются для клиентов, серверов и служебного сегмента.

IF2=$(ip -br a | awk 'NR==3 {print $1}')

echo "auto $IF2" >> /etc/network/interfaces
echo "iface $IF2 inet manual" >> /etc/network/interfaces

VLAN 100 — серверная подсеть HQ.

echo -e "\nauto $IF2.100" >> /etc/network/interfaces
echo "iface $IF2.100 inet static" >> /etc/network/interfaces
echo "address 192.168.100.1/26" >> /etc/network/interfaces
echo "vlan-raw-device $IF2" >> /etc/network/interfaces

VLAN 200 — клиентская сеть.

echo "auto $IF2.200" >> /etc/network/interfaces
echo "iface $IF2.200 inet static" >> /etc/network/interfaces
echo "address 192.168.100.65/28" >> /etc/network/interfaces
echo "vlan-raw-device $IF2" >> /etc/network/interfaces

VLAN 99 — служебная сеть управления.

echo "auto $IF2.99" >> /etc/network/interfaces
echo "iface $IF2.99 inet static" >> /etc/network/interfaces
echo "address 192.168.100.81/29" >> /etc/network/interfaces
echo "vlan-raw-device $IF2" >> /etc/network/interfaces

Применяем сетевые настройки.

systemctl restart networking

Создание пользователя администратора

Добавляем пользователя net_admin с правами sudo без пароля.

apt update && apt install sudo -y

useradd net_admin -u 2026 -m -s /bin/bash
echo "net_admin:P@ssw0rd" | chpasswd
usermod -aG sudo net_admin

echo "net_admin ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers

DHCP сервер

Устанавливаем DHCP сервер и очищаем старые lease записи.

apt install isc-dhcp-server -y
systemctl stop isc-dhcp-server
truncate -s 0 /var/lib/dhcp/dhcpd.leases

Привязываем DHCP к VLAN 200.

echo "INTERFACESv4=\"$IF2.200\"" > /etc/default/isc-dhcp-server

Конфигурация пула адресов для клиентской сети.

cat << EOF > /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.200.0 netmask 255.255.255.0 {
  range 192.168.200.100 192.168.200.200;
  option subnet-mask 255.255.255.0;
  option routers 192.168.200.1;
  option domain-name-servers 8.8.8.8;
}
EOF

Запускаем DHCP сервис.

systemctl start isc-dhcp-server
systemctl enable isc-dhcp-server

Firewall и NAT

Настраиваем firewalld и включаем NAT.

apt install firewalld -y

firewall-cmd --permanent --zone=public --add-masquerade
firewall-cmd --permanent --zone=public --set-target=ACCEPT

Назначаем интерфейсы в соответствующие зоны.

IF2=$(ip -br a | awk 'NR==3 {print $1}')
IF1=$(ip -br a | awk 'NR==2 {print $1}')

firewall-cmd --permanent --zone=public --add-interface=$IF1
firewall-cmd --permanent --zone=public --add-interface=$IF2
firewall-cmd --permanent --zone=public --add-interface=$IF2.100
firewall-cmd --permanent --zone=public --add-interface=$IF2.200
firewall-cmd --permanent --zone=public --add-interface=$IF2.99

Применяем настройки firewall.

firewall-cmd --reload

Время и синхронизация

Настройка временной зоны и NTP.

timedatectl set-timezone Asia/Vladivostok
timedatectl set-ntp true

SSH доступ

Включаем SSH и добавляем баннер безопасности.

apt install ssh -y

echo "Authorized access only" > /etc/ssh/banner
echo "Banner /etc/ssh/banner" >> /etc/ssh/sshd_config

systemctl restart sshd

Проброс портов

Настраиваем проброс HTTP и служебных портов на внутренние серверы.

firewall-cmd --permanent --zone=public --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=192.168.100.2
firewall-cmd --permanent --zone=public --add-forward-port=port=2026:proto=tcp:toport=2026:toaddr=192.168.100.2