Налаштування ApexGuard на прошивці AsusWRT-Merlin
1. Потрібні умови
- Маршрутизатор Asus з AsusWRT-Merlin (напр., версії 384.19 або новішої).
- SSH/командний доступ увімкнено на маршрутизаторі.
- У Merlin GUI:
- Перейдіть у Administration → System.
- Увімкніть SSH і задайте дані входу.
- У Merlin GUI:
- Облікові дані IKEv2 ApexGuard (адреса сервера, спільний ключ, облікові дані користувача або сертифікати)
- Entware на маршрутизаторі (для встановлення strongSwan).
Якщо ви ще не встановили Entware, зверніться до вікі Entware для AsusWRT-Merlin для отримання інструкцій
2. Встановіть strongSwan з Entware
Підключіться до роутера через SSH у терміналі (PuTTY тощо):
ssh admin@192.168.1.1
- Замініть
adminі192.168.1.1на свої ім’я/IP, якщо вони змінені.
Оновіть список пакетів Entware:
opkg update
Встановіть strongSwan
opkg install strongswan
- Це встановить основні файли strongSwan IKEv2/IPsec.
(Необов’язково) Встановіть додаткові плагіни, якщо їх вимагає ApexGuard (наприклад, strongswan-mod-eap-mschapv2, strongswan-mod-eap-tls або інші):
opkg install strongswan-mod-eap-mschapv2
opkg install strongswan-mod-eap-identity
...
3. Зберіть свої дані IKEv2 ApexGuard
- Увійдіть у свій акаунт ApexGuard.
- Перейдіть до Advanced Settings → Set up ApexGuard manually → Service Credentials / IPsec credentials.
- Занотуйте:
- Адреса сервера (наприклад,
ikev2.apexguard.comабо IP). - Спільний ключ (PSK), якщо використовується PSK-IKEv2.
- Логін/пароль (якщо EAP).
- Сертифікати (якщо потрібні).
- Адреса сервера (наприклад,
Для цього прикладу припустимо:
- Сервер:
ikev2.apexguard.com - PSK:
YOUR_PSK_HERE - Локальне ім’я користувача для EAP:
YOUR_USER_HERE - Ми покажемо базовий приклад із PSK.
4. Створіть/змініть конфігурацію strongSwan
Основна конфігурація strongSwan знаходиться в /opt/etc/strongswan.conf та /opt/etc/ipsec.conf (а іноді і в /opt/etc/ipsec.secrets). Нижче наведено мінімальний приклад для сценарію «road warrior» на основі PSK. Скоригуйте відповідно до рекомендованих ApexGuard пропозицій для фаз 1 і 2.
4.1 strongswan.conf
Створіть або змініть файл /opt/etc/strongswan.conf:
# /opt/etc/strongswan.conf
charon {
# Plugins you need, e.g. for kernel-netlink, stroke
load_modular = yes
install_routes = no
# Logging, optional
filelog {
/opt/var/log/strongswan.log {
time_format = %b %e %T
append = no
default = 1
flush_line = yes
}
}
}
Це базова конфігурація, яка вказує charon (демону IKE) завантажувати модулі та налаштовує файл журналу.
4.2 ipsec.conf
Створіть або змініть файл /opt/etc/ipsec.conf:
# /opt/etc/ipsec.conf
config setup
uniqueids = never
conn apexguard-ikev2
# IKE settings
keyexchange = ikev2
ike = aes256-sha512-modp2048!
esp = aes256-sha512!
# Adjust proposals as needed
# Remote server
left=%defaultroute
leftid=%any
leftauth=psk
leftsourceip=%config # Request an internal IP if supported
# Right side: ApexGuard server
right=ikev2.apexguard.com
rightauth=psk
rightsubnet=0.0.0.0/0 # If you want to route all traffic
auto=add
Увага
ike = aes256-sha512-modp2048!іesp = aes256-sha512!є прикладами. Використовуйте шифри, які рекомендує ApexGuard.auto=addлише додає з’єднання; запускайте його вручну або черезipsec up apexguard-ikev2. Використовуйтеauto=start, щоб тунель запускався автоматично під час завантаження.
4.3 ipsec.secrets
Створіть або змініть /opt/etc/ipsec.secrets для спільного ключа:
# /opt/etc/ipsec.secrets
: PSK "YOUR_PSK_HERE"
Якщо потрібна інша ідентичність або EAP-дані користувача, синтаксис зміниться. Наприклад:
YOUR_USER_HERE : EAP "YOUR_PASSWORD_HERE"
: PSK "YOUR_PSK_HERE"
5. Запуск та автозапуск strongSwan.
Запустіть strongSwan вручну:
ipsec start
Перевірте конфіг:
ipsec up apexguard-ikev2
- Якщо все правильно, ви побачите повідомлення про узгодження, що завершуються чимось на зразок
connection 'apexguard-ikev2' established successfully. - Якщо ні, перевірте
/opt/var/log/strongswan.logна помилки.
Створіть або відредагуйте /jffs/scripts/post-mount (якщо файл не існує, створіть його з chmod +x /jffs/scripts/post-mount):
#!/bin/sh
if [ -x /opt/sbin/ipsec ]; then
ipsec start
fi
- Альтернативно, додайте команди до
/jffs/scripts/services-startабо подібного скрипту запуску. Головне — переконатися, що Entware монтується перед запуском strongSwan.
6. Маршрутизація або NAT (необов’язково).
6.1 Маршрутизація
Якщо усі LAN-пристрої мають іти через IKEv2-тунель, налаштуйте маршрутизацію за політиками або додайте маршрути вручну. Наприклад, у GUI Merlin:
- LAN → Route (або Firewall → Routing rules для правил політик PBR).
- Додайте статичні маршрути або правила LAN-підмережі для трафіку через інтерфейс IPsec-тунелю.
Однак strongSwan за замовчуванням «встановлює маршрути», якщо використовуються leftsourceip=%config та install_routes=yes (у strongswan.conf). Вам також може знадобитися правило NAT, якщо сервер ApexGuard очікує NAT-трафік.
6.2 NAT на роутері.
Створіть/змініть /jffs/scripts/firewall-start:
#!/bin/sh
iptables -t nat -A POSTROUTING -o ipsec0 -j MASQUERADE
- Замініть
ipsec0на фактичну назву інтерфейсу, який використовує strongSwan (інодіip_vti0,vti1тощо, залежно від налаштувань).
Зробіть виконуваним:
chmod +x /jffs/scripts/firewall-start
Перевірте ipsec statusall або ip a, щоб дізнатися назву IPsec-інтерфейсу.
7. Сертифікати або EAP для IKEv2 (необов’язково)
- Завантажте ваш CA, сертифікат клієнта та ключ до
/opt/etc/ipsec.d/(наприклад,cacerts/,certs/,private/).
Змініть /opt/etc/ipsec.conf:
ini
leftauth=pubkey
leftcert=clientCert.pem
leftfirewall=yes
rightauth=pubkey
...
- Змініть
/opt/etc/ipsec.secretsдля приватного ключа, якщо він захищений паролем.
Встановіть модулі EAP:
opkg install strongswan-mod-eap-mschapv2
opkg install strongswan-mod-eap-identity
У ipsec.conf:
ini
leftauth=eap-mschapv2
leftid=YOUR_USER_HERE
rightauth=psk # or rightauth=eap, depending on apexguard requirements
Файл ipsec.secrets:
ini
YOUR_USER_HERE : EAP "YOUR_PASSWORD_HERE"
: PSK "YOUR_PSK_HERE"
8. Перевірте тунель
Перевірте статус:
ipsec status
ipsec statusall
- Має з’явитися з’єднання
apexguard-ikev2зі статусом «ESTABLISHED» або «INSTALLED». - Перевірте трафік:
- З LAN-пристрою відкрийте сайт «what’s my IP» або панель ApexGuard і перевірте, чи публічна IP-адреса відображає VPN-з’єднання.
- Якщо видно IP провайдера, перевірте тунель; може знадобитися маршрутизація за політиками або NAT.
9. Аварійне відключення (за бажанням)
На відміну від OpenVPN у GUI Merlin, для IPsec аварійне відключення треба створити скриптом вручну:
- Додайте правила iptables у
firewall-start, які блокують вихідний трафік, якщо інтерфейсipsec0вимикається
Ось приклад:
#!/bin/sh
# Block all traffic if ipsec0 is NOT available
iptables -I FORWARD -s 192.168.1.0/24 -o $(nvram get wan0_ifname) -j DROP
# Then allow traffic if ipsec0 is up
iptables -I FORWARD -s 192.168.1.0/24 -o ipsec0 -j ACCEPT
- За потреби змініть інтерфейси, підмережі та порядок ланцюжків.
Ця стаття була корисною?
Дякуємо, ви допомагаєте нам ставати кращими!