Настройка сетевой инфраструктуры на ALT Linux
Справочник по настройке маршрутизации, VLAN, GRE-туннелей, NAT, динамической маршрутизации (OSPF), DHCP и DNS на ALT Linux. Каждый раздел содержит краткое пояснение и пример готовой конфигурации для соответствующего узла сети.
Адреса, маски подсетей, имена интерфейсов и доменные имена в примерах относятся к учебному стенду. При настройке подставляйте значения своей схемы.
Настройка узлов сети: маршрутизаторы и серверы
Граничный маршрутизатор
Граничный маршрутизатор на стыке с внешней сетью: получает адрес от вышестоящего провайдера и выполняет трансляцию адресов (NAT) для внутренних подсетей.
I. Идентификация хоста и времени
Имя хоста идентифицирует узел в сети и подставляется в приглашение командной строки, журналы и сетевые службы (DNS,
Kerberos). hostnamectl записывает имя без перезагрузки, а вызов bash нужен, чтобы новое
имя сразу отобразилось в приглашении. Часовой пояс через timedatectl важен для корректных меток времени
в логах и протоколов, чувствительных ко времени.
hostnamectl hostname isp.au-team.irpo bash timedatectl set-timezone Europe/Moscow
II. Включение маршрутизации (IP Forwarding)
По умолчанию Linux не пересылает пакеты между интерфейсами и ведёт себя как конечный узел, а не маршрутизатор.
Параметр ядра net.ipv4.ip_forward включает пересылку IPv4-пакетов; правка в sysctl.conf
делает её постоянной. Без этого роутер не сможет передавать трафик между подсетями.
cd /etc/net/ sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' sysctl.conf
III. Подготовка шаблонов интерфейсов
В ALT Linux каждый сетевой интерфейс описывается отдельным каталогом в /etc/net/ifaces/ (система
etcnet) с файлами options, ipv4address, ipv4route. Копирование готового
каталога через cp -R — быстрый способ создать новый интерфейс на основе шаблона, в том числе
VLAN-подынтерфейсы (имя вида enpXsY.100) и туннели.
cd ifaces/ cp -R ens19 ens20 cp -R ens20 ens21
IV. Настройка режимов BOOTPROTO и IPv4-адресов
Файл options задаёт способ получения адреса: BOOTPROTO=dhcp — адрес выдаёт вышестоящий
сервер (для аплинка к провайдеру), static — адрес прописывается вручную (для внутренних сетей). Сам
адрес с маской в формате CIDR записывается в файл ipv4address, а шлюз по умолчанию
(default via …) — в ipv4route.
cat << 'EOF' > /etc/net/ifaces/ens19/options BOOTPROTO=dhcp TYPE=eth CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=dhcp4 CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no EOF cat << 'EOF' > /etc/net/ifaces/ens20/options BOOTPROTO=static TYPE=eth CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no EOF cat << 'EOF' > /etc/net/ifaces/ens21/options BOOTPROTO=static TYPE=eth CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no EOF echo 172.16.1.1/28 > ens20/ipv4address echo 172.16.2.1/28 > ens21/ipv4address systemctl restart network
ens19 > DHCP (uplink к провайдеру)
ens20, ens21 > static (downlink к клиентам)
V. Скачивание nano, iptables
Установка базовых утилит: nano — простой текстовый редактор, iptables — инструмент
управления правилами межсетевого экрана и NAT в ядре Linux. На минимальной установке они часто отсутствуют.
apt-get update && apt-get install nano iptables -y
VI. Применение сетевых настроек и NAT
NAT (маскарадинг) подменяет приватные адреса внутренней сети на внешний адрес роутера, чтобы трафик мог выходить
наружу. Правило в цепочке POSTROUTING таблицы nat с действием MASQUERADE
применяется к исходящему интерфейсу. iptables-save сохраняет правила в файл, а включение службы
iptables восстанавливает их после перезагрузки.
systemctl restart network iptables -t nat -A POSTROUTING -o ens19 -j MASQUERADE iptables-save -f /etc/sysconfig/iptables systemctl enable --now iptables.service
VII. Применение сетевых настроек
Перезапуск службы network перечитывает конфигурацию из /etc/net/ifaces/ и поднимает
интерфейсы с новыми параметрами — применяются все правки адресов, маршрутов, VLAN и туннелей.
systemctl restart network
Маршрутизатор площадки A
Маршрутизатор площадки A: терминирует VLAN пользователей и серверов, поднимает GRE-туннель до второй площадки, распространяет маршруты по OSPF и выдаёт адреса по DHCP.
I. Идентификация хоста и времени
Имя хоста идентифицирует узел в сети и подставляется в приглашение командной строки, журналы и сетевые службы (DNS,
Kerberos). hostnamectl записывает имя без перезагрузки, а вызов bash нужен, чтобы новое
имя сразу отобразилось в приглашении. Часовой пояс через timedatectl важен для корректных меток времени
в логах и протоколов, чувствительных ко времени.
hostnamectl hostname hq-rtr.au-team.irpo bash timedatectl set-timezone Europe/Moscow
II. Создание пользователей
Создаём пользователя net_admin в группе wheel с правами выполнять sudo без пароля. Пароль пользователя - P@ssw0rd
useradd -m net_admin echo "net_admin:P@ssw0rd" | chpasswd usermod -aG wheel net_admin echo 'net_admin ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
III. Включение маршрутизации (IP Forwarding)
По умолчанию Linux не пересылает пакеты между интерфейсами и ведёт себя как конечный узел, а не маршрутизатор.
Параметр ядра net.ipv4.ip_forward включает пересылку IPv4-пакетов; правка в sysctl.conf
делает её постоянной. Без этого роутер не сможет передавать трафик между подсетями.
cd /etc/net/ sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' sysctl.conf
IV. Подготовка шаблонов интерфейсов
В ALT Linux каждый сетевой интерфейс описывается отдельным каталогом в /etc/net/ifaces/ (система
etcnet) с файлами options, ipv4address, ipv4route. Копирование готового
каталога через cp -R — быстрый способ создать новый интерфейс на основе шаблона, в том числе
VLAN-подынтерфейсы (имя вида enpXsY.100) и туннели.
cd ifaces/ cp -R ens19 ens20 cp -R ens19 ens20.100 cp -R ens19 ens20.200 cp -R ens19 ens20.999 cp -R ens19 gre10
V. Настройка IPv4-адресов и маршрутов
Файл options задаёт способ получения адреса: BOOTPROTO=dhcp — адрес выдаёт вышестоящий
сервер (для аплинка к провайдеру), static — адрес прописывается вручную (для внутренних сетей). Сам
адрес с маской в формате CIDR записывается в файл ipv4address, а шлюз по умолчанию
(default via …) — в ipv4route.
cat << 'EOF' > /etc/net/ifaces/ens19/options BOOTPROTO=static TYPE=eth CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no EOF cat << 'EOF' > /etc/net/ifaces/ens20.100/options BOOTPROTO=static TYPE=eth CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no EOF cat << 'EOF' > /etc/net/ifaces/ens20.200/options BOOTPROTO=static TYPE=eth CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no EOF cat << 'EOF' > /etc/net/ifaces/ens20.999/options BOOTPROTO=static TYPE=eth CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no EOF cat << 'EOF' > /etc/net/ifaces/gre10/options BOOTPROTO=static SYSTEMD_BOOTPROTO=static TYPE=iptun TUNTYPE=gre CONFIG_WIRELESS=no CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no TUNLOCAL=172.16.1.2 TUNREMOTE=172.16.2.2 TUNTTL=32 TUNOPTIONS='ttl 32' EOF echo 172.16.1.2/28 > ens19/ipv4address echo default via 172.16.1.1 > ens19/ipv4route echo 192.168.100.1/27 > ens20.100/ipv4address echo 192.168.200.1/28 > ens20.200/ipv4address echo 192.168.99.1/29 > ens20.999/ipv4address echo 10.0.0.1/30 > gre10/ipv4address
VI. Настройка VLAN-интерфейсов
VLAN разделяет один физический порт на несколько изолированных логических сетей по стандарту 802.1Q. В etcnet
подынтерфейс описывается параметрами TYPE=vlan, VID=<тег> и
HOST=<родительский интерфейс>. Так на одном линке между коммутатором и роутером поднимаются
отдельные подсети — например, для пользователей, серверов и управления.
echo HOST=ens20 >> ens20.100/options echo HOST=ens20 >> ens20.200/options echo HOST=ens20 >> ens20.999/options echo VID=100 >> ens20.100/options echo VID=200 >> ens20.200/options echo VID=999 >> ens20.999/options sed -i 's/TYPE=eth/TYPE=vlan/g' ens20.100/options sed -i 's/TYPE=eth/TYPE=vlan/g' ens20.200/options sed -i 's/TYPE=eth/TYPE=vlan/g' ens20.999/options echo nameserver 77.88.8.8 > /etc/resolv.conf
VII. Применяем сетевые настройки
Перезапуск службы network перечитывает конфигурацию из /etc/net/ifaces/ и поднимает
интерфейсы с новыми параметрами — применяются все правки адресов, маршрутов, VLAN и туннелей.
systemctl restart network
VIII. Установка и настройка динамической маршрутизации (FRR / OSPF), nano и iptables
FRR (Free Range Routing) — пакет демонов динамической маршрутизации; за OSPF отвечает демон ospfd,
выключенный по умолчанию и включаемый в /etc/frr/daemons. OSPF автоматически распространяет маршруты
между роутерами, избавляя от ручной статики. Вместе ставятся вспомогательные утилиты.
apt-get update apt-get install frr dhcp-server sudo nano iptables -y sed -i 's/ospfd=no/ospfd=yes/g' /etc/frr/daemons systemctl enable --now frr
IX. Настройка NAT
NAT (маскарадинг) подменяет приватные адреса внутренней сети на внешний адрес роутера, чтобы трафик мог выходить
наружу. Правило в цепочке POSTROUTING таблицы nat с действием MASQUERADE
применяется к исходящему интерфейсу. iptables-save сохраняет правила в файл, а включение службы
iptables восстанавливает их после перезагрузки.
iptables -t nat -A POSTROUTING -o ens19 -j MASQUERADE iptables-save -f /etc/sysconfig/iptables systemctl enable --now iptables.service
X. Настройка DNS-резолвера
Файл /etc/resolv.conf указывает, какой DNS-сервер использовать для разрешения имён.
nameserver — адрес сервера, search/domain — суффикс, автоматически
дописываемый к коротким именам. На внутренних узлах сюда прописывают локальный DNS.
cat << EOF > /etc/resolv.conf nameserver 192.168.100.2 search au-team.irpo domain au-team.irpo EOF
XI. Конфигурация OSPF через vtysh
vtysh — единая консоль управления FRR, похожая на CLI сетевого оборудования. Здесь OSPF включается на
нужных интерфейсах и объявляются сети по областям (area 0 — магистральная).
passive-interface default отключает рассылку OSPF на всех интерфейсах, кроме явно разрешённых, а
MD5-аутентификация защищает соседство от посторонних. Команда wr сохраняет конфигурацию.
vtysh conf t interface gre10 ip ospf network point-to-point ip ospf message-digest-key 1 md5 P@ssw0rd ip ospf authentication message-digest no ip ospf passive exit ! router ospf passive-interface default network 10.0.0.0/30 area 0 network 192.168.10.0/30 area 0 network 192.168.99.0/29 area 0 network 192.168.100.0/27 area 0 exit exit wr exit
XII. Настройка DHCP-сервера
DHCP автоматически выдаёт клиентам адреса и сетевые параметры. В dhcpd.conf описывается подсеть,
диапазон выдаваемых адресов (range), шлюз, маска, DNS и домен. Служба привязывается к конкретному
интерфейсу через DHCPDARGS и включается для автозапуска.
cat << EOF > /etc/dhcp/dhcpd.conf
ddns-update-style none;
subnet 192.168.200.0 netmask 255.255.255.240 {
option routers 192.168.200.1;
option subnet-mask 255.255.255.240;
option domain-name "au-team.irpo";
option domain-name-servers 192.168.100.2;
range dynamic-bootp 192.168.200.2 192.168.200.12;
default-lease-time 21600;
max-lease-time 43200;
}
EOF
echo DHCPDARGS=ens20.200 > /etc/sysconfig/dhcpd
systemctl enable --now dhcpd
XIII. Проверка службы dhcpd
Проверка, успешно ли запущена служба dhcp-сервера
systemctl status dhcpd
Маршрутизатор площадки B
Маршрутизатор площадки B: подключается к площадке A через GRE-туннель и обменивается маршрутами по OSPF.
I. Идентификация хоста и времени
Имя хоста идентифицирует узел в сети и подставляется в приглашение командной строки, журналы и сетевые службы (DNS,
Kerberos). hostnamectl записывает имя без перезагрузки, а вызов bash нужен, чтобы новое
имя сразу отобразилось в приглашении. Часовой пояс через timedatectl важен для корректных меток времени
в логах и протоколов, чувствительных ко времени.
hostnamectl hostname br-rtr.au-team.irpo bash timedatectl set-timezone Europe/Moscow
II. Создание пользователей
Создаём пользователя net_admin в группе wheel с правами выполнять sudo без пароля. Пароль пользователя - P@ssw0rd
useradd -m net_admin echo "net_admin:P@ssw0rd" | chpasswd usermod -aG wheel net_admin echo 'net_admin ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
III. Включение маршрутизации (IP Forwarding)
По умолчанию Linux не пересылает пакеты между интерфейсами и ведёт себя как конечный узел, а не маршрутизатор.
Параметр ядра net.ipv4.ip_forward включает пересылку IPv4-пакетов; правка в sysctl.conf
делает её постоянной. Без этого роутер не сможет передавать трафик между подсетями.
cd /etc/net/ sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' sysctl.conf cd ifaces/
IV. Подготовка шаблонов интерфейсов
В ALT Linux каждый сетевой интерфейс описывается отдельным каталогом в /etc/net/ifaces/ (система
etcnet) с файлами options, ipv4address, ipv4route. Копирование готового
каталога через cp -R — быстрый способ создать новый интерфейс на основе шаблона, в том числе
VLAN-подынтерфейсы (имя вида enpXsY.100) и туннели.
cp -R ens19 ens20 cp -R ens19 gre10
V. Настройка IPv4-адресов и маршрутов
Файл options задаёт способ получения адреса: BOOTPROTO=dhcp — адрес выдаёт вышестоящий
сервер (для аплинка к провайдеру), static — адрес прописывается вручную (для внутренних сетей). Сам
адрес с маской в формате CIDR записывается в файл ipv4address, а шлюз по умолчанию
(default via …) — в ipv4route.
cat << 'EOF' > /etc/net/ifaces/ens19/options BOOTPROTO=static TYPE=eth CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no EOF cat << 'EOF' > /etc/net/ifaces/ens20/options BOOTPROTO=static TYPE=eth CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no EOF cat << 'EOF' > /etc/net/ifaces/gre10/options BOOTPROTO=static SYSTEMD_BOOTPROTO=static TYPE=iptun TUNTYPE=gre CONFIG_WIRELESS=no CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no TUNLOCAL=172.16.2.2 TUNREMOTE=172.16.1.2 TUNTTL=32 TUNOPTIONS='ttl 32' EOF echo 172.16.2.2/28 > ens19/ipv4address echo default via 172.16.2.1 > ens19/ipv4route echo 192.168.0.1/28 > ens20/ipv4address echo 10.0.0.2/30 > gre10/ipv4address
VI. Настраиваем временный DNS-резолвер
Пока внутренний DNS ещё не поднят, в /etc/resolv.conf временно прописывается публичный сервер
(nameserver), чтобы работало разрешение имён и установка пакетов. Позже его заменяют на локальный DNS.
echo nameserver 77.88.8.8 > /etc/resolv.conf
VII. Установка и настройка динамической маршрутизации (FRR / OSPF), nano и iptables
FRR (Free Range Routing) — пакет демонов динамической маршрутизации; за OSPF отвечает демон ospfd,
выключенный по умолчанию и включаемый в /etc/frr/daemons. OSPF автоматически распространяет маршруты
между роутерами, избавляя от ручной статики. Вместе ставятся вспомогательные утилиты.
systemctl restart network apt-get update apt-get install frr dhcp-server sudo nano iptables -y sed -i 's/ospfd=no/ospfd=yes/g' /etc/frr/daemons systemctl enable --now frr
VIII. Настройка DNS-резолвера
Файл /etc/resolv.conf указывает, какой DNS-сервер использовать для разрешения имён.
nameserver — адрес сервера, search/domain — суффикс, автоматически
дописываемый к коротким именам. На внутренних узлах сюда прописывают локальный DNS.
cat << EOF > /etc/resolv.conf nameserver 192.168.100.2 search au-team.irpo domain au-team.irpo EOF
IX. Применяем сетевые настройки
Перезапуск службы network перечитывает конфигурацию из /etc/net/ifaces/ и поднимает
интерфейсы с новыми параметрами — применяются все правки адресов, маршрутов, VLAN и туннелей.
systemctl restart network
X. Настройка NAT
NAT (маскарадинг) подменяет приватные адреса внутренней сети на внешний адрес роутера, чтобы трафик мог выходить
наружу. Правило в цепочке POSTROUTING таблицы nat с действием MASQUERADE
применяется к исходящему интерфейсу. iptables-save сохраняет правила в файл, а включение службы
iptables восстанавливает их после перезагрузки.
iptables -t nat -A POSTROUTING -o ens19 -j MASQUERADE iptables-save -f /etc/sysconfig/iptables systemctl enable --now iptables.service
XI. Конфигурация OSPF через vtysh
vtysh — единая консоль управления FRR, похожая на CLI сетевого оборудования. Здесь OSPF включается на
нужных интерфейсах и объявляются сети по областям (area 0 — магистральная).
passive-interface default отключает рассылку OSPF на всех интерфейсах, кроме явно разрешённых, а
MD5-аутентификация защищает соседство от посторонних. Команда wr сохраняет конфигурацию.
vtysh conf t interface gre10 ip ospf network point-to-point ip ospf message-digest-key 1 md5 P@ssw0rd ip ospf authentication message-digest no ip ospf passive exit ! router ospf passive-interface default network 10.0.0.0/30 area 0 network 192.168.0.0/28 area 0 exit exit wr exit
Сервер площадки A
Сервер площадки A: выполняет роль внутреннего DNS-сервера (dnsmasq) для домена сети и настроен на защищённый SSH-доступ.
I. Идентификация хоста и времени
Имя хоста идентифицирует узел в сети и подставляется в приглашение командной строки, журналы и сетевые службы (DNS,
Kerberos). hostnamectl записывает имя без перезагрузки, а вызов bash нужен, чтобы новое
имя сразу отобразилось в приглашении. Часовой пояс через timedatectl важен для корректных меток времени
в логах и протоколов, чувствительных ко времени.
hostnamectl hostname hq-srv.au-team.irpo bash timedatectl set-timezone Europe/Moscow
II. Настройка сетевого интерфейса и DNS-резолвера
На сервере интерфейс настраивается статически: адрес и маска — в ipv4address, шлюз по умолчанию — в
ipv4route. DNS-резолвер указывает на внутренний DNS-сервер сети с нужным доменным суффиксом, после
чего
сетевая служба перезапускается.
cd /etc/net/ifaces/ cat << 'EOF' > /etc/net/ifaces/ens19/options BOOTPROTO=static TYPE=eth CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no EOF echo 192.168.100.2/27 > ens19/ipv4address echo default via 192.168.100.1 > ens19/ipv4route echo nameserver 77.88.8.8 > ens19/resolv.conf systemctl restart network
III. Настройка безопасного SSH-доступа (с паролем P@ssw0rd)
Базовое усиление SSH: создаётся отдельный пользователь для входа вместо root и получает права sudo. В
sshd_config меняется порт (снижает фоновый перебор), ограничивается число попыток входа
(MaxAuthTries), задаётся список разрешённых пользователей (AllowUsers) и
баннер-предупреждение. После правок служба sshd перезапускается.
useradd sshuser -m -u 2026 echo "ssh_user:P@ssw0rd" | chpasswd
gpasswd -a sshuser wheel echo 'sshuser ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers cat << EOF >> /etc/openssh/sshd_config port 2026 MaxAuthTries 2 AllowUsers sshuser Banner /etc/openssh/banner EOF cat << EOF > /etc/openssh/banner ................................ ... Authorized access only ... ................................ EOF systemctl restart sshd
IV. Установка + создание всего конфига dnsmasq
В конфигурационном файле dnsmasq задаются глобальные параметры: interface — на каких сетевых
интерфейсах слушать запросы, server — вышестоящие DNS-серверы для пересылки запросов,
cache-size — размер кэша. Директивы host-record и address используются для
создания статических записей и перенаправления целых доменов на определенные IP-адреса.
apt-get update apt-get install sudo nano openssh-server dnsmasq -y cat << EOF > /etc/dnsmasq.conf no-hosts server=77.88.8.8 cache-size=1000 all-servers no-negcache interface=* host-record=isp.au-team.irpo,172.16.1.1 host-record=isp.au-team.irpo,172.16.2.1 host-record=hq-rtr.au-team.irpo,192.168.100.1 host-record=hq-rtr.au-team.irpo,192.168.200.1 host-record=hq-rtr.au-team.irpo,192.168.99.1 host-record=hq-srv.au-team.irpo,192.168.100.2 host-record=hq-cli.au-team.irpo,192.168.200.2 host-record=br-rtr.au-team.irpo,172.16.2.2 host-record=br-rtr.au-team.irpo,192.168.0.1 host-record=br-srv.au-team.irpo,192.168.0.2 EOF
V (опционально). Поиск конфликтных процессов, использующих 53 порт
Поскольку dnsmasq для работы требуется 53-й порт (UDP/TCP), необходимо убедиться, что он не занят другими
процессами (например, systemd-resolved). Команда ss позволяет просмотреть список слушающих сокетов и
найти PID процесса, который перехватил нужный порт.
ss -tlpn | grep :53
VI. Добавляем службу в автозапуск
С помощью systemctl служба dnsmasq добавляется в автозагрузку (enable) и сразу же
запускается (--now). Это гарантирует, что DNS-сервер будет стартовать при каждой загрузке
операционной
системы и начнет обслуживать запросы без необходимости ручной активации.
systemctl enable --now dnsmasq.service
VII (опционально). Убиваем процесс, который использует 53 порт
Если на 53-м порту висит нежелательный процесс, его нужно принудительно завершить по PID (идентификатору процесса), который мы узнали на предыдущем шаге, чтобы освободить порт для успешного запуска dnsmasq.
kill (id process)
VIII. Смотрим статус службы dnsmasq
Команда systemctl status отображает текущее состояние службы dnsmasq: активна ли она, не упала ли с
ошибкой, а также показывает последние строки журнала (логов), что крайне полезно для первичной диагностики и
подтверждения успешного запуска сервиса.
systemctl status dnsmasq
IX. Синхронизация часового пояса (доп. проверка)
Повторная установка часового пояса и вывод timedatectl — контрольная проверка, что время и зона
выставлены верно. Это важно для протоколов, завязанных на время (Kerberos, TLS, таймеры OSPF).
timedatectl set-timezone Europe/Moscow timedatectl
Сервер площадки B
Сервер площадки B: базовая сетевая настройка и защищённый SSH-доступ.
I. Идентификация хоста и времени
Имя хоста идентифицирует узел в сети и подставляется в приглашение командной строки, журналы и сетевые службы
(DNS,
Kerberos). hostnamectl записывает имя без перезагрузки, а вызов bash нужен, чтобы новое
имя сразу отобразилось в приглашении. Часовой пояс через timedatectl важен для корректных меток
времени
в логах и протоколов, чувствительных ко времени.
hostnamectl hostname br-srv.au-team.irpo bash timedatectl set-timezone Europe/Moscow
II. Настройка сетевого интерфейса и DNS-резолвера
На сервере интерфейс настраивается статически: адрес и маска — в ipv4address, шлюз по умолчанию —
в
ipv4route. DNS-резолвер указывает на внутренний DNS-сервер сети с нужным доменным суффиксом, после
чего
сетевая служба перезапускается.
cd /etc/net/ifaces/ cat << 'EOF' > /etc/net/ifaces/ens19/options BOOTPROTO=static TYPE=eth CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPv4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no EOF echo 192.168.0.2/28 > ens19/ipv4address echo default via 192.168.0.1 > ens19/ipv4route cat << EOF > ens19/resolv.conf nameserver 192.168.100.2 search au-team.irpo domain au-team.irpo EOF systemctl restart network
III. Настройка безопасного SSH-доступа (пароль - P@ssw0rd)
Базовое усиление SSH: создаётся отдельный пользователь для входа вместо root и получает права sudo. В
sshd_config меняется порт (снижает фоновый перебор), ограничивается число попыток входа
(MaxAuthTries), задаётся список разрешённых пользователей (AllowUsers) и
баннер-предупреждение. После правок служба sshd перезапускается.
useradd sshuser -m -u 2026 echo "ssh_user:P@ssw0rd" | chpasswd
gpasswd -a sshuser wheel echo 'sshuser ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers cat << EOF >> /etc/openssh/sshd_config port 2026 MaxAuthTries 2 AllowUsers sshuser Banner /etc/openssh/banner EOF cat << EOF > /etc/openssh/banner ................................ ... Authorized access only ... ................................ EOF systemctl restart sshd
Диагностика и проверка конфигурации
Блок 0. Сквозной smoke-тест и MTU
Базовая проверка доступности узлов от самой дальней точки (br-srv) до целевых серверов строго по IP. Тест MTU с флагом -M do ловит «чёрные дыры» фрагментации: когда ICMP-пинг проходит, а TCP-сессии (SSH, SCP, HTTP) зависают из-за некорректного MTU в GRE-туннеле.
# Последовательный пинг от br-srv (самая дальняя точка): ping -c2 192.168.0.1 # свой шлюз (br-rtr LAN) ping -c2 192.168.10.1 # дальний конец туннеля (hq-rtr) ping -c2 192.168.100.1 # шлюз серверной VLAN на HQ ping -c2 192.168.100.2 # hq-srv — цель # Проверка MTU через туннель: ping -M do -s 1448 -c2 192.168.100.2 # 1448+28=1476 — ДОЛЖНО пройти ping -M do -s 1500 -c2 192.168.100.2 # ДОЛЖНО НЕ пройти (Frag needed)
Блок 1. Граничный маршрутизатор (ISP) — NAT и форвардинг
Проверка адресов на внешних интерфейсах, работы трансляции адресов (MASQUERADE) и того, что пересылка пакетов (ip_forward) включена как в рантайме, так и в конфигурации для сохранения после перезагрузки.
ip -br a # ens19 — адрес от DHCP; ens20 .1.1/28; ens21 .2.1/28; все UP iptables -t nat -nvL POSTROUTING # MASQUERADE на out ens19, счётчики растут cat /proc/sys/net/ipv4/ip_forward # 1 (в рантайме) grep ip_forward /etc/net/sysctl.conf # = 1, без # (постоянность!)
Блок 2. Маршрутизатор площадки A (hq-rtr) — VLAN
Проверка состояния VLAN-интерфейсов
cat /etc/net/ifaces/ens20.100/options cat /etc/net/ifaces/ens20.100/ipv4address cat /etc/net/ifaces/ens20.200/options cat /etc/net/ifaces/ens20.200/ipv4address cat /etc/net/ifaces/ens20.999/options cat /etc/net/ifaces/ens20.999/ipv4address
Блок 3. Маршрутизатор площадки B (br-rtr) — GRE и OSPF
Проверка маршрутизатора филиала: параметры GRE-туннеля, состояние OSPF и наличие маршрутов до всех серверных VLAN площадки A. Также проверяется, что транспортная сеть туннеля не попала в OSPF.
cat etc/net/ifaces/gre10/options cat etc/net/ifaces/gre10/ipv4address vtysh -c "show ip route ospf"
Блок 4. DHCP-сервер (hq-rtr, VLAN 200)
Контроль работы DHCP-сервера для клиентской подсети. Перед перезапуском или при ошибках обязательно проверяется синтаксис конфигурационного файла.
dhcpd -t # Проверка синтаксиса dhcpd.conf (должно быть тихо) systemctl status dhcpd # active (running) grep DHCPDARGS /etc/sysconfig/dhcpd # DHCPDARGS=ens20.200 (привязка к VLAN!) journalctl -u dhcpd --no-pager -n 30 # DHCPDISCOVER/OFFER/ACK при запросах
Блок 5. DNS-сервер (hq-srv) — dnsmasq
Проверка работы dnsmasq: валидация синтаксиса конфига, статус службы, отсутствие конфликтов на 53 порту, корректное разрешение внутренних имён и успешный форвардинг внешних запросов.
dnsmasq --test # Проверка синтаксиса dnsmasq.conf systemctl status dnsmasq # active (running) systemctl is-active dnsmasq # active ss -tulpn | grep :53 # dnsmasq слушает 53 (udp и tcp) # Прямые записи домена: nslookup hq-rtr.au-team.irpo 127.0.0.1 # 192.168.100.1 nslookup br-srv.au-team.irpo 127.0.0.1 # 192.168.0.2 nslookup hq-cli.au-team.irpo 127.0.0.1 # 192.168.200.2 # Форвардинг наружу: nslookup ya.ru 127.0.0.1 # пересылка на 77.88.8.8 работает
Блок 6. SSH и безопасность (Hardening)
Аудит конфигурации SSH-демона: смена стандартного порта, ограничение попыток авторизации, явное разрешение пользователей. Перед применением изменений или при падении службы проверяется синтаксис sshd_config.
sshd -t # Проверка синтаксиса sshd_config (ошибок быть не должно) grep -E "^port|MaxAuthTries|AllowUsers|Banner" /etc/openssh/sshd_config # Ожидаемо: port 2026 / MaxAuthTries 2 / AllowUsers sshuser / Banner /etc/openssh/banner systemctl status sshd # active ss -tlpn | grep 2026 # слушает 2026 # Тест входа с клиента: ssh -p 2026 sshuser@192.168.100.2 # должен показать баннер и пустить
Блок 7. Сквозные «грабли» и постоянность настроек
Проверка параметров, которые часто ломаются после перезагрузки или вызывают асимметричные сбои: MSS-клампинг для TCP через туннель, сохранение правил iptables и привязка resolv.conf к конкретному интерфейсу.
# MSS-клампинг (ловит "зависание" TCP при работающем пинге) iptables -t mangle -nvL FORWARD | grep TCPMSS # Проверка синтаксиса сохранённых правил iptables (перед загрузкой/рестартом) iptables-restore --test < /etc/sysconfig/iptables # Постоянность форвардинга на всех роутерах grep ip_forward /etc/net/sysctl.conf # = 1, без # # Постоянность resolv.conf на роутерах (защита от затирания etcnet) ls /etc/net/ifaces/ens19/resolv.conf # должен существовать # Reverse Path Filtering sysctl net.ipv4.conf.all.rp_filter # 0 или 2 — ок; 1 (strict) может резать асимметрию
ОСНОВНЫЕ ПАРАМЕТРЫ
доменное имя - linux-skills.irpo сеть hq-rtr - 172.20.1.0/28 сеть br-rtr - 172.20.2.0/28 в сторону hq-srv (vlan 110) 192.168.110.0/26 в сторону hq-cli (vlan 120) 192.168.120.0/24 в сторону просто vlan (vlan 888) 192.168.88.0/28 в сторону br-srv 192.168.0.0/27 пользователь rtr - net_mgr пароль rtr - Mgr@P@ss88 пользователь ssh - srv_user uid пользователя ssh - 2200 пароль ssh - Srv@P@ss456 порт ssh - 2030