Ubuntu 8.04 LTS + OpenVPn
Oi amigos.Tenho uma duvida referente ao OpenVpn.
Eu instalei o UbuntuServer 8.04 LTS, instalei o Openvpn e tambem o Openssl.
Configurei o arquivo servidor.conf do openvpn no UbuntuServer, ele ficou assim:
proto tcp-server
port 5901
dev tap
ifconfig 192.168.4.1 255.255.255.0
tls-server
dh /etc/openvpn/dh.pem
key /etc/openvpn/servidor.key
ca /etc/openvpn/my-ca.crt
cert /etc/openvpn/servidor.crt
Lembrando que criei as chaves e os certificado com os seguintes passos:
Esses dois arquivos foram salvos na pasta de destino dos certificados e das chaves, esse destino eu defini no arquivo: /etc/ssl/openssl.cnf:
# touch index.txt
# echo 01 > serial
Esses dois arquivos que foram criados são necessários para o funcionamento do Openssl.
Com esse comando eu criei a Autoridade Certificadora:
# openssl req -nodes -new -x509 -keyout ca.key -out ca.crt -days 730
Com esse comando eu criei o arquivo responsável pela troca de chaves:
# openssl dhparam -out dh.pem
Com esse comando eu criei a chave do servidor:
# opessl req -nodes -new -keyout servidor.key -out servidor.csr
Com esse comando eu assinei e criei o certificado do servidor:
# openssl ca -out servidor.crt -in servidor.csr
Repeti os passo acima para a criação das chaves clientes e assinaturas dos certificados clientes:
# opessl req -nodes -new -keyout cliente1.key -out cliente1.csr
# openssl ca -out cliente1.crt -in cliente1.csr
# opessl req -nodes -new -keyout cliente2.key -out cliente2.csr
# openssl ca -out cliente2.crt -in cliente2.csr
Criei no Linux e levei pro WindowsXpSp2 os seguintes arquivos, e as suas respectivas chaves:
cliente1.ovpn:
proto tcp-client
remote 192.168.1.107
port 5901
dev tap
ifconfig 192.168.4.2 255.255.255.0
tls-client
key "c:\\arquiv~1\\openvpn\\bin\\cliente1.key"
ca "c:\\arquiv~1\\openvpn\\bin\\ca.crt"
cert "c:\\arquiv~1\\openvpn\\bin\\cliente1.crt"
cliente2.ovpn:
proto tcp-client
remote 192.168.1.107
port 5901
dev tap
ifconfig 192.168.4.3 255.255.255.0
tls-client
key "c:\\arquiv~1\\openvpn\\bin\\cliente2.key"
ca "c:\\arquiv~1\\openvpn\\bin\\ca.crt"
cert "c:\\arquiv~1\\openvpn\\bin\\cliente2.crt"
Detalhes importantes:
Eu estou em um ambiente de teste, estou usando 3 micros de uma rede local para isso, todos estão no mesmo roteador:
Micro servidor: ip real 192.168.1.107 Ubuntu+OpenVpn
Micro cliente1: ip real 192.168.1.104 WinXpSp2
Micro cliente2: ip real 192.168.1.103 WinXPSp2
Coloquei o openvpn em daemon:
# openvpn --config /etc/openvpn/servidor.conf --daemon
O problema que vem ocorrendo é o seguinte, eu consigo conectar um cliente windows, porém quando eu coloco para conectar o segundo, o primeiro que estava conectado acaba caindo. Consigo pingar a maquina conectada ao servidor e vice-e-versa.
Gostaria de saber se faltou algum parâmetro ou se cometi algum outro erro, e também se é possível um único arquivo de configuração aceitar mais de uma conexão cliente ou se preciso de algum outro programa que me dê essa possibilidade.
Obrigado desde já pela ajuda.
Refazendo as configurações do servidor
Alterei as configurações do servidor.
O novo arquivo ficou assim:
dev tap
proto tcp-server
port 5901
tls-auth /etc/openvpn/chave.tlskey
local 192.168.1.107
server 192.168.4.120 255.255.255.0
ifconfig-pool-persist ipp.txt
dh /etc/openvpn/dh.pem
ca /etc/openvpn/ca.crt
cert /etc/openvpn/servidor.crt
key /etc/openvpn/servidor.key
keepalive 10 120
client-config-dir /etc/openvpn/ccd
route 192.168.4.0 255.255.255.0
Apos feitas as alterações o servidor sequer funciona.
# /etc/init.d/openvpn restart
# *Stopping virutal private network daemon.
# *Starting virtual private network daemon.
# *servidor (FAILED)
Criei a pasta ccd no diretorio /etc/openvpn, nele eu salvei dois arquivos com o mesmo nome dos arquivos de configuração do cliente, neles coloquei o conteudo:
cliente.ovpn:
ifconfig-push 192.168.4.2 192.168.4.3
cliente2.ovpn:
ifconfig-push 192.168.4.5 192.168.4.6
Criei o arquivo ipp.txt porem não coloquei nenhum conteúdo.
Criei o arquivo chave.tlskey com o comando:
#openvpn --genkey --secret chave.tlskey
Gostaria de saber se faltou alguma coisa.
Eu tenho mesmo que usar o parametro route, uma vez que estou no mesmo roteador?
Quais ip eu tenho que colocar nos parametros "server" , "local" e "route" ; não entendi direito quais ip ei teria que colocar.
Acredito ser possivel montar um servidor vpn multicliente com apenas uma porta de acesso, por que senão teriamos que fazer varios redirecionamentos no roteador, quando eu estiver em redes diferentes, uma para cada porta.
Obrigado pelas dicas.