Tento configurar o roteamento do OpenVPN nas minhas máquinas Linux na OCI, mas não funciona

Olá pessoal,

Existe alguma configuração oculta que preciso ativar para garantir que consigo encaminhar o tráfego de/para minha VPN na nuvem Oracle?

Tenho o OpenVPN configurado, e tento estabelecer conectividade VPN de site a site entre as VMs e meu roteador principal. Ativei o encaminhamento de IP no kernel e alterei o skip_source_dest_check para o vNIC. Infelizmente, se tento pingar uma faixa de rede, diferente da minha VPN ou Ethernet local, não consigo.

Qualquer conselho é bem-vindo.

Obrigado.

Para não copiar/colar/converter, por favor, verifique o post original aqui,

https://forums.lawrencesystems.com/t/pfsense-openvpn-site-to-site/15134

Você precisa:

  • ignorar verificação de origem/destino no vnic da caixa VPN
  • rotas em todas as subnets OCI para todas as redes que deseja acessar via VPN apontando para o IP do pfsense
  • rotas do outro lado apontando para o IP do cliente VPN (para site a site)
  • habilitar encaminhamento no cliente (para site a site)
  • liberar firewall no cliente para encaminhamento (para site a site)
  • habilitar encaminhamento na caixa VPN
  • firewall para permitir encaminhamento na caixa VPN entre interface local e VPN
  • lista de segurança na subnet OCI (essas regras se aplicam a todos os vnic na subrede)

Resolução de problemas: Verifique rotas passo a passo em ambas as direções, verifique regras de firewall em ambas as direções.

Isto é válido para qualquer solução VPN que você usar. (comentando sobre o comentário “use wg”).

Tente com Wireguard (VPN) + Algo (script de instalação)

Provavelmente é necessário adicionar uma rota nas outras VMs para a rede VPN via o IP do seu servidor VPN.

ignore a verificação de origem/destino no vnic da caixa VPN

rotas em todas as subnets OCI para todas as redes que deseja acessar via VPN apontando para o IP do pfsense

rotas do lado “outro” apontando para o IP do cliente VPN (para site a site)

habilitar encaminhamento no cliente (para site a site)

permitir firewall no cliente para encaminhamento (para site a site)

habilitar encaminhamento na caixa VPN

firewall para permitir encaminhamento na caixa VPN entre a interface local e a interface VPN

lista de segurança na subrede OCI (essas regras se aplicam a todos os vnics na subrede)

Configurações de ignore src/dst - https://i.postimg.cc/mkXgN38s/vnic-skip-src-dst.png

Rotas em todas as subnets OCI para todos - desculpe, não entendi, o que você quer dizer?
Da perspectiva do pfSense, já mostrei que tenho rotas para as redes 172.16.21.0/24 e 10.0.1.0/24 e consigo alcançá-las.

Na caixa VPN tenho uma rota estática para a rede 192.168.0.0/24, que está configurada para usar o IP VPN do outro lado do túnel (o lado do pfSense)

Este é o IP VPN local:

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 172.16.21.1  netmask 255.255.255.0  destination 172.16.21.1
        inet6 fe80::888c:7a0d:2647:e4f9  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 1046073  bytes 30340178 (30.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1047028  bytes 30404135 (30.4 MB)
        TX erros 0  dropped 0 overruns 0  carrier 0  collisions 0

root@frax1021dckr1110:~#

E esta é a tabela de rotas:

root@frax1021dckr1110:~# route -n
Tabela de roteamento IP do kernel
Destino     Gateway         Máscara de Rede  Flags Métrica Ref Uso Interfaç
0.0.0.0     10.0.1.1        0.0.0.0         UG    100    0        0 ens3
10.0.1.0    0.0.0.0         255.255.255.0   U     100    0        0 ens3
10.0.1.1    0.0.0.0         255.255.255.255 UH    100    0        0 ens3
169.254.169.254 10.0.1.1  255.255.255.255 UGH   100    0        0 ens3
172.16.18.0  0.0.0.0         255.255.255.0   U     0      0        0 br-94eab3bd9603
172.16.21.0  0.0.0.0         255.255.255.0   U     0      0        0 tun0
172.17.0.0  0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.0.0  172.16.21.10  255.255.255.0  UG    0      0        0 tun0
root@frax1021dckr1110:~#

Então, da perspectiva do Linux, o IP 172.16.21.10 está na rede do pfSense, e posso alcançá-lo:

root@frax1021dckr1110:~# ping 172.16.21.10
PING 172.16.21.10 (172.16.21.10) 56(84) bytes de dados.
64 bytes de 172.16.21.10: icmp_seq=1 ttl=64 tempo=27.3 ms
64 bytes de 172.16.21.10: icmp_seq=2 ttl=64 tempo=27.3 ms
^C

O encaminhamento está habilitado para ambos os lados, o pfSense está atuando como roteador desde o começo, a máquina Linux está:

root@frax1021dckr1110:~# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.all.forwarding = 1
root@frax1021dckr1110:~#

Da perspectiva do Linux, não há firewall:

root@frax1021dckr1110:~# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
root@frax1021dckr1110:~# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
root@frax1021dckr1110:~#

Da perspectiva do pfSense mostrei que permiti ICMP desse interface, veja isto: https://forums.lawrencesystems.com/uploads/default/optimized/2X/b/b4e2403d9c822b08a3a197050385e5df6837f18c_2_690x138.png

As listas de segurança estão todas configuradas para Permitir tudo, veja isto: