Настройка маршрутизатора 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