Настройка маршрутизации через VipNet: пошаговое руководство для RedOS

4.3/5 - (6 голосов)

При работе над текущим проектом потребовалось реализовать довольно хитрую маршрутизацию для пользователей в сеть, закрытую VipNet-ом. И чтобы не забыть эту эпическую историю, напишу небольшую инструкцию, как это было реализовано. В статье подробно разберём каждый шаг: от установки статического IP до автоматического применения маршрутов.

Что такое VipNet и зачем нужна маршрутизация?

VipNet — это программно-аппаратный комплекс для построения защищённых виртуальных частных сетей (VPN). Он обеспечивает шифрование трафика и контроль доступа. В нашем случае сервер с VipNet выступает шлюзом, через который клиенты из локальной сети (например, 10.88.14.0/24) могут обращаться к ресурсам, находящимся за VipNet (например, сеть 10.14.0.0/16). Для этого на шлюзе настраивается NAT (маскарадинг) и статические маршруты.

Шаг 1. Настройка статического IP-адреса

На этапе установки RedOS (или CentOS) задаём статический адрес для сервера, который будет выступать маршрутизатором в сети VipNet. Это необходимо, чтобы все клиенты знали, куда отправлять пакеты.

Настройка статического IP-адреса для виртуальной машины RedOS 8

Проверяем, что настройки применились корректно (команда ip a или ifconfig).

Адрес и имя узла

Приступаем к базовой установке сервера.

Все готово к установке

Шаг 2. Установка клиента VipNet

Копируем пакет VipNet Linux client для RedOS (архив с RPM).

Устанавливаем клиент:

# rpm -i ./vipnetclient-gui_gost_x86-64_5.1.4-8917.rpm

Запускаем графическую оболочку (например, через меню приложений или командой vipnetclient-gui).

Установка ключа VipNet

Добавляем ключ и вводим пароль ключа. После успешного подключения видим статус «VipNet клиент активен».

VipNet клиент активен

VipNet подключён. Теперь на сервере появился виртуальный интерфейс tun0, через который будет ходить зашифрованный трафик.

Шаг 3. Настройка NAT (маскарадинга)

NAT (Network Address Translation) позволяет скрыть внутренние IP-адреса за одним внешним адресом шлюза. В нашем случае мы будем подменять адреса клиентов (10.88.14.0/24) на адрес интерфейса tun0 при выходе в сеть VipNet.

Сначала определимся с адресацией. Проверим, какие пакеты приходят на физический интерфейс:

# tcpdump -i ens18 -n icmp

Результат (пример):

08:51:13.910753 IP 10.88.14.100 > 10.88.14.106: ICMP echo request, id 1, seq 1, length 64
08:51:13.910802 IP 10.88.14.106 > 10.88.14.100: ICMP echo reply, id 1, seq 1, length 64
08:51:14.910011 IP 10.88.14.100 > 10.88.14.106: ICMP echo request, id 1, seq 2, length 64

Создадим systemd-сервис для автоматического применения правила маскарадинга при загрузке системы. Файл /etc/systemd/system/nat-2-vipnet.service:

[Unit]
Description=NAT network for VipNet
After=network-online.target
Wants=network-online.target

[Service]

Type=oneshot

ExecStart=/usr/sbin/iptables -t nat -A POSTROUTING -s 10.88.14.0/24 -o tun0 -j MASQUERADE

[Install]
WantedBy=multi-user.target

Активируем и запускаем сервис:

# systemctl enable nat-2-vipnet.service
# systemctl start nat-2-vipnet.service

Проверяем правило:

# iptables -L -n -v -t nat

Warning: iptables-legacy tables present, use iptables-legacy to see them

Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target prot opt in out source destination 
 0 0 MASQUERADE 0 -- * tun0 10.88.14.0/24 0.0.0.0/0

Шаг 4. Включение IP-форвардинга

Чтобы сервер мог пересылать пакеты между интерфейсами (ens18 → tun0), необходимо включить маршрутизацию на уровне ядра. Редактируем файл /etc/sysctl.conf:

net.ipv4.ip_forward=1

Применяем настройку (без перезагрузки):

# sysctl -p

Проверяем, что форвардинг активен:

# cat /proc/sys/net/ipv4/ip_forward

Должно вывести 1.

Шаг 5. Тестирование связи через VipNet

С самого сервера (где установлен VipNet) проверяем доступность хоста за VipNet, например, 10.14.115.241:

ping 10.14.115.241

PING 10.14.115.241 (10.14.115.241) 56(84) bytes of data.
 64 bytes from 10.14.115.241: icmp_seq=1 ttl=63 time=69.8 ms
 64 bytes from 10.14.115.241: icmp_seq=2 ttl=63 time=70.1 ms
 ^C
 --- 10.14.115.241 ping statistics ---
 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 69.760/69.907/70.055/0.147 ms

Теперь на любом клиентском сервере в подсети 10.88.14.0/24 пропишем маршрут до целевой сети через наш шлюз (10.88.14.106 — IP шлюза):

# route add -net 10.14.115.0/24 gw 10.88.14.106

Проверяем доступность с клиента:

ping 10.14.115.241

PING 10.14.115.241 (10.14.115.241) 56(84) bytes of data.
 64 bytes from 10.14.115.241: icmp_seq=1 ttl=62 time=70.9 ms
 64 bytes from 10.14.115.241: icmp_seq=2 ttl=62 time=70.4 ms
 64 bytes from 10.14.115.241: icmp_seq=3 ttl=62 time=70.7 ms
 ^C
 --- 10.14.115.241 ping statistics ---
 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 70.414/70.671/70.884/0.194 ms

Шаг 6. Автоматический вход и автозапуск VipNet

Чтобы VipNet запускался при старте системы без ручного ввода пароля, настраиваем автоматический вход в графическую оболочку (MATE). Открываем «Администрирование → Менеджер пользователей Mate» и включаем автоматический вход для нужного пользователя.

Менеджер пользователей Mate

Отключаем хранитель экрана (скринсейвер), чтобы сессия не блокировалась: «Параметры → Хранитель экрана» → отключаем.

Отключение хранителя экрана

Добавляем VipNet в автозапуск: «Параметры → Запуск приложений» → добавляем команду vipnetclient-gui.

Добавление VipNet в автозапуск

Шаг 7. Автоматическое применение статических маршрутов

Создадим скрипт, который будет добавлять маршруты до нужных сетей за VipNet. Файл /usr/local/bin/ext_routes.sh:

!/bin/sh

route add -net 10.14.0.0/16 gw 10.88.14.106

exit 0

Делаем скрипт исполняемым:

# chmod +x /usr/local/bin/ext_routes.sh

Создаём systemd-сервис для автоматического запуска скрипта после поднятия сети. Файл /etc/systemd/system/ext-route.service:

[Unit]
 Description=Ext Routes
 After=network-online.target
 Wants=network-online.target

[Service]

Type=oneshot

ExecStart=/usr/local/bin/ext_routes.sh

[Install]
 WantedBy=multi-user.target

Активируем и запускаем:

# systemctl daemon-reload
# systemctl start ext-route.service
# systemctl enable ext-route.service

Шаг 8. Дополнительно: маршруты для SoftEther VPN

Если вы используете SoftEther VPN, статические маршруты можно добавить через его графический интерфейс.

Добавляем статические маршруты для SoftEther VPN

Мы настроили полноценный шлюз для доступа к защищённой сети VipNet. Теперь клиенты из локальной сети могут обращаться к ресурсам за VipNet, а все настройки автоматически применяются при загрузке сервера. Данная конфигурация подходит для RedOS, CentOS и других дистрибутивов на базе RPM.

Похожие записи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

В этой статье мы рассмотрим пошаговую настройку кластера Kubernetes на Ubuntu 24.04 с тремя узлами: один мастер (который также может запускать пользовательские поды) и два рабочих узла. Мы настроим PersistentVolume…

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования