CentOS 5x + OpenVPN (Revisão 2011)

Escrito por Bruno Mesquita Santana;
Atualizado por Angelo de Barros Delphini;

Pode até parecer piada, mas não é... Já instalei outras vezes o OpenVPN em servidores, mas na última vez, simplesmente não funcionava! Claro que eu tentei pelos pacotes padrões do Yum, depois compilei, etc, etc, etc... Simplesmente não conseguia fazer o treco rodar... Então ontem, enquanto fazia um outro trampo (que servirá para outro artigo no futuro), pesquisei muito na net e, finalmente, consegui instalar o OpenVPN 2.0.9 no CentOS 5.5.
O mais intrigante é que existem muitos manuais na net, mas em todos, do jeito como estão, não funcionaram. Bem, deixa de papo e vamos lá:
1 - Vamos ver se o seu CentOS esta preparado para suportar dev/tun:
# ls -al /dev/net/tun
Se o CentOS suporta, você recebera uma reposta como esta:
# ls -al /dev/net/tun
crw------- 1 root root 10, 200 Mar 1 09:35 /dev/net/tun


2 - Então também devemos verificar se o dispositivo /dev/tun foi habilitado ou não:
# cat /dev/net/tun
Você obterá resultados iguais a este abaixo como resposta do seu CentOS se o dispositivo estiver habilitado.
# cat /dev/net/tun
cat: /dev/net/tun: Descritor de arquivo em mal estado


3 - Se não tiver habilitado, deverá instalar dispositivo dev/tun:
Este comando ira instalar as dependências necessarias:
# yum -y install gcc make zlib-devel pam-devel openssl-devel rpm-build autoconf.noarch nano openssl lzo2

4 - Instale os pacotes existentes no repositório do CentOS:
# yum -y update device-mapper glibc
# yum -y install openssl openssl-devel pam pam-devel
5 - Faça o download dos pacotes "extras":
# wget -c ftp://ftp.pbone.net/mirror/dag.wieers.com/packages/lzo2/lzo2-2.02-3.el5.rf.x86_64.rpm
# wget -c ftp://ftp.pbone.net/mirror/dag.wieers.com/packages/lzo2/lzo2-devel-2.02-3.el5.rf.x86_64.rpm
# wget -c ftp://ftp.pbone.net/mirror/ftp.freshrpms.net/pub/freshrpms/pub/dag/redhat/el5/en/x86_64/dag/RPMS/lzo-1.08-4.2.el5.rf.x86_64.rpm
# wget -c ftp://ftp.icm.edu.pl/vol/rzm1/linux-dag/dries/redhat/el5/en/x86_64/RPMS.dries/openvpn-2.0.9-1.el5.rf.x86_64.rpm
6 - Instale os pacotes (inclusive o OpenVPN):
# rpm -Uvh lzo2-2.02-3.el5.rf.x86_64.rpm lzo2-devel-2.02-3.el5.rf.x86_64.rpm openvpn-2.0.9-1.el5.rf.x86_64.rpm
Repare que eu uso "rpm -Uvh ...", por se já houverem pacotes instalados de versões anteriores, este comando rodará atualizando os pacotes.
7 - Vá ao diretório de configurações do OpenVPN e copie os arquivos necessários:
# cd /etc/openvpn
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/openssl.cnf .
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/whichopensslcnf .
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/pkitool .
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/vars .
8 - Mude as permissões dos arquivos:
# chmod 744 *
9 - Edite o arquivo de variáveis, alterando os dados abaixo de acordo com sua conveniencia:
# vi /etc/openvpn/vars
export KEY_COUNTRY="US" --> BR
export KEY_PROVINCE="CA" --> DF
export KEY_CITY="SanFrancisco" --> Brasilia
export KEY_ORG="Fort-Funston" --> MinhaEmpresa
export KEY_EMAIL="me@myhost.mydomain" --> ti@minhaempresa.com.br
10 - Copie os executáveis:
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/clean-all .
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/build-ca .
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/build-dh .
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/build-key-server .
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/build-key .
11 - Mude as permissões dos executáveis:
# chmod 750 /etc/openvpn/clean-all /etc/openvpn/build-ca /etc/openvpn/build-dh /etc/openvpn/build-key-server /etc/openvpn/build-key
12 - Carregue as variáveis para a sessão:
# source /etc/openvpn/./vars
13 - Limpe qualquer chave pre-existente (isso apagará tudo que existir no diretório /etc/openvpn/keys):
# /etc/openvpn/clean-all
14 - Crie o arquivo dh1024.pem, que conterá os parâmetros Diffie-Hellman, de 1024 bits. Ele servirá para que as máquinas troquem chaves seguras num canal inseguro, para depois trocar as chaves simétricas.
# /etc/openvpn/build-dh
15 - Crie um certificado para o Servidor:
# /etc/openvpn/build-ca
16 - Crie uma identidade digital para o servidor:
# /etc/openvpn/build-key-server server
17 - Crie uma identidade digital para os clientes com o comando abaixo, onde "cliente1" é o nome do cliente que se está criando:
# /etc/openvpn/build-key cliente1
18 - Crie um arquivo de configuração para o servidor:
# E porta que o servidor escutara
local 192.168.0.254
port 1194

# E o protocolo de comunicao
proto udp

# E a interface virtual (de rede)
dev tun
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450

#---- Seccion de llaves -----
# Especifica a localizao do arquivo da Autoridade Certificadora (.ca)
ca /etc/openvpn/keys/ca.crt

# Especifica a localizao do arquivo de identidade do servidor (.crt)
cert /etc/openvpn/keys/server.crt

# Especifica a localizao do arquivo de chave de identidade do servidor (.key)
key /etc/openvpn/keys/server.key

# Especifica a localizao do arquivo que conteras parametros Diffie-Hellman (.pem)
dh /etc/openvpn/keys/dh1024.pem

#----------------------------
server 192.168.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-options DNS 208.67.222.222"
push "dhcp-options DNS 208.67.220.220"

# Arquivo onde se encontrarao os dados de conexao dos clientes
ifconfig-pool-persist /var/log/openvpn/ipp.txt

# Especifica que os pacotes serao enviados a cada 10 segundos e que a conexao e finalizada em 120
keepalive 10 120

# Espevifica que os dados tramitarao compactados
comp-lzo

# Garante que chaves sejam persistentes.
persist-key

# Permite que os dispositivos TUN/TAP sejam persistentes
persist-tun

# Onde se localizarao os arquivo de log
status /var/log/openvpn/status.log

# Nivel de informacao para o log.
verb 3

19 - Crie os arquivos de Log:
# touch /var/log/openvpn/status.log
# touch /etc/openvpn/ipp.txt
20 - Inicie o serviço e configure-o para inicializar junto com o sistema:
# service openvpn start
Iniciando openvpn: RTNETLINK answers: File exists
[ OK ]
# chkconfig openvpn on
21 - Crie o arquivo de conexão do cliente:
# vi cliente1.ovpn
client
dev tun
proto udp
remote DOMINIO_OU_IPdoSERVIDOR 1194
float
resolv-retry infinite
nobind
persist-key
persist-tun
#------ SECCION DE LLAVES --------
ca ca.crt
cert cliente1.crt
key cliente1.key
ns-cert-type server
#---------------------------------
comp-lzo
verb 3
#route 192.168.0.0 255.255.255.0
#dhcp-option DNS 192.168.0.1
#dhcp-option WINS 192.168.26.1
Este arquivo "cliente1.ovpn" somados aos outros arquivos que foram criados (cliente1.crt, cliente1.key), quando executou o comando "./build-key cliente1" e, ainda, o arquivo ca.crt (que são todos criados no diretório /etc/openvpn/keys) devem ser entregues à pessoa que se conectará via OpenVPN Client.
OpenVPN possui também uma versão Windows, que está disponível no link abaixo:

Esta versão inclui um instalador gráfico e funciona em todas as versões do Windows a partir do Windows 2000. Ela inclui também o driver tun/tap, que é instalado automaticamente, você precisa apenas prestar atenção nas mensagens de instalação. Em um certo ponto, será exibida uma mensagem avisando que o driver TAP/Win32 não passou pelo processo de certificação de compatibilidade com o Windows. Responda "Continuar assim mesmo" para efetuar a instalação, do contrário o OpenVPN não funcionará.(Fonte: http://www.hardware.com.br).
O processo de certificação dos drivers para o Windows é um processo caro e demorado, onde os fabricantes de componentes submetem os drivers de dispositivo à Microsoft para que eles sejam certificados. Este é um processo que não está ao alcance de projetos independentes, como o OpenVPN, daí a exibição da mensagem. De qualquer forma, isso não significa que o software seja instável ou inseguro, muito pelo contrário. Se a certificação da Microsoft fosse um indicador de qualidade, softwares como o IIS e o IE não teriam tantas falhas e brechas de segurança.(Fonte: http://www.hardware.com.br).

Até a próxima,
Bruno.
Fonte: http://www.bruno.eng.br
Share:

0 comentários:

Aviso importante!

Não realizamos upload dos ficheiros, apenas reportamos os links que encontramos na própria Internet. Assim, toda e qualquer responsabilidade não caberá ao administrador deste blog. Este blog não tem como objetivo reproduzir as obras, apenas divulgar o que foi encontrado na Internet. Os filmes aqui informados são de cunho científico assim como as séries, as quais são produzidas para exibição em TV aberta. Uma vez que a série não tenha sido ripada de um DVD, ou seja, a mesma foi gravada do sinal de TV aberta com o respectivo selo da emissora. Não é caracterizado crime, pois a mesma foi produzida para exibição pública. Será crime quando for realizado venda desta série ou filme. Quem efetuar download de qualquer ficheiro deste blog, que não tenha seu conteúdo de base Open Source (Código Aberto), ou FOSS (Free Open Source Software), deverá estar ciente que terá 24 horas para eliminar os ficheiros que baixou. Após assistir e gostar do filme ou série, adquira o original via lojas especializadas. Se algo contido no blog lhe causa dano ou prejuízo, entre em contato que iremos retirar o ficheiro ou post o mais rápido possível. Se encontrou algum post que considere de sua autoria, favor enviar e-mail para suporte@delphini.com.br informando o post e comprovando sua veracidade. Muito obrigado a todos que fizeram deste blog um sucesso.

Creative CommonsEsta obra está licenciada sob uma Licença Creative Commons. Você pode copiar, distribuir, exibir, executar, desde que seja dado crédito ao autor original (Citando nome do autor, data, local e link de onde tirou o texto). Você não pode fazer uso comercial desta obra.Você não pode criar obras derivadas.

Google+ Followers

Nossos 10 Posts Mais Populares