Примеры создания VPN-сетей

Примеры создания VPN-сетей

Данная глава содержит практические примеры построения различных типов VPN-сетей с использованием SoftEther VPN.

Типы VPN

Топологии VPN можно разделить на три основных типа:

PC-to-PC VPN (ПК к ПК)

  • Простое соединение между двумя компьютерами
  • Минимальная настройка
  • Подходит для личного использования

Remote Access VPN (Удаленный доступ)

  • Подключение удаленных пользователей к корпоративной сети
  • Центральный VPN сервер
  • Множество клиентских подключений

LAN-to-LAN VPN (Сеть к сети)

  • Соединение географически разделенных сетей
  • Постоянные туннели между офисами
  • Прозрачная связность для всех устройств

Общие концепции и знания

Перед настройкой любого типа VPN необходимо понимать следующие концепции:

IP-адресация в VPN

Виртуальные IP-адреса:

  • Каждому VPN-клиенту назначается виртуальный IP-адрес
  • Виртуальные адреса должны быть из отдельной подсети
  • Рекомендуется использовать частные диапазоны (RFC 1918)

Примеры распределения адресов:

Корпоративная сеть:     192.168.1.0/24
VPN клиенты:           192.168.10.0/24  
Филиал 1:              192.168.20.0/24
Филиал 2:              192.168.30.0/24

DHCP в VPN

SoftEther VPN может предоставлять IP-адреса клиентам через:

  • SecureNAT: встроенный DHCP сервер
  • Локальный мост: использование существующего DHCP сервера
  • Статические адреса: ручное назначение

Маршрутизация

Автоматическая маршрутизация:

  • VPN Client автоматически создает маршруты к виртуальной сети
  • Возможно принудительное направление всего трафика через VPN

Ручная маршрутизация:

# Windows - добавление статического маршрута
route add 192.168.1.0 mask 255.255.255.0 192.168.10.1

# Linux - добавление статического маршрута  
ip route add 192.168.1.0/24 via 192.168.10.1

Создание PC-to-PC VPN

Это простейший тип VPN для соединения двух компьютеров напрямую.

Архитектура

Компьютер A ←→ Интернет ←→ Компьютер B
    (Client)                    (Server)

Шаг 1: Настройка VPN Server (Компьютер B)

# Подключение к серверу
vpncmd localhost /server

# Создание Virtual Hub
HubCreate PCTOPC /PASSWORD:hubpass

# Переключение на созданный Hub
Hub PCTOPC

# Создание пользователя для Компьютера A
UserCreate computerA /REALNAME:"Computer A User"
UserPasswordSet computerA /PASSWORD:pctopcpass

# Включение SecureNAT для автоматической настройки сети
SecureNatEnable

# Настройка DHCP (опционально)
DhcpSet /START:192.168.30.10 /END:192.168.30.200 /MASK:255.255.255.0 /GW:192.168.30.1

Шаг 2: Настройка VPN Client (Компьютер A)

# Подключение к клиенту
vpncmd localhost /client

# Создание виртуального адаптера
NicCreate "PC to PC Connection"

# Создание VPN подключения
AccountCreate "Connect to Computer B" /SERVER:computer-b-ip:443 /HUB:PCTOPC /USERNAME:computerA /NICNAME:"PC to PC Connection"

# Установка пароля
AccountPasswordSet "Connect to Computer B" /PASSWORD:pctopcpass

# Подключение
AccountConnect "Connect to Computer B"

Шаг 3: Проверка подключения

На обоих компьютерах проверьте:

# Windows
ipconfig
ping 192.168.30.1

# Linux  
ip addr show
ping 192.168.30.1

Создание Remote Access VPN (ПК к ЛВС)

Этот тип VPN позволяет удаленным пользователям подключаться к корпоративной сети.

Архитектура

Удаленный сотрудник ←→ Интернет ←→ VPN Server ←→ Корпоративная ЛВС
     (VPN Client)                      (в офисе)        (192.168.1.0/24)

Шаг 1: Настройка VPN Server в офисе

# Подключение к серверу
vpncmd localhost /server

# Создание корпоративного Hub
HubCreate CORPORATE /PASSWORD:corppass

# Переключение на Hub
Hub CORPORATE

# Создание групп пользователей
GroupCreate employees /NOTE:"Regular employees"
GroupCreate management /NOTE:"Management group"

# Настройка политик для сотрудников
GroupPolicySet employees /NAME:MaxConnection /VALUE:3
GroupPolicySet employees /NAME:TimeOut /VALUE:300
GroupPolicySet employees /NAME:MaxUpload /VALUE:1000000
GroupPolicySet employees /NAME:MaxDownload /VALUE:5000000

# Создание пользователей
UserCreate john /GROUP:employees /REALNAME:"John Smith" /NOTE:"Sales Manager"
UserPasswordSet john /PASSWORD:johnpass

UserCreate alice /GROUP:management /REALNAME:"Alice Johnson" /NOTE:"IT Director"  
UserPasswordSet alice /PASSWORD:alicepass

# Создание локального моста с корпоративной сетью
exit
BridgeCreate CORPORATE /DEVICE:"Local Area Connection"

Шаг 2: Настройка клиентов

Клиент John:

vpncmd localhost /client

NicCreate "Company VPN"

AccountCreate "Corporate Access" /SERVER:vpn.company.com:443 /HUB:CORPORATE /USERNAME:john /NICNAME:"Company VPN"

AccountPasswordSet "Corporate Access" /PASSWORD:johnpass

AccountConnect "Corporate Access"

Шаг 3: Расширенная настройка сервера

Настройка списков доступа:

Hub CORPORATE

# Разрешить доступ к файловому серверу только управленцам
AccessAdd /RULENAME:"File Server Access" /PRIORITY:100 /SRC_USERNAME:management /DEST_IP:192.168.1.10 /ACTION:allow

# Заблокировать P2P трафик для всех
AccessAdd /RULENAME:"Block P2P" /PRIORITY:200 /DEST_PORT:6881-6999 /PROTOCOL:TCP /ACTION:deny

Настройка логирования:

# Логирование подключений
LogEnable connection /SWITCH:yes

# Логирование безопасности
LogEnable security /SWITCH:yes

Создание LAN-to-LAN VPN (с использованием моста L2)

Этот тип VPN соединяет две или более локальных сети, создавая единую распределенную сеть на уровне L2.

Архитектура

Офис A (192.168.1.0/24) ←→ VPN Bridge ←→ Интернет ←→ VPN Server ←→ Офис B (192.168.1.0/24)

Сценарий: Соединение главного офиса с филиалом

Главный офис:

  • Сеть: 192.168.1.0/24
  • VPN Server установлен на сервере
  • Локальный мост к корпоративной сети

Филиал:

  • Сеть: 192.168.1.0/24 (та же подсеть!)
  • VPN Bridge для подключения к главному офису
  • Прозрачное расширение корпоративной сети

Шаг 1: Настройка VPN Server (Главный офис)

# Настройка сервера
vpncmd localhost /server

# Создание Hub для соединения с филиалом
HubCreate BRANCH_NETWORK /PASSWORD:branchpass

# Переключение на Hub
Hub BRANCH_NETWORK

# Создание пользователя для VPN Bridge филиала
UserCreate branch_bridge /REALNAME:"Branch Office Bridge" /NOTE:"Автоматическое подключение филиала"
UserPasswordSet branch_bridge /PASSWORD:bridge_secret_2024

# Создание локального моста с корпоративной сетью
exit
BridgeCreate BRANCH_NETWORK /DEVICE:"Local Area Connection"

Шаг 2: Настройка VPN Bridge (Филиал)

# Подключение к Bridge
vpncmd localhost /bridge

# Создание каскадного подключения к главному офису
CascadeCreate "MainOffice" /SERVER:hq.company.com:443 /HUB:BRANCH_NETWORK /USERNAME:branch_bridge

# Установка пароля для каскада
CascadePasswordSet "MainOffice" /PASSWORD:bridge_secret_2024

# Настройка дополнительных параметров
CascadeSet "MainOffice" /KEEPALIVE:yes /USECOMPRESS:yes

# Создание локального моста с сетью филиала
BridgeCreate LocalBranch /DEVICE:"Local Area Connection"

# Подключение каскада
CascadeOnline "MainOffice"

Шаг 3: Проверка связности

После настройки компьютеры в филиале должны иметь прямой доступ к ресурсам главного офиса:

# Из филиала ping к серверу главного офиса
ping 192.168.1.10

# Доступ к общим папкам
\\192.168.1.10\shared

# Работа с корпоративными приложениями
# (без дополнительной настройки)

Создание LAN-to-LAN VPN (с использованием L3 IP-маршрутизации)

Этот подход создает соединение уровня 3 между сетями с разными IP-подсетями.

Архитектура

Офис A (192.168.1.0/24) ←→ VPN Server ←→ Интернет ←→ VPN Server ←→ Офис B (192.168.2.0/24)
                              (Router)                      (Router)

Сценарий: Соединение офисов с разными подсетями

Главный офис:

  • Локальная сеть: 192.168.1.0/24
  • VPN подсеть: 192.168.100.0/24

Филиал:

  • Локальная сеть: 192.168.2.0/24
  • VPN подсеть: 192.168.200.0/24

Шаг 1: Настройка главного офиса

# Настройка VPN Server
vpncmd localhost /server

# Создание Hub для маршрутизации
HubCreate ROUTING /PASSWORD:routepass

Hub ROUTING

# Создание пользователя для филиала
UserCreate branch_router /REALNAME:"Branch Router Connection"
UserPasswordSet branch_router /PASSWORD:router_pass_2024

# Включение SecureNAT для локального офиса
SecureNatEnable

# Настройка DHCP для главного офиса
DhcpSet /START:192.168.100.10 /END:192.168.100.100 /MASK:255.255.255.0 /GW:192.168.100.1

# Настройка виртуального NAT
NatSet /MTU:1500 /LOG:yes

# Создание виртуального L3 коммутатора
exit
Layer3Add L3SW

# Добавление интерфейса к Hub
Layer3IfAdd L3SW /HUB:ROUTING /IP:192.168.100.1 /MASK:255.255.255.0

# Добавление маршрута к сети филиала
Layer3TableAdd L3SW /NETWORK:192.168.2.0 /MASK:255.255.255.0 /GATEWAY:192.168.100.200

Шаг 2: Настройка филиала

# Настройка VPN Server в филиале как клиента
vpncmd localhost /server

# Создание локального Hub
HubCreate LOCAL /PASSWORD:localpass

Hub LOCAL

# Включение SecureNAT для филиала
SecureNatEnable
DhcpSet /START:192.168.200.10 /END:192.168.200.100 /MASK:255.255.255.0 /GW:192.168.200.1

# Создание каскадного подключения к главному офису
exit
Hub ROUTING
CascadeCreate "HeadQuarters" /SERVER:hq.company.com:443 /HUB:ROUTING /USERNAME:branch_router
CascadePasswordSet "HeadQuarters" /PASSWORD:router_pass_2024
CascadeOnline "HeadQuarters"

# Настройка L3 коммутатора для филиала
Layer3Add BRANCH_L3SW
Layer3IfAdd BRANCH_L3SW /HUB:LOCAL /IP:192.168.200.1 /MASK:255.255.255.0
Layer3IfAdd BRANCH_L3SW /HUB:ROUTING /IP:192.168.200.200 /MASK:255.255.255.0

# Добавление маршрута к главному офису
Layer3TableAdd BRANCH_L3SW /NETWORK:192.168.1.0 /MASK:255.255.255.0 /GATEWAY:192.168.100.1

Шаг 3: Настройка маршрутизации на рабочих станциях

Главный офис:

# Добавление маршрута к филиалу
route add 192.168.2.0 mask 255.255.255.0 192.168.100.1

Филиал:

# Добавление маршрута к главному офису
route add 192.168.1.0 mask 255.255.255.0 192.168.200.1

Смешанный VPN: LAN-to-LAN и удаленный доступ

Комплексная конфигурация, объединяющая соединение офисов и удаленных сотрудников.

Архитектура

Удаленные сотрудники ←→ Интернет ←→ VPN Server ←→ Корпоративная сеть
                                      ↕
                                  Филиалы

Настройка многоцелевого сервера

# Создание Hub для корпоративной сети
HubCreate CORPORATE /PASSWORD:corppass

Hub CORPORATE

# Группы пользователей
GroupCreate remote_employees /NOTE:"Удаленные сотрудники"
GroupCreate branch_connections /NOTE:"Подключения филиалов"

# Политики для удаленных сотрудников
GroupPolicySet remote_employees /NAME:MaxConnection /VALUE:2
GroupPolicySet remote_employees /NAME:TimeOut /VALUE:1800
GroupPolicySet remote_employees /NAME:MaxUpload /VALUE:2000000
GroupPolicySet remote_employees /NAME:MaxDownload /VALUE:10000000

# Политики для филиалов (без ограничений)
GroupPolicySet branch_connections /NAME:MaxConnection /VALUE:999
GroupPolicySet branch_connections /NAME:TimeOut /VALUE:0

# Создание пользователей для удаленного доступа
UserCreate john.smith /GROUP:remote_employees /REALNAME:"John Smith - Sales"
UserPasswordSet john.smith /PASSWORD:john_remote_2024

UserCreate mary.jones /GROUP:remote_employees /REALNAME:"Mary Jones - Marketing"
UserPasswordSet mary.jones /PASSWORD:mary_remote_2024

# Создание пользователей для филиалов
UserCreate branch_moscow /GROUP:branch_connections /REALNAME:"Moscow Branch Bridge"
UserPasswordSet branch_moscow /PASSWORD:moscow_bridge_2024

UserCreate branch_spb /GROUP:branch_connections /REALNAME:"SPB Branch Bridge"
UserPasswordSet branch_spb /PASSWORD:spb_bridge_2024

# Настройка доступа
# Разрешить филиалам полный доступ
AccessAdd /RULENAME:"Branch Full Access" /PRIORITY:100 /SRC_GROUP:branch_connections /ACTION:allow

# Ограничить удаленных сотрудников
AccessAdd /RULENAME:"Remote Web Access" /PRIORITY:200 /SRC_GROUP:remote_employees /DEST_PORT:80,443 /ACTION:allow
AccessAdd /RULENAME:"Remote Email Access" /PRIORITY:201 /SRC_GROUP:remote_employees /DEST_IP:192.168.1.20 /DEST_PORT:25,143,993,995 /ACTION:allow
AccessAdd /RULENAME:"Remote File Server" /PRIORITY:202 /SRC_GROUP:remote_employees /DEST_IP:192.168.1.10 /DEST_PORT:445 /ACTION:allow

# Создание локального моста
exit
BridgeCreate CORPORATE /DEVICE:"Local Area Connection"

Создание крупномасштабного сервиса VPN удаленного доступа

Для обслуживания большого количества пользователей используется кластеризация.

Архитектура кластера

Load Balancer ←→ VPN Server 1 (Controller)
                ↕
              VPN Server 2 (Member)
                ↕  
              VPN Server 3 (Member)

Настройка контроллера кластера

# Настройка главного сервера (контроллера)
vpncmd localhost /server

# Включение кластерного режима
ClusterSettingSet /CONTROLLER:yes /PASSWORD:cluster_secret_2024

# Создание Hub для пользователей
HubCreate USERS /PASSWORD:userspass

Hub USERS

# Массовое создание пользователей (пример скрипта)
# for i in {1..1000}; do
#   UserCreate user$i /GROUP:standard_users /REALNAME:"User $i"
#   UserPasswordSet user$i /PASSWORD:defaultpass$i
# done

# Настройка политик для масштабирования
GroupCreate standard_users
GroupPolicySet standard_users /NAME:MaxConnection /VALUE:1
GroupPolicySet standard_users /NAME:TimeOut /VALUE:3600
GroupPolicySet standard_users /NAME:MaxUpload /VALUE:1000000
GroupPolicySet standard_users /NAME:MaxDownload /VALUE:5000000

# Включение SecureNAT с большим пулом адресов
SecureNatEnable
DhcpSet /START:10.0.1.10 /END:10.0.10.254 /MASK:255.255.0.0 /GW:10.0.0.1 /DNS:8.8.8.8 /DNS2:8.8.4.4

Добавление серверов в кластер

# На каждом дополнительном сервере
vpncmd localhost /server

# Подключение к кластеру
ClusterSettingSet /CONTROLLER:no /CONNECTTO:cluster-controller.company.com /PASSWORD:cluster_secret_2024

Мониторинг кластера

# Просмотр состояния кластера
ClusterStatusGet

# Статистика всех серверов
ClusterMemberInfoGet

Создание крупномасштабного сервиса хостинга виртуальных концентраторов

Предоставление изолированных VPN-сервисов для множественных клиентов.

Архитектура мультитенантного сервиса

# Создание отдельных Hub для каждого клиента
HubCreate CLIENT_COMPANY_A /PASSWORD:companyA_admin_pass
HubCreate CLIENT_COMPANY_B /PASSWORD:companyB_admin_pass
HubCreate CLIENT_COMPANY_C /PASSWORD:companyC_admin_pass

# Настройка изоляции между клиентами
Hub CLIENT_COMPANY_A
AccessAdd /RULENAME:"Block Inter-Client" /PRIORITY:1 /SRC_IP:any /DEST_HUB:CLIENT_COMPANY_B /ACTION:deny
AccessAdd /RULENAME:"Block Inter-Client" /PRIORITY:2 /SRC_IP:any /DEST_HUB:CLIENT_COMPANY_C /ACTION:deny

# Аналогично для других клиентов...

# Создание администраторов для каждого клиента
# (клиенты управляют только своими Hub)
AdminCreate companyA_admin /PASSWORD:adminA_pass /HUB:CLIENT_COMPANY_A
AdminCreate companyB_admin /PASSWORD:adminB_pass /HUB:CLIENT_COMPANY_B

Домашний ПК как VPN-ретранслятор для защиты WiFi

Использование домашнего компьютера для создания защищенного VPN-подключения.

Сценарий использования

Защита трафика при использовании публичных WiFi сетей через домашний VPN-сервер.

Настройка домашнего VPN Server

# Простая настройка домашнего сервера
vpncmd localhost /server

HubCreate HOME_VPN /PASSWORD:homepass

Hub HOME_VPN

# Создание пользователя для мобильных устройств
UserCreate mobile_user /REALNAME:"Mobile Devices Access"
UserPasswordSet mobile_user /PASSWORD:home_vpn_2024

# Включение SecureNAT для доступа к интернету
SecureNatEnable
DhcpSet /START:192.168.30.10 /END:192.168.30.100 /MASK:255.255.255.0 /GW:192.168.30.1 /DNS:8.8.8.8

# Настройка проброса портов на роутере для порта 443

Настройка клиента для мобильного устройства

# На ноутбуке/телефоне
AccountCreate "Home VPN" /SERVER:home.dyndns.org:443 /HUB:HOME_VPN /USERNAME:mobile_user /NICNAME:"Home Connection"
AccountPasswordSet "Home VPN" /PASSWORD:home_vpn_2024
AccountConnect "Home VPN"

Использование SecureNAT для удаленного доступа без разрешений

Обход корпоративных ограничений с использованием SecureNAT.

Сценарий

Сотрудник хочет получить доступ к корпоративной сети, но IT-отдел не может настроить специальную маршрутизацию.

Настройка “невидимого” VPN

# Настройка сервера с SecureNAT
HubCreate STEALTH_ACCESS /PASSWORD:stealthpass

Hub STEALTH_ACCESS

UserCreate stealth_user /REALNAME:"Stealth Access User"
UserPasswordSet stealth_user /PASSWORD:stealth_secret_2024

# Включение SecureNAT для полного доступа
SecureNatEnable

# Настройка NAT для доступа к корпоративной сети
# SecureNAT автоматически предоставит доступ ко всем ресурсам,
# доступным серверу

# Настройка тонкого туннелирования только для корпоративного трафика
DhcpSet /START:172.16.1.10 /END:172.16.1.100 /MASK:255.255.255.0 /GW:172.16.1.1 

# Клиент будет получать доступ к корпоративной сети
# через NAT-преобразование сервера