Configurare ApexGuard sul firmware AsusWRT-Merlin
1. Prerequisiti
- Router Asus con firmware AsusWRT-Merlin (es. versione 384.19 o superiore).
- Accesso SSH/riga di comando abilitato sul router.
- Nella GUI web di Merlin:
- Vai su Amministrazione → Sistema.
- Abilita SSH e imposta le credenziali.
- Nella GUI web di Merlin:
- Credenziali IKEv2 ApexGuard (indirizzo server, chiave precondivisa, credenziali utente o certificati).
- Entware installato sul tuo router (per installare strongSwan).
Se non hai ancora installato Entware, consulta il wiki Entware per AsusWRT-Merlin per le istruzioni.
2. Installa strongSwan con Entware
Accedi via SSH al router con un’app terminale (PuTTY, Terminal, ecc.):
ssh admin@192.168.1.1
- Sostituisci
admine192.168.1.1con nome utente/IP reali se diversi.
Aggiorna i pacchetti Entware:
opkg update
Installa strongSwan:
opkg install strongswan
- Installa i binari IKEv2/IPsec principali di strongSwan.
(Facoltativo) Installa plugin aggiuntivi se richiesti da ApexGuard (es. strongswan-mod-eap-mschapv2, strongswan-mod-eap-tls, o altri):
opkg install strongswan-mod-eap-mschapv2
opkg install strongswan-mod-eap-identity
...
3. Raccogli i dettagli IKEv2 di ApexGuard
- Accedi al tuo account ApexGuard.
- Vai su Impostazioni avanzate → Configura ApexGuard manualmente → Credenziali del servizio / credenziali IPsec.
- Annota:
- Indirizzo server (es.
ikev2.apexguard.como IP). - Chiave precondivisa (PSK) se usi IKEv2 con PSK.
- Nome utente/Password (con EAP).
- File dei certificati (con certificati).
- Indirizzo server (es.
Per questo esempio, supponiamo:
- Server:
ikev2.apexguard.com - PSK:
YOUR_PSK_HERE - Nome utente locale (se si usa EAP):
YOUR_USER_HERE - Mostreremo un esempio base con PSK.
4. Crea/Modifica la configurazione di strongSwan
La configurazione principale di strongSwan si trova in /opt/etc/strongswan.conf e /opt/etc/ipsec.conf (e talvolta /opt/etc/ipsec.secrets). Di seguito un esempio minimo per uno scenario “road warrior” basato su PSK. Adatta in base alle proposte fase 1/fase 2 consigliate da ApexGuard.
4.1 strongswan.conf
Crea o modifica il file /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
}
}
}
Configurazione base: indica a charon (demone IKE) di caricare i moduli e configura un file di log.
4.2 ipsec.conf
Crea o modifica il file /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!eesp = aes256-sha512!sono esempi. Usa i cifrari consigliati da ApexGuard.auto=addsignifica che aggiungiamo solo la connessione e la attiviamo manualmente o tramiteipsec up apexguard-ikev2. Oppure usaauto=startse vuoi che il tunnel si avvii automaticamente all’avvio.
4.3 ipsec.secrets
Crea o modifica /opt/etc/ipsec.secrets per salvare la chiave PSK:
# /opt/etc/ipsec.secrets
: PSK "YOUR_PSK_HERE"
Se hai bisogno di un’identità diversa o credenziali utente basate su EAP, la sintassi cambia. Ad esempio:
YOUR_USER_HERE : EAP "YOUR_PASSWORD_HERE"
: PSK "YOUR_PSK_HERE"
5. Avvia e abilita strongSwan all’avvio
Avvia strongSwan a mano:
ipsec start
Verifica la config
ipsec up apexguard-ikev2
- Se tutto è corretto, dovresti vedere messaggi di negoziazione che si concludono con qualcosa come
connection 'apexguard-ikev2' established successfully. - Altrimenti, vedi
/opt/var/log/strongswan.logper errori.
Crea o modifica /jffs/scripts/post-mount (se non esiste, crealo con chmod +x /jffs/scripts/post-mount):
#!/bin/sh
if [ -x /opt/sbin/ipsec ]; then
ipsec start
fi
- In alternativa, aggiungi comandi a
/jffs/scripts/services-starto a uno script di avvio simile. L’importante è assicurarsi che Entware sia montato prima di avviare strongSwan.
6. Configura routing policy o NAT (opzionale)
6.1 Policy routing
Se vuoi che tutti i dispositivi LAN instradino il traffico nel tunnel IKEv2, puoi configurare il routing basato su policy o aggiungere rotte a mano. Ad esempio, in Merlin:
- Vai su LAN → Route (oppure Firewall → Routing rules per routing policy).
- Aggiungi rotte statiche o regole per instradare la sottorete LAN nell’interfaccia tunnel IPsec.
Tuttavia, strongSwan installa le rotte per impostazione predefinita se usi leftsourceip=%config e install_routes=yes (in strongswan.conf). Potrebbe servire anche una regola NAT se il server ApexGuard richiede traffico NAT.
6.2 NAT per il router
Crea o modifica /jffs/scripts/firewall-start:
#!/bin/sh
iptables -t nat -A POSTROUTING -o ipsec0 -j MASQUERADE
- Sostituisci
ipsec0con l’interfaccia usata da strongSwan (a volteip_vti0,vti1, ecc., secondo la configurazione).
Rendilo eseguibile:
chmod +x /jffs/scripts/firewall-start
Usa i log (ipsec statusall) o ip a per vedere il nome dell’interfaccia IPsec.
7. (Opzionale) Certificati/EAP per autenticare IKEv2
- Carica la tua CA, il certificato client e la chiave in
/opt/etc/ipsec.d/(ad es.cacerts/,certs/,private/).
Modifica /opt/etc/ipsec.conf:
ini
leftauth=pubkey
leftcert=clientCert.pem
leftfirewall=yes
rightauth=pubkey
...
- Modifica
/opt/etc/ipsec.secretsper la chiave privata se è protetta da passphrase.
Installa i moduli EAP:
opkg install strongswan-mod-eap-mschapv2
opkg install strongswan-mod-eap-identity
In ipsec.conf:
ini
leftauth=eap-mschapv2
leftid=YOUR_USER_HERE
rightauth=psk # or rightauth=eap, depending on apexguard requirements
In ipsec.secrets:
ini
YOUR_USER_HERE : EAP "YOUR_PASSWORD_HERE"
: PSK "YOUR_PSK_HERE"
8. Verifica il tunnel
Verifica lo stato:
ipsec status
ipsec statusall
- Dovresti vedere la connessione
apexguard-ikev2come “ESTABLISHED” o “INSTALLED”. - Verifica il traffico:
- Da un dispositivo LAN, visita un sito sul tuo IP o la dashboard ApexGuard e verifica che l’IP pubblico sia della VPN.
- Se compare solo l’IP del provider, può servire routing policy, NAT o controllare che il tunnel sia attivo.
9. Opzionale: Kill Switch e fail-safe
A differenza del Kill Switch OpenVPN di Merlin, per IPsec devi crearlo manualmente con uno script:
- Aggiungi regole iptables in
firewall-startper bloccare il traffico in uscita seipsec0non è attiva.
Ad esempio:
#!/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
- Adatta interfacce, sottoreti e ordine delle chain se necessario.
Questo articolo ti è stato utile?
Grazie, ci aiuti a migliorare!