Eu tentei configurar um servidor raiz na Internet pública com StrongSwan para usá-lo como um servidor VPN. O plano é encapsular todo o tráfego da Internet para alguns dispositivos através deste servidor. Eu também configurei um servidor OpenVPN para o mesmo que funciona bem, mas alguns dispositivos suportam apenas IPSec, então eu preciso disso também, então não há dicas para usar o OpenVPN;) O problema que estou enfrentando é que a comunicação entre cliente e servidor está resultando em um timeout independente sobre qual cliente eu uso. Nos logs do servidor ao tentar se conectar recebo muitas dessas mensagens:
Feb 22 16:05:30 htzsv001 charon: 14[IKE] retransmit 5 of request with message ID 0
Enquanto no cliente eu recebo nada ou erro 0x2027 que se refere ao tempo limite do que eu encontrei na Internet. Usecase principal é conectar um FritzBox Router com a VPN, então deixe-me mostrar essa configuração aqui, embora outras configurações obviamente pareçam diferentes e, como obtenho o problema em todos os dispositivos, presumo que seja um problema mais geral ou com a configuração do servidor.
Configuração do servidor:
# ipsec.conf - strongSwan IPsec configuration file
config setup
conn %default
left=VPN Server fqdn
leftsubnet=0.0.0.0
authby=secret
auto=start
conn avm2swan
ike=aes256-sha-modp1024
esp=aes256-sha1-modp1024
right=DynDNS Of my Home
rightid=DynDNS Of my Home
rightsubnet=192.168.0.0/24
ikelifetime=3600s
keylife=3600s
No FritzBox eu importei a seguinte configuração:
vpncfg {
connections {
enabled = yes;
editable = no;
conn_type = conntype_lan;
name = Server fqdn;
boxuser_id = 0;
always_renew = yes;
reject_not_encrypted = no;
dont_filter_netbios = yes;
localip = 0.0.0.0;
local_virtualip = 0.0.0.0;
remoteip = 0.0.0.0;
remote_virtualip = 0.0.0.0;
remotehostname = Server fqdn;
keepalive_ip = 0.0.0.0;
localid {
fqdn = DynDNS Of my Home;
}
remoteid {
fqdn = Server Hostname;
}
mode = phase1_mode_idp;
phase1ss = "all/all/all";
keytype = connkeytype_pre_shared;
key = "Password set in ipsec.secrets";
cert_do_server_auth = no;
use_nat_t = yes;
use_xauth = no;
use_cfgmode = no;
phase2localid {
ipnet {
ipaddr = 192.168.0.0;
mask = 255.255.255.0;
}
}
phase2remoteid {
ipnet {
ipaddr = Server IP;
mask = 255.255.255.192;
}
}
phase2ss = "esp-all-all/ah-none/comp-all/pfs";
accesslist = "permit ip any 192.168.0.0 255.255.255.0";
}
ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
"udp 0.0.0.0:4500 0.0.0.0:4500";
}
A linha onde eu não tenho certeza é
mask = 255.255.255.192;
Na seção phase2remoteid, acabei de colocar a máscara de rede que ifconfig me dá para a interface no servidor, talvez seja shpuld ser 0.0.0.0? Tudo o mais parece razoável para mim, mas talvez eu tenha algum mal-entendido maior aqui?