Você está na página 1de 5

Configurando o OpenVPN para mltiplos clientes [Artigo]

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10317

Configurando o OpenVPN para mltiplos clientes


Autor: Ricardo Franzen <rfranzen at gmail.com> Data: 07/08/2009 Introduo, download e instalao do OpenVPN Este artigo foi originalmente publicado em meu blog pessoal www.rfranzen.com.br. Muitas vezes precisamos interligar de forma segura diversos pontos que no esto prximos fisicamente, ou, devido a algum imprevisto, acabamos tendo que acessar remotamente e de forma segura os servidores de algum cliente. Aqui temos aquele mamo com acar que a grande maioria sabe de cor e salteado. Download do OpenVPN: # wget http://openvpn.net/release/openvpn-2.0.9.tar.gz Descompactar o contedo do arquivo: # tar -zxvf openvpn-2.0.9.tar.gz Isto s para a organizao: # mv openvpn-2.0.9/ /usr/src/ Compilar e pronto: # cd /usr/src/openvpn-2.0.9 # ./configure --prefix=/usr/local/openvpn # make && make install Ou ainda mais simples que tudo isso (acima)... # apt-get install openvpn Sou usurio do Debian e do Ubuntu, ento por questes de comodidade ;) vou prosseguir como se tivesse instalado via apt.

Modelo do arquivo openssl.cnf Vou assumir que voc j possui o OpenSSL instalado.

1 de 5

03/06/2013 19:24

Configurando o OpenVPN para mltiplos clientes [Artigo]

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10317

Voc pode alterar ou at mesmo usar o seu prprio openssl.cnf, estou fornecendo este pra deixar tudo bem completo. =) Geralmente este arquivo encontra-se em /etc/ssl/openssl.cnf. # # OpenSSL example configuration file. # This is mostly being used for generation of certificate requests. # RANDFILE = /dev/arandom [ca] default_ca = CA_default [CA_default] dir = /etc/openvpn certificate = $dir/xx.crt private_key = $dir/xx.key serial = $dir/serial database = $dir/index.txt new_certs_dir = $dir/ default_md = md5 policy = policy_match default_days = 3500 [policy_match] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional ####################################### [ req ] default_bits = 1024 default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes [ req_distinguished_name ] countryName = Country Name (2 letter code) #countryName_default = AU countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) #stateOrProvinceName_default = Some-State localityName = Locality Name (eg, city) 0.organizationName = Organization Name (eg, company) #0.organizationName_default = Internet Widgits Pty Ltd # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = CryptSoft Pty Ltd organizationalUnitName = Organizational Unit Name (eg, section)

2 de 5

03/06/2013 19:24

Configurando o OpenVPN para mltiplos clientes [Artigo]

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10317

#organizationalUnitName_default = commonName = Common Name (eg, fully qualified host name) commonName_max = 64 emailAddress = Email Address emailAddress_max = 64 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ x509v3_extensions ] nsCaRevocationUrl = http://www.cryptsoft.com/ca-crl.pem nsComment = "This is a comment" # under ASN.1, the 0 bit would be encoded as 80 nsCertType = 0x40 #nsBaseUrl #nsRevocationUrl #nsRenewalUrl #nsCaPolicyUrl #nsSslServerName #nsCertSequence #nsCertExt #nsDataType

Gerando os certificados Certificado da entidade certificadora (apenas um): # openssl req -nodes -new -x509 -keyout my-ca.key -out my-ca.crt -days 3650 Certificado do cliente (um para cada cliente): # openssl req -nodes -new -keyout xx.key -out xx.csr # openssl ca -out xx.crt -in xx.csr Parmetros Diffie Hellman no servidor: # openssl dhparam -out dh1024.pem 1024 Outra alternativa utilizar o easy-rsa (recomendado para quando for necessrio gerar vrios certificados).

Modelo do arquivo servidor.conf


Como o prprio nome diz, este o arquivo de configurao do servidor. Este arquivo deve ficar localizado em /etc/openvpn. Lembrando que no servidor devemos ter os certificados da unidade certificadora, do servidor e as chaves

3 de 5

03/06/2013 19:24

Configurando o OpenVPN para mltiplos clientes [Artigo]

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10317

pblicas dos clientes. port 443 #modifiquei a porta padro do openvpn proto tcp dev tun ca pmg.crt #certificado da unidade certificadora cert xx.crt #chave pblica do cliente key xx.key #chave privada do cliente dh dh1024.pem client-config-dir ccd #criar o diretrio "ccd" dentro de /etc/openvpn route 10.0.1.0 255.255.255.0 server 10.0.1.0 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 comp-lzo persist-key persist-tun status openvpn-status.log verb 3

Modelo do arquivo cliente.conf


Hum... em qual das mquinas vai este arquivo? ;) Claro que na mquina cliente, no diretrio /etc/openvpn. Lembrando que no cliente devemos ter a chave pblica da unidade certificadora, do servidor e as chaves pblica e privada do prprio cliente. dev tun0 proto tcp remote 111.111.111.11 443 #endereo IP do servidor nobind persist-key persist-tun ca xx.crt #certificado do rgo certificador cert xx.crt #certificado pblico do cliente key xx.key #chave privada do cliente comp-lzo verb 3 Com essas configuraes podemos iniciar o openvpn e sair conectando os clientes. Os endereos IP sero atribuados dinamicamente. #openvpn --config /etc/openvpn/servidor.conf --daemon

Concluso
Podemos concluir que o OpenVPN um excelente software para interligar dois ou mais pontos com

4 de 5

03/06/2013 19:24

Configurando o OpenVPN para mltiplos clientes [Artigo]

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10317

segurana atravs da internet. Com ele no necessrio deixar portas de SSH ou TS abertas em seu firewall. Quem necessita de acesso remoto pode receber um certificado e, com o OpenVPN, pode acessar os servios da rede da empresa como se estivesse localmente. Com a criao de algumas rotas possvel fazer com que as filiais possam se "enxergar" e trocar informaes entre si. Links: OpenVPN (official) Easy-RSA documentation

http://www.vivaolinux.com.br/artigo/Configurando-o-OpenVPN-para-multiplos-clientes Voltar para o site

5 de 5

03/06/2013 19:24

Você também pode gostar