OPENVPN SERVER NO CENTOS/RHEL
Ribas Vecchiato
1) Instalar Cento ou RHEL.
2) Depois, como root fazer upgrade do sistema.
yum upgrade
Instalar pacotes necessários
yum install gcc make rpm-build autoconf.noarch zlib-devel
pam-devel openssl-devel -y
Há a necessidade de instalar pacotes extras para Enterprise Linux (EPEL). Verificar a versão
do sistema usado. Abaixo é o Red Hat ou Centos 6 com o realese do EPEL 6.8. Usar
somente para sua versao.
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epelrelease-6-8.noarch.rpm
yum install openvpn
Configuração
a) Use Easy-RSA para gerar Keys e Certificate
Necessitamos de script de exemplos para gerar a Keys. O OpenVPN tem um modelo que
podemos usar.
mkdir -p /etc/openvpn/easy-rsa/keys
cp -rfv /usr/share/openvpn/easy-rsa/2.0/*
/etc/openvpn/easy-rsa
Uma vez que tenhamos copiado respectivo script para o local apropriado, agora precisamos
configurar a variável de ambiente que seria usado para gerar o certificado.
Para isso, precisamos de modificar as variáveis "KEY_", localizado na parte inferior do
arquivo (/etc/openvpn/easy-rsa/var).
vi /etc/openvpn/easy-rsa/vars
export
export
export
export
export
export
export
export
KEY_COUNTRY="BR"
KEY_PROVINCE="RS"
KEY_CITY="Porto Alegre"
KEY_ORG="Nome da Empresa"
KEY_EMAIL="[email protected]"
KEY_CN=server.example.com
KEY_NAME=server
KEY_OU=server
As vezes o OpenVPN não reconhece a versão OpenSSL no CentOS. Então, para evitar a
confusão vamos copiar manualmente o arquivo de configuração do OpenSSL necessário.
cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
/etc/openvpn/easy-rsa/openssl.cnf
Também Alterar seguinte linha no arquivo "vars" a partir de:
vi /etc/openvpn/easy-rsa/vars
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
To:
export KEY_CONFIG=/etc/openvpn/easy-rsa/openssl.cnf
Com base na configuração e informações acima precisamos construir nossa Autoridade
Certificadora (AC). Navegue até o diretório easy-rsa e fazer todos os arquivos no diretório
executável.
cd /etc/openvpn/easy-rsa
chmod +x *
source ./vars
./clean-all
./build-ca
Agora crie Diffie Hellman arquivos de troca de chaves usando o script build-dh e chave
secreta TA também.
./build-dh
openvpn --genkey --secret keys/ta.key
Uma vez que tenhamos sucesso ao construir nossa própria Autoridade Certificadora (AC) e
criou chave DH e gerou TA secret , agora é a hora de criar OpenVPN certificado de servidor
e copiar todos os arquivos para o diretório / etc / openvpn (/ etc / openvpn):
./build-key-server server
cd /etc/openvpn/easy-rsa/keys
cp ca.crt server.crt server.key dh1024.pem ta.key
/etc/openvpn
b) OpenVPN Config
Agora copie o arquivo de configuração de amostra fornecido com pacote Open-VPN a pasta
de destino (/ etc / openvpn) e vamos modificá-lo.
cp -v /usr/share/doc/openvpn-*/sample-configfiles/server.conf /etc/openvpn
vim /etc/openvpn/server.conf
Remova o comentário dos parâmetro que permite o tráfego no sistema do cliente para ser
encaminhado via caixa OpenVPN.
Faça para
"redirect-gateway def1 bypass-dhcp"
Também precisamos liberar as regras que permitem consultas DNS para o DNS público do
Servidor do Google.
descomente "dhcp-option DNS 8.8.8.8"
descomente "dhcp-option DNS 8.8.4.4"
Vamos criar privilégios após a inicialização, para aumentar a segurança. Remova o
comentário da "user" e de grupo.
user nobody
group nobody
No final o aquivo de configuração do OpenVPN sera algo como abaixo:
mode server
tls-server
port 1194
## default openvpn port
proto udp
dev tun
## If you need multiple tap devices, add them
here
persist-key
persist-tun
#certificates and encryption
ca ca.crt
cert server.crt
key server.key
# This file should be kept secret
dh dh1024.pem
tls-auth ta.key 0
# This file is secret
cipher BF-CBC
# Blowfish (default)
comp-lzo
ifconfig 10.8.0.1 10.8.0.2
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "route 10.240.0.0 255.255.248.0"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "dhcp-option DOMAIN example.com"
user openvpn
group openvpn
keepalive 10 120
status /var/log/openvpn-status.log
verb 3
c) Configuração do Sistema
Precisamos permitir a passagem dos pacotes da VPN para encaminhar à rede interna.
vi /etc/sysctl.conf:
net.ipv4.ip_forward = 1
Para ativar as mudanças.
sysctl -p /etc/sysctl.conf
Implementar um regras de iptables para permitir o roteamento de sub-rede de pacotes
apresentados pelo respectivo interface e permite que a porta 1194, salvar a regra de iptables e
reiniciá-lo:
iptables
MASQUERADE
iptables
iptables
iptables
-t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j
-A FORWARD -i tun0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o tun0 -j ACCEPT
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
service iptables save
service iptables restart
Agora iniciar o serviço, e habilitá-lo na inicialização também.
service openvpn start
chkconfig openvpn on
OpenVPN Client Configuração.
Agora vamos criar os certificados de cliente no servidor OpenVPN para autenticar:
cd /etc/openvpn/easy-rsa
source ./vars
./build-key client
Nota: Você pode substituir o "cliente" com outro nome que possamos identificá-lo como o
nome da máquina do cliente ou nome de usuário que precisa para se conectar.
Agora precisamos copiar certificado de cliente necessário (ca.crt, ta.key, client.crt e
client.key) do servidor OpenVPN para a máquina cliente openvpn.
cd /etc/openvpn/easy-rsa/keys/
tar -cvf /tmp/client-ssl-bundle.tar ca.crt ta.key
client.crt client.key
scp :/tmp/client-ssl-bundle.tar .
Agora vamos preparar arquivo de configuração do cliente que será usado para conectar-se a
OpenVPN Server.
vi client.ovpn
dev tun
proto udp
remote 1194
pull
# Client does not need to bind to a specific local port
nobind
resolv-retry infinite
persist-key
persist-tun
# SSL/TLS parameters - files created previously
ca ca.crt
cert client.crt
key client.key
# Since we specified the tls-auth for server, we need it
for the client
# note: 0 = server, 1 = client
tls-client
tls-auth ta.key 1
# Specify same cipher as server
cipher BF-CBC
# Use compression
comp-lzo
# Log verbosity (to help if there are problems)
verb 3
Nota: *) Substitua o nome da chave "cliente" VPN que tem gerado usando o comando
construir-key.
*) Substituir client.ovpn, onde "cliente" deve coincidir com o nome do cliente que está sendo
implantado por meio de comando construir-key.
*) Também coloque o IP do servidor VPN no parâmetro remoto OpenVPN SERVER IP.
No Windows Mac OS / X precisamos copiar a configuração OpenVPN cliente (client.ovpn)
e certificado a seguinte localização:
Windows: C: \ Program Files \ OpenVPN \ config 
Download

OPENVPN SERVER NO CENTOS