Como configurar o WireGuard no pfSense
Neste post, explicaremos como configurar uma conexão “cliente” WireGuard com um provedor VPN comercial no pfSense. WireGuard não usa a dicotomia cliente/servidor como OpenVPN faz. No WireGuard, cada membro da rede é um nó. Em nosso cenário, o nó pfSense atuará essencialmente como o “cliente” e o nó WireGuard do seu provedor VPN atuará como o “servidor”.
Este guia pressupõe que você já tenha configurado o pfSense com interfaces WAN e LAN funcionais.
Pré-requisitos
Além de uma máquina rodando pfSense com duas placas de rede (uma WAN, uma LAN), você também precisará de um provedor de VPN que suporte WireGuard e permita que seus usuários o configurem em seus roteadores. Isso é fundamental porque para que o WireGuard funcione no pfSense (ou em qualquer outro roteador), você precisará fazer upload da chave pública do endpoint do túnel do pfSense (ou seja, do servidor). Seu provedor precisa atribuir a você (e fornecer) um endereço IP local de sua rede WireGuard. Você também precisa saber quais portas seu provedor usa para estabelecer o túnel WireGuard. Você pode encontrar tudo isso na página do seu provedor de VPN.
Aqui estão alguns provedores de VPN recomendados que suportam WireGuard em roteadores:
- Windscribe
- Verruga
- VPN
Pode não ser a lista mais extensa, mas tende a crescer.
Carregando sua chave pública e obtendo um endereço IP
A forma de fazer upload de sua chave pública e obter um endereço IP varia de provedor para provedor. Aqui estão os princípios básicos de como fazer isso para cada um dos provedores de VPN acima:
- Com VPN , você precisa fazer login em sua conta e carregar manualmente sua chave pública. Depois de carregado, o iVPN fornecerá seu endereço IP local.
- Com Verruga , você pode usar o seguinte comando em uma janela de terminal: |_+_|. Substitua “0000000” pelo número da sua conta e substitua “YOURPUBLICKEY” pela sua chave pública.
- Com Windscribe , você receberá um gerador de configuração WireGuard que atribuirá a você uma chave pública e um endereço IP, ao mesmo tempo que fornece a chave privada para usar em seu sistema.
A partir daqui, este guia pressupõe que você carregou sua chave pública e obteve um endereço IP do seu provedor de VPN.
Sobre o pfSense
pfSense é um aplicativo de firewall/roteador de código aberto baseado no FreeBSD. O pfSense é usado por muitas organizações como a espinha dorsal de sua infraestrutura de rede. Mas também pode ser instalado em hardware de PC antigo (ou em máquinas modernas e poderosas) e usado como roteador para uso doméstico.
Usando o pfSense em vez de um comercial pronto para uso roteador é uma boa ideia por vários motivos. Um grande problema são as atualizações frequentes do sistema operacional para corrigir vulnerabilidades. A maioria dos fabricantes de roteadores comerciais nunca envia atualizações de firmware para seus usuários, enquanto a maioria das pessoas usa seu roteador por quase uma década antes de atualizar. É muito tempo sem atualizações de segurança. Mas, além de uma melhor segurança, o pfSense é muito mais personalizável e oferece muitas ferramentas de rede em um pacote que pode acomodar facilmente praticamente qualquer configuração de rede. E tudo isso pode ser feito através de uma GUI intuitiva.
Instalando o WireGuard
WireGuard, no pfSense, é um pacote complementar. Portanto, a primeira coisa que precisamos fazer é instalar o pacote WireGuard.
- No menu superior, selecione Sistema > Gerenciador de pacotes . O Gerenciador de pacotes é exibido.
- Clique Pacotes Disponíveis para exibir a lista de pacotes disponíveis.
- Role para baixo até ver WireGuard . Clique Instalar .
- Você será solicitado a confirmar a instalação. Clique confirme . A instalação começa. Quando terminar, você deverá ver Sucesso na parte inferior da janela de instalação.
Configurando o túnel
Nesta etapa, começaremos a configurar nosso túnel WireGuard para nosso provedor VPN.
- No menu superior, selecione VPN > WireGuard . As opções do WireGuard são exibidas. Estamos no Túneis guia por padrão.
- Clique Adicionar túnel . O WireGuard Túneis página é exibida.
- Certificar-se Habilitar túnel está marcado (deve estar por padrão).
- Preencha uma descrição para o seu túnel.
- Colocou o Porta de escuta .
- Clique Gerar próximo ao Chaves de interface caixas e copie o chave pública . Você precisará fazer o upload para o seu provedor de VPN.
- * Para Windscribe , cole a chave privada que você obteve do gerador de configuração no Chave privada caixa. Sua chave pública será derivada automaticamente da chave privada.
- No Endereços de interface campo, cole o endereço IP atribuído pelo seu provedor VPN, definindo a máscara de sub-rede para /32 . Este guia pressupõe que a maioria das pessoas configurará apenas um túnel IPv4 WireGuard. No entanto, se o seu provedor oferece IPv4 e IPv6 e você deseja usar ambos, você pode clicar Adicionar Endereço e adicione o endereço IPv6 atribuído pelo seu provedor.
- Adicione uma descrição (opcional).
- Clique Salvar túnel . Você é levado de volta ao Túneis página.
Configurando o par
- Clique no Pares aba.
- Clique Adicionar par . O Pares página é exibida.
- Marcação Habilitar Par .
- De Túneis No menu suspenso, selecione o túnel WireGuard que você acabou de configurar.
- No Descrição caixa, adicione uma descrição para seu par.
- Desmarcar Dinâmico Ponto final . O Ponto final e Porta caixas aparecem.
- Insira o endereço IP do “servidor” WireGuard (endpoint) do seu provedor VPN e a porta usada para conectar. Você pode encontrar isso na página da web do seu provedor de VPN.
- Você pode opcionalmente definir um Manter Vivo intervalo. 25 geralmente está bem.
- Insira a chave pública do “servidor” WireGuard no campo Chave Pública. Novamente, você pode encontrar isso na página da web do seu provedor de VPN.
- Sob Endereço Configuração , digitar 0.0.0.0/0 no Permitido IPs campo. Isso configura todo o tráfego para passar pelo túnel WireGuard.
- Clique Salvar Par . Você é levado de volta ao Pares página.
Habilitando o serviço WireGuard
Agora que configuramos nosso túnel e nosso peer, podemos habilitar o serviço WireGuard no pfSense.
- Clique no Configurações aba. O Configurações página é exibida.
- Marcação Habilitar WireGuard , no topo.
- Clique Salvar . O serviço WireGuard está em execução. Você deverá ver um banner verde na parte superior indicando isso.
Criando a interface e gateway WireGuard
Agora precisamos criar uma interface e um gateway que o pfSense usará para estabelecer e enviar tráfego através do túnel WireGuard.
Interface
- No menu superior, selecione Interfaces > atribuições . O Interface atribuições página é exibida.
- Clique no verde Adicionar botão.
- OP1 (interface opcional 1) agora está listada como uma interface. Clique OP1 .
- O OP1 página de interface é exibida.
- Clique Habilitar interface .
- No Descrição caixa, nomeie sua interface.
- De Tipo de configuração IPv4 menu suspenso, selecione Estático IPv4 .
- Sob Estático IPv4 Configuração , no IPv4 Endereço caixa, cole o endereço IP que seu provedor VPN atribuiu a você e defina o /32 máscara de sub-rede.
- Repita as etapas para IPv6 se quiser usar IPv4 e IPv6. Selecione Estático IPv6 de IPv6 Configuração Tipo menu suspenso e cole o endereço IPv6 atribuído pelo seu provedor VPN no IPv6 Endereço caixa (com um /128 máscara de sub-rede).
Porta de entrada
- Próximo ao IPv4 A montante Porta de entrada menu suspenso, clique em Adicionar a novo Porta de entrada . O Novo IPv4 Porta de entrada menu é exibido.
- No Porta de entrada nome caixa, forneça um nome para o seu gateway. Deve ser diferente do nome da interface.
- No Porta de entrada IPv4 caixa, cole o endereço IP atribuído a você pelo seu provedor VPN, como fizemos com a interface acima.
- No Descrição caixa , digite uma descrição (opcional).
- Clique Adicionar . Você está de volta ao OP1 página de interface.
- Sob Estático IPv4 Configuração , de IPv4 A montante Porta de entrada menu suspenso, selecione o gateway que acabamos de criar.
- Clique Salvar .
- Clique Aplicar Mudanças no topo. Criamos a interface e gateway WireGuard.
- Repita essas etapas para IPv6 (usando o endereço IPv6 atribuído pelo seu provedor VPN) se desejar usar IPv4 e IPv6.
Configurando a fixação LAN MSS
A unidade máxima de transmissão (MTU) do WireGuard é 1420. O que isso significa é que se um datagrama exceder 1420 bytes, ele será fragmentado, o que pode interromper a conexão. Se você tiver problemas de MTU ao usar o WireGuard, um sintoma é que determinados sites não carregam. E você estará coçando a cabeça tentando descobrir por que alguns sites carregam bem e outros não. Quando configurei o WireGuard pela primeira vez em meu roteador, fiquei pensando nesse problema por dias antes de considerar os problemas de MTU e configurar a fixação MSS.
MSS significa Tamanho Máximo do Segmento TCP e ajusta o tamanho do datagrama que está sendo transmitido para “ajustar-se” ao link de dados através do qual está sendo transmitido sem fragmentação. Em outras palavras, a fixação MSS garante que ele seja pequeno o suficiente para passar pelo MTU da interface de trânsito.
Iremos fixar MSS em nossa interface LAN para garantir que nosso túnel WireGuard funcione sem problemas.
- No menu superior, selecione Interfaces > E .
- Sob Em geral Configuração , no MSS campo, digite 1380 . 1380 é um bom valor que deve funcionar na maioria dos sistemas. Outros valores também podem funcionar. Sinta-se à vontade para experimentar; apenas lembre-se de permanecer abaixo de 1420. Repita essas etapas para quaisquer outras interfaces OPT que você deseja adicionar.
- Clique Salvar no final da página e Aplicar Mudanças .
Configurando NAT
Agora precisamos configurar a tradução de endereços de rede para nosso túnel WireGuard.
- No menu superior, selecione Firewall > NAT .
- Selecione os Saída aba.
- Sob Saída NAT Modo , selecione Manual Saída NAT regra geração . Precisamos definir isso porque queremos criar nossas próprias regras NAT para rotear nosso tráfego através do túnel WireGuard.
- Clique Salvar .
- Clique Aplicar Mudanças no topo.
- Como queremos forçar todo o tráfego da LAN através do túnel WireGuard, queremos excluir quaisquer regras NAT que permitam que o tráfego da LAN saia pela interface WAN. Selecione as regras mostradas abaixo para sua interface LAN e clique em Excluir .
- Clique Aplicar Mudanças . Suas regras devem ser semelhantes à imagem abaixo.
- Observação : Se quiser usar apenas IPv4, você também pode excluir as regras IPv6.
Configurando regras de firewall
Agora vamos criar regras de firewall para rotear nosso tráfego de LAN através do túnel WireGuard.
- No menu superior, selecione Firewall > Regras . O Firewall Regras página é exibida.
- Selecione os E aba. As regras de firewall da LAN são exibidas.
- Clique no Adicionar (botão de cima. Uma regra de firewall vazia é exibida.
- Colocou o Ação campo para Passar .
- Certifique-se de que Interface campo está definido como E .
- Colocou o Endereço Família campo para IPv4 .
- Colocou o Protocolo para Qualquer .
- Sob Fonte , colocou o Fonte menu suspenso para lan.net .
- Sob Destino , colocou o Destino menu suspenso para qualquer .
- Sob Extra Opções , próximo ao Avançado Opções campo, clique no Mostrar Avançado botão. O Avançado Opções Estão exibidas.
- Role para baixo até Porta de entrada campo e selecione o gateway WireGuard que configuramos anteriormente no menu suspenso.
- Clique Salvar .
- Clique Aplicar Mudanças . A nova regra é exibida na Regra Antibloqueio. Se quiser usar IPv4 e IPv6, repita essas etapas para IPv6.
- Clique no verde seta ao lado de duas regras de LAN padrão para desativá-las. Agora nosso tráfego de LAN só pode sair pelo gateway WireGuard.
Rotas estáticas
Em algumas etapas, definiremos nosso gateway WireGuard como o gateway padrão para nossa caixa pfSense. Para garantir que não haja erros ao inicializar o pfSense (onde ele tentaria iniciar o túnel através do próprio gateway WireGuard), vamos configurar uma rota estática para o pfSense usar a interface WAN para iniciar o túnel.
- No menu superior, selecione Sistema > Roteamento . A página Roteamento é exibida.
- Selecione os Estático Rotas aba. O Estático Rotas página é exibida.
- Clique no Adicionar botão.
- No Destino rede campo, insira o endereço IP do “servidor” WireGuard ao qual você está se conectando. Esse é o mesmo endereço usado ao configurar nosso par WireGuard.
- De Porta de entrada menu suspenso, selecione o POR Porta de entrada.
- No Descrição campo, insira uma descrição para sua rota estática (opcional).
- Clique Salvar . Você é levado de volta ao Estático Rotas página.
- Clique Aplicar Mudanças .
Configurando o gateway padrão
Agora vamos definir nosso gateway WireGuard como o gateway padrão da caixa pfSense.
- Selecione os Entradas aba.
- Sob Padrão Porta de entrada , de Padrão Porta de entrada IPv4 No menu suspenso, selecione seu gateway WireGuard (IPv4).
- Se você quiser usar IPv4 e IPv6, repita as etapas acima para Padrão Porta de entrada IPv6 .
- Clique Salvar e Aplicar mudanças.
Configurando DNS
Nas etapas a seguir, definiremos nossas configurações de DNS para nosso túnel WireGuard.
Configuração geral
- No menu superior, selecione Sistema > Em geral Configurar . O Em geral Configurar página é exibida.
- Sob DNS Servidor Configurações , no DNS Servidores campo, insira o endereço IP do servidor DNS do seu provedor VPN.
- No Porta de entrada campo, selecione o gateway WireGuard.
- Desmarque o DNS Servidor Sobrepor caixa.
- Role até o final da página e clique em Salvar .
Resolvedor DNS
- No menu superior, selecione Serviços > DNS Resolver . O DNS Resolver página é exibida.
- Se o seu provedor de VPN suportar DNSSEC , ative-o marcando a caixa. Isso proporciona uma pequena melhoria na segurança (autenticação) de suas solicitações de DNS.
- Ao lado de DNS Consulta Encaminhamento , marque a Habilitar modo de encaminhamento caixa. Isso encaminha suas consultas DNS para o servidor DNS que configuramos na etapa anterior, em Sistema > Em geral Configurar .
- Role até o final da página e clique em Salvar e Aplicar Mudanças .
Configurações de DNS DHCP
- No menu superior, selecione Serviços > DHCP Servidor . O E DHCP Servidor página é exibida.
- Sob Servidores , no DNS Servidor 1 campo, insira o endereço IP do servidor DNS do seu provedor VPN (o mesmo servidor que definimos em Sistema > Em geral Configurar ).
- Role para baixo e clique Salvar e Aplicar mudanças.
Portanto, o servidor DNS atribuído por DHCP é para nossos clientes LAN, enquanto o DNS Resolver está configurado para ser usado pela própria caixa pfSense e por quaisquer outras interfaces OPT que você possa adicionar no futuro. Ambos estão configurados para usar o servidor DNS do seu provedor VPN, acessível apenas através do túnel WireGuard.
Extra – Configurando um kill switch
A maioria dos aplicativos VPN decentes inclui um kill switch. Um kill switch corta o tráfego da Internet se a sua conexão VPN cair. Isso garante que os pacotes não passem pelo gateway normal do ISP – a interface WAN em um roteador.
Embora não precisemos de um aplicativo dedicado para conectar-se ao nosso provedor de VPN quando ele estiver configurado no roteador (viva), ainda podemos configurar um kill switch usando regras de firewall flutuantes. As regras flutuantes diferem das regras regulares de firewall porque são aplicadas primeiro e podem ser aplicadas a várias interfaces ao mesmo tempo – embora seja a primeira que nos interessa aqui.
Usaremos as regras flutuantes do pfSense para configurar um kill switch para nosso túnel WireGuard.
- No menu superior, selecione Firewall > Regras . O Firewall Regras página é exibida.
- Clique no Flutuando aba. O Flutuando Regras página é exibida.
- Clique no Adicionar (botão de cima.
- Colocou o Ação campo para Rejeitar .
- Marque a Rápido caixa.
- Certifique-se de que Interface está configurado para POR .
- Colocou o Direção para qualquer .
- Colocou o Endereço Família para IPv4 (ou IPv4 + IPv6 se você estiver usando ambos).
- Colocou o Protocolo para Qualquer .
- Colocou o Fonte para qualquer .
- Colocou o Destino para qualquer .
- No Descrição campo, insira uma descrição para sua regra (opcional).
- Clique Salvar . Você será levado de volta à página Regras flutuantes.
- Clique no Adicionar botão (superior) novamente.
- Colocou o Ação campo para Passar .
- Marque a Rápido caixa.
- Certifique-se de que Interface está configurado para POR .
- Colocou o Direção para qualquer .
- Colocou o Endereço Família para IPv4 (ou IPv4 + IPv6 se você estiver usando ambos).
- Colocou o Protocolo para Qualquer .
- Colocou o Fonte para qualquer .
- Colocou o Destino menu suspenso para Host único ou alias .
- Introduzir o endereço de IP do seu “servidor” WireGuard na caixa à direita do
- Destino campo.
- No Descrição campo, insira uma descrição para sua regra (opcional).
- Clique Salvar . Você será levado de volta à página Regras flutuantes.
- Clique Aplicar Mudanças .
Últimos passos
OK, então configuramos nosso túnel e peer WireGuard. Configuramos NAT, DNS e nossas regras de firewall. E também configuramos um kill switch para inicializar. Agora vamos reiniciar nossa caixa pfSense. Após a reinicialização, confirmaremos se tudo está funcionando conforme o esperado.
Reiniciando
- No menu superior, selecione Diagnóstico > Reinício .
- Certifique-se de que Reinício método está configurado para Normal reinício .
- Clique Enviar . O pfSense será reiniciado. Depois de reiniciado, faça login novamente no pfSense.
Verificações finais
Verificando o status do túnel WireGuard
Podemos verificar o status do nosso WireGuard no pfSense.
- No menu superior, selecione VPN > WireGuard . As opções do WireGuard são exibidas.
- Clique no Status aba. O Status página é exibida.
- Clique no pequeno seta à esquerda do túnel Nome campo. Isso exibe o status da conexão do seu par. Verde é bom.
Testando o túnel WireGuard
Podemos usar curl no pfSense para testar se nosso tráfego está ou não sendo roteado através do túnel WireGuard.
- No menu superior, selecione Diagnóstico > Comando Incitar .
- No Executar Concha Comando caixa, digite:
- |_+_|
- |_+_||_+_|
- A última linha do Concha Saída A janela deve listar o endereço IP do endpoint WireGuard ao qual você está conectado.
- Inicie um navegador da web e visite a página de verificação de endereço IP da Comparitech. Ele deve listar o mesmo endereço IP listado na saída do shell da etapa anterior.
Adicionando o widget WireGuard ao painel do pfSense
Você pode exibir um widget WireGuard no painel do pfSense, se desejar.
- No painel, clique no + assine no canto superior esquerdo da IU. A lista de Disponível Widgets é exibido.
- Clique WireGuard .
- O widget WireGuard é adicionado ao painel.
Embrulhar
Então é assim que você configura uma conexão “cliente” com um provedor VPN WireGuard no pfSense. Se você tiver algum problema, recomendo verificar suas configurações de DNS e regras de firewall (regulares e flutuantes). Uma configuração incorreta nesses locais geralmente é a culpada.
Além disso, VPN ativada.