Carregando...
Sem categoria

OpenVPN + pfSense

É preciso colocar o DNS apontando pro próprio servidor na lista de DNSs dentro da OpenVPN.

Como forçar um DNS pela VPN?

O protocolo do OpenVPN permite que assim que o cliente se conecte, ele receba do servidor um endereço de DNS para usar como padrão, forçado-o a substituir o DNS antigo pelo DNS definido pelo OpenVPN Server.

Por padrão, o cliente OpenVPN do Windows e do Android reescrevem o DNS tranquilamente, mas no Linux isso não funciona!

Para fazer funcionar em Linux, é preciso instalar o resolvconf:

sudo apt install resolvconf

Além disso, é preciso adicionar no arquivo de configuração “.conf”:

#Isso permite que os scripts up e down possam ser executados 
script-security 2 
#Segundo a documentação: 2 -- Allow calling of built-in executables and user-defined scripts 
#Scripts que arrumam o DNS 
up /etc/openvpn/update-resolv-conf 
down /etc/openvpn/update-resolv-conf

O que é a opção Inter-client communication?

Há uma opção na configuração do OpenVPN dizendo “Allow communication between clients connected to this server”. Estando essa opção desativada, as regras de firewall se aplicam para a VPN. Estando desativada, os pacotes dentro da VPN não são lidos pelo pfSense, logo não são filtrados pelo firewall.
https://forum.netgate.com/post/836822

Configurações de Firewall para permitir o tráfego

O pfSense impede por padrão todo o tráfego proveniente da rede WAN, ou seja, se não há nenhuma regra permitindo um certo tráfego, ele é proibido. Se você espera receber conexões provenientes da OpenVPN por ali, é preciso criar regras.

O pfSense cria uma “interface” para todas as conexões dentro da OpenVPN chamada OpenVPN. Lá dentro você define as regras para todas as OpenVPNs criadas. Se você quer segregar regras por VPN individualmente, você pode criar uma interface para cada VPN (Interfaces -> Assignments) e aí conseguirá definir regras para cada uma.

Como logar automaticamente em uma VPN pelo terminal em um Linux?

Abra o arquivo .conf (arquivo com as configurações de conexão da VPN) e localize a linha com auth-user-pass. Adicione ao fim dela o caminho para um arquivo com o login e a senha.

Exemplo de arquivo .conf

auth-user-pass authentication.txt

Exemplo do arquivo de login e senha authentication.txt

meu-login
senha-super-secreta12345

OpenVPN + pfSense + AWS

Usar o pfSense na AWS traz algumas particularidades.

Você precisa desabilitar Source/Destination Check. A AWS automaticamente verifica os ips de origem e destino que chegam e saem da máquina. Como o pfSense pode trabalhar como um roteador, nem sempre o pfSense receberá pacotes com seu ip como destino/origem. Não precisa desabilitar isso para as outras máquinas (por mais que elas recebam pacotes de dentro da VPN, por exemplo).

Permitindo conexão entre VPN e Instancias da AWS

Liberando o firewall

Interface: LAN
Regra: Allow
source: *
destination: (ip/rede do computador ec2)

Interface: OpenVPN
Regra: Allow
Source: (ip/rede do computador ec2)
Destination: *

Criando rotas estáticas

É preciso informar à rede VPC que todos os pacotes para a rede da VPN devem passar pelo pfSense. Voce tem duas opções, escolha uma das duas.

Adicionando rota manualmente no computador

No computador ec2 que poderá acessar a VPN

route add -net (rede OpenVPN) netmask (máscara da rede OpenVPN) gw (ip do pfSense)

Adicionando rota pelo AWS Route Tables

VPC -> Route Tables

Adicione a rota manualmente.

Arquivo de configuração do cliente

Forçando todo o tráfego do computador pela VPN

redirect-gateway def1

Referências

Autenticando password based OpenVPN num Linux via linha de comando
https://serverfault.com/questions/780390/autostart-openvpn-with-username-password-authentication-in-ubuntu

Solucionando problemas de DNS na OpenVPN
http://www.softwarepassion.com/solving-dns-problems-with-openvpn-on-ubuntu-box/
https://stackoverflow.com/questions/47397568/openvpn-register-dns-error-despite-using-last-version

Tutorial OpenVPN da Wiki do ArchLinux
https://wiki.archlinux.org/index.php/OpenVPN

Tutorial OpenVPN da documentação oficial do pfSense
https://docs.netgate.com/pfsense/en/latest/vpn/openvpn/openvpn-remote-access-server.html

Bons tutoriais sobre pfSense + OpenVPN

https://turbofuture.com/computers/How-to-Setup-a-Remote-Access-VPN-Using-pfSense-and-OpenVPN

https://www.samueldowling.com/2018/11/27/how-to-configure-an-openvpn-remote-access-server-in-pfsense/

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *