Como configurar o pfSense/OPNSense no host virtual?

Como configurar o pfSense/OPNSense no host virtual?

Estou um pouco confuso sobre como hospedar uma caixa *Sense como uma VM e fazer com que ela forneça roteamento para o host.

Internet -> Modem/Router (bridge mode) -> en1 on Dell r710 -> OPNSense in a VM

Then also:
OPNSense in a VM -> en2 -> 12-port switch

Por exemplo, para que defino as interfaces de rede na VM e como defino o OPNSense para ter 10.0.2.1 como seu IP e ser o roteador principal (dhcp, etc) para que o OPNSense possa fornecer roteamento para qualquer dispositivo que eu conectar (por meio de um switch que possuo) e também o host em que a VM é executada?

Minhas VMs estão rodando em KVM com Wok/Kimchi no Ubuntu 16.04.5.

Responder1

Infelizmente, a pergunta é um pouco imprecisa e não tenho reputação de fazer mais perguntas. Há alguns dias configurei o OPNSense em um ambiente virtual, então espero poder deixar algumas dicas aqui. Não afirmo que esta seja uma boa solução, mas funciona para mim. Neste cenário, tenho um servidor dedicado e uma sub-rede IP pública/29. Todo o tráfego de outras VMs é roteado através do OPNSense-VM. O tráfego da máquina host não pode ser enviado pela máquina virtual.

Para administração das redes e máquinas virtuais que utilizoWebvirtCloud mas também é possível fazer tudo manualmente.

  1. Crie interfaces de rede virtuais para cada um dos seus IPs públicos.

    /etc/network/interfaces
    
    auto eth0
    iface eth0 inet static
            address 103.x.x.104      #Dedicated server IP address
            netmask 255.255.255.255
            gateway 103.x.x.65
            pointopoint 103.x.x.65   #IP of the switch in the data center
    
    auto eth0:0
    iface eth0:0 inet static
    address 103.xx.77.136             #First IP from the public subnet
    netmask 255.255.255.255
    
    auto eth0:1
    iface eth0:1 inet static
    address 103.xx.77.137
    netmask 255.255.255.255
    

    [...]

  2. Use libvirt para criar as redes conforme descritoaqui: (ou use WebvirtCloud) Você precisa de pelo menos duas pontes, uma para LAN e outra para WAN.

Neste ponto você deve ter uma rede chamada LAN (Dispositivo: virbr1)(Rede: 192.168.100.0/24) e outra chamada WAN (Dispositivo: virbr0) (Rede: 192.168.77.0/24)

  1. Crie a configuração da sua máquina OPNSense Esta é a parte importante:
<interface type='network'>
      <mac address='00:52:66:d7:7e:65'/>
      <source network='WAN' bridge='virbr0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <interface type='network'>
      <mac address='00:c0:41:50:f9:0b'/>
      <source network='lan' bridge='virbr1'/>
      <target dev='vnet1'/>
      <model type='virtio'/>
      <alias name='net1'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>
    </interface>
    <interface type='network'>
      <mac address='00:98:c3:b1:b6:b8'/>
      <source network='lan' bridge='virbr1'/>
      <target dev='vnet2'/>
      <model type='virtio'/>
      <alias name='net2'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/>
    </interface>
  1. Inicie o OPNSense, atribua interfaces de acordo com a configuração da sua máquina e defina os endereços IP das interfaces através do terminal. Selecionei 192.168.77.2 para meu endereço IP WAN OPNSense. O gateway upstream da WAN está definido como 192.168.77.1.

Também criei LANs separadas para cada um dos meus IPs públicos no OPNSense.

LAN136 IP-Address: 192.168.100.136/24 
LAN137 IP-Address: 192.168.100.137/32
No upstream Gateways.

[...]

  1. Regras NAT POST e PREROUTING na máquina host
iptables -t nat -A POSTROUTING -s 192.168.77.2 -j SNAT --to-source 103.x.x.104
iptables -t nat -A POSTROUTING -s 192.168.77.136 -j SNAT --to-source 103.xx.77.136
iptables -t nat -A POSTROUTING -s 192.168.77.137 -j SNAT --to-source 103.xx.77.137

iptables -t nat -A PREROUTING -p tcp --dport 10:65530 -d 103.xx.77.136 -j DNAT --to 192.168.77.136
iptables -t nat -A PREROUTING -p udp --dport 10:65530 -d 103.xx.77.136 -j DNAT --to 192.168.77.136

iptables -t nat -A PREROUTING -p tcp --dport 10:65530 -d 103.xx.77.137 -j DNAT --to 192.168.77.137
iptables -t nat -A PREROUTING -p udp --dport 10:65530 -d 103.xx.77.137 -j DNAT --to 192.168.77.137

Após esta etapa, você poderá abrir o OPNSense em seu navegador. Para fazer isso você precisa de uma máquina virtual que já faça parte da LAN. Eu recomendo usar um live CD como grml ou Ubuntu. Neste caso, o OPNSense pode ser acessado viahttp://192.168.100.136

  1. OPNSense (navegador web) - Crie IPs virtuais na interface WAN
Virtual IP-address    Interface           TYPE
192.168.77.136/32         WAN          IP Alias
192.168.77.137/32         WAN          IP Alias

[...]

  1. Regras NAT no OPNSense (navegador da web) Crie suas regras de encaminhamento e saída de porta

exemplo de encaminhamento de porta:

Interface Proto   S-address S-port    D-address       D-port       NAT-Ip         Nat-Port
WAN           TCP     *           *       192.168.77.137  80 (HTTP)   192.168.100.101 80 (HTTP)

exemplo de regras de saída:

o modo deve ser definido como manual

Interface     Source                S-port    Dest.    D-port       NAT-IP        Port   static?
WAN               192.168.100.100/32      *        *        *         192.168.77.136  *       no

Certifique-se de que todos os seus IP públicos tenham regras de saída e um IP NAT exclusivo.

Responder2

Caramba... Isso é complexo! Estou procurando substituir minha configuração dedicada do OPNsense executada em miniPC por uma VM em meu servidor TrueNAS (Scale agora, mas executo Core há muitos anos) e estava me perguntando... existe uma maneira mais simples de fazer tudo funcionar? Tudo o que eu quero é literalmente executar minha rede e fazer com que a VM seja capaz de se comunicar via WAN e LAN (dentro e fora da VM, é claro...). Estou bem ciente de que se eu reiniciar meu servidor TrueNAS (é principalmente meu Plex Media Server), minha conexão com a Internet cairá, etc. Também estou ciente de que não é ideal fazer isso na maioria das situações, mas eu quero experimentar. Eu adoro ocupar menos espaço, e se eu conseguir me livrar de um computador rodando na minha rede e no meu quarto, isso seria incrível.

Agora, o que consegui fazer até agora? Só consegui fazer com que minha VM do OPNsense visse uma conexão WAN e também consegui acessar sua webUI... às vezes...

Qualquer ajuda seria apreciada se alguém visse isso em 2023... haha. Não há pressa, mas eu meio que quero fazer isso porque é interessante.

Obrigado, Shiggitay

informação relacionada