Instalando Servidor OpenVPN no CentOS 6
VPN é a Rede Privada Virtual é 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.
Continue lendo mais em: Wikipédia
Disponível para clientes:
- Windows
- Linux
- MacOS
- Android
- iOS
Site Oficial do OpenVPN:http://openvpn.net/
1. Configurações Iniciais
Alterar o Hostname do Servidor.
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=openvpn
Desativar o SELinux.
vim /etc/selinux/config
SELINUX=disabled
Reinicie para validar as alterações.
reboot
2. Instalando os pacotes necessários
yum -y install gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel wget
3. Download da LZO RPM e Instalando repositório RPMForge
wget http://openvpn.net/release/lzo-1.08-4.rf.src.rpm
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
Instalando…
rpmbuild --rebuild lzo-1.08-4.rf.src.rpm
rpm -Uvh lzo-*.rpm
rpm -Uvh rpmforge-release*
4. Instalando o OpenVPN
yum -y install openvpn
5. Ajustando o OpenVPN
Um ajuste a ser realizado após a instalação do pacote ‘openvpn’.
Copiar a ‘easy-rsa’ para o diretório ‘/etc/openvpn’.
cp -R /usr/share/doc/openvpn-2.2.2/easy-rsa/ /etc/openvpn/
No CentOS precisamos realizar um acerto no arquivo abaixo.
vi /etc/openvpn/easy-rsa/2.0/vars
e alterar a seguinte linha:
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
para:
export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf
Não esqueça de salvar o arquivo após a alteração.
6. Gerando certificados
cd /etc/openvpn/easy-rsa/2.0 chmod 755 * source ./vars ./vars ./clean-all
Build CA:
./build-ca
Country Name (2 letter code) [US]:BR
State or Province Name (full name) [CA]:Parana
Locality Name (eg, city) [SanFrancisco]:Curitiba
Organization Name (eg, company) [Fort-Funston]:TIDAHORA Organizational
Unit Name (eg, section) [changeme]:TIDAHORA
Common Name (eg, your name or your server's hostname) [changeme]:TIDAHORA
Name [changeme]:Johnny Ferreira
Email Address [mail@host.domain]:contato@tidahora.com.br
Build Server.
./build-key-server server
Country Name (2 letter code) [US]:BR
State or Province Name (full name) [CA]:Parana
Locality Name (eg, city) [SanFrancisco]:Curitiba
Organization Name (eg, company) [Fort-Funston]:TIDAHORA
Organizational Unit Name (eg, section) [changeme]:TIDAHORA
Common Name (eg, your name or your server's hostname) [server]:TIDAHORA
Name [changeme]:Johnny Ferreira
Email Address [mail@host.domain]:johnny@TIDAHORA.com.br
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:senha
An optional company name []:TIDAHORA
Using configuration from /etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'BR'
stateOrProvinceName :PRINTABLE:'Parana'
localityName :PRINTABLE:'Curitiba'
organizationName :PRINTABLE:'TIDAHORA'
organizationalUnitName:PRINTABLE:'TIDAHORA'
commonName :PRINTABLE:'TIDAHORA'
name :PRINTABLE:'Johnny Ferreira'
emailAddress :IA5STRING:'contato@tidahora.com.br'
Certificate is to be certified until Mar 2 13:00:57 2023 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Build Diffie Hellman.
./build-dh
Só esperar….
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.........................................+.................+.......+.....+....
7. Criando o arquivo de configuração
vim /etc/openvpn/server.conf
port 1194
proto udp
dev tun
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
reneg-sec 0
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login
plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf
client-cert-not-required
username-as-common-name
server 10.20.0.0 255.255.255.0
push "redirect-gateway default"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 5 30
comp-lzo
persist-key
persist-tun
status 1194.log
verb 3
8. Iniciando o OpenVPN
/etc/init.d/openvpn start
Iniciando o openvpn: [ OK ]
Agora precisamos ativar o ‘ip_forward’.
vim /etc/sysctl.conf
Altere conforme a linha abaixo.
[...]
net.ipv4.ip_forward = 1
[...]
Rode o comando abaixo para validar as alterações no ‘ip_forward’.
sysctl -p
9. Configurando clientes
Vamos efetuar a configuração de um cliente para a conexão VPN.
Adicionando no sistema.
useradd usuario -s /bin/false passwd usuario
Vamos criar o seguinte arquivo ‘server.ovpn’
vim /etc/openvpn/server.ovpn
client dev tun
proto udp
remote 120.120.120.120
resolv-retry
infinite nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key persist-tun
ca ca.crt
auth-user-pass
comp-lzo
reneg-sec 0
verb 3
Reinicie o serviço.
/etc/init.d/openvpn restart
Desligando o openvpn: [ OK ]
Iniciando o openvpn: [ OK ]
10. Ajustando o Firewall
As configurações de firewall são de necessidade obrigatória para a configuração correta do OpenVPN. Abaixo segue as regras de iptables para liberação da conexão VPN, lembrando assim que em cada firewall terá de ser configurado a modo do administrador de redes conforme IP, políticas de acessos, etc.
iptables -t nat -A POSTROUTING -s 10.20.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to-source 120.120.120.120
iptables -t nat -A POSTROUTING -s 10.20.0.0/24 -j SNAT --to-source 120.120.120.120
11. Ajustando o cliente para conectar a VPN
Faça o Download do client no link abaixo:
https://openvpn.net/index.php?option=com_content&id=357
Dúvidas, comentário e sugestões postem nos comentários…
👋🏼 Até a próxima!
Johnny Ferreira
johnny.ferreira.santos@gmail.com
http://www.tidahora.com.br