Anonim

Por que usar uma VPN para acessar sua casa

Links Rápidos

  • Por que usar uma VPN para acessar sua casa
  • Configurar o Pi
    • Instale o Raspbian
  • Configurar o OpenVPN
    • Autoridade de Certificação
    • Faça algumas chaves
    • Configuração do servidor
    • Iniciar o servidor
  • Configuração do cliente
    • Configuração do Cliente
  • Encaminhamento de porta
  • Conectar-se ao cliente
  • Pensamentos finais

Há muitas razões pelas quais você deseja acessar sua rede doméstica remotamente, e a melhor maneira de fazer isso é com um servidor VPN. Na verdade, alguns roteadores permitem configurar um servidor VPN diretamente dentro do roteador, mas em muitos casos, você precisará configurar um.

Um Raspberry Pi é uma ótima maneira de conseguir isso. Eles não precisam de muita energia para serem executados e têm energia suficiente para executar um servidor VPN. Você pode configurar um próximo ao seu roteador e basicamente esquecê-lo.

Quando você tem acesso à sua rede doméstica remotamente, pode acessar seus arquivos de qualquer lugar. Você pode executar os computadores domésticos remotamente. Você pode até usar a conexão VPN da sua casa na estrada. Uma configuração como essa permite que seu telefone, tablet ou laptop atue como se estivesse em casa de qualquer lugar.

Configurar o Pi

Antes de começar a configurar a VPN, você precisará configurar o Raspberry Pi. É melhor configurar o Pi com um gabinete e um cartão de memória de tamanho decente, 16 GB deve ser mais do que suficiente. Se possível, conecte seu Pi ao seu roteador com um cabo Ethernet. Isso minimizará qualquer atraso na rede.

Instale o Raspbian

O melhor sistema operacional para usar no seu Pi é o Raspbian. É a escolha padrão oferecida pela fundação Raspberry Pi e é baseada no Debian, uma das versões Linux mais seguras e estáveis ​​disponíveis.

Vá para a página de download do Rasbian e pegue a versão mais recente. Você pode usar a versão “Lite” aqui, porque na verdade não precisa de uma área de trabalho gráfica.

Enquanto faz o download, obtenha a versão mais recente do Etcher para o seu sistema operacional. Após a conclusão do download, extraia a imagem Raspbian. Em seguida, abra o Etcher. Selecione a imagem Raspbian de onde você a extraiu. Selecione seu cartão SD (insira-o primeiro). Por fim, escreva a imagem no cartão.

Deixe o cartão SD no seu computador quando terminar. Abra um gerenciador de arquivos e navegue até o cartão. Você deve ver algumas partições diferentes. Procure a partição "boot". É aquele com um arquivo "kernel.img". Crie um arquivo de texto vazio na partição "boot" e chame-o de "ssh" sem extensão de arquivo.

Você pode finalmente conectar seu Pi. Certifique-se de conectá-lo por último. Você não precisará de uma tela, teclado ou mouse. Você acessará remotamente o Raspberry Pi pela sua rede.

Dê ao Pi alguns minutos para configurar-se. Em seguida, abra um navegador da web e navegue até a tela de gerenciamento do seu roteador. Encontre o Raspberry Pi e anote seu endereço IP.

Seja no Windows, Linux ou Mac, abra o OpenSSH. Conecte-se ao Raspberry Pi com SSH.

$ ssh

Obviamente, use o endereço IP real do Pi. O nome de usuário é sempre pi e a senha é framboesa.

Configurar o OpenVPN

O OpenVPN não é exatamente simples de configurar como servidor. A boa notícia é que você só precisa fazê-lo uma vez. Portanto, antes de se aprofundar, verifique se o Raspbian está completamente atualizado.

$ sudo apt update $ sudo apt upgrade

Após o término da atualização, você pode instalar o OpenVPN e o utilitário de certificado necessário.

$ sudo apt instala openvpn easy-rsa

Autoridade de Certificação

Para autenticar seus dispositivos quando eles tentam se conectar ao servidor, você precisa configurar uma autoridade de certificação para criar chaves de assinatura. Essas chaves garantirão que apenas seus dispositivos possam se conectar à sua rede doméstica.

Primeiro, crie um diretório para seus certificados. Mover para esse diretório.

$ sudo make-cadir / etc / openvpn / certs $ cd / etc / openvpn / certs

Procure arquivos de configuração do OpenSSL. Em seguida, vincule o mais recente ao openssl.cnf.

$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf

Na mesma pasta "certs" existe um arquivo chamado "vars". Abra esse arquivo com o seu editor de texto. Nano é o padrão, mas fique à vontade para instalar o Vim, se você estiver mais confortável com ele.

Encontre a variável KEY_SIZE primeiro. É definido como 2048 por padrão. Altere para 4096.

exportar KEY_SIZE = 4096

O bloco principal com o qual você precisa lidar estabelece informações sobre sua autoridade de certificação. Ajuda se essas informações forem precisas, mas tudo o que você conseguir lembrar é bom.

exportar KEY_COUNTRY = "US" exportar KEY_PROVINCE = "CA" exportar KEY_CITY = "SanFrancisco" exportar KEY_ORG = "Fort-Funston" exportar KEY_EMAIL = "" exportar KEY_OU = "MyOrganizationalUnit" exportar KEY_NAME = "HomeVPN"

Quando você tiver tudo, salve e saia.

O pacote Easy-RSA que você instalou anteriormente contém muitos scripts que ajudam a configurar tudo o que você precisa. Você só precisa executá-los. Comece adicionando o arquivo "vars" como fonte. Isso carregará todas as variáveis ​​que você acabou de definir.

$ sudo source ./vars

Em seguida, limpe as chaves. Você não possui nenhum, portanto, não se preocupe com a mensagem informando que suas chaves serão excluídas.

$ sudo ./clean-install

Por fim, construa sua autoridade de certificação. Você já definiu os padrões, para poder aceitar os padrões apresentados. Lembre-se de definir uma senha forte e responda “yes” às duas últimas perguntas, seguindo a senha.

$ sudo ./build-ca

Faça algumas chaves

Você passou por todo esse problema para configurar uma autoridade de certificação para assinar as chaves. Agora, é hora de fazer alguns. Comece criando a chave do seu servidor.

servidor $ sudo ./build-key-server

Em seguida, construa o PEM Diffie-Hellman. É o que o OpenVPN usa para proteger suas conexões de clientes com o servidor.

$ sudo openssl dhparam 4096> /etc/openvpn/dh4096.pem

A última chave que você precisa a partir de agora é chamada de chave HMAC. O OpenVPN usa essa chave para assinar cada pacote individual de informações trocadas entre o cliente e o servidor. Isso ajuda a impedir certos tipos de ataques na conexão.

$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key

Configuração do servidor

Você tem as chaves. A próxima parte da configuração do OpenVPN é a própria configuração do servidor. Felizmente, não há muito o que você precisa fazer aqui. O Debian fornece uma configuração básica que você pode usar para começar. Portanto, comece obtendo esse arquivo de configuração.

$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz> /etc/openvpn/server.conf

Use seu editor de texto novamente para abrir o arquivo /etc/openvpn/server.conf. As primeiras coisas que você precisa encontrar são os arquivos ca, cert e key. Você precisa configurá-los para que correspondam aos locais reais dos arquivos que você criou, todos em / etc / openvpn / certs / keys.

ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # Este arquivo deve ser mantido em segredo

Encontre a configuração dh e altere-a para corresponder ao .pem Diffie-Hellman que você criou.

dh dh4096.pem

Defina o caminho para sua chave HMAC também.

tls-auth /etc/openvpn/certs/keys/ta.key 0

Encontre a cifra e verifique se ela corresponde ao exemplo abaixo.

cifra AES-256-CBC

As próximas duas opções estão lá, mas são comentadas com um;. Remova os pontos e vírgulas na frente de cada opção para habilitá-los.

push "redirecionamento-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220"

Procure as opções de usuário e grupo. Descomente-os e altere o usuário para "openvpn".

usuário openvpn group nogroup

Finalmente, essas duas últimas linhas não estão na configuração padrão. Você precisará adicioná-los no final do arquivo.

Defina o resumo da autenticação para especificar uma criptografia mais forte para autenticação do usuário.

# Autenticação Digest auth SHA512

Em seguida, limite os códigos que o OpenVPN pode usar para apenas os mais fortes. Isso ajuda a limitar possíveis ataques a cifras fracas.

# Cifras de limite tls-cifra TLS-DHE-RSA-com-AES-256-GCM-SHA384: TLS-DHE-RSA-COM-AES-128-GCM-SHA256: TLS-DHE-RSA-COM-AES-256- CBC-SHA: TLS-DHE-RSA-COM-CAMÉLIA-256-CBC-SHA: TLS-DHE-RSA-COM-AES-128-CBC-SHA: TLS-DHE-RSA-COM-CAMÉLIA-128-CBC- SHA

Isso é tudo para configuração. Salve o arquivo e saia.

Iniciar o servidor

Antes de iniciar o servidor, você precisa criar o usuário openvpn que você especificou.

$ sudo adduser --system --shell / usr / sbin / nologin --no-create-home openvpn

É um usuário especial apenas para executar o OpenVPN, e não fará mais nada.

Agora, inicie o servidor.

$ sudo systemctl start openvpn $ sudo systemctl start

Verifique se os dois estão em execução

$ sudo systemctl status openvpn * .service

Se tudo parecer bom, ative-os na inicialização.

$ sudo systemctl enable openvpn $ sudo systemctl enable

Configuração do cliente

Seu servidor está agora configurado e funcionando. Em seguida, você precisa definir a configuração do cliente. Essa é a configuração que você usará para conectar seus dispositivos ao seu servidor. Retorne à pasta certs e prepare-se para criar as chaves do cliente. Você pode optar por criar chaves separadas para cada cliente ou uma chave para todos os clientes. Para uso doméstico, uma chave deve estar bem.

$ cd / etc / openvpn / certs $ sudo source ./vars $ sudo ./build-key cliente

O processo é quase idêntico ao do servidor, portanto, siga o mesmo procedimento.

Configuração do Cliente

A configuração para clientes é muito semelhante à do servidor. Novamente, você tem um modelo pré-fabricado para basear sua configuração. Você só precisa modificá-lo para corresponder ao servidor.

Mude para o diretório do cliente. Em seguida, descompacte a configuração de amostra.

$ cd / etc / openvpn / client $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn

Abra o arquivo client.ovpn com seu editor de texto. Em seguida, encontre a opção remota. Supondo que você ainda não esteja usando uma VPN, o Google pesquisa "Qual é o meu IP". Pegue o endereço exibido e defina o endereço IP remoto. Deixe o número da porta.

remote 107.150.28.83 1194 #Isso ironicamente é uma VPN

Mude os certificados para refletir os que você criou, exatamente como você fez com o servidor.

ca ca.crt cert client.crt chave client.key

Encontre as opções do usuário e remova o comentário. Não há problema em administrar os clientes como ninguém.

usuário ninguém grupo nogroup

Remova o comentário da opção tls-auth para HMAC.

tls-auth ta.key 1

Em seguida, procure a opção de cifra e verifique se ela corresponde ao servidor.

cifra AES-256-CBC

Em seguida, basta adicionar as restrições de digestão e criptografia de autenticação na parte inferior do arquivo.

# Authentication Digest auth SHA512 # Restrições de cifra tls-cifra TLS-DHE-RSA-com-AES-256-GCM-SHA384: TLS-DHE-RSA-com-AES-128-GCM-SHA256: TLS-DHE-RSA-WITH -AES-256-CBC-SHA: TLS-DHE-RSA-COM-CAMÉLIA-256-CBC-SHA: TLS-DHE-RSA-COM-AES-128-CBC-SHA: TLS-DHE-RSA-COM-CAMÉLIA -128-CBC-SHA

Quando tudo parecer correto, salve o arquivo e saia. Use tar para empacotar a configuração e os certificados, para que você possa enviá-los ao cliente.

$ sudo tar cJf /etc/openvpn/clients/client.tar.xz -C / etc / openvpn / certs / keys ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn

Transfira esse pacote para o cliente da maneira que você escolher. SFTP, FTP e uma unidade USB são ótimas opções.

Encaminhamento de porta

Para que tudo isso funcione, você precisa configurar seu roteador para encaminhar o tráfego VPN de entrada para o Pi. Se você já estiver usando uma VPN, verifique se não está se conectando na mesma porta. Se estiver, altere a porta nas configurações do seu cliente e servidor.

Conecte-se à interface da web do seu roteador digitando o endereço IP no seu navegador.

Todo roteador é diferente. Mesmo assim, todos eles devem ter alguma forma dessa funcionalidade. Encontre-o no seu roteador.

A configuração é basicamente a mesma em todos os roteadores. Digite as portas inicial e final. Eles devem ser iguais um ao outro e aquele que você definiu nas suas configurações. Em seguida, para o endereço IP, defina-o como o IP do seu Raspberry Pi. Salve suas alterações.

Conectar-se ao cliente

Cada cliente é diferente, então não há uma solução universal. Se você estiver no Windows, precisará do cliente Windows OpenVPN .

No Android, você pode abrir seu tarball e transferir as chaves para o telefone. Em seguida, instale o aplicativo OpenVPN. Abra o aplicativo e conecte as informações do seu arquivo de configuração. Depois selecione suas teclas.

No Linux, você precisa instalar o OpenVPN como fez no servidor.

$ sudo apt instala openvpn

Em seguida, mude para / etc / openvpn e descompacte o pacote que você enviou.

$ cd / etc / openvpn $ sudo tar xJf /path/to/client.tar.xz

Renomeie o arquivo do cliente.

$ sudo mv client.ovpn client.conf

Não inicie o cliente ainda. Isso irá falhar. Você precisa habilitar o encaminhamento de porta no seu roteador primeiro.

Pensamentos finais

Agora você deve ter uma configuração de trabalho. Seu cliente se conectará diretamente através do seu roteador ao Pi. A partir daí, você pode compartilhar e conectar-se através da sua rede virtual, desde que todos os dispositivos estejam conectados à VPN. Como não há limite, você sempre pode conectar todos os seus computadores à VPN Pi.

Transforme um raspberry pi em um vpn para acessar sua rede de qualquer lugar