Ciao gente,
finalmente il mio primo contributo.
Questa guida consente di creare un tunnel IPSEC con racoon su AGTOT (789v2) con firmware vecchiotti, tipo iiNET 16.3 e compagnia andando.
Il bello e' che non richiede di installare praticamente niente sullo scolapasta, perche' racoon e' gia' a bordo.
Mi sono preso la liberta' di usare il led WPS verde per segnalare che la VPN e' su o e' andata giu'.
Ingredienti- Un'istanza AWS EC2 anche minuscola come t3.nano, nella regione in cui volete la vostra VPN (per es. Irlanda, Londra o Virginia)
- Un AGTOT con accesso di root
Preparazione lato AWS- installiamo "racoon" (su ubuntu sudo apt update && sudo apt install racoon)
- creiamo /etc/racoon/psk.txt come
(IP pubblico agtot) chiave PSK
p.es.
44.83.12.332 RSDCXAIBAAKBgQCdxS4mROJWZWYtESjctHwu7PshlFuEBmRtm6hUNY0FgHZ1eYE0YP/xkRL7rAJG7be9Qx8kYVMwAbvzphQUrU2ZGAyw9pI(ecc)
- creiamo un file /etc/addspd e renderlo eseguibile con chmod a+x /etc/addspd
#!/bin/bash
remip=(ip pubbl agtot) # p.es. 44.83.12.332
wanip=(ip istanza ec2) # p.es. 172.16.24.115
rcidr=(cidr privato agtot)/24 # p.es. 192.168.1.0/24
lcidr=(cidr ip ec2)/24 # p.es. 172.16.24.0/24
echo "
flush;
spdflush;
spdadd $rcidr $lcidr any -P in ipsec esp/tunnel/$remip-$wanip/require;
spdadd $lcidr $rcidr any -P out ipsec esp/tunnel/$wanip-$remip/require;
" | setkey -c
- creiamo /etc/racoon/racoon.conf
path pre_shared_key "/etc/racoon/psk.txt";
listen
{
isakmp (ip_ec2) [500]; # cambiare con ip della scheda di rete sull'istanza EC2
isakmp_natt (ip_ec2) [4500]; # idem
adminsock disabled;
}
remote (ip_agtot) { # cambiare con ip pubblico dello scolapasta
exchange_mode main,aggressive;
#nat_traversal force;
proposal {
encryption_algorithm aes 256;
hash_algorithm md5;
authentication_method pre_shared_key;
dh_group 1;
}
}
sainfo address (cidr_amazon/24) any address (cidr_lan_scolapasta/24) any {
pfs_group 2;
lifetime time 24 hour;
encryption_algorithm aes 256;
authentication_algorithm hmac_md5;
compression_algorithm deflate;
}
- lanciamo update-rc.d racoon defaults per far avviare il servizio in automatico al reboot
- avviamo il servizio con service racoon start
Preparazione lato AGTOT- creiamo il file /etc/racoon/psk.txt (stessa chiave, cambiare IP con IP pubblico della EC2 << occhio che non e' l'IP della scheda di rete interna, amazon natta le ENI di default! consiglio di assegnare un ip elastico e usare quello)
- creiamo /etc/racoon/lighton e chmod a+x /etc/racoon/lighton
#!/bin/sh
wanip="(ip pubbl agtot)"
remip="(ip elastico ec2)"
lcidr="(cidr_lan_agtot)/24"
rcidr="(cidr_lan_ec2)/24"
if [ "$1" == "phase1_up" ];
then
echo 255 > /sys/class/leds/wps:green/brightness
echo "
flush;
spdflush;
spdadd $rcidr $lcidr any -P in ipsec esp/tunnel/$remip-$wanip/require;
spdadd $lcidr $rcidr any -P out ipsec esp/tunnel/$wanip-$remip/require;
" | setkey -c
else
echo 0 > /sys/class/leds/wps:green/brightness
fi
- creiamo /etc/racoon/racoon.conf, poi fare ln -s /etc/racoon/racoon.conf /etc/racoon.conf
path pre_shared_key "/etc/racoon/psk.txt";
listen {
isakmp (ip_pub_agtot) [500];
isakmp_natt (ip_pub_agtot) [4500];
adminsock disabled;
}
remote (ip_elastico_ec2) {
exchange_mode main,aggressive;
# nat_traversal force;
proposal {
encryption_algorithm aes 256;
hash_algorithm md5;
authentication_method pre_shared_key;
dh_group 1;
}
script "/etc/racoon/lighton" phase1_up;
script "/etc/racoon/lighton" phase1_down;
script "/etc/racoon/lighton" phase1_dead;
}
sainfo address (cidr_lan_agtot)/24 any address (cidr_lan_ec2)/24 any {
pfs_group 2;
lifetime time 24 hour;
encryption_algorithm aes 256;
authentication_algorithm hmac_md5;
compression_algorithm deflate;
}
- facciamo partire il servizio con /etc/init.d/racoon start
- (opzionale) facciamo si' che riparta a ogni reboot con /etc/init.d/racoon enable
E ora godiamoci il nostro sospirato tunnel bidirezionale