Sugiro a você utilizar o Red Hat para isso, na empresa onde trabalho instalei e configurei uma VPN no Red Hat Enterprise
Linux 4 e nunca nos deu problemas. Chega de papo furado e mãos à obra!
Primeiro baixe o pacote
OpenVPN ou utilize o apt-get para isso. No terminal digite:
# apt-get install openvpn
Pode ser que o apt "reclame" de algumas dependências do pacote, se for o caso, responda que sim a pergunta.
Após concluída a instalação, criaremos uma C.A. (Autoridade Certificador), os certificados, chaves e o arquivo de configuração da OpenVPN.
O primeiro passo para nosso servidor se tornar uma C.A. é alterar o arquivo
openssl.cnf, no rhel4 o arquivo encontra-se em /usr/share/ssl/openssl.cnf. Se na sua distro não estiver no mesmo local digite "updatedb" e em seguida "locate openssl.cnf". Altere com seu editor preferido, aqui eu vou utilizar o vim:
# vim /usr/share/ssl/openssl.cnf
E altere as seguintes linhas:
Mais ou menos na linha 37 você encontrará a entrada:
dir = ./demoCA # Where everything is kept
Altere para:
dir = /etc/ssl/ca # Where everything is kept
Depois, mais ou menos na linha 43, altere a entrada:
certificate = $dir/cacert.pem # The CA certificate
Para:
certificate = $dir/ca.crt # The CA certificate
E mais ou menos na linha 46, altere:
private_key = $dir/private/cakey.pem# The private key
Para:
private_key = $dir/private/ca.key # The private key
Mais ou menos na linha 63, altere:
default_days = 365 # how long to certify for
Para:
default_days = 3650 # how long to certify for
Das linhas 73 à 80, altere conforme abaixo.
De:
# For the CA policy
[ policy_match ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
Para:
# For the CA policy
[ policy_match ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = match
commonName = supplied
emailAddress = supplied
Na linha 120, altere:
countryName_default = GB
Para:
countryName_default = BR
Na linha 125, de:
stateOrProvinceName_default = Berkshire
Para:
stateOrProvinceName_default = SC
Na linha 128, altere de:
localityName_default = Newbury
Para:
localityName_default = Florianopolis
Na linha 131, de:
0.organizationName_default = My Company Ltd
Para:
0.organizationName_default = (coloque o nome da sua empresa)
E por último, na linha 138 altere de:
#organizationalUnitName_default =
Para:
organizationalUnitName_default = VPN
Salve o arquivo e saia.
[1] Comentário enviado por
apscherbach em 31/07/2008 - 08:54h:
Cara, se funciona, simples assim, que beleza, heim!! :)
Vou testar logo que possa.
Parabéns!
[2] Comentário enviado por
removido em 31/07/2008 - 11:08h:
Apesar de eu não usar nenhum tipo de vpn o artigo está show.
[3] Comentário enviado por
removido em 31/07/2008 - 15:20h:
Primeiramente parabéns pelo excelente artigo, muito bom mesmo...
mas fiquei com algumas duvidas:
na linha:
push "route (ip do server mail)
server mail???
que mail? qual ip deve ser colocado aqui???
outra duvida foi, porque colocar rotas se você está usando bridge? não entendi o porque das rotas...
[4] Comentário enviado por
grandmaster em 31/07/2008 - 15:39h:
Interessante.
Tb nunca use VPN no linux. Assim que reviver minha máquina que tinha linux em casa testarei isso :D
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br
[5] Comentário enviado por
cristyangiovane em 01/08/2008 - 17:49h:
Parabéns...
Muito bom o artigo.
[6] Comentário enviado por
Ditador Nicastro em 02/08/2008 - 08:20h:
Taylon, onde está push "route (ip do server mail) (mascara do server) (ip do gateway da rede)", é porque eu tinha feito esta configuração para um colega, esqueci de retirar do exemplo, a rota é proque o servidor dele estava com um firewall que apenas deixava o ip da empresa dele passar, por isso criei esta rota, para que todos que quiserem se conectar ao servidor de emal dele primeiro terem que se conectar à vpn., abrass.
[7] Comentário enviado por
fabriciostuff em 13/10/2008 - 13:10h:
Nicastro, estou com umas no cenário onde estou montando vpn com o OpenVPN.
Eu tenho um servidor Firewall, faz o roteamento e DHCP. Instalei e configurei a VPN. Sobre os script de bridge-start e bridge-stop foi os que eu não consegui configurar. Meu servidor tem um endereço de IP válido eth0 (200.xxx.xxx.xxx) e na eth1 possui o endereço de rede interna (192.168.1.254) que serve como gateway. Qual seria a configuração para os arquivos de script bridge-start e bridge-stop? É necessário fazer alguma mudança no arquivo openvpn.conf?
Grato!
[8] Comentário enviado por
Ditador Nicastro em 22/10/2008 - 15:01h:
fabriciostuff, você deve fazer a bridge com a sua placa da rede interna, no arquivo openvpn.conf não vai ser necessário alterar nada, quer dizer se você configurou tudo certinho conforme a tua rede, sendo este gateway interno o gateway para quem se conectar a tua openvpn.
Abrass.
[9] Comentário enviado por
paulistinha em 18/02/2009 - 07:26h:
Ola....
Por favor, veja se consegue me ajudar....
Ao gerar o certificado, no passo:
# openssl ca -gencrl -out crl.pem -config /etc/pki/tls/openssl.cnf
Tenho a seguinte mensagem de erro:
[root@fedora ca]# openssl ca -gencrl -out crl.pem -config /etc/pki/tls/openssl.cnf
Using configuration from /etc/pki/tls/openssl.cnf
/etc/ssl/ca/crlnumber: No such file or directory
error while loading CRL number
4985:error:02001002:system library:fopen:No such file or directory:bss_file.c:352:fopen('/etc/ssl/ca/crlnumber','r')
4985:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
Ocorre que ele nao acha o arquivo "/etc/ssl/ca/crlnumber". Como proceder para que ele seja criado? Está faltando algum passo ou configuracao?
Grato.
[10] Comentário enviado por
robertobrandao em 25/02/2009 - 19:05h:
cara ese seu erro esta ocorrendo que o arquivo /etc/ssl/ca/crlnumber nao existe ate ai você já sabe execute o seguinte comando:
cd /etc/ssl/ca <enter>
agora vamos cria o arquivo e por um conteudo dentro dele
echo 01 > clrmunber
pronto mano agora você pode gerar seu certificado....
[11] Comentário enviado por
andrejales2 em 10/05/2010 - 10:45h:
estou tentando instala um servidor e 2 clientes em uma rede no laboratoria da faculdade.
gostaria de saber se eu fizer todos estes passos consigo configurar o servidor e os clientes,
ou se tem mais alguma coisa que tenho que fazer, pois ja tentei instalar no windows e nao deu certo.
se vc tiver alguma outra informação por favor me passe.
Obrigado.
[12] Comentário enviado por
Ditador Nicastro em 10/09/2010 - 15:47h:
andrejales2
Neste artigo está tudo para configurar servidor e clientes, no windows também dá pra fazer a mesma coisa, eu já fiz a mesma configuração utilizando um servidor openvpn para windows, e os clientes tanto faz se for win ou linux eles conectam sem problemas.
[13] Comentário enviado por
henriquemeira em 09/06/2011 - 17:35h:
Consegui fazer a conexão entre cliente e servidor, mas ao tentar um ping não há resposta.
Servidor: Linux/Ubuntu
Cliente: Windows
Será que tem que mexer em algo relacionado à rotas no cliente?
Grato!
Parabéns, ótimo tutorial.
[14] Comentário enviado por
l.bferreira em 27/01/2012 - 10:09h:
Parabéns pelo post...
estou tentando replicar porém quando "starto" meu openvpn me retorna o seguinte erro:
Fri Jan 27 09:55:51 2012 OpenVPN 2.2.0 i686-linux-gnu [SSL] [LZO2] [EPOLL] [PKC$
Fri Jan 27 09:55:51 2012 NOTE: when bridging your LAN adapter with the TAP adap$
Fri Jan 27 09:55:51 2012 NOTE: your local LAN uses the extremely common subnet $
Fri Jan 27 09:55:51 2012 NOTE: the current --script-security setting may allow $
Fri Jan 27 09:55:51 2012 Diffie-Hellman initialized with 1024 bit key
Fri Jan 27 09:55:51 2012 WARNING: file 'keys/matriz.key' is group or others acc$
Fri Jan 27 09:55:51 2012 TLS-Auth MTU parms [ L:1574 D:138 EF:38 EB:0 ET:0 EL:0$
Fri Jan 27 09:55:51 2012 Socket Buffers: R=[114688->131072] S=[114688->131072]
Fri Jan 27 09:55:51 2012 TUN/TAP device tap0 opened
Fri Jan 27 09:55:51 2012 TUN/TAP TX queue length set to 100
Fri Jan 27 09:55:51 2012 /etc/bridge-start tap0 1500 1574 init
Fri Jan 27 09:55:51 2012 WARNING: Failed running command (--up/--down): could n$
Fri Jan 27 09:55:51 2012 Exiting
quando descomento a chamada de etc//start-bridge não aparece o erro, porém preciso do bridge funcionando.
meu cenário
IP real - 187.35.x.x
rede do servidor vpn - eth1 :172.16.0.1 255.255.254.0
rede cliente - 192.168.1.1
se puder me ajudar fico agradecido
[15] Comentário enviado por
tiagozappa em 15/02/2012 - 10:39h:
Muito show o arquivo, tenho uma dúvida referente a configuração do servidor.
Segue a descrição do meu ambiente.
MATRIZ.
Rede interna 192.168.0.0/24
Ip rede interna do servidor (eth0) 192.168.0.1 255.255.255.0
IP rede internet (eth1) 172.0.0.2 -- é o ip de saída para o ADSL
GW do servidor (eth1) 172.0.0.1 -- é o ip do modem ADSL
Filial
Rede interna 192.168.1.0/24
Ip rede interna do servidor (eth0) 192.168.1.1 255.255.255.0
IP rede internet (eth1) 172.0.0.2 -- é o ip de saída para o ADSL
GW do servidor (eth1) 172.0.0.1 -- é o ip do modem ADSL
Minha dúvida é referente a configuração do servidor.
a opção do server-bridge, deixo assim:
server-bridge 192.168.0.1 255.255.255.0 192.168.0.200 192.168.0.230
Ou estou usando tudo errado, e para usar a opção de serve brigde, eu usaria na matriz e filial a mesma rede (192.168.0.0/24)
Colocando a seguinte configuração:
MATRIZ.
Rede interna 192.168.0.0/24
Ip rede interna do servidor (eth0) 192.168.0.1 255.255.255.0
IP rede internet (eth1) 172.0.0.2 -- é o ip de saída para o ADSL
GW do servidor (eth1) 172.0.0.1 -- é o ip do modem ADSL
Filial
Rede interna 192.168.0.0/24
Ip rede interna do servidor (eth0) 192.168.0.200 255.255.255.0
IP rede internet (eth1) 172.0.0.2 -- é o ip de saída para o ADSL
GW do servidor (eth1) 172.0.0.1 -- é o ip do modem ADSL
E daí usando a opção:
server-bridge 192.168.0.1 255.255.255.0 192.168.0.200 192.168.0.230
(aqui no range, começa pelo ip do primeiro client? ou seja; o ip do servidor da filial?)
Ou seja, eu divido a faixa de ip da rede 192.168.0.0 e deixo tanto matriz, como filial com a mesma faixa de ip, e faço os dois server conversarem com a vpn+bridge, assim, as duas redes conversam????
Deu para entender o que quiz dizer?? qual das duas soluções posso executar??? obrigado.