Houve uma campanha publicitária através da internet sobre a vigilância do governo e espionagem. Uma dos melhores formas para proteger a sua privacidade digital é usando uma VPN para acessar a internet.
Embora os locais onde podemos colocar nossa Banana Pi são limitados, uma rede privada virtual também pode ajudar a passar por cima de firewalls em locais remotos ou conectar com segurança a sua rede doméstica de seu trabalho.
OpenVPN é um software opensource que permite a conexão segura a partir de um computador, smartphone, para um servidor. VPN, redes privadas virtuais, podem ser usados para hop sobre firewalls, acessar a internet sem restrições, ou ocultar o seu tráfego por trás de um servidor.
Com o Banana Pi M1, estaremos criando um servidor OpenVPN que irá fornecer o seu com uma VPN pessoal livre.
Uma Banana Pi M1 com cartão SD e Bananian instalado
Ligação à Internet (com cabo)
Port Forwarding no router
Um computador / Smartphone
Todo o processo pode ser realizado com JuiceSSH no Android ao invés de usar um computador.
Fonte do Vídeo: https://www.youtube.com/watch?v=6FoSoC4AA5o
Fazer um servidor OpenVPN é um dos projetos mais difíceis aqui. Trata-se de muita configuração. Não é simplesmente copiar e colar o projeto! Fiz um esboço que mostra as etapas envolvidas.
1 - Preparando-se (atualização, alteração de senhas padrão e instalar OpenVPN)
2 - Gerando chaves (definir o tamanho da chave e gerar chaves criptografadas)
3 - Configuração do lado do servidor para a conexão
4 - Criando perfil .ovpn para uso do lado do cliente
5 - Port Forwarding no router
6 - Teste de Conexão
Primeiro, você vai ter que atualizar seu sistema operacional para ter certeza que está atualizado e não vulnerável a bugs conhecidos.
apt-get update apt-get upgrade |
É altamente recomendável alterar a senha padrão, muitos roteadores foram hackeados porque as pessoas não se preocupam em mudar a senha padrão.
passwd |
Em seguida, vamos instalar o OpenVPN
apt-get install openvpn |
Uma vez o OpenVPN instalado, temos que começar a gerar chaves e modificar as configurações.
Em primeiro lugar, vamos fazer um novo diretório para as chaves.
mkdir /etc/openvpn/easy-rsa/ cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/ |
Então, nós apenas copiamos alguma configuração exemplo para o diretório que será modificado e geramos as chaves.
Podemos continuar editando a configuração do servidor
Eu decidi mudar o tamanho da chave de criptografia de 1024 bits para 2048 bits para segurança extra.
sed -i 's/KEY_SIZE=1024/KEY_SIZE=2048/' /etc/openvpn/easy-rsa/vars |
Agora, mude o diretório easy-rsa para aquele que acabamos de criar
nano /etc/openvpn/easy-rsa/vars |
Altere o diretório theeasy-rsa do `pwd` para
/etc/openvpn/easy-rsa |
Agora podemos começar a gerar as chaves. Precisamos apagar todas as chaves de exemplo e gerar chaves para o novo servidor.
Eu tive problemas no vídeo, mas agora este comando irá ajudá-lo muito! Dá-lhe-á permissão para executar programas na pasta.
chmod -R 777 /etc/openvpn/ cd /etc/openvpn/easy-rsa source ./vars ./clean-all |
Construindo as Chaves
./build-ca |
Uma série de prompts irão aparecer, eu recomendo que você deixe tudo padrão e apenas clique em 'enter'. Se você mudar os padrões, tenha muito cuidado, pois as coisas podem não darem certo.
Construa uma chave do servidor. 'bananapi' é o nome do meu servidor, você pode mudá-lo se quiser.
./build-key-server bananapi |
Gere outra chave:
openvpn --genkey --secret ta.key cd cp ca.key /etc/openvpn/easy-rsa/keys/ta.key |
Crie uma chave privilegiada aleatória, ele vai levar um longo tempo. 10 a 20 minutos.
./build-dh |
Construa uma chave para user1
./build-key-pass user1 |
Você pode mudar "user1" para qualquer nome que quiser, mas lembre-se que estamos criando perfis de usuário.
Quando solicitado, digite uma senha PEM de sua escolha, mas deixe tudo em branco!
Agora, podemos proceder da seguinte forma: configure o servidor, uma vez que estaremos introduzindo linhas a partir do zero, pode ser uma boa idéia para você copiar e colar linhas abaixo:
nano /etc/openvpn/server.conf |
Nano vai abrir um documento em branco, então cole as linhas abaixo nesse documento:
local 192.168.x.xxx #(fill in with local IP of your Banana Pi) dev tun proto tcp port 443 ca /etc/openvpn/easy-rsa/keys/ca.crt cert /etc/openvpn/easy-rsa/keys/Server.crt key /etc/openvpn/easy-rsa/keys/Server.key dh /etc/openvpn/easy-rsa/keys/dh2048.pem server 10.8.0.0 255.255.255.0 ifconfig 10.8.0.1 10.8.0.2 push "route 10.8.0.1 255.255.255.255" push "route 10.8.0.0 255.255.255.0" push "route 192.168.x.xxx 255.255.255.0" #(fill in with Banana Pi IP) push "dhcp-option DNS 192.168.x.x #(fill in with your router IP) push "redirect-gateway def1" client-to-client duplicate-cn keepalive 10 120 tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0 cipher AES-256-CBC comp-lzo persist-key persist-tun status openvpn-status.log verb 3 |
Agora temos que habilitar o encaminhamento ipv4 no Banana Pi Server e modificar as configurações de firewall
nano /etc/sysctl.conf |
Encontre a linha 'descomentar para permitir o encaminhamento de pacotes IPv4 "e excluir teh' # 'no início do script nessa linha.
nano /etc/firewall-openvpn-rules.sh |
Estamos criando um novo arquivo que conterá as configurações. Preencha-o com as configurações abaixo:
#!/bin/bash iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.XX.X |
Nota: a linha vermelha é uma linha de comando.
Agora precisamos definir o arquivo para executar na inicialização
chmod 700 /etc/firewall-openvpn-rules.sh chown root /etc/firewall-Openvpn-rules.sh |
Fizemos o arquivo executável 'firewall-openvpn-rules.sh'
nano /etc/network/interfaces |
Depois de "iface eth0 inet dhcp", travessão e adicione abaixo da linha como a imagem abaixo:
pre-up /etc/firewall-openvpn-rules.sh |
Fizemos o arquivo firewall-openvpn-rules.sh executar automaticamente o caminho mais fácil. Depois, adicionamos a linha:
sh /etc/firewall-openvpn-rules.sh' after 'exit 0' at the end of the document '/etc/rc.local |
Agora é hora de criar um arquivo de configuração para o cliente abrir no Android.
Crie um novo arquivo
nano /etc/openvpn/easy-rsa/keys/user1.ovpn |
Vai abrir um documento em branco, então precisamos colocar o código abaixo:
client dev tun proto tcp remote (public IP of your house) 443 #(443 is the port) resolv-retry infinite persist-key persist-tun mute-replay-warnings ca ca.crt cert user1.crt key user1.key ns-cert-type server cipher AES-256-CBC comp lzo verb3 mute 20 |
Ou para ver o exemplo de configuração original, copie o arquivo conf como user1.ovpn (vermelho é uma linha)
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/user1.ovpn |
Agora use FileZilla para se conectar e baixar arquivos a partir da Banana Pi. Download 'ca.cert'
user1.crt''user1.key'and'user1.opvn |
Depois que o arquivo está no seu PC, faça o upload para o Google Drive para que você possa baixá-lo em seu Android.
Para iniciar e reiniciar o servidor:
service openvpn restart |
Se o servidor não for iniciado, faça o debug com:
grep ovpn /var/log/syslog |
Você já deve estar familiarizado e sabe que o encaminhamento de porta é fácil! Basta ir para a página de controle do seu roteador, digitando o seu endereço IP do roteador. O endereço IP deve ter essa aparência: 192.168.1.1
Mova os arquivos do seu Banana Pi para o seu desktop ou nuvem com FileZilla usando sftp
sob o diretório
/etc/openvpn/easy-rsa/keys/ |
arquivos para copiar:
ca.crt user1.crt user1.key ta.key user1.ovpn |
Faça uma pesquisa no jumping firewall e veja se é um firewall básico, em seguida, defina a porta para 443 e protocolo TCP.
Mas há também packet sniffing firewalls que são mais difíceis de esconder , mas acho que um túnel SSL irá fazer o truque e vou fazer mais pesquisa e experiência com ele.
Agora podemos baixar OpenVPN conectado a partir do Play Store para testar a nossa VPN :)
Importe o arquivo .opvn partir do cartão SD e está pronto!
Fonte: http://projectbananapi.blogspot.com.br/2015/01/cheap-personal-vpn-with-banana-pi.html