CentOS 5x + OpenVPN (Revisão 2011)
Escrito por Bruno Mesquita Santana;
Atualizado por Angelo de Barros Delphini;
4 - Instale os pacotes existentes no repositório do CentOS:
5 - Faça o download dos pacotes "extras":
6 - Instale os pacotes (inclusive o OpenVPN):
8 - Mude as permissões dos arquivos:
9 - Edite o arquivo de variáveis, alterando os dados abaixo de acordo com sua conveniencia:
10 - Copie os executáveis:
11 - Mude as permissões dos executáveis:
12 - Carregue as variáveis para a sessão:
13 - Limpe qualquer chave pre-existente (isso apagará tudo que existir no diretório /etc/openvpn/keys):
15 - Crie um certificado para o Servidor:
16 - Crie uma identidade digital para o servidor:
17 - Crie uma identidade digital para os clientes com o comando abaixo, onde "cliente1" é o nome do cliente que se está criando:
18 - Crie um arquivo de configuração para o servidor:
19 - Crie os arquivos de Log:
20 - Inicie o serviço e configure-o para inicializar junto com o sistema:
21 - Crie o arquivo de conexão do cliente:
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).
Até a próxima,
Bruno.
Fonte: http://www.bruno.eng.br
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 |
# 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 |
# 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 . |
# chmod 744 * |
# 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 |
# 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 . |
# chmod 750 /etc/openvpn/clean-all /etc/openvpn/build-ca /etc/openvpn/build-dh /etc/openvpn/build-key-server /etc/openvpn/build-key |
# source /etc/openvpn/./vars |
# /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 |
# /etc/openvpn/build-ca |
# /etc/openvpn/build-key-server server |
# /etc/openvpn/build-key cliente1 |
# 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 |
# touch /var/log/openvpn/status.log # touch /etc/openvpn/ipp.txt |
# service openvpn start Iniciando openvpn: RTNETLINK answers: File exists [ OK ] # chkconfig openvpn on |
# 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
Deixe um comentário