Instalación de OpenVpn Server en CentOS

OpenVPN es una aplicación de software de código abierto que implementa una red privada virtual (VPN) técnicas para la creación segura de punto a punto o de sitio a sitio conexiones en configuraciones de ruta o un puente e instalaciones de acceso remoto. Se utiliza un protocolo de seguridad personalizada que utiliza SSL / TLS para el intercambio de claves. Es capaz de traductores de direcciones de red (NAT) de desplazamiento y firewalls. Fue escrito por James Yonan y está publicado bajo la licencia GNU General Public License (GPL). OpenVPN permite pares autenticarse entre sí utilizando una clave pre-compartida secret, certificados o nombre de usuario / contraseña. Cuando se utiliza en una configuración multi-cliente-servidor, que permite que el servidor para liberar un certificado de autenticación para cada cliente, mediante la firma y de la autoridad de certificados. Se utiliza la biblioteca de cifrado de OpenSSL ampliamente, así como el protocolo SSLv3/TLSv1, y contiene muchas características de seguridad y de control. Este artículo le guiará a través de los pasos de instalación y configuración del servidor OpenVPN en CentOS 6.5 Vamos a instalar y configurar OpenVPN servidor!

Requisitos:

Un servidor dedicado corriendo CentOS 6.5 Conocimiento adecuado para utilizar el protocolo de masilla y SSH

NOTA: para realizar está instalación debemos estar como usuario root.

  1. instalamos repositorios rpmforge

CentOS 6.5 32-bit (x86):

[root@admin ~]# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm

CentOS 6.5 64-bit (x86_64):

[root@admin ~]# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

2. instalar los paquetes requeridos

[root@admin ~]# yum install gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel lzo openvpn wget -y

3. copiamos el fichero easy-rsa a la carpeta /etc/openvpn

[root@admin ~]# cp -R /usr/share/doc/openvpn-2.2.2/ /etc/openvpn

4. Creamos los certificados accedemos a la ruta especificada:

[root@admin ~]# cd /etc/openvpn/easy-rsa/2.0

configuramos permisos:

[root@admin ~]# chmod 755 *

ejecutamos los siguientes comandos:

[root@admin ~]# source ./vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys#resultado del comando

luego:

[root@admin ~]# ./varsNOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys #resultado del comando

por último:

[root@admin ~]# ./clean-all

5. Crear el certificado CA Debe introducir la información que se le solicita el texto en negrita con tus datos:

[root@admin ~]# ./build-ca
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) [ES]:ES
State or Province Name (full name) [BCN]:BARCELONA
Locality Name (eg, city) [San Francisco]:BARCELONA
Organization Name (eg, company) [Fort-Funston]:enterpriseconsulting.es
Organizational Unit Name (eg, section) [changeme]:enterpriseconsulting.es
Common Name (eg, your name or your server’s hostname) [changeme]:admin.enterpriseconsulting.es
Name [changeme]:admin
Email Address [mail@host.domain]:info@enterpriseconsulting.es

6. Creamos el certificado de claves del servidor. En lugar de la palabra “server” podemos utilizar cualquier otro nombre para llamar a nuestro certificado. Una vez más entrar en la información que se le solicita – el texto en negrita. Cuando se le preguntó por “password”, puede configurarlo o dejarlo vacío.

[root@admin ~]#  ./build-key-server serverGenerating a 1024 bit RSA private key
……..++++++
……….++++++
writing new private key to ‘server.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) [US]:ESPAÑA
State or Province Name (full name) [CA]:BARCELONA
Locality Name (eg, city) [San Francisco]:BARCELONA
Organization Name (eg, company) [Fort-Funston]:enterpriseconsulting.es
Organizational Unit Name (eg, section) [changeme]:enterpriseconsulting.es
Common Name (eg, your name or your server’s hostname) [server]:admin.enterpriseconsulting.es
Name [changeme]:Mitch
Email Address [mail@host.domain]:enterpriseconsulting@gmail.comPlease enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:enterpriseconsulting.es
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:’ES’
stateOrProvinceName   :PRINTABLE:’BARCELONA’
localityName          :PRINTABLE:’BARCELONA’
organizationName      :PRINTABLE:’enterpriseconsulting.es’
organizationalUnitName:PRINTABLE:’enterpriseconsulting.es’
commonName            :PRINTABLE:’admin.enterprise consulting.es’
name                  :PRINTABLE:’admin’
emailAddress          :IA5STRING:’info@enterpiseconsulting.es’
Certificate is to be certified until Feb 25 11:31:42 2024 GMT (3650 days)
Sign the certificate? [y/n]:y1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

 

7. Creamos la clave con el protocolo criptográfico Diffie Hellman NOTA: Si desea aumentar Diffie Hellman tamaño de la clave, debe editar la variable KEY_SIZE en / etc/openvpn/easy-rsa/2.0/vars con el tamaño deseado.

[root@admin ~]# ./build-dh Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time ……………………………………………………… ………………………………………..+…………… ………….+………………………………………..+. ……………………………………………………… ……+……………+…………………..+……………. ……………………………………………….+……. …………………………….+………………………. ……………………………………………………… ….+…+…………………………………….+………. ……………..+…..+……………..+………………… …+………………………………………………….. ……………………………………..+……………… ……+……………..+……+….+………………++*++*++

8. Configuramos  archivo de configuración del servidor OpenVPN Asegúrese de configurar el servidor OpenVPN sea accesible desde Internet. configurar ip de nuestro servidor de openvpn, también el protocolo de que vamos a trabajar y los servidores DNS  a usar.

[root@admin ~]#  nano /etc/openvpn/server.conf# IP address you want to bind OpenVPN Server to
local 89.212.236.44# Pick the desired VPN port number – default 1194
#port 4444
proto udp# We use TUN when setting separate IPs on a VPN Network
dev tun
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
reneg-sec 0# Adjust paths as needed.
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 # Comment this line if you are using FreeRADIUS
#plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf # Uncomment this line if you are using FreeRADIUS
client-cert-not-required # No client specific certificates required
username-as-common-name# The Pool of IPs in the ‘VPN Network’
server 172.26.1.0 255.255.255.0 # Change this to reflect your Network environmentpush “redirect-gateway def1″
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

9. Activar reenvío IP Cambie el parámetro “net.ipv4.ip_forward” en el archivo sysctl.conf / etc / desde “0” a la orden “1” y la emisión “sysctl-p”.

[root@admin ~]# grep “net.ipv4.ip_forward” /etc/sysctl.confnet.ipv4.ip_forward = 1[root@admin]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: “net.bridge.bridge-nf-call-ip6tables” is an unknown key
error: “net.bridge.bridge-nf-call-iptables” is an unknown key
error: “net.bridge.bridge-nf-call-arptables” is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456

10. Crear usuario para la VPN cambiar vpnuser por el usuario que vamos a utilizar

[root@admin ~]# useradd vpnuser -s /bin/false

una vez creado le asignamos una contraseña

[root@admin ~]# passwd vpnuser Changing password for user vpnuser. New password: Retype new password: passwd: all authentication tokens updated successfully.

También podemos utilizar el comando adduser.

11. Iniciamos el servicio de openvpn

[root@admin ~]#  /etc/init.d/openvpn  startStarting openvpn:                                                                                                                       [ OK  ]para parar o reiniciar utilizamos: stop/restart otra forma de hacerlo:

service openvpn start/stop/restart

En caso de que nos muestre FAIL  puede comprobar  en / var / log / messages el error que tenemos y poder solucionarlo.

Configuración de Interfaz Web de OpenVPN

La interfaz web permite un manejo más fácil del servidor de Acceso OpenVPN. Esta interfaz permite al administrador manejar opciones como enrutamiento de capa 2 o 3, permisos de usuario, configuración de red del servidor, autenticación y certificados del servidor web. Por defecto la página de administración se puede acceder en la página / admin. Esta configuración puede ser realizada de igual forma mediante una consola.

Configuración:

Se deberá configurar la cuenta de Administrador de OpenVPN-AS.

Esta configuración se realiza a través de una terminal ejecutando el siguiente comando como root:

[root@admin ~]# ovpn-init

Cuando el comando se ejecuta comienza la configuración:

En caso de que nos salga el mensaje de borrar la configuración ya existente escribimos: DELETE

a. Aceptar la licencia

b. Configurar la máquina utilizada como nodo Servidor Principal de Acceso

c. Se especifica una interfaz de red con IP estática. Ej.: (2) eth0: 159.90.11.159

NOTA:aquí asignamos la ip de nuestro servidor si tenemos varias tarjetas de red seleccionamos la que va hacer utilizado por el servidor.

d. Se utiliza el puerto por defecto para la interfaz de Administración Web.(Puerto943):ENTER

e. Se especifica el puerto por defecto TCP para el Demonio de OpenVPN.(Puerto443):ENTER

f. Se especifica que el tráfico de los clientes debe ser enrutado a través de la VPN:ENTER

g. Se especifica que el tráfico DNS debe ser enrutado a través de la VPN:ENTER

h. Se especifica no utilizar la autenticación mediante la base de datos de usuarios interna, ya que las pruebas se realizaron con usuarios del sistema: ENTER

i. Se especifica que las subredes privadas son accesibles para los clientes: ENTER

j. Se utiliza el usuario de Administración por defecto (openvpn) y se le asigna una clave a dicho usuario: ENTER

NOTA: aquí podemos asignar el  usuario si queremos o dejar el por defecto.

k. Se solicita especificar la licencia, en caso de no poseer una se puede dejar en blanco ya que OpenVPN permite hasta 2 usuarios sin cancelar una licencia:ENTER

En la  pagina web oficial openvpn.net  podremos comprar las licencias.

Una vez finalizados todos los pasos ya se encuentra configurado el servidor. El siguiente paso será instalar el cliente de openVPN en las máquinas clientes.

Acceder a la interfaz web

Abrimos el navegador y escribimos la siguiente url http://ip-de-servidor:943 nos pedirá usuario y contraseña que hayamos configurado. Panel de administración: Sin título

Configuración de red:

aquí podemos configurar nuestras tarjetas de red panel2

Configuración de VPN:

La página Configuración de VPN le permite configurar opciones como la dirección de red IP dinámica, que es el sistema DHCP interno de OpenVPN Access Server. Por defecto la subred se establece en “5.5.0.0/20″ esto se puede cambiar a una subred que podría funcionar mejor para su red actual. La sección de enrutamiento da la opción de empujar ciertas rutas a redes Servidor de Acceso OpenVPN está sentado en los clientes remotos. También hay una opción que permite que el tráfico de Internet cliente la posibilidad de ser enviado a través del servidor de acceso a OpenVPN.

Permisos de usuario:

La página Permisos de usuario permite la configuración por cliente que se cambien. El perfil de inicio de sesión automático se puede activar si se desea. Al hacer clic en “show” al lado del nombre de usuario, verá más opciones que se pueden configurar, esta es el área donde usted desea definir la configuración de un cliente de pasarela:

panel3

Hemos finalizado la instalación de nuestro servidor OpenVPN en otro artículo enseñaremos como instalar un cliente en windows y linux.

Michelle López

Enterprise Consulting & Training

Share