VPN no Linux Ubuntu/Debian com OpenVPN - Multiusuários
Esse é um exemplo totalmente prático para implementação de uma segurança a mais para
qualquer tipo de rede, usando o OpenVPN como uma solução simples, segura e um benefício
a mais para interligação de redes distantes, sendo estas, localizadas na internet.
Quando iniciei meu primeiro projeto de VPN (uns 2 anos atrás), me deparei com algumas
ferramentas disponíveis para atender tal serviço. Como as coisas sempre aparecem e tem que
ser executadas de última hora, resolvi sem muito planejamento e estudo utilizar a ferramenta
OpenVPN.
Esse artigo tem como objetivo mostrar de forma rápida e simples a configuração de uma VPN
baseada em Linux utilizando o OpenVPN como ferramenta, sendo que este é um software
estável, simples de configurar, além de ser um projeto que está sempre em desenvolvimento.
Utilizaremos como ferramentas os aplicativos OpenVPN, para gerenciamento da rede virtual, tanto para os Servidores e Cliente, o OpenSSL para gerar os certificados necessários para a nossa segurança e para aqueles que têm um link de internet com IP dinâmico.
Vamos criar uma pasta para realizar o download do aplicativo LZO (biblioteca de compressão de dados).
# mkdir apps
# cd apps
Vamos realizar o download do LZO:
# wget http://www.winlinuxtecnologia.com/downloads/lzo-2.06.tar.gz
Vamos agora descompactar e instalar o LZO:
# tar -zxvf lzo-2.06.tar.gz
# cd lzo-2.06
# ./configure
# make
# make install
Bom instalado o LZO em seu Linux, agora vamos a instalação e configuração do OpenVPN com OpenSSL:
# apt-get install openvpn openssl
Copiar para o diretório /etc/openvpn os scripts do openvpn para facilitar nossas vidas, no Debian
encontramos estes scripts no diretório /usr/share/doc/openvpn/examples/easy-rsa/2.0/ copiamos todo o
conteúdo deste diretório para /etc/openvpn/easy-rsa/.
# mkdir /etc/openvpn/easy-rsa
# cp -rp /usr/share/doc/openvpn/examples/easy-rsa/2.0/. /etc/openvpn/easy-rsa/
Editamos o arquivo vars, no final deste arquivo alteramos os seguintes campos:
# vi /etc/openvpn/easy-rsa/vars
Para sua empresa podemos utilizar:
export KEY_COUNTRY="SEUPAIS"
export KEY_PROVINCE="SEUESTADO"
export KEY_CITY="SUACIDADE"
export KEY_ORG="Sua Empresa"
export KEY_EMAIL="email@dominio.com.br"
Obs.: Por padrão, os certificados criados, são configurados para expirar em 3650 dias, caso queira diminuir
este período para algum cliente, antes de gerar as chaves editamos no arquivo vars e alteramos o
parâmetro "export KEY_EXPIRE=3650" e no local de 3650 colocamos o valor que acharmos necessário, após essa alteração precisamos executar "source vars" para que sejam carregadas as variáveis editadas no arquivo vars.
Após editarmos o arquivo vars, precisamos carregar as variáveis editas, no diretório /etc/openvpn/easy-rsa/ executamos na linha de comando:
# source vars
Criamos o diretório keys dentro de /etc/openvpn/easy-rsa, onde será criada todos os certificados:
# mkdir /etc/openvpn/easy-rsa/keys
Caso este diretório já exista e você queira apagar todas as informações contidas nele, você pode executar na linha de comando:
# /etc/openvpn/easy-rsa/./clean-all
ATENÇÃO: Este script clean-all só deve ser executado uma vez, a não ser que você queira limpar todas as chaves e certificados criados do servidor e usuários da sua VPN para configurar tudo novamente.
Vamos agora gerar o certificado raiz, no diretório /etc/openvpn/easy-rsa encontramos o script build-ca,
executamos:
# /etc/openvpn/easy-rsa/./build-ca
Ele pedirá as seguintes informações:
Generating a 1024 bit RSA private key
...................++++++
.....................++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated into your certificate
request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [SEUPAIS]:
State or Province Name (full name) [SEUESTADO]:
Locality Name (eg, city) [SUACIDADE]:
Organization Name (eg, company) [SUAEMPRESA]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address [email@dominio.com.br]:
Podemos observar que ele sugere em alguns campos as variáveis que editamos no arquivo vars, caso isso não aconteça e porque você esqueceu de executar o comando source vars ou não editou o arquivo vars adicionando suas informações.
Podemos observar que no diretório /etc/openvpn/easy-rsa/keys encontramos os arquivos:
ca.crt
ca.key
index.txt
serial
Agora geramos o certificado do servidor, muita atenção agora, precisamos executar o script buildkey-
server mais um nome qualquer como referência do servidor, este nome será informado quando o script
perguntar:
# /etc/openvpn/easy-rsa/./build-key-server nomeescolhido
Country Name (2 letter code) [SEUPAIS]:
State or Province Name (full name) [SEUESTADO]:
Locality Name (eg, city) [SUACIDADE]:
Organization Name (eg, company) [SUAEMPRESA]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [nomeescolhido]: nomeescolhido
Depois você terá a opção de digitar uma senha que será solicitada toda vez que o usuário conectar à VPN, eu deixei em branco:
A challenge password []:
Finalizando o script será perguntado se você quer inscrever este certificado, você pressionará "y" para as duas solicitações:
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Da mesma forma que geramos o certificado do servidor agora precisamos gerar o certificado para os
usuários da VPN, também precisamos definir um common name para os certificados dos usuários. Para os certificados dos usuários usamos o script build-key:
# /etc/openvpn/easy-rsa/./build-key usuariodavpn
Country Name (2 letter code) [SEUPAIS]:
State or Province Name (full name) [SEUESTADO]:
Locality Name (eg, city) [SUACIDADE]:
Organization Name (eg, company) [SUAEMPRESA]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []: usuariodavpn
Neste script também serão solicitados os campos:
A challenge password []:
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Eu deixei o campo de senha zerado.
Obs.: Toda vez que você precisar gerar um novo certificado é preciso executar o comando source vars no diretório /etc/openvpn/easy-rsa mesmo não tendo alterado as opções do arquivo vars.
ATENÇÃO: Não execute o comando clean-all caso não queira criar todos os certificados novamente.
Para reforçar a segurança e permitir a troca de chaves entre o servidor e os clientes no momento da
conexão, executamos o script build-dh sem utilizar parâmetros com o script.
# /etc/openvpn/easy-rsa/./build-dh
Criamos uma assinatura secreta como chave para o servidor executando o comando:
# openvpn --genkey --secret chave.key
Com este comando geramos a chave chave.key no diretório corrente e não no padrão /etc/openvpn/easyrsa/ keys.
Após criada a chave podemos copiá-la para o diretório /etc/openvpn/easy-rsa/keys para manter um padrão de diretórios utilizados.
Por padrão, os scripts executados acima, geram as chaves e certificados necessários para o servidor e o cliente no diretório /etc/openvpn/easy-rsa/keys.
Criamos o arquivo de configuração do servidor no diretório /etc/openvpn/ com o nome padrão server.conf (você pode utilizar o nome que quiser, assim facilita a administração) com os seguintes parâmetros:
# vim /etc/openvpn/server.conf
# ----------------------------------------------------------------------
# PROTOCOLO DE CONEXAO
# ----------------------------------------------------------------------
proto tcp
# ----------------------------------------------------------------------
# PORTA DA VPN
# ----------------------------------------------------------------------
port 1194
# ----------------------------------------------------------------------
# DRIVER DA INTERFACE
# ----------------------------------------------------------------------
dev tun
# ----------------------------------------------------------------------
# ATRIBUI ENDERECOS DE IP DHCP PARA USUARIOS DA VPN
# ----------------------------------------------------------------------
server 192.168.100.0 255.255.255.0
# ----------------------------------------------------------------------
# ADICIONANDO RODAS AOS USUARIO PARA REDE LOCAL
# ----------------------------------------------------------------------
push "route 192.168.0.0 255.255.255.0"
push "dhcp-option DNS 192.168.0.1"
push "dhcp-option WINS 192.168.0.1"
# ----------------------------------------------------------------------
# CONFIGURACOES ADICIONAIS PARA USUARIO
# ----------------------------------------------------------------------
push "ping 10"
push "ping-restart 60"
# ----------------------------------------------------------------------
# ROTAS DO SERVIDOR
# ----------------------------------------------------------------------
route 192.168.100.0 255.255.255.0
# ----------------------------------------------------------------------
# COMPACTACAO LIB LZO
# ----------------------------------------------------------------------
comp-lzo
keepalive 10 120
float max-clients 10
persist-key
persist-tun
log-append /var/log/openvpn.log
verb 6
# ----------------------------------------------------------------------
# SERVIDOR TLS
# ----------------------------------------------------------------------
tls-server
# ----------------------------------------------------------------------
# CHAVES NECESSARIAS PARA CONEXAO VPN
# ----------------------------------------------------------------------
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/nomeescolhido.crt
key /etc/openvpn/easy-rsa/keys/nomeescolhido.key
# ----------------------------------------------------------------------
# CHAVE SECRETA PARA ACESSO AO SERVIDOR
# ----------------------------------------------------------------------
tls-auth /etc/openvpn/easy-rsa/keys/chave.key
status /var/log/openvpn.stats
Reiniciamos o serviço OpenVPN:
# /etc/init.d/openvpn restart
Dicas de Firewall Iptables:
iptables -t filter -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -t filter -A FORWARD -p udp -s 192.168.0.0/24 --dport 1194 -j ACCEPT
iptables -t filter -A FORWARD -p udp -d 192.168.0.0/24 --sport 1194 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 10.0.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -d 192.168.0.0/24 -s 10.0.0.0/24 -j ACCEPT
iptables -t nat -I POSTROUTING -s 10.0.0.0/24 -o eth1 -j MASQUERADE
Fique a vontade para restringir os acessos da maneira que convier. As regras apresentadas acima permitirão aos usuários da VPN acesso livre aos sistemas de sua empresa.
Para observar se a porta utilizada no arquivo acima está ativa podemos digitar na linha de comando:
# netstat -nat | grep 1194
O resultado provavelmente será:
tcp 0 0 0.0.0.0:1194 0.0.0.0:*
Se você digitar na linha de comando ifconfig provavelmente terá informações do dispositivo virtual
configurado no arquivos acima.
# ifconfig
Terá algo do tipo:
tun0
Link encap:NAo Especificado
Endereço de HW 00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet end.: 192.168.100.1 P-a-P:102.168.100.2 Masc:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metrica:1
RX packets:19802 errors:0 dropped:0 overruns:0 frame:0
TX packets:19433 errors:0 dropped:0 overruns:0 carrier:0
colisÃμes:0 txqueuelen:100
RX bytes:4724842 (4.5 MiB) TX bytes:7234934 (6.8 MiB)
Configurando um cliente Windows
Como cliente Windows utilizei o Windows XP, mas já configurei o cliente no Windows 7 e funciona
perfeitamente. Realizar o download do cliente Windows no link:
http://www.winlinuxtecnologia.com/downloads/openvpn-2.1_rc22-install.exe
Instalamos mantendo as opções padrões do sistema, famoso Next, Next, continuar assim mesmo, next e Finish.
No diretório C:\Program Files\OpenVPN\config
Neste diretório criamos um novo diretório keys e copiamos para este diretório criado (keys) as seguintes chaves criadas no Servidor na pasta /etc/openvpn/easy-rsa/keys: dh1024.pem, ca.crt, usuariodavpn.crt, usuariodavpn.key, chave.key.
No diretório C:\Program Files\OpenVPN\config criamos um arquivo chamado cliente.ovpn (a extensão *.ovpn é obrigatória para o cliente Windows), neste arquivo configuramos os parâmetros:
client
dev tun
proto tcp
remote ensinalinux.sytes.net
port 1194
pull
comp-lzo
keepalive 10 120
float
tls-client
persist-tun
persist-key
dh keys/dh1024.pem
ca keys/ca.crt
cert keys/usuariodavpn.crt
key keys/usuariodavpn.key
tls-auth keys/chave.key
route-method exe
route-delay 2
OBS.: "ensinalinux.sytes.net" foi usado neste tutorial devido o Servidor VPN não estar em uma rede com IP Fixo (Dedicado), então criamos um No-IP (www.no-ip.com), e realizamos a instalação do mesmo no Servidor. Não entraremos em detalhes neste tutorial de como instalar o No-IP.
Salve o arquivo client.ovpn e fechamos o arquivo criado.
Clicamos em Iniciar > Programas > OpenVPN > e clicamos em OpenVPN GUI, este abrirá próximo ao seu relógio, clique com o botão direito do mouse e em conectar.
Acredito que sua rede privada virtual já esteja funcionando, como dica não utilize a faixa de IP de sua
empresa para sua VPN em alguns casos pode dificultar na criação das rotas e para o cliente Windows XP ou Windows 7 o usuário da VPN precisa ser administrador local para criar as rotas de acesso.
Pronto seu Servidor VPN para os usuários externos está criado e configurado corretamente.
Tel.: (41) 9893-8701
Esse é um exemplo totalmente prático para implementação de uma segurança a mais para
qualquer tipo de rede, usando o OpenVPN como uma solução simples, segura e um benefício
a mais para interligação de redes distantes, sendo estas, localizadas na internet.
Quando iniciei meu primeiro projeto de VPN (uns 2 anos atrás), me deparei com algumas
ferramentas disponíveis para atender tal serviço. Como as coisas sempre aparecem e tem que
ser executadas de última hora, resolvi sem muito planejamento e estudo utilizar a ferramenta
OpenVPN.
Esse artigo tem como objetivo mostrar de forma rápida e simples a configuração de uma VPN
baseada em Linux utilizando o OpenVPN como ferramenta, sendo que este é um software
estável, simples de configurar, além de ser um projeto que está sempre em desenvolvimento.
Utilizaremos como ferramentas os aplicativos OpenVPN, para gerenciamento da rede virtual, tanto para os Servidores e Cliente, o OpenSSL para gerar os certificados necessários para a nossa segurança e para aqueles que têm um link de internet com IP dinâmico.
Vamos criar uma pasta para realizar o download do aplicativo LZO (biblioteca de compressão de dados).
# mkdir apps
# cd apps
Vamos realizar o download do LZO:
# wget http://www.winlinuxtecnologia.com/downloads/lzo-2.06.tar.gz
Vamos agora descompactar e instalar o LZO:
# tar -zxvf lzo-2.06.tar.gz
# cd lzo-2.06
# ./configure
# make
# make install
Bom instalado o LZO em seu Linux, agora vamos a instalação e configuração do OpenVPN com OpenSSL:
# apt-get install openvpn openssl
Copiar para o diretório /etc/openvpn os scripts do openvpn para facilitar nossas vidas, no Debian
encontramos estes scripts no diretório /usr/share/doc/openvpn/examples/easy-rsa/2.0/ copiamos todo o
conteúdo deste diretório para /etc/openvpn/easy-rsa/.
# mkdir /etc/openvpn/easy-rsa
# cp -rp /usr/share/doc/openvpn/examples/easy-rsa/2.0/. /etc/openvpn/easy-rsa/
Editamos o arquivo vars, no final deste arquivo alteramos os seguintes campos:
# vi /etc/openvpn/easy-rsa/vars
Para sua empresa podemos utilizar:
export KEY_COUNTRY="SEUPAIS"
export KEY_PROVINCE="SEUESTADO"
export KEY_CITY="SUACIDADE"
export KEY_ORG="Sua Empresa"
export KEY_EMAIL="email@dominio.com.br"
Obs.: Por padrão, os certificados criados, são configurados para expirar em 3650 dias, caso queira diminuir
este período para algum cliente, antes de gerar as chaves editamos no arquivo vars e alteramos o
parâmetro "export KEY_EXPIRE=3650" e no local de 3650 colocamos o valor que acharmos necessário, após essa alteração precisamos executar "source vars" para que sejam carregadas as variáveis editadas no arquivo vars.
Após editarmos o arquivo vars, precisamos carregar as variáveis editas, no diretório /etc/openvpn/easy-rsa/ executamos na linha de comando:
# source vars
Criamos o diretório keys dentro de /etc/openvpn/easy-rsa, onde será criada todos os certificados:
# mkdir /etc/openvpn/easy-rsa/keys
Caso este diretório já exista e você queira apagar todas as informações contidas nele, você pode executar na linha de comando:
# /etc/openvpn/easy-rsa/./clean-all
ATENÇÃO: Este script clean-all só deve ser executado uma vez, a não ser que você queira limpar todas as chaves e certificados criados do servidor e usuários da sua VPN para configurar tudo novamente.
Vamos agora gerar o certificado raiz, no diretório /etc/openvpn/easy-rsa encontramos o script build-ca,
executamos:
# /etc/openvpn/easy-rsa/./build-ca
Ele pedirá as seguintes informações:
Generating a 1024 bit RSA private key
...................++++++
.....................++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated into your certificate
request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [SEUPAIS]:
State or Province Name (full name) [SEUESTADO]:
Locality Name (eg, city) [SUACIDADE]:
Organization Name (eg, company) [SUAEMPRESA]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address [email@dominio.com.br]:
Podemos observar que ele sugere em alguns campos as variáveis que editamos no arquivo vars, caso isso não aconteça e porque você esqueceu de executar o comando source vars ou não editou o arquivo vars adicionando suas informações.
Podemos observar que no diretório /etc/openvpn/easy-rsa/keys encontramos os arquivos:
ca.crt
ca.key
index.txt
serial
Agora geramos o certificado do servidor, muita atenção agora, precisamos executar o script buildkey-
server mais um nome qualquer como referência do servidor, este nome será informado quando o script
perguntar:
# /etc/openvpn/easy-rsa/./build-key-server nomeescolhido
Country Name (2 letter code) [SEUPAIS]:
State or Province Name (full name) [SEUESTADO]:
Locality Name (eg, city) [SUACIDADE]:
Organization Name (eg, company) [SUAEMPRESA]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [nomeescolhido]: nomeescolhido
Depois você terá a opção de digitar uma senha que será solicitada toda vez que o usuário conectar à VPN, eu deixei em branco:
A challenge password []:
Finalizando o script será perguntado se você quer inscrever este certificado, você pressionará "y" para as duas solicitações:
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Da mesma forma que geramos o certificado do servidor agora precisamos gerar o certificado para os
usuários da VPN, também precisamos definir um common name para os certificados dos usuários. Para os certificados dos usuários usamos o script build-key:
# /etc/openvpn/easy-rsa/./build-key usuariodavpn
Country Name (2 letter code) [SEUPAIS]:
State or Province Name (full name) [SEUESTADO]:
Locality Name (eg, city) [SUACIDADE]:
Organization Name (eg, company) [SUAEMPRESA]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []: usuariodavpn
Neste script também serão solicitados os campos:
A challenge password []:
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Eu deixei o campo de senha zerado.
Obs.: Toda vez que você precisar gerar um novo certificado é preciso executar o comando source vars no diretório /etc/openvpn/easy-rsa mesmo não tendo alterado as opções do arquivo vars.
ATENÇÃO: Não execute o comando clean-all caso não queira criar todos os certificados novamente.
Para reforçar a segurança e permitir a troca de chaves entre o servidor e os clientes no momento da
conexão, executamos o script build-dh sem utilizar parâmetros com o script.
# /etc/openvpn/easy-rsa/./build-dh
Criamos uma assinatura secreta como chave para o servidor executando o comando:
# openvpn --genkey --secret chave.key
Com este comando geramos a chave chave.key no diretório corrente e não no padrão /etc/openvpn/easyrsa/ keys.
Após criada a chave podemos copiá-la para o diretório /etc/openvpn/easy-rsa/keys para manter um padrão de diretórios utilizados.
Por padrão, os scripts executados acima, geram as chaves e certificados necessários para o servidor e o cliente no diretório /etc/openvpn/easy-rsa/keys.
Criamos o arquivo de configuração do servidor no diretório /etc/openvpn/ com o nome padrão server.conf (você pode utilizar o nome que quiser, assim facilita a administração) com os seguintes parâmetros:
# vim /etc/openvpn/server.conf
# ----------------------------------------------------------------------
# PROTOCOLO DE CONEXAO
# ----------------------------------------------------------------------
proto tcp
# ----------------------------------------------------------------------
# PORTA DA VPN
# ----------------------------------------------------------------------
port 1194
# ----------------------------------------------------------------------
# DRIVER DA INTERFACE
# ----------------------------------------------------------------------
dev tun
# ----------------------------------------------------------------------
# ATRIBUI ENDERECOS DE IP DHCP PARA USUARIOS DA VPN
# ----------------------------------------------------------------------
server 192.168.100.0 255.255.255.0
# ----------------------------------------------------------------------
# ADICIONANDO RODAS AOS USUARIO PARA REDE LOCAL
# ----------------------------------------------------------------------
push "route 192.168.0.0 255.255.255.0"
push "dhcp-option DNS 192.168.0.1"
push "dhcp-option WINS 192.168.0.1"
# ----------------------------------------------------------------------
# CONFIGURACOES ADICIONAIS PARA USUARIO
# ----------------------------------------------------------------------
push "ping 10"
push "ping-restart 60"
# ----------------------------------------------------------------------
# ROTAS DO SERVIDOR
# ----------------------------------------------------------------------
route 192.168.100.0 255.255.255.0
# ----------------------------------------------------------------------
# COMPACTACAO LIB LZO
# ----------------------------------------------------------------------
comp-lzo
keepalive 10 120
float max-clients 10
persist-key
persist-tun
log-append /var/log/openvpn.log
verb 6
# ----------------------------------------------------------------------
# SERVIDOR TLS
# ----------------------------------------------------------------------
tls-server
# ----------------------------------------------------------------------
# CHAVES NECESSARIAS PARA CONEXAO VPN
# ----------------------------------------------------------------------
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/nomeescolhido.crt
key /etc/openvpn/easy-rsa/keys/nomeescolhido.key
# ----------------------------------------------------------------------
# CHAVE SECRETA PARA ACESSO AO SERVIDOR
# ----------------------------------------------------------------------
tls-auth /etc/openvpn/easy-rsa/keys/chave.key
status /var/log/openvpn.stats
Reiniciamos o serviço OpenVPN:
# /etc/init.d/openvpn restart
Dicas de Firewall Iptables:
iptables -t filter -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -t filter -A FORWARD -p udp -s 192.168.0.0/24 --dport 1194 -j ACCEPT
iptables -t filter -A FORWARD -p udp -d 192.168.0.0/24 --sport 1194 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 10.0.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -d 192.168.0.0/24 -s 10.0.0.0/24 -j ACCEPT
iptables -t nat -I POSTROUTING -s 10.0.0.0/24 -o eth1 -j MASQUERADE
Fique a vontade para restringir os acessos da maneira que convier. As regras apresentadas acima permitirão aos usuários da VPN acesso livre aos sistemas de sua empresa.
Para observar se a porta utilizada no arquivo acima está ativa podemos digitar na linha de comando:
# netstat -nat | grep 1194
O resultado provavelmente será:
tcp 0 0 0.0.0.0:1194 0.0.0.0:*
Se você digitar na linha de comando ifconfig provavelmente terá informações do dispositivo virtual
configurado no arquivos acima.
# ifconfig
Terá algo do tipo:
tun0
Link encap:NAo Especificado
Endereço de HW 00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet end.: 192.168.100.1 P-a-P:102.168.100.2 Masc:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metrica:1
RX packets:19802 errors:0 dropped:0 overruns:0 frame:0
TX packets:19433 errors:0 dropped:0 overruns:0 carrier:0
colisÃμes:0 txqueuelen:100
RX bytes:4724842 (4.5 MiB) TX bytes:7234934 (6.8 MiB)
Configurando um cliente Windows
Como cliente Windows utilizei o Windows XP, mas já configurei o cliente no Windows 7 e funciona
perfeitamente. Realizar o download do cliente Windows no link:
http://www.winlinuxtecnologia.com/downloads/openvpn-2.1_rc22-install.exe
Instalamos mantendo as opções padrões do sistema, famoso Next, Next, continuar assim mesmo, next e Finish.
No diretório C:\Program Files\OpenVPN\config
Neste diretório criamos um novo diretório keys e copiamos para este diretório criado (keys) as seguintes chaves criadas no Servidor na pasta /etc/openvpn/easy-rsa/keys: dh1024.pem, ca.crt, usuariodavpn.crt, usuariodavpn.key, chave.key.
No diretório C:\Program Files\OpenVPN\config criamos um arquivo chamado cliente.ovpn (a extensão *.ovpn é obrigatória para o cliente Windows), neste arquivo configuramos os parâmetros:
client
dev tun
proto tcp
remote ensinalinux.sytes.net
port 1194
pull
comp-lzo
keepalive 10 120
float
tls-client
persist-tun
persist-key
dh keys/dh1024.pem
ca keys/ca.crt
cert keys/usuariodavpn.crt
key keys/usuariodavpn.key
tls-auth keys/chave.key
route-method exe
route-delay 2
OBS.: "ensinalinux.sytes.net" foi usado neste tutorial devido o Servidor VPN não estar em uma rede com IP Fixo (Dedicado), então criamos um No-IP (www.no-ip.com), e realizamos a instalação do mesmo no Servidor. Não entraremos em detalhes neste tutorial de como instalar o No-IP.
Salve o arquivo client.ovpn e fechamos o arquivo criado.
Clicamos em Iniciar > Programas > OpenVPN > e clicamos em OpenVPN GUI, este abrirá próximo ao seu relógio, clique com o botão direito do mouse e em conectar.
Acredito que sua rede privada virtual já esteja funcionando, como dica não utilize a faixa de IP de sua
empresa para sua VPN em alguns casos pode dificultar na criação das rotas e para o cliente Windows XP ou Windows 7 o usuário da VPN precisa ser administrador local para criar as rotas de acesso.
Pronto seu Servidor VPN para os usuários externos está criado e configurado corretamente.
Abraços,
Fábio Vieira
System and Network Admin Linux and Windows
E-mail: ensinalinux@gmail.com
Website: www.winlinuxtecnologia.comFábio Vieira
System and Network Admin Linux and Windows
E-mail: ensinalinux@gmail.com
Tel.: (41) 9893-8701
Comentários
Postar um comentário