Arquivo

Arquivo de outubro, 2006

Estata­sticas do site

13, outubro, 2006 Ricardo Franzen Sem comentários

A ta­tulo de curiosidade resolvi colocar aqui as estata­sticas do rebit segundo o Google Analytics. As estata­sticas sao dos últimos 6 dias, pois estou voltando a utilizá-lo depois de um tempo.

Navegadores:
Firefox: 82 visitas; 58,16%
Internet Explorer: 44 visitas; 31.21%
Mozilla: 7 visitas; 4,96%
Konqueror: 5 visitas; 3,55%
Opera: 3 visitas; 2.13%

Sistema Operacional:
Linux: 77 visitas; 54,61%
Windows: 64 visitas; 45,39%

Resoluçao de Tela:
1024×768: 82 visitas; 58,16%
800×600: 23 visitas; 16,31%
1280×1024: 15 visitas; 10,64%
1280×800: 11 visitas; 7,80%
1152×864: 6 visitas; 4,26%
640×480: 2 visitas; 1,42%
1280×768: 1 visitas; 0,71%
1400×1050: 1 visitas; 0,71%

Cores de Tela:
24-bit: 65 visitas; 46,10%
32-bit: 55 visitas; 39,01%
16-bit: 21 visitas; 14,89%

Categories: Pensamento Livre Tags:

Configurando o OpenVPN para múltiplos clientes

6, outubro, 2006 Ricardo Franzen 19 comentários

Muitas vezes precisamos interligar de forma segura diversos pontos que nao estao próximos fisicamente, ou, devido a algum imprevisto acabamos tendo que acessar remotamente e de forma segura os servidores de algum cliente.

Vou explicar aqui como configurar um servidor OpenVPN para aceitar conexões de múltiplos clientes utilizando certificados gerados com o OpenSSL.

Download e Instalaçao do OpenVPN

Aqui temos aquele mamao com açúcar 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 conteúdo do arquivo
$tar -zxvf openvpn-2.0.9.tar.gz
## Isto é só para a organizaçao
#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...
#apt-get install openvpn

Sou usuário do Debian e do Ubuntu, entao por questões de comodidade própria ;) vou prosseguir como se tivesse instalado via apt.

Modelo do arquivo openssl.cnf

Vou assumir que você já possui o OpenSSL instalado.
Você pode alterar ou até mesmo usar o seu próprio 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)
#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
Parametros Diffie Hellman no servidor.
openssl dhparam -out dh1024.pem 1024

Modelo do arquivo servidor.conf

Como o próprio nome diz, este é o arquivo de configuraçao 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 públicas dos clientes.
port 443 #modifiquei a porta padrao do openvpn
proto tcp
dev tun
ca pmg.crt #certificado da unidade certificadora
cert xx.crt #chave pública do cliente
key xx.key #chave privada do cliente
dh dh1024.pem
client-config-dir ccd #criar o diretorio ccd diretorio no /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 máquinas vai este arquivo ?? ;) Claro que é na máquina cliente, no diretorio /etc/openvpn.
Lembrando que no cliente devemos ter a chave publica da unidade certificadora, do servidor e as chaves publica e privada do proprio cliente.
dev tun0
proto tcp
remote 111.111.111.11 443 #endereco IP do servidor
nobind
persist-key
persist-tun
ca xx.crt #certificado do orgao certificador
cert xx.crt #certificado publico do cliente
key xx.key #chave privada do cliente
comp-lzo
verb 3

Com essas configurações podemos iniciar o openvpn e sair conectando os clientes. Os endereços IP serao atribua­dos dinamicamente.
#openvpn --config /etc/openvpn/servidor.conf --daemon