Estou tentando configurar o strongswan como um servidor VPN IKEv2 atrás do meu NAT. A topologia de rede parece o seguinte:
O servidor VPN (10.0.0.1) está atrás de um NAT (Gateway padrão 10.0.0.138) que encaminha a porta UDP 4500 e a porta 500 para o servidor VPN. O servidor VPN executa o Fedora 28 com o SELinux configurado como permissivo.
Eu instalei o StrongSwan com os plugins DHCP e FARP habilitados. Meus guerreiros da estrada são capazes de se conectar ao meu servidor VPN, autenticar contra ele e até obter um endereço IP (estou tentando do meu iPhone).
Por alguma razão, não consigo acessar nenhum dispositivo de rede local do meu guerreiro de trabalho. Além disso, quando eu tento pingar o iPhone do meu laptop local, posso ver no servidor VPN via tcpdump que uma solicitação ARP é enviada, mas também posso ver no Wireshark no meu laptop que nenhuma resposta é enviada. Então, meu palpite é que o plugin FARP não está funcionando corretamente.
Eu habilitei o encaminhamento de ip no servidor VPN. Existem outras etapas necessárias para ativar e obter o funcionamento da FARP? Qualquer sugestão seria muito apreciada!
Btw. aqui está o meu arquivo IPSec.conf:
config setup
charondebug="ike 1, knl 1, cfg 0"
uniqueids=no
conn ikev2-vpn
auto=add
compress=no
# type=tunnel
keyexchange=ikev2
fragmentation=yes
forceencaps=yes
rekey=no
left=%any
leftid=@server.somename.com
leftcert=server-cert.pem
leftsendcert=always
leftsubnet=0.0.0.0/24
right=%any
rightid=%any
rightauth=eap-mschapv2
rightsourceip=%dhcp
rightsubnet=10.0.0.0/24
rightdns=10.0.0.1,8.8.8.8,8.8.4.4
rightsendcert=never
eap_identity=%identity
ike=aes256-sha1-modp1024,aes128-sha1-modp1024,3des-sha1-modp1024!
esp=aes256-sha256,aes256-sha1,3des-sha1!
# Dead peer detection. For MOBIKE, let high delay
dpdaction=clear
dpddelay=300s
leftfirewall=yes
E aqui está a saída de ipsec statusall
Status of IKE charon daemon (strongSwan 5.6.3, Linux 4.17.14-202.fc28.x86_64, x86_64):
uptime: 25 minutes, since Aug 29 10:24:12 2018
malloc: sbrk 2695168, mmap 0, used 835536, free 1859632
worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 4
loaded plugins: charon pkcs11 aes des rc2 sha2 sha1 md5 mgf1 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl gcrypt fips-prf gmp curve25519 agent xcbc cmac hmac attr kernel-netlink resolve socket-default farp stroke vici updown eap-identity eap-md5 eap-mschapv2 eap-tls eap-ttls xauth-generic dhcp addrblock counters
Listening IP addresses:
10.0.0.1
172.18.0.1
172.17.0.1
Connections:
ikev2-vpn: %any...%any IKEv2, dpddelay=300s
ikev2-vpn: local: [server.somename.com] uses public key authentication
ikev2-vpn: cert: "CN=server.somename.com"
ikev2-vpn: remote: uses EAP_MSCHAPV2 authentication with EAP identity '%any'
ikev2-vpn: child: 0.0.0.0/24 === 10.0.0.0/24 TUNNEL, dpdaction=clear
Security Associations (1 up, 0 connecting):
ikev2-vpn[4]: ESTABLISHED 12 seconds ago, 10.0.0.1[server.somename.com]...213.147.166.1[user]
ikev2-vpn[4]: IKEv2 SPIs: 3cdf025026a86a29_i a2f389a38a5326d4_r*, rekeying disabled
ikev2-vpn[4]: IKE proposal: AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
ikev2-vpn{4}: INSTALLED, TUNNEL, reqid 2, ESP in UDP SPIs: cdb9b943_i 083b3ef7_o
ikev2-vpn{4}: AES_CBC_256/HMAC_SHA2_256_128, 0 bytes_i, 0 bytes_o, rekeying disabled
ikev2-vpn{4}: 0.0.0.0/24 === 10.0.0.0/24