Konfiguracja ApexGuard na firmware AsusWRT-Merlin
1. Wymogi wstępne
- Router Asus z firmware’em AsusWRT-Merlin (np. wersja 384.19 lub nowsza).
- Dostęp SSH/CLI włączony na routerze.
- W panelu WWW Merlin:
- Przejdź do Administration → System.
- Włącz SSH i ustaw dane logowania.
- W panelu WWW Merlin:
- Poświadczenia IKEv2 ApexGuard (adres serwera, klucz współdzielony, dane użytkownika lub certyfikaty).
- Entware zainstalowany na routerze (do instalacji strongSwan).
Jeśli Entware nie jest zainstalowane, zobacz wiki Entware dla AsusWRT-Merlin z instrukcjami.
2. Zainstaluj strongSwan z Entware
Połącz się z routerem przez SSH w terminalu (PuTTY, Terminal itp.):
ssh admin@192.168.1.1
- Zamień
admini192.168.1.1na swoją nazwę użytkownika/IP, jeśli są inne.
Odśwież listę pakietów Entware:
opkg update
Instaluj strongSwan:
opkg install strongswan
- Instaluje podstawowe pliki binarne strongSwan IKEv2/IPsec.
(Opcjonalnie) Zainstaluj dodatkowe wtyczki, jeśli wymaga tego ApexGuard (np. strongswan-mod-eap-mschapv2, strongswan-mod-eap-tls lub inne):
opkg install strongswan-mod-eap-mschapv2
opkg install strongswan-mod-eap-identity
...
3. Zbierz szczegóły IKEv2 ApexGuard
- Zaloguj się na konto ApexGuard.
- Przejdź do Ustawienia zaawansowane → Skonfiguruj ApexGuard ręcznie → Poświadczenia usługi / IPsec.
- Zanotuj:
- Adres serwera (np.
ikev2.apexguard.comlub IP). - Klucz współdzielony (PSK), jeśli używasz IKEv2 opartego na PSK.
- Nazwa użytkownika/hasło (dla EAP).
- Pliki certyfikatów (przy certyfikatach).
- Adres serwera (np.
W tym przykładzie przyjmiemy:
- Serwer:
ikev2.apexguard.com - PSK:
YOUR_PSK_HERE - Lokalna nazwa użytkownika (EAP):
YOUR_USER_HERE - Pokażemy prosty przykład oparty na PSK.
4. Utwórz/zmodyfikuj konfigurację strongSwan
Główna konfiguracja strongSwan znajduje się w /opt/etc/strongswan.conf i /opt/etc/ipsec.conf (a czasem w /opt/etc/ipsec.secrets). Poniżej minimalny przykład dla scenariusza „road warrior” opartego na PSK. Dostosuj do zalecanych przez ApexGuard propozycji fazy 1/fazy 2.
4.1 strongswan.conf
Utwórz lub edytuj plik /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
}
}
}
Ta podstawowa konfiguracja każe charonowi (demonowi IKE) ładować moduły i ustawia plik dziennika.
4.2 ipsec.conf
Utwórz lub edytuj plik /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
Nota:
ike = aes256-sha512-modp2048!iesp = aes256-sha512!to przykłady. Użyj szyfrów zalecanych przez ApexGuard.auto=adddodaje tylko połączenie; uruchamiasz je ręcznie lub przezipsec up apexguard-ikev2. Użyjauto=start, jeśli tunel ma startować automatycznie przy starcie systemu.
4.3 ipsec.secrets
Utwórz/edytuj /opt/etc/ipsec.secrets, by zapisać klucz współdzielony:
# /opt/etc/ipsec.secrets
: PSK "YOUR_PSK_HERE"
Jeśli potrzebujesz innej tożsamości lub danych logowania na bazie EAP, składnia się zmienia. Na przykład:
YOUR_USER_HERE : EAP "YOUR_PASSWORD_HERE"
: PSK "YOUR_PSK_HERE"
5. Włącz strongSwan przy starcie systemu
Uruchom strongSwan ręcznie:
ipsec start
Test konfiguracji:
ipsec up apexguard-ikev2
- Jeśli wszystko jest poprawne, powinieneś zobaczyć komunikaty negocjacji zakończone czymś w stylu
connection 'apexguard-ikev2' established successfully. - Jeśli nie, sprawdź błędy w
/opt/var/log/strongswan.log.
Utwórz lub edytuj /jffs/scripts/post-mount (jeśli nie istnieje, utwórz go za pomocą chmod +x /jffs/scripts/post-mount):
#!/bin/sh
if [ -x /opt/sbin/ipsec ]; then
ipsec start
fi
- Alternatywnie, dodaj polecenia do
/jffs/scripts/services-startlub podobnego skryptu startowego. Kluczowe jest, aby Entware było zamontowane przed uruchomieniem strongSwan.
6. Routing oparty na zasadach / NAT (opcjonalnie)
6.1 Routing zasad
Jeśli chcesz, by wszystkie urządzenia LAN kierowały ruch przez tunel IKEv2, możesz ustawić routing oparty na zasadach lub dodać trasy ręcznie. Przykład w GUI Merlina:
- Przejdź do LAN → Route (lub Firewall → Routing rules dla routingu zasad).
- Dodaj trasy statyczne lub zdefiniuj reguły, by podsieć LAN szła przez interfejs tunelu IPsec.
Jednak strongSwan domyślnie „instaluje trasy”, jeśli używane są leftsourceip=%config i install_routes=yes (w strongswan.conf). Może być również potrzebna reguła NAT, jeśli serwer ApexGuard oczekuje ruchu z translacją NAT.
6.2 NAT na routerze
Utwórz lub edytuj /jffs/scripts/firewall-start:
#!/bin/sh
iptables -t nat -A POSTROUTING -o ipsec0 -j MASQUERADE
- Zastąp
ipsec0rzeczywistą nazwą interfejsu używanego przez strongSwan (czasamiip_vti0,vti1itd., w zależności od konfiguracji).
Nadaj wykonywalność:
chmod +x /jffs/scripts/firewall-start
Sprawdź logi (ipsec statusall) lub ip a, by potwierdzić nazwę interfejsu IPsec.
7. Certyfikaty lub EAP do uwierzytelniania IKEv2 (opcja)
- Prześlij swój CA, certyfikat klienta i klucz do
/opt/etc/ipsec.d/(np.cacerts/,certs/,private/).
Edytuj /opt/etc/ipsec.conf:
ini
leftauth=pubkey
leftcert=clientCert.pem
leftfirewall=yes
rightauth=pubkey
...
- Zmodyfikuj
/opt/etc/ipsec.secretsdla klucza prywatnego, jeśli jest chroniony hasłem.
Zainstaluj moduły EAP:
opkg install strongswan-mod-eap-mschapv2
opkg install strongswan-mod-eap-identity
W ipsec.conf:
ini
leftauth=eap-mschapv2
leftid=YOUR_USER_HERE
rightauth=psk # or rightauth=eap, depending on apexguard requirements
W ipsec.secrets:
ini
YOUR_USER_HERE : EAP "YOUR_PASSWORD_HERE"
: PSK "YOUR_PSK_HERE"
8. Zweryfikuj tunel
Sprawdź stan VPN:
ipsec status
ipsec statusall
- Połączenie
apexguard-ikev2powinno mieć status „ESTABLISHED” lub „INSTALLED”. - Przetestuj ruch:
- Na urządzeniu LAN otwórz stronę „jaki mam IP” lub panel ApexGuard i sprawdź, czy publiczny adres IP jest adresem VPN.
- Jeśli widzisz tylko IP dostawcy, może być potrzebny routing zasad, NAT albo sprawdzenie, czy tunel działa.
9. Opcjonalnie: kill switch/fail-safe
GUI Merlina ma wbudowany kill switch dla OpenVPN; dla IPsec musisz utworzyć go skryptem ręcznie:
- Dodaj reguły iptables w
firewall-start, blokujące ruch wychodzący, gdy interfejsipsec0jest nieaktywny.
Na przykład:
#!/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
- Dostosuj wg potrzeb interfejsy, podsieci i kolejność łańcuchów.
Czy ten artykuł był pomocny?
Dziękujemy, dzięki Tobie stajemy się lepsi!