Surfshark fornece um serviço VPN barato que permite um número ilimitado de dispositivos com bloqueio de anúncios. Neste tutorial vamos configurar o pfSense com o Surfshark e atribuir uma interface a ele para que possamos encaminhar tráfego para a VPN através de outros serviços.
Informações sobre Surfshark
O primeiro passo é conseguir suas credenciais de Surfshark. Acesse a página de login em https://account.surfshark.com/ e faça login. Em seguida, vá para Avançado >> Dispositivos >> Manual, role até a parte inferior da página e anote suas credenciais de serviço.
Na mesma página da sua conta, você encontrará a lista de todos os arquivos de configuração e nome de domínio de seus servidores agrupados por país/continente. Aproveite esta oportunidade e copie a URL de domínio dos locais que deseja usar mais tarde.
Configuração pfSense
Depois de logado no seu pfSense, vá para Sistema >> Ger. de Certificados >> CAs e clique em Adicionar para criar uma nova Autoridade Certificadora:
Nome descritivo: Surfshark_VPN
Método: importar dados do Certificado de Autoridade de Certificado existente
-----BEGIN CERTIFICATE-----
MIIFTTCCAzWgAwIBAgIJAMs9S3fqwv+mMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNVBAYTAlZHMRIwEAYDVQQKDAlTdXJmc2hhcmsxGjAYBgNVBAMMEVN1cmZzaGFyayBSb290IENBMB4XDTE4MDMxNDA4NTkyM1oXDTI4MDMxMTA4NTkyM1owPTELMAkGA1UEBhMCVkcxEjAQBgNVBAoMCVN1cmZzaGFyazEaMBgGA1UEAwwRU3VyZnNoYXJrIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDEGMNj0aisM63oSkmVJyZPaYX7aPsZtzsxo6m6p5Wta3MGASoryRsBuRaH6VVa0fwbI1nw5ubyxkuaNa4v3zHVwuSq6F1p8S811+1YP1av+jqDcMyojH0ujZSHIcb/i5LtaHNXBQ3qN48Cc7sqBnTIIFpmb5HthQ/4pW+a82b1guM5dZHsh7q+LKQDIGmvtMtO1+NEnmj81BApFayiaD1ggvwDI4x7o/Y3ksfWSCHnqXGyqzSFLh8QuQrTmWUm84YHGFxoI1/8AKdIyVoB6BjcaMKtKs/pbctk6vkzmYf0XmGovDKPQF6MwUekchLjB5gSBNnptSQ9kNgnTLqi0OpSwI6ixX52Ksva6UM8P01ZIhWZ6ua/T/tArgODy5JZMW+pQ1A6L0b7egIeghpwKnPRG+5CzgO0J5UE6gv000mqbmC3CbiS8xi2xuNgruAyY2hUOoV9/BuBev8ttE5ZCsJH3YlG6NtbZ9hPc61GiBSx8NJnX5QHyCnfic/X87eST/amZsZCAOJ5v4EPSaKrItt+HrEFWZQIq4fJmHJNNbYvWzCE08AL+5/6Z+lxb/Bm3dapx2zdit3x2e+miGHekuiE8lQWD0rXD4+T+nDRi3X+kyt8Ex/8qRiUfrisrSHFzVMRungIMGdO9O/zCINFrb7wahm4PqU2f12Z9TRCOTXciQIDAQABo1AwTjAdBgNVHQ4EFgQUYRpbQwyDahLMN3F2ony3+UqOYOgwHwYDVR0jBBgwFoAUYRpbQwyDahLMN3F2ony3+UqOYOgwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAn9zV7F/XVnFNZhHFrt0ZS1Yqz+qM9CojLmiyblMFh0p7t+Hh+VKVgMwrz0LwDH4UsOosXA28eJPmech6/bjfymkoXISy/NUSTFpUChGO9RabGGxJsT4dugOw9MPaIVZffny4qYOc/rXDXDSfF2b+303lLPI43y9qoe0oyZ1vtk/UKG75FkWfFUogGNbpOkuz+et5Y0aIEiyg0yh6/l5Q5h8+yom0HZnREHhqieGbkaGKLkyu7zQ4D4tRK/mBhd8nv+09GtPEG+D5LPbabFVxKjBMP4Vp24WuSUOqcGSsURHevawPVBfgmsxf1UCjelaIwngdh6WfNCRXa5QQPQTKubQvkvXONCDdhmdXQccnRX1nJWhPYi0onffvjsWUfztRypsKzX4dvM9k7xnIcGSGEnCC4RCgt1UiZIj7frcCMssbA6vJ9naM0s7JF7N3VKeHJtqe1OCRHMYnWUZt9vrqX6IoIHlZCoLlv39wFW9QNxelcAOCVbD+19MZ0ZXt7LitjIqe7yF5WxDQN4xru087FzQ4Hfj7eH1SNLLyKZkA1eecjmRoi/OoqAt7afSnwtQLtMUc2bQDg6rHt5C0e4dCLqP/9PGZTSJiwmtRHJ/N5qYWIh9ju83APvLm/AGBTR2pXmj9G3KdVOkpIC7L35dI623cSEC3Q3UZutsEm/UplsM=
-----END CERTIFICATE-----
Uma vez feito, clique em Salvar.
O próximo passo é criar a conexão do cliente VPN. Navegue até VPN >> OpenVPN >> Clientes e pressione Adicionar.
- Informação geral
- Desabilitar: desmarcado
- Modo servidor: Peer to Peer (SSL/TLS)
- Protocolo: UDP somente no IPv4 (você também pode usar TCP)
- Modo do dispositivo: tun – Camada 3 Tunnel Mode
- Interface: WAN
- Porta local: deixe em branco;
- Host ou endereço do servidor: O endereço do servidor que você deseja conectar (por exemplo, us-sea.prod.surfshark.com)
- Porta do servidor: 1194 (use 1443 se você usar TCP)
- Proxy host ou endereço: deixe em branco
- Porta proxy: deixe em branco
- Proxy Autenticação: Nenhuma
- Descrição: Qualquer nome que você gosta (por exemplo, Surfshark US Seattle)
- Configurações de autenticação do usuário
- Nome de usuário: Nome de usuário da conta Surfshark
- Senha: Senha da autenticação de autenticação da conta do Surfshark: desmarcada
- Configurações criptográficas
- Configuração TLS: Verifique
- Gerar automaticamente chave TLS: desmarcado
- Chave TLS:
-----BEGIN OpenVPN Static key V1-----
b02cb1d7c6fee5d4f89b8de72b51a8d0
c7b282631d6fc19be1df6ebae9e2779e
6d9f097058a31c97f57f0c35526a44ae
09a01d1284b50b954d9246725a1ead1f
f224a102ed9ab3da0152a15525643b2e
ee226c37041dc55539d475183b889a10
e18bb94f079a4a49888da566b9978346
0ece01daaf93548beea6c827d9674897
e7279ff1a19cb092659e8c1860fbad0d
b4ad0ad5732f1af4655dbd66214e552f
04ed8fd0104e1d4bf99c249ac229ce16
9d9ba22068c6c0ab742424760911d463
6aafb4b85f0c952a9ce4275bc821391a
a65fcd0d2394f006e3fba0fd34c4bc4a
b260f4b45dec3285875589c97d3087c9
134d3a3aa2f904512e85aa2dc2202498
-----END OpenVPN Static key V1-----
- Configurações criptográficas
- Modo de uso da chave TLS: Autenticação TLS
- Certificado de peer: Surfshark_VPN
- Lista de revogação do certificado de peer: vazio
- Certificado do cliente: webConfigurator padrão
- Encryption Algorithm: AES-256-GCM
- Habilitar NCP: selecionado
- Algoritmos NCP: AES-256-GCM e AES-256-CBC
- Algoritmo de autenticação: SHA512 (512 bits)
- Hardware de criptografia Sem aceleração de hardware
- Configurações do túnel
- Rede de túneis IPv4: deixe em branco
- Rede de túneis IPv6: deixe em branco
- Rede remota IPv4(s): deixe em branco
- IPv6 rede remota(s): deixe em branco
- Largura de banda de saída do limite: deixe em branco
- Compressão: Omitir Preferência (Use padrão OpenVPN)
- Topologia: Sub-rede – Um endereço IP por cliente em uma sub-rede comum
- Tipo de serviço: desmarcado
- Não baixe rotas: selecionado
- Não adicione/remova rotas: selecionado
- Configurações de ping
- Inativos: 0
- Método ping:
- Intervalo keepalive: 10
- Tempo de timeout: 60
- Configuração avançada
- Opções personalizadas: cole o conteúdo abaixo
tls-cliente;
remoto-aleatório;
tun-mtu 1500;
tun-mtu-extra 32;
mssfix 1400;
persistir-chave;
persistir-tun;
reneg-sec 0;
servidor remoto-cert-tls;
- Configuração avançada
- UDP FAST I/O: deixe
- Buffer de envio/recebimento desmarcado
- Criação padrão do Gateway: apenas IPv4
- Nível de Log: 3 (recomendado)
Pressione Salvar na parte inferior da página e Aplicar alterações na parte superior da página. Navegue até o Status >> OpenVPN para verificar se seu cliente VPN está funcionando. Verifique as estatísticas de instâncias do cliente, se sua nova conexão com o cliente VPN está listada e se o Status está Conectado.
Use mssfix 1450 , conforme recomendado pelo Surfshark, caso tenha constantes quedas de conexão. Neste post selecionamos tanto não baixe rotas e não adicione/remova rotas e criamos regras manuais de firewall para se adequar ao nosso cenário com várias LANs, VLANs, etc.
Atribuindo interface à conexão do cliente VPN
Navegue até Interfaces >> Atribuições de interface e adicione interface VPN Surfshark.
Pressione o OPT1 à esquerda da interface atribuída e preencha as seguintes informações:
- Habilitar: selecionado
- Descrição: Surfshark VPN
- Endereço MAC: deixe em branco
- MTU em branco: deixe em branco
- MSS em branco: deixe em branco
Não mude mais nada. Basta rolar até a parte inferior e pressionar Salvar e Aplicar alterações.
Configuração de DNS
Esta seção assumirá que seu DNS já está configurado através de um post anterior. Os próximos passos são apenas uma configuração adicional para incluir o cliente VPN em uma instância DNS Resolver em funcionamento.
Navegue até Serviços >> DNS Resolver >> Configurações Gerais e certifique-se de que nas Interfaces de Rede de Saída você selecione Todas ou também selecione sua nova interface de cliente VPN como uma interface de saída. Não remova nenhuma outra interface desta lista!
- Habilitar: já deve estar selecionado
- Interfaces de rede de saída: Surfshark VPN
- Register conectado clientes OpenVPN no DNS Resolver: selecionado
Clique em Salvar e Aplicar alterações.
Configuração do NAT
Navegue até Firewall >> NAT >> Saída e selecione Geração híbrida de regras NAT de saída. (Regras automáticas de saída NAT + abaixo). Pressione Salvar e Aplicar alterações. Agora podemos criar nossas regras para o novo cliente VPN clicando em Adicionar (seta para baixo):
- Editar entrada avançada de NAT de saída
- Interface: SurfsharkVPN
- Origem: sua rede LAN (por exemplo, 10.0.0.0/24)
- Misc
- Descrição: Um nome agradável, como saída nat para Surfshark US Seattle
Pressione Salvar e Aplicar alterações.
Agora clique em Adicionar (seta para baixo) novamente para criar mais uma regra para o tráfego VPN ISAKMP IPsec:
- Editar entrada avançada de NAT de saída
- Interface: Surfshark VPN
- Origem: Mesma rede LAN da regra anterior (por exemplo, 10.0.0.0/24)
- Destino >> Port ou Range: 500
- Translation
- Porta ou Intervalo >> Porta estática: selecionado
- Misc
- Descrição: Um nome agradável, como Criado manualmente para ISAKMP – Surfshark US Seattle
Pressione Salvar e Aplicar alterações.
Note que se você tiver várias LANs, como eu, você precisará repetir este processo para cada uma delas.
Configuração de firewall
Navegue até a página Firewall >> Regras e clique no nome interface que você criou nas etapas anteriores. Em seguida, clique em Adicionar para criar uma nova regra de firewall que permite que qualquer tráfego passe:
- Ação: Liberar
- Família de endereços de passe: IPv4 (Eu não estou usando IPv6 no meu homelab ainda)
- Protocolo: Qualquer
- Origem: Qualquer
- Destino: Qualquer
Pressione Salvar e Aplicar alterações.
Você pode repetir as etapas acima para diferentes conexões do Surfshark.
Agora que tudo está pronto, vamos testar. Navegue até Diagnósticos >> Ping:
- Nome do host: google.com
- Protocolo IP: IPv4
- Endereço de origem: Selecione a interface do cliente VPN
- Número máximo de pings: 3
Clique em Ping e confira os resultados. Deve ser algo como
PING google.com (216.58.217.46): 56 bytes de dados
64 bytes de 216.58.217.46: icmp_seq=0 ttl=120 tempo=1.978ms
64 bytes de 216.58.217.46: icmp_seq=1 ttl=120 tempo=2.670ms
64 bytes de 216.58.217.46: icmp_seq=2 ttl=120 tempo=1.940ms
--- google.com estatísticas de ping ---
3 pacotes transmitidos, 3 pacotes recebidos, perda de pacote de 0,0%
ida e volta min/avg/max/stddev = 1.940/2.196/2.670/0.336 ms
Passando o tráfego pela VPN
Neste ponto, sua conexão VPN está em funcionamento, mas não está realmente em uso pelo pfSense. Existem algumas opções de como começar a usar a VPN. Neste post vou mostrar como:
- Configurar a conexão VPN como o gateway padrão, para que todo o tráfego da sua casa passe por ele
- Configurar a conexão VPN para IPs específicos, de modo que apenas estes passem pela nova conexão do cliente VPN
Opção 1: Usando a conexão VPN como seu gateway padrão
Navegue até Firewall >> Regras >> LAN e Edite a regra IPv4 padrão, essa é a regra que permite todo o tráfego em sua rede. Sua Descrição provavelmente será algo como Regra padrão que permite tudo.
Role até a parte inferior e pressione Mostrar Avançado na guia Opções Extras . Alterar gateway para Surfshark VPN e clique em Salvar seguido de Aplicar alterações.
Opção 2: Configuração de IPs específicos para usar a VPN
Mapeamento estático do DHCP em LAN
Para usar esta abordagem, você precisa reservar IP para o (s) dispositivo que deseja rotear através da VPN. Navegue até Serviços >> Servidor DHCP >> LAN rolar até Mapeamentos estáticos DHCP para esta interface, clique em Adicionar e faça o seguinte:
- Mac Endereço: xx:xx:xx:xx:xx:xx:xx
- Você pode encontrá-lo na página Status >> Concessões DHCP
- Identificador do cliente: O nome que aparecerá na página de locação do DHCP
- Você pode usar o nome do host
- Endereço IP: O IP estático para usar (por exemplo, 10.0.0.5)
- Nome do host: O nome do host do dispositivo
- Descrição: Uma descrição amigável para identificar o dispositivo
Clique em Salvar e Aplicar alterações. Em seguida, desconecte e reconecte o cabo de rede deste dispositivo para que ele possa tomar o novo IP. Repita esta etapa para cada dispositivo que deseja colocar sob a VPN.
Agora que seus dispositivos têm um IP estático, navegue até Firewall >> Aliases >> IP e clique em Adicionar e fazer o seguinte:
- Propriedades
- Nome: VPNCLIENT_USA_DEVICES
- Descrição: Dispositivos que são necessários para passar por uma conexão cliente USA OpenVPN
- Tipo: Host(s)
- Host(s)
- IP ou FQDN: <IP que você deseja colocar sob a VPN> (por exemplo, 10.0.0.5)
- O nome do host ou a descrição para ajudar a identificar o dispositivo
Se você quiser adicionar mais dispositivos (hosts), clique em Adicionar host e adicione o IP/FQDN + uma descrição para cada dispositivo.
Quando terminar, clique em Salvar e Aplicar alterações.
Se você não tiver um pseudônimo chamado RFC1918 ou Private_IPv4s criado em posts anteriores, você precisará criá-lo agora. O objetivo é nos ajudar a identificar quais redes/IPs pertencem à sua LAN e que pertencem à Internet.
Por fim, precisamos atualizar a regra do firewall para que ela redirecione os clientes para a VPN com base no Alias que acabamos de criar. A regra atual deve ser algo como “aceitar qualquer conexão vinda de qualquer dispositivo que vá para qualquer destino e use o gateway padrão (sua conexão WAN)”. O que queremos é: Se os dispositivos pertencem ao Alias que criamos, use a VPN como gateway. Caso contrário, use o gateway padrão. Note que precisamos de duas regras e elas devem aparecer nesta ordem.
Vá para Firewall >> Regras >> LAN e clique no ícone de cópia da regra IPv4 padrão, que é a regra que permite todo o tráfego em sua rede para * (qualquer) para * (qualquer). Sua descrição provavelmente será algo como Regra padrão que permite acesso a tudo.
Uma nova janela será aberta com as mesmas configurações da regra usada como base, que você precisa alterar o seguinte:
- Origem
- Sel. invertida: desmarcado
- Qualquer: Alterá-lo para Host único ou Alias
- Endereço da origem: VPNCLIENT_USA_DEVICES (primeiro Alias)
- Destino
- Sel. invertido: selecionado
- Qualquer: Alterá-lo para Host único ou Alias
- Endereço de destino: RFC1918 (segundo Alias)
- Opções extras
- Descrição: Permitir que VPNCLIENT_USA_DEVICES a internet governem através de VPNClient_USA (assumindo que é assim que você nomeou sua interface VPN)
- Mostrar Avançado.
- Opções avançadas
- Gateway: Selecione a interface atribuída à conexão do cliente VPN
- Opções avançadas
Clique em Salvar. Você provavelmente tem que mover (arrastar e soltar) a nova regra antes da que você copiou. A regra que redireciona o tráfego para a VPN deve vir antes da regra padrão. Clique em Salvar e Aplicar alterações.
Opcional: Adicionar uma regra de kill switch
Kill switch é um mecanismo no qual nenhum tráfego é permitido através do seu provedor quando a conexão criptografada [cliente VPN] cai. Isso é importante para os cenários em que é preferível perder conectividade do que arriscar expor dados fora do túnel
Na Opção 1 ou na Opção 2 acima, você tem que editar a regra de firewall no Firewall >> Regras >> LAN e rolar para Opções Avançadas. Lá, mude o campo de tag para vpntraffic.Clique em Salvar e Aplicar alterações.
Neste momento, todo o tráfego será marcado com vpntraffic. Isso será usado para identificar o tráfego proveniente da VPN para que possamos bloqueá-lo na próxima etapa.
Vá para Firewall >> Regras >> Flutuantes e clique em Adicionar (seta para cima) para criar uma nova regra que será aplicada antes de todas as outras relacionadas à sua conexão WAN:
- Editar regra de firewall
- Ação: Bloquear
- Desativado: desmarcado
- Rápido: selecionado
- Interface: WAN
- Direção: Qualquer
- Família endereço: IPv4
- Protocolo: Qualquer
- Origem
- Sel. invertida: desmarcado
- Qualquer
- Destino
- Jogo invertido: desmarcado
- Qualquer
- Opções extras
- Descrição: Kill switch para tráfego de clientes OpenVPN
- Clique em Display Advanced.
- Opções avançadas
- Marcado: vpntraffic
- Ação: Bloquear
Clique em Salvar e Aplicar alterações.
Note que marcamos tráfego com o rótulo vpntraffic na interface LAN e o bloqueamos na interface Flutuante antes que pudesse chegar ao WAN.
Como teste, você pode desconectar a conexão VPN e verificar sua conectividade. Ele deve estar offline até que você reconecte a VPN.
Opcional: Usando os servidores DNS do Surfshark
Como um passo adicional para proteger sua rede, você pode usar o servidor DNS da Surfshark. Para isso, vá para Sistema >> Configuração Geral >> Configurações do Servidor DNS e preencha:
- DNS Server 1: 162.252.172.57
- DNS Hostname: vazio
- Gateway: vazio
- DNS Server 2: 149.154.159.92
- DNS Hostname: vazio
- Gateway: vazio
Clique em Salvar e pronto. Teste seu anonimato visitando http://dnsleaktest.com e divirta-se!
ps: Se o suporte ao DNSSec estiver ativado na configuração DNS Resolver, você poderá ter um falso positivo no relatório de vazamento do DNS. Você pode desativar o suporte ao DNSSec, fazer o teste e reativar depois do teste.