Примеры создания 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/24DHCP в 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-преобразование сервера