clemylton
(usa Slackware)
Enviado em 08/10/2008 - 18:53h
Turorial de configuracao da OpenVPN no OpenBSD retirado do OpenBSD-BR
____________________________________________
http://www.openbsd-br.org/?q=node/51
____________________________________________
____________________________________________
Introdução
Uma Rede Privada Virtual (Virtual Private Network - VPN) é uma rede de comunicações privada normalmente utilizada por uma empresa ou um conjunto de empresas e/ou instituições, construída em cima de uma rede de comunicações pública (como por exemplo, a Internet). O tráfego de dados é levado pela rede pública utilizando protocolos padrão, não necessariamente seguros.
VPNs seguras usam protocolos de criptografia por tunelamento que fornecem a confidencialidade, autenticação e integridade necessárias para garantir a privacidade das comunicações requeridas. Quando adequadamente implementados, estes protocolos podem assegurar comunicações seguras através de redes inseguras. Neste artigo será apresentado a facilidade com que podemos criar essas VPN. utilizando OpenBSD e OpenVPN em vários sistemas Operacionais distintos. O OpenVPN se destaca pelo seu suporte a conexões atrás de NAT ou Firewall entre outros.
Instalando
Bom no OpenVPN vamos partir do principio que o seu OpenBSD esteja instalado e devidamente atualizado:
cd /usr/ports/net/openvpn
make install clean
Configurando
Primeiro vamos criar uma pasta chamada OPENVPN em /usr/local/etc
mkdir -p /usr/local/etc/openvpn
Depois vamos copiar pasta easy-rsa que fica localizada em /usr/local/share/examples/openvpn/easy-rsa/ para /usr/loca/etc/openvpn
cp /usr/local/share/examples/openvpn/easy-rsa/ /usr/loca/etc/openvpn
ls /usr/local/etc/openvpn/
easy-rsa
Com a copia feita agora é hora de criar o arquivo openvpn.conf do servidor que tambem ficara em /usr/local/etc/openvpn:
touch openvpn.conf
vi openvpn.conf
# Interface da VPN
dev tun0
# Ouvir em que endereço (se estiver comentado ouvira em todos )
local 200.xx.xx.xx
# Ouvir em que porta
port 1194
# Protocolo TCP ou UDP
proto udp
# Rede e Classe de Rede entre Clientes e Servidor
server 10.10.10.0 255.255.255.0
# Arquivo aonde fica armazenado os ips dos clientes
ifconfig-pool-persist ipp.txt
# Certificados para a autenticação da VPN
ca /usr/local/etc/openvpn/easy-rsa/keys/ca.crt
cert /usr/local/etc/openvpn/easy-rsa/keys/srv-openvpn-ticobsd.crt
key /usr/local/etc/openvpn/easy-rsa/keys/srv-openvpn-ticobsd.key
dh /usr/local/etc/openvpn/easy-rsa/keys/dh1024.pem
# As rotas que o cliente deve pegar
push "route 10.10.10.0 255.255.255.0" # Rede do Tunnel
push "route 172.16.4.0 255.255.255.0" # Rede interna que o Cliente pode ver.
# Usar compressão na VPN
comp-lzo
# Reestabelece a conexão se por ventura a mesma falhar
ping-timer-rem
persist-tun
persist-key
# Rodar o OpenVPN como Daemon mas com privilégios de usuario nobody
group nobody
daemon
# não repetir muitas vezes o mesmo erro
mute 20
#Log e etc....
status /var/log/openvpn.log
log /var/log/openvpn.log
log-append /var/log/openvpn.log
verb 6
# Powere by Flavio Marcelo De Souza TiCoBsD
http://www.ticobsd.com.br
Configurando server (Gerando Chaves Matriz -> Filial )
Bom, para quem não usa o shell SH, vai ter que usar pelo menos nesta parte para usar os scripts, pois os mesmos foram feitos para o SH e necessitam da shell ativa, para criar variáveis e coisas afins.
sh
Vamos editar algumas variáveis contidos no arquivo vars.
vi vars
As variáveis que nos interessa estão no final do arquivo e são as seguintes:
export KEY_COUNTRY=BR -> Pais;
export KEY_PROVINCE=PR -> Estado;
export KEY_CITY=Cianorte -> Cidade;
export KEY_ORG="Team TicoBSD" -> Organização, empresa;
export KEY_EMAIL="flavio@ticobsd.com.br"
Com o Procedimento acima evitamos ficar fazendo o mesmo procedimento varias veses.
caregando as variaveis:
. ./vars
./clean-all
Criando a CA, nesta parte será feita perguntas referentes as variáveis que editamos anteriormente e outras como “Organizational Unit Name” = comentário referente a empresa
“Common Name” = FQDN da maquina ex: filial-01.ticobsd.com.br:
./build-ca
Criar chaves do Servidor, nesta parte será feito as mesmas perguntas do comando anterior mas adicionando mais 2 variáveis as mesmas não precisam necessariamente de informação:
./build-key-server srv-vpn-ticobsd
Criando as chaves do(s) cliente(s), neste caso criamos apenas 1, mas nada impede depois de você crie outras chaves, apenas deve diferenciar a variável “Common Name” de cada chave, para evitar problemas.
“filial-01” é o nome que sera dado para a chave criada, altere conforme o seu ambiente.
./build-key filial-01
Gerando parâmetros Diffie Hellman para o OpenVPN:
./build-dh
Feito todo este procedimento, podemos voltar ao nosso shell de preferência:
return
Configurando Cliente
No cliente tbm temos que ter praticamente a mesma situação porém um pouco direfente.
Criando em /usr/local/etc o diretório openvpn
mkdir -p /usr/local/etc/openvpn
no cliente iremos somente criar um arquivo chamado openvpn.conf e colocar as chaves dentro do mesmo.
touch openvpn.conf
vi openvpn.conf
# Modo
client
# Ip dos Servidores
remote xx.xx.xx.xx 1194
# Interface , Protocolo
dev tun
proto udp
comp-lzo
# Chaves
ca chaves/ca.crt
cert chaves/filial-01.crt
key chaves/filial-01.key
group nobody
daemon
verb 3
mute-replay-warnings
mute 20
# Log
status /var/log/openvpn.log
log /var/log/openvpn.log
log-append /var/log/openvpn.log
# Powere by Flavio Marcelo De Souza TiCo -
http://www.ticobsd.com.br
Configurando cliente Windows
Se temos do outro lado uma maquina com Windows, precisaremos baixar o OpenVPN"para windows no seguinte endereço:
http://openvpn.net/download.html
Feita a instalação, vamos ao Windows Explorer (ctrl+e), e navegamos até a pasta C:\Arquivos de programas\OpenVPN\config. Lá iremos criar um arquivo chamado openvpn.ovpn e preencheremos ele com o seguinte conteúdo:
client
remote ipdoservidorvpn 1194
dev tun
comp-lzo
ca ca.crt
cert filial-01.crt
key filial-01.key
group nobody
verb 3
mute-replay-warnings
mute 20
Criando arquivos de log
mkdir -p /var/log/openvpn
touch /var/log/openvpn/openvpn.log
vi /etc/syslog.conf e adicionar as linhas abaixo:
!openvpn
*.* /var/log/openvpn.log
Criando interface
echo "up" > /etc/hostname.tun0
sh /etc/netstart
Levantando OpenVPN:
/usr/local/sbin/openvpn --cd /usr/local/etc/openvpn/ --daemon --config openvpn.conf
Pronto ! OpenVPN Iniciado
Conferindo:
netstat -an | grep 1194
root openvpn 739 5 udp4 200.xx.xx.xx:1194 *:*
ow ainda com:
tail -f /var/log/openvpn.log
Thu Jun 28 15:38:02 2007 /sbin/ifconfig tun0 create
Thu Jun 28 15:38:02 2007 NOTE: Tried to delete pre-existing tun/tap instance -- No Problem if failure
Thu Jun 28 15:38:02 2007 /sbin/ifconfig tun0 10.10.10.1 10.10.10.2 mtu 1500 netmask 255.255.255.255 up
Thu Jun 28 15:38:02 2007 TUN/TAP device /dev/tun0 opened
add net 172.16.3.0: gateway 10.10.10.2
Thu Jun 28 15:38:03 2007 GID set to nobody
Thu Jun 28 15:38:03 2007 UDPv4 link local (bound): ipdoserver:1194
Thu Jun 28 15:38:03 2007 UDPv4 link remote: [undef]
Thu Jun 28 15:38:03 2007 Initialization Sequence Completed
tail: /var/log/openvpn.log has been truncated, resetting.
OpenVPN CLIENT LIST
Updated,Thu Jun 28 15:38:13 2007
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
GLOBAL STATS
Max bcast/mcast queue length,0
END
Conferindo com ifconfig
ifconfig tun0
tun0: flags=8051 mtu 1500
inet 11.11.11.1 --> 11.11.11.2 netmask 0xffffffff
Opened by PID 730
Flávio Marcelo de Souza