sábado, 8 de agosto de 2015

Instalar e configurar VPN no Debian (OPENVPN)

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


Nenhum comentário:

Postar um comentário