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.
- 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:
Configuración de red:
aquí podemos configurar nuestras tarjetas de red
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:
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