Что настраиваем
В этой части подключаем офисные роутеры к хабу strongSwan и заносим их учётные данные в админку. Все примеры обезличены: Office 1, Office 2, Office 3. Реальные имена объектов, IP и секреты в публичных статьях не используются.
Таблица офисов
| Офис | Name в админке | Remote ID | LAN gateway | LAN subnet |
|---|---|---|---|---|
| Office 1 | office1 | office1-router | 192.168.10.1 | 192.168.10.0/24 |
| Office 2 | office2 | office2-router | 192.168.11.1 | 192.168.11.0/24 |
| Office 3 | office3 | office3-router | 192.168.12.1 | 192.168.12.0/24 |
Что завести в админке
Вкладка Site-to-site → Add site-to-site:
| Поле | Office 1 | Office 2 | Office 3 |
|---|---|---|---|
| Name | office1 | office2 | office3 |
| Remote addr | %any | %any | %any |
| Remote ID | office1-router | office2-router | office3-router |
| LAN | 192.168.10.0/24 | 192.168.11.0/24 | 192.168.12.0/24 |
| PSK | уникальный длинный секрет для каждого офиса | ||
После добавления офисов нажмите Apply config и проверьте reload status. PSK удобен для теста. В продакшене рекомендуется переход на сертификаты X.509.
Общие параметры для всех роутеров
- VPN type: IKEv2 / IPsec Site-to-Site.
- Remote gateway:
203.0.113.10илиvpn.example.com. - Local ID:
office1-routerдля Office 1. - Remote ID / Server ID:
vpn.example.com. - Local subnet: сеть текущего офиса, например
192.168.10.0/24. - Remote subnets: хаб и остальные офисы, например
10.0.0.0/24,192.168.11.0/24,192.168.12.0/24. - Phase 1: AES-256 / SHA-256 / DH14.
- Phase 2: ESP AES-256 / SHA-256 / PFS DH14.
- NAT-T: включить, если офис за NAT.
- DPD/Keepalive: включить авто-переподключение.
Пример conn на хабе для сверки
Минимальный пример помогает понять, какие значения должны совпадать с настройками роутера.
ipsec.conf:
config setup
uniqueids=no
conn office1
keyexchange=ikev2
type=tunnel
left=%any
[email protected]
leftsubnet=10.0.0.0/24,192.168.11.0/24,192.168.12.0/24
right=%any
rightid=@office1-router
rightsubnet=192.168.10.0/24
authby=psk
ike=aes256-sha256-modp2048!
esp=aes256-sha256-modp2048!
dpdaction=restart
auto=addswanctl.conf:
connections {
site-office1 {
version = 2
local_addrs = %any
remote_addrs = %any
proposals = aes256-sha256-modp2048
local { auth = psk; id = "vpn.example.com"; }
remote { auth = psk; id = "office1-router"; }
children {
net {
local_ts = 10.0.0.0/24,192.168.11.0/24,192.168.12.0/24
remote_ts = 192.168.10.0/24
esp_proposals = aes256-sha256-modp2048
start_action = trap
dpd_action = restart
}
}
}
}Keenetic
- Откройте VPN → IPsec/IKEv2 и создайте новое site-to-site подключение.
- Удалённый шлюз:
203.0.113.10. - Локальный идентификатор:
office1-router, тип FQDN/Name. - Удалённый идентификатор:
vpn.example.com, тип FQDN/Name. - Локальная подсеть:
192.168.10.0/24. - Удалённые подсети:
10.0.0.0/24,192.168.11.0/24,192.168.12.0/24. - PSK: тот же, что указан в админке для Office 1.
Проверка соединения
- В интерфейсе Keenetic статус должен быть Connected.
- Проверьте ping из Office 1 в Office 2, например
ping 192.168.11.10.
TP-Link Omada
- VPN → IPsec → Site-to-Site VPN.
- Remote Gateway:
203.0.113.10. - Local ID Type: Name, Local ID:
office1-router. - Remote ID Type: Name, Remote ID:
vpn.example.com. - Local Networks: сеть Office 1.
- Remote Networks: hub-сеть и сети остальных офисов.
- Phase 1/2: AES-256, SHA-256, DH14/PFS DH14.
Проверка соединения
- VPN status должен быть Connected.
- Если tunnel online, но доступа нет, проверьте Gateway ACL, Switch ACL и правила LAN/VPN.
ASUS
На ASUS возможности зависят от прошивки. Если встроенный IPsec-клиент поддерживает site-to-site, используйте те же параметры: gateway, Local ID, Remote ID, local/remote subnets и PSK. Если прошивка ограничена, лучше использовать OpenWRT/ASUSWRT-Merlin или отдельный шлюз.
Проверка соединения
- Проверьте статус IPsec в web-интерфейсе.
- На хабе выполните
swanctl --list-sasи найдитеsite-office1.
OpenWRT
На OpenWRT удобно ставить strongSwan и описывать peer через swanctl. Ниже минимальная логика для Office 1.
opkg update
opkg install strongswan-full strongswan-swanctlconnections {
hub {
version = 2
local_addrs = %any
remote_addrs = 203.0.113.10
proposals = aes256-sha256-modp2048
local { auth = psk; id = "office1-router"; }
remote { auth = psk; id = "vpn.example.com"; }
children {
net {
local_ts = 192.168.10.0/24
remote_ts = 10.0.0.0/24,192.168.11.0/24,192.168.12.0/24
esp_proposals = aes256-sha256-modp2048
start_action = start
}
}
}
}
secrets { ike-hub { id = "vpn.example.com"; secret = "CHANGE_ME_OFFICE1_LONG_RANDOM_PSK"; } }Firewall OpenWRT должен разрешать forwarding между LAN и IPsec. В зависимости от сборки это делается через зону firewall или UCI-правила.
service strongswan restart
logread | grep -E 'charon|ipsec'
swanctl --list-sasПроверка соединения
swanctl --list-sasдолжен показать established IKE SA и installed CHILD SA.logread | grep -E 'charon|ipsec'покажет ID/PSK/proposal ошибки.
Сравнение роутеров
| Роутер | Простота | Гибкость | Рекомендация |
|---|---|---|---|
| Keenetic | Высокая | Средняя | Хорош для небольших офисов, понятный интерфейс |
| TP-Link Omada | Средняя | Средняя | Удобен в сетях с контроллером, внимательно сверять Phase 2 и ACL |
| ASUS | Средняя | Низкая/средняя | Подходит, если прошивка поддерживает полноценный site-to-site |
| OpenWRT | Ниже | Высокая | Лучший вариант для гибкой настройки и диагностики |
Возможные проблемы и отладка
| Ошибка | Причина | Решение |
|---|---|---|
AUTH_FAILED | PSK или ID не совпадает | Сверить Local ID роутера, Remote ID хаба и PSK в админке |
no matching peer config | роутер ожидает другой Server ID | Remote ID на роутере: vpn.example.com |
| Connected, но нет доступа | FORWARD/firewall или ACL | Проверить UFW route на VPS и правила LAN/VPN на роутере |
| Видна только одна сеть | неполные remote subnets | Добавить все сети Office 2/3 и hub-сеть |
| Туннель падает после NAT | NAT-T/DPD выключены | Включить NAT-T и keepalive/DPD |
| Ping есть, web не открывается | firewall конечного устройства | Разрешить доступ с удалённой подсети, проверить gateway устройства |
Команды на хабе
swanctl --list-conns
swanctl --list-sas
tcpdump -ni any udp port 500 or udp port 4500
iptables -L ufw-user-forward -n -v
journalctl -u strongswan --no-pager -n 100Рекомендации
- Используйте уникальный Remote ID и PSK на каждый офис.
- Не смешивайте реальные адреса и тестовые значения в публичной документации.
- После добавления нового офиса применяйте конфиг на хабе и перезапускайте/reconnect туннель на роутерах.
- Сначала добейтесь стабильного ping между LAN, потом проверяйте приложения и web-интерфейсы.