Dúvidas para implementar uma rede VPN
Pessoal, boa noite!
Estou quebrando a cabeça aqui com uma configuração de VPN com o OpenVPN, gostaria de pedir ajuda de vocês, abaixo vou descrever tudo o que foi feito até o momento, se tiver algo errado me mostrem por favor.
Estou configurando para interligar duas empresas de cidades diferentes, ambas utilizam conexão ADSL com IP Dinâmico, sendo assim, criei uma conta no NO-IP e instalei o aplicativo na Matriz, segue abaixo as configurações que foram feitas no servidor Firewall/Proxy de ambas as empresas.
Configurações de IP's da loja matriz
Código :
IP Rede Local: 192.168.0.0/24
Gateway: 192.168.0.1
VPN: 10.0.0.0/16
Configurações de IP's da loja filial
Código :
IP Rede Local: 192.168.1.0/24
Gateway: 192.168.1.1
VPN: 10.1.0.0/16
Foram feitas as seguintes configurações nos servidores da matriz e da filial:
1º Passo: instalação da biblioteca lzo:
download: http://www.oberhumer.com/opensource/...zo-2.04.tar.gz
descompactar:
Código :
# tar -zxvf lzo-2.04.tar.gz
em seguida, dentro do diretório descompactado, foi executado os seguintes comandos:
Código :
# ./configure
# make
# make install
# ldconfig
O processo foi feito com sucesso.
2º Passo: instalação do OpenVPN
download: http://swupdate.openvpn.net/communit...n-2.1.4.tar.gz
descompactar:
Código :
# tar -zxvf openvpn-2.1.4.tar.gz
em seguida, dentro do diretório descompactado, foi executado os seguintes comandos:
Código :
# ./configure
# make
# make install
O processo foi feito com sucesso
Após as instalações acima, deu-se início a configuração da VPN:
Foi criado um diretório com o nome openvpn, dentro do diretório /etc
dentro do diretório, openvpn foi criada a chave de criptografia, com o comando:
Código :
# openvpn --genkey --secret chave.key
Logo após foi criado o arquivo de configuração, com o seguinte conteúdo:
Código :
# Arquivo de Configuração simples (Matriz)
#
proto udp
dev tun
ifconfig 10.0.0.0 10.1.0.0
secret /etc/openvpn/chave.key
port 5900
Todo o procedimento acima feito no servidor da Matriz foi feito também no servidor da Filial, exceto o arquivo de configuração que foi configurado conforme abaixo:
Código :
# Arquivo de Configuração simples (Filial)
#
proto udp
remote matrizac.no-ip.info
dev tun
ifconfig 10.1.0.0 10.0.0.0
secret /etc/openvpn/chave.key
port 5900
Após estas configurações, foi criada uma conta no site do No-IP - Dynamic DNS, Static DNS for Your Dynamic IP e um host com o IP dinâmico da Matriz. Depois feita a instalação do aplicativo NO-IP
no servidor da Matriz, com o endereço 'matrizac.no-ip.info' e iniciado o serviço do NO-IP.
Foi executado o seguinte comando no servidor Matriz:
Código :
# openvpn --config /etc/openvpn/matriz.conf &
e depois o mesmo comando no servidor Filial
Código :
# openvpn --config /etc/openvpn/filial.conf &
Após executar os comandos acima, foram criados em cada servidor uma nova interface 'tun0'
Para finalizar a configuração foram criadas as duas rotas, para a Matriz e Filial, com os seguintes comandos abaixo:
Matriz:
Código :
# route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.1.0.0
Filial:
Código :
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.0.0
Por fim foram acrescentadas algumas linhas nos Firewalls de ambas Empresas:
Matriz:
Código :
iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE
iptables -A FORWARD -i tun0 -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT
Filial:
Código :
iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE
iptables -A FORWARD -i tun0 -s 192.168.1.0/24 -d 192.168.0.0/24 -j ACCEPT
Foram feitas também a liberação da porta 5900 em ambos servidores.
Fazendo a configuração acima, o correto seria a matriz 'enxergar' a filial e vice-versa, mas quando tento fazer o Ping, nenhuma responde.
Esta tudo correto com as configurações ou estou errando em algum lugar?
Re: Dúvidas para implementar uma rede VPN
Ola,
O erro mais comum quando se configura o openvpn eh configura-lo para comunicacao host a host com a opcao:
ifconfig 10.0.0.0 10.1.0.0 ( com esta opcao tem que ter um tunel para cada cliente conectado na rede ) o correto neste caso é usar:
server 10.0.0.0 255.255.255.0
pois isto ira configurar uma rede em comum entre os pontos da vpn, ou seja, um unico tunel para todos os clientes.
Para que os clientes da vpn enxerguem a rede da matriz eh preciso o comando:
push "route 192.168.0.0 255.255.255.0"
Para que o servidor reconheca as redes atras dos clientes eh preciso usar a opcao ccd:
client-config-dir ccd
Bem como dizer as redes dos clientes:
route 192.168.1.0 255.255.255.0
Agora na sua configuracao soh tem um probleminha, para o ccd funcionar, vc tem que usar gerar um arquivo de controle individual para cada cliente, o arquivo que tem extensao .crt, com isto feito, dentro do diretorio ccd, crie um arquivo com o mesmo nome do arquivo .crt usado no cliente com o seguinte conteudo:
iroute 192.168.1.0 255.255.255.0
Por exemplo:
criar chave e crt para o cliente com o nome filial01
e no diretorio ccd, criar um arquivo com o nome filial01
Re: Dúvidas para implementar uma rede VPN
Tambem para o ccd funcionar vc precisa usar certificados tanto no servidor como no cliente, no tutorial do openvpn tem como gerar os certificados, segue abaixo como seria sua configuracao para usar certificados:
### matriz.conf
port 5900
proto udp
dev tun
# Certificados gerados
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.0.0.0 255.255.255.0
push "route 192.168.0.0 255.255.255.0"
client-config-dir ccd
route 192.168.1.0 255.255.255.0
# Neste arquivo serão guardados os IPs dos clientes
# para conectarem com o mesmo IP da proxima vez
ifconfig-pool-persist ipp.txt
client-to-client
# Ative para permitir dois clientes com o mesmo
# certificado - não recomendável
;duplicate-cn
keepalive 10 120
# Compressão, privilégios do cliente
comp-lzo
max-clients 150
user nobody
group nobody
# Logs e etc
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
log-append /var/log/openvpn.log
verb 3
*Obs: nao esquecer que no diretorio ccd tem que ter um arquivo com o nome filial01 com o comando iroute, pois este eh o nome do certificado usado pelo cliente.
### filial.conf
client
dev tun
proto udp
remote matrizac.no-ip.info 5900
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert filial01.crt
key filial01.key
ns-cert-type server
comp-lzo
verb 3
status /var/log/openvpn-status.log
log /var/log/openvpn.log
log-append /var/log/openvpn.log
Obs: nao precisa criar rotas, nem fazer mascaramento neste caso
somente preciso colocar:
echo 1 > /proc/sys/net/ipv4/ip_forward
tanto no servidor como no cliente
Re: Dúvidas para implementar uma rede VPN
Primeiramente obrigado pelas respostas, entendi quase tudo o que o Sr. citou, só estou com dúvida com relação a este 'ccd'. O que exatamente o Sr. quis dizer sobre isso?
Re: Dúvidas para implementar uma rede VPN
CCD vem de:
Client-Config-Dir ccd,
que eh o diretorio onde ficarao os arquivos que indicam as rotas para cada rede conectada atraves dos clientes da vpn.
Por exemplo: vamos dizer que vc em uma cidade tenha 3 filiais ( filial01 - 192.168.1.0/24 , filial02 - 192.168.2.0/24 e filial03 - 192.168.3.0/24 ), e que estas filiais sao conectadas entre si por uma rede wireless e uma delas possua conexao com internet. Neste caso a filial que possui a conexao com a internet vai rodar o cliente da vpn e tera o nome de filial01, o certificado gerado no servidor tera o nome de filial01.crt, no diretorio /etc/openvpn/ccd, deve ter um arquivo como o nome filial01, dentro deste arquivo deve ter os comandos:
iroute 192.168.1.0 255.255.255.0
iroute 192.168.2.0 255.255.255.0
iroute 192.168.3.0 255.255.255.0
pois isto ira indicar ao servidor para rotear para as filiais 02 e 03 a partir da filial 01.
A opcao do ccd, evita ter que usar os comandos abaixo:
Matriz:
Código :
# route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.1.0.0
Filial:
Código :
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.0.0
Por fim foram acrescentadas algumas linhas nos Firewalls de ambas Empresas:
Matriz:
Código :
iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE iptables -A FORWARD -i tun0 -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT
Filial:
Código :
iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE iptables -A FORWARD -i tun0 -s 192.168.1.0/24 -d 192.168.0.0/24 -j ACCEPT
Re: Dúvidas para implementar uma rede VPN
É, realmente não funciona...
Re: Dúvidas para implementar uma rede VPN
Você cita que não é correto usar ifconfig 10.0.0.0 10.1.0.0 só que quando coloco a opção server 10.0.0.0 255.255.255.0 dá erro e não consigo criar a interface tun0 e todos os tutoriais que estou vendo e um livro que eu comprei para auxiliar na criação dessa VPN cita para fazer o ifconfig.
Dessa forma que você me explicou realmente não esta dando certo em meu ambiente.
Antes de mais nada preciso de fazer uma ponta enxergar a outra, para isso tem a necessidade de utilizar certificados?
Re: Dúvidas para implementar uma rede VPN
A diferenca entre a opcao ifconfig e a server, eh que a ifconfig cria um tunel ponto a ponto, a opcao server, cria um tunel multiponto.
Vc soh pode fazer o roteamento entre as redes do servidor e do cliente se usar certificado.
Uma situacao muito util da multiponto e a seguinte:
1 Matriz, 1 Filial, 1 suporte que queira acessar de casa, 1 diretor que viaje mas precisa estar conectado
Sobre os tutoriais, jah vi muitos e principalmente vale a maxima: cada caso é um caso.
O tutorial que uso como base eh este:
OpenVPN Server On CentOS 5.2 | HowtoForge - Linux Howtos and Tutorials
Na secao de documentacao do Openvpn:
Multiplos clientes:
HOWTO
Acessando a rede atras do servidor como a rede atras dos clientes:
HOWTO
Re: Dúvidas para implementar uma rede VPN
Minha situacao:
01 Matriz
01 Cliente ( 9 redes atras deste cliente - centro de Campina Grande/PB )
01 Cliente ( 3 redes atras deste cliente - centro de Natal/RN )
01 Cliente ( 3 redes atras deste cliente - bairro do Alecrim, Natal/RN )
01 Cliente ( 2 redes atras deste cliente - shopping Midway de Natal/RN )
01 Cliente ( 1 rede - shopping na praia de Natal/RN )
01 Cliente ( 3 redes atras deste cliente - shopping Joao Pessoa/PB )
12 Clientes ( Dona da Empresa ( 4 computadores ), 3 Gerentes de Compras , 5 suporte CPD )
Re: Dúvidas para implementar uma rede VPN
amigo, não sei se vc só não citou, ou se não fez, mas em seu relato, não vi o momento que vc enviou a chave do servidor para o cliente.
Re: Dúvidas para implementar uma rede VPN
Citação:
Postado originalmente por
srgnetwork
amigo, não sei se vc só não citou, ou se não fez, mas em seu relato, não vi o momento que vc enviou a chave do servidor para o cliente.
Você se referiu a minha configuração ou a configuração que o colega amaia sugeriu?
Na minha inseri tanto no servidor como no cliente a opção
secret /etc/openvpn/chave.key
Ainda não consegui fazer uma rede se comunicar com a outra.
Re: Dúvidas para implementar uma rede VPN
Citação:
Postado originalmente por
escastilhomg
Você se referiu a minha configuração ou a configuração que o colega amaia sugeriu?
Na minha inseri tanto no servidor como no cliente a opção
secret /etc/openvpn/chave.key
Ainda não consegui fazer uma rede se comunicar com a outra.
Sim, a sua, eu vi vc passando um passo a passo da sua config. quase dá pra montar um tutorial...rs
vc gerou a chave e informou a localização, mas vc enviou uma copia da chave do servidor para o cliente?
Re: Dúvidas para implementar uma rede VPN
Boa tarde,
Gostaria de agradecer a todos que me ajudaram na solução deste problema em especial ao usuário 'amaia' que me ajudou muito particularmente.
RESOLVIDO!
Atenciosamente
Erik Castilho
Re: Dúvidas para implementar uma rede VPN
Como foi resolvido, para que sua duvida seja a solucao de outras pessoas tb.