CRIANDO VPN NO DEBIAN PARA ACESSAR INTERNET COM O IP DO SERVIDOR (PC/ANDROID)
1 - Instalação / Configuração
1.1 - Alterar arquivo /etc/sysctl.conf
1.1.1 - Incluir a linha net.ipv4.ip_forward = 1
1.1.2 - Incluir a linha net.ipv4.ip_forward_use_pmtu = 0
1.1.3 - Salvar arquivo
1.2 - Configurar interface de rede
1.2.1 - do servidor - /etc/network/interfaces
1.2.1.1 - Definir interface que tem acesso a internet
#rede internet
auto eth0
iface eth0 inet static
address 19.324.33.29
netmask 255.255.255.0
gateway 19.324.33.1
broadcast 19.324.33.255
1.2.1.2 - Criar interface de rede local (será necessário para VPN trocar informações
#rede interna
auto eth1
iface eth1 inet static
address 192.168.200.103
netmask 255.255.255.0
gateway 192.168.200.1
broadcast 192.168.200.255
1.2.2 - do cliente - /etc/network/interfaces
1.2.1.1 - Definir interface que tem acesso a internet
auto lo
iface lo inet loopback
#rede interna (pode variar entre eth0, eth1, ...
auto eth1
iface eth1 inet static
address 192.168.220.101
netmask 255.255.255.0
gateway 192.168.220.1
broadcast 192.168.220.255
1.2.3 - Salvar arquivo
1.3 - Instalar OpenVPN e Easy-RSA
1.3.1 - Incluir repositório do OpenVPN
wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg|apt-key add -
1.3.2 - Alterar arquivo /etc/apt-get/sources.list
deb http://swupdate.openvpn.net/apt wheezy main
apt-get update
1.3.3 - Instalar openvpn e easy-rsa
apt-get install openvpn
apt-get install easy-rsa
1.4 - Criar certificados da VPN com Easy-RSA
1.4.1 - Alterar arquivo /etc/openvpn/easy-rsa/vars
nano vars
Alterar as linhas abaixo:
export KEY_COUNTRY="BR"
export KEY_PROVINCE="SP"
export KEY_CITY="SP"
export KEY_ORG="LS"
export KEY_EMAIL="nome@provedor.com"
export KEY_OU="LS"
Salvar arquivo
1.4.2 - Carregar variáveis
source vars
1.4.3 - Criar certificados do servidor
1.4.3.1 - Comando na pasta /etc/openvpn/easy-rsa: ./build-ca
Preencher campos abaixo:
Common Name (Matriz)
Name (Matriz)
Observe que os arquivos abaixo foram criados na pasta keys:
- ca.crt
- ca.key
- index.txt
- serial
1.4.3.2 - Comando na pasta /etc/openvpn/easy-rsa: source build-key-server server
Preencher campos abaixo:
Common Name (Matriz)
Name (Matriz)
Na opção password, não precisa preencher. Aperta Enter.
Nas perguntas, usa Y.
Observe que os arquivos abaixo foram criados na pasta keys:
- server.crt
- server.csr
- server.key
1.4.3.3 - Comando na pasta /etc/openvpn/easy-rsa: source build-dh
Aguarda criação.
Observe que os arquivos abaixo foram criados na pasta keys:
- dh2048.pem
1.4.4 - Criar certificados do cliente/filial
1.4.4.1 - Comando na pasta /etc/openvpn/easy-rsa: source build-key filial02
Preencher campos abaixo:
Common Name (filial02)
Name (filial02)
Na opção password, não precisa preencher. Aperta Enter.
Nas perguntas, usa Y.
Observe que os arquivos abaixo foram criados na pasta keys:
- filial02.crt
- filial02.csr
- filial02.key
Envia esses arquivos para a máquina cliente/filial
- tar -czvf filial02.tar.gz filial02.crt filial02.key filial02.csr ca.crt
- scp filial02.tar.gz nome@servidor.filial02:/tmp (ou usa FTP)
- Carrega os arquivos na pasta do openvpn
1.5 - Criar arquivo de configuração do servidor (/eta/openvpn/server.conf)
cd /etc/openvpn
nano server.conf
###########################
### server.conf #############
#############################
##Protocolo de conexão
#proto tcp / proto udp
proto udp
# Porta do servico
port 2266
#a vpn roda em rodas as interfaces
multihome
# Drive da interface
dev tun0
# Atribui enderecos dinamicos a varios clientes, ips para o túnel VPN (nao alterar)
server 10.8.1.0 255.255.255.0
#ip do server da vpn (nao alterar)
route-gateway 10.8.1.1
# dados da rede interna configurada no /etc/network/interfaces
push "route 192.168.200.0 255.255.255.0"
#apos iniciar o vpn tem um delay de 2s para incluir as rotas acima
push "route-delay 2"
#DNS que sera usado para resolver nomes
push "dhcp-option DNS 8.8.8.8"
#servidor proxy
#push "dhcp-option WINS 192.168.0.1"
# Configuracoes adicionais no cliente
#push "ping 10"
#push "ping-restart 60"
#filial - cliente - rede interna do cliente configurada no /etc/network/interfaces do cliente/filial
route 192.168.220.0 255.255.255.0
# Compactacao lib LZO
comp-lzo
#a cada 10s manda um sinal e se nao receber retorno, reinicia a vpn
keepalive 10 30
#caminho dos arquivos ccd (sera necessario para manter a comunicacao entra cliente/servidor
client-config-dir ccd
#aceitar varias na conexao
float
persist-tun
persist-key
#tenta manter o mesmo ip da vpn
ifconfig-pool-persist ipp.txt
#user nobody
#group nogroup
#max clientes
max-clients 100
#o ip sera baseado no server
topology subnet
#Quando algo nao funcionar, ativa o log para ve onde esta o problema
log-append /var/log/openvpn.log
#Nivel debug
verb 3
#limitar ate x msg iguais
mute 5
# Servidor TLS
tls-server
# Chaves necessarias
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
#estatisticas da conexao
status /var/log/openvpn.stats
#Formato de saida do status
status-version 2
##############################
1.6 - Configuração do cliente (1.6.1 - por terminal ou 1.6.2 - interface gráfica)
1.6.1 - Criar arquivo de configuração do cliente (/eta/openvpn/cliente01.conf)
##########################
#### cliente01.conf ##########
###########################
#modo cliente
client
#destino para conexao (ip da interface do servidor que acessa a internet)
remote 19.324.33.29
#porta
port 2266
#log da vpn
log-append /var/log/openvpn-server.log
#chaves renegociadas a x segundos
reneg-sec 86400
#interface
dev tun0
#saltar entre remotes (servidores vpn)
#remote-randon
ca /etc/openvpn/ca.crt
cert /etc/openvpn/filial02.crt
key /etc/openvpn/filial02.key
#compressao dos arquivos
comp-lzo yes
#protocolo
proto udp
#TLS cliente
tls-client
#aceitar varias conexoes
persist-key
persist-tun
#nivel debug
verb 3
#limitar x msgs iguais
mute 20
#delay de 2 s para adicionar rotas apos vpn estabilizar
route-delay 2
#user nobody
#group nogroup
##############################
1.6.2 - Configuração por interface gráfica do Ubuntu
Tela do Ubuntu de configuracao
Clica no simbolo da Wifi, Conexoes VPN, Adicionar, OpenVpn.
1.7 - Configurando CCD
Cria a pasta ccd no /etc/openvpn do servidor
Cria o arquivo filial02 na pasta ccd.
O nome do arquivo tem que ser igual ao cliente.
Ex: Se o arquivo de conf do cliente for filial02.conf, o arq criado na pasta ccd devera ser filial02.
Insere as informações abaixo no arquivo ccd/filial02:
#rota interna
#Refere-se a rede interna do cliente.
iroute 192.168.220.0 255.255.255.0
#permite definir um ip fixo para a vpn
#ifconfig-push 10.8.0.70 255.255.255.0
Vale salientar que a informação abaixo deve estar no arquivo de configuração do servidor:
client-config-dir ccd
Após esse procedimento, deverá ser possível ping da rede interna do server parao cliente.
Exemplo:
Servidor para cliente (para ve o ip da rede interna, use ifconfig no cliente)
Use o comando no servidor: ping 192.168.220.101
Cliente para servidor (para ve o ip da rede interna, use ifconfig no servidor)
Use o comando no cliente: ping 192.168.200.103
1.8 - Configurar iptables para direcionar o trafego que vem da VPN para a interface de internet, permitindo o acesso do cliente à internet usando o IP do servidor.
iptables -L -t nat -v
iptables -t nat -A POSTROUTING -s
10.8.1.0/24 -o
eth0 -j MASQUERADE
O ip 10.8.1.0 refere ao ip definido na server.conf, na linha `server`.
A interface eth0 refere-se a interface do servidor que tem acesso a internet.
https://translate.googleusercontent.com/translate_c?depth=1&hl=pt-BR&prev=search&rurl=translate.google.com.br&sl=en&u=https://openvpn.net/index.php/open-source/documentation/howto.html&usg=ALkJrhggFHDrR35RABbL-IXtgS4cDoAFhQ#examples
https://forums.openvpn.net/topic12170.html