Usar uma VM dentro do meu notebook como firewall para um dispositivo externo

1. Usar uma VM dentro do meu notebook como firewall para um dispositivo externo

João
Catoplebas

(usa Ubuntu)

Enviado em 20/06/2025 - 15:22h


Resumo:
Criei uma VM usando Virtualbox no meu notebook, meu notebook está conectado na internet pelo wifi e nessa VM eu instalei o pfsense . Essa VM tem 3 adaptadores de placa de rede que são:

Adaptador 1:
Conectado a: Placa em modo bridge
Nome: intel (entrada de wifi que está na internet)
M0do promíscuo: Permitir tudo

Adaptador 2:
Conectado a: Placa de rede exclusiva do hospedeiro
Nome: Virtual box host-only ethernet adapter
Modo promíscuo: recusar

Adaptador 3:
Conectado a: Placa em modo bridge
Nome: Realtek (Entrada de rede onde eu conecto outro dispositivo)
M0do promíscuo: Permitir tudo

Na instalação, coloquei o adaptador 1 como WAN, o 2 como LAN, e o 3 como OPT1 de modo que eles ficaram da seguinte forma:


Host (meu notebook): IP 192.168.56.1

WAN: => em0 => (pegou o IP que meu roteador de internet deu)
LAN: => em1 => 192.168.56.2
OPT1: => em2 => 192.168.56.3

Meu objetivo é: Acessar a interface do pfsense através da Lan, conectar outro dispositivo no notebook através do cabo de rede e dessa forma, se conectar no OPT1, e assim esse dispositivo se conectar na internet, seguindo a ilustração abaixo.

Dispositivo => firewall (pfsense que está no meu notebook host) => Internet

O dispositivo, foi conectado e pegou o IP 192.168.56.10
Problema:
O dispositivo não consegue se conectar à internet. Não consegui identificar o motivo.


Recursos:

Dentro do dispositivo, usei o comando Ip “router -n” e deu o seguinte resultado:
.
root@00000200120003DD:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.56.3 0.0.0.0 UG 10 0 0 eth0.2
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0.2
192.168.56.0 0.0.0.0 255.255.255.0 U 10 0 0 eth0.2
192.168.230.0 0.0.0.0 255.255.255.0 U 0 0 0 br-lan


Dentro do PFsense rodei o comando “pfctl -sn” e o resultado foi:


No tat proto carp all
Nat-ancho "natearly/* ALL
Nat-ancho "Natrules/* ALL
Nat on em0 inet from 192.168.56.0/24 to any 10.0.2.15 port 1024:65535
No rdr proto carp all
rdr-anchor "tftp-proxy/*" all


Verifiquei os logs do firewall e são:


19 de junho 18:27:45 OPT1 (1000002520) 192.168.56.10:48191 192.168.56.3: 53 UDP
19 de junho 18:27:45 OPT1 (1000002520) 192.168.56.10:48191 192.168.56.3: 53 UDP
19 de junho 18:27:45 OPT1 (1000002520) 192.168.56.10:47805 192.168.56.3: 53 UDP
19 de junho 18:27:45 OPT1 (1000002520) 192.168.56.10:47805 192.168.56.3: 53 UDP
19 de junho 18:27:45 OPT1 (1000002520) 192.168.56.10 8.8.8.8 ICMP
19 de junho de 18:26:52 OPT1 (1000002520) 192.168.56.10:47883 192.168.56.3: 53 UDP
19 de junho de 18:26:52 OPT1 (1000002520) 192.168.56.10:48294 192.168.56.3: 53 UDP
19 de junho de 18:26:52 OPT1 (1000002520) 192.168.56.10:48294 192.168.56.3: 53 UDP


Verifiquei a WAN usando o comando /usr/sbin/tcpdump -ni em0 -c '1000' -U -w - no PFsense e o resultado foi:

13:28:08.501717 IP 10.0.2.15.31703 > 173.245.58.88.53: UDP, length 101
13:28:08.516494 IP 173.245.58.88.53 > 10.0.2.15.31703: UDP, length 137
13:28:08.521057 IP 10.0.2.15.17540 > 172.64.32.88.53: UDP, length 55
13:28:08.539215 IP 172.64.32.88.53 > 10.0.2.15.17540: UDP, length 117
13:28:08.540482 IP 10.0.2.15.38053 > 172.64.33.191.53: UDP, length 57
13:28:08.559967 IP 172.64.33.191.53 > 10.0.2.15.38053: UDP, length 119
13:28:08.561230 IP 10.0.2.15.42395 > 108.162.192.88.53: UDP, length 59
13:28:08.576571 IP 108.162.192.88.53 > 10.0.2.15.42395: UDP, length 121
13:28:08.578240 IP 10.0.2.15.64042 > 172.64.33.191.53: UDP, length 61
13:28:08.596953 IP 172.64.33.191.53 > 10.0.2.15.64042: UDP, length 123
13:28:08.599503 IP 10.0.2.15.50720 > 172.64.32.88.53: UDP, length 71
13:28:08.622796 IP 172.64.32.88.53 > 10.0.2.15.50720: UDP, length 133
13:28:08.623883 IP 10.0.2.15.17642 > 173.245.58.88.53: UDP, length 81
13:28:08.640181 IP 173.245.58.88.53 > 10.0.2.15.17642: UDP, length 143
13:28:08.641338 IP 10.0.2.15.38371 > 173.245.59.191.53: UDP, length 91
13:28:08.658378 IP 173.245.59.191.53 > 10.0.2.15.38371: UDP, length 153
13:28:08.663059 IP 10.0.2.15.52132 > 173.245.59.191.53: UDP, length 101
13:28:08.676060 IP 173.245.59.191.53 > 10.0.2.15.52132: UDP, length 163
13:28:08.678899 IP 10.0.2.15.7915 > 173.245.58.88.53: UDP, length 101
13:28:08.694595 IP 213.251.188.134.53 > 10.0.2.15.55819: UDP, length 127
13:28:08.700144 IP 173.245.58.88.53 > 10.0.2.15.7915: UDP, length 138
13:28:08.706293 IP 10.0.2.15.45902 > 108.162.192.122.53: UDP, length 56
13:28:08.723034 IP 108.162.192.122.53 > 10.0.2.15.45902: UDP, length 118
13:28:08.725078 IP6 fd17:625c:f037:2:a00:27ff:feeb:9e00.33549 > 2803:f800:50::6ca2:c07a.53: UDP, length 56


Dentro do PFsense, ping para a 8.8.8.8 não tem perda de pacotes


Nas regras do firewall, a única regra criada para OP1 é:

Ação: Pass
Interface: OPT1
Family: IPV4
Protocolo: any
Origem: any
Destino: any

E a única regra para WAN é:

Ação: Pass
Interface: WAn
Family: IPV4
Protocolo: any
Origem: any
Destino: any


E Em system, Routing, os gateways são:




Nome
Padrão
Interface
Portal
Monitor de IP
Descrição
Ações





WAN_DHCP


WAN
10.0.2.2
10.0.2.2
Interface WAN_DHCP Gateway




WAN_DHCP6


WAN
fe80::2%em0
fe80::2%em0
Interface WAN_DHCP6 Gateway




E o gateway padrão está como automático.


Verifiquei o OPT1 usando o comando /usr/sbin/tcpdump -ni em0 -c '1000' -U -w - no PFsense e o resultado foi:

09:37:34.397998 IP 192.168.56.10 > 208.67.220.220: ICMP echo request, id 5786, seq 0, length 64
09:37:34.948301 IP 192.168.56.10.43467 > 192.168.56.3.53: UDP, length 37
09:37:35.044877 IP 192.168.56.10.43467 > 192.168.56.3.53: UDP, length 37
09:37:35.044911 IP 192.168.56.10.40736 > 192.168.56.3.53: UDP, length 37
09:37:35.044916 IP 192.168.56.10.40736 > 192.168.56.3.53: UDP, length 37
09:37:35.054197 IP 192.168.56.11.62186 > 192.168.56.3.53: UDP, length 49
09:37:35.131690 IP 192.168.56.10.33297 > 192.168.56.3.53: UDP, length 39
09:37:35.131725 IP 192.168.56.10.33297 > 192.168.56.3.53: UDP, length 39
09:37:35.131731 IP 192.168.56.10.38883 > 192.168.56.3.53: UDP, length 39
09:37:35.133528 IP 192.168.56.10.38883 > 192.168.56.3.53: UDP, length 39
09:37:36.443785 IP 192.168.56.10.56036 > 192.168.56.3.53: UDP, length 40
09:37:36.444012 IP 192.168.56.10.56036 > 192.168.56.3.53: UDP, length 40
09:37:36.444027 IP 192.168.56.10.46740 > 192.168.56.3.53: UDP, length 40
09:37:36.444036 IP 192.168.56.10.46740 > 192.168.56.3.53: UDP, length 40
09:37:36.482636 IP 192.168.56.10 > 114.114.114.114: ICMP echo request, id 5800, seq 0, length 64
09:37:36.772542 IP 192.168.56.11.58988 > 192.168.56.3.53: UDP, length 41
09:37:36.772834 IP 192.168.56.11.57774 > 192.168.56.3.53: UDP, length 41
09:37:37.565783 IP 192.168.56.10.43467 > 192.168.56.3.53: UDP, length 3


Em Firewall, NAT, Outbound, eu configurei da seguinte forma a única regra:

Modo NAT de Saída: Manual

Mapeamentos:

Interface: WAN
Origem: Qualquer
Porta de origem: Qualquer
Destino: Qualquer
Porta de destino: Qualquer
Endereço NAT: Endereço WAN
Porta NAT: Qualquer
Porta estática: Porta de origem aleatória



  


2. Re: Usar uma VM dentro do meu notebook como firewall para um dispositivo externo

Vinicius Mello
vmmello

(usa Slackware)

Enviado em 21/06/2025 - 16:02h

Oi,

WAN: => em0 => (pegou o IP que meu roteador de internet deu)
LAN: => em1 => 192.168.56.2
OPT1: => em2 => 192.168.56.3

Acima está mostrando duas interfaces na mesma subrede 192.168.56.x Isso provavelmente está errado, não? Ou a configuração está errada, ou a informação que vc passou está errada.


Adaptador 3:
Conectado a: Placa em modo bridge


Se a intenção era ter uma bridge entre em1 e em2, a configuração talvez deveria ter uma interface br0 com em1 e em2 como parte desta bridge e o IP deveria estar na br0 (e a em1 e em2 sem IP, algo que eu imagino que o PFSense faria automaticamente quando configurado para bridge).


13:28:08.501717 IP 10.0.2.15.31703 > 173.245.58.88.53: UDP, length 101
13:28:08.516494 IP 173.245.58.88.53 > 10.0.2.15.31703: UDP, length 137
13:28:08.521057 IP 10.0.2.15.17540 > 172.64.32.88.53: UDP, length 55


Nos exemplos de tráfego do tcpdump que vc enviou, mostra apenas o tráfego DNS (de/para porta 53/udp). Usar o tráfego DNS para medir a conectividade é problemático, porque boa parte deste tráfego mostra a conexão entre o servidor DNS e o mundo externo, e não a conexão do host da sua rede interna de teste. Por exemplo, pra saber se o host interno está conseguindo fazer ping para as redes externas, vc poderia filtrar por icmp no comando tcpdump na interface em0:

/usr/sbin/tcpdump -ni em0 -c '1000' -U -w - icmp


É difícil ajudar nestas questões de rede, apenas mostrei algumas coisas que parecem estranhas. Eventualmente se vc enviasse a saída do commando
ip addr show 
do pfsense poderia ajudar.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts