Академический Документы
Профессиональный Документы
Культура Документы
net/web/comunidad/base-deconocimiento/-/wiki/Base+de+Conocimiento/Servidor+Virtual+Private+Networ
k+(VPN)
II.
III.
6.
I.
Imprimir
Una VPN Virtual Private Network, es una tecnologa en la que permite hacer
conexiones de una red local sobre una ip publica estando desde internet. Tambin
son conocida como redes privadas en las cuales mediante un proceso de
encapsulamiento y encriptacin de los datos se refiere a la utilizacin de la
infraestructura publica de telecomunicaciones.
Seguridad: Por medio de una VPN podemos crear tneles en los cuales
pasan la informacin encriptada entre los clientes por lo cual existe una
integridad segura de los datos.
Autenticacin y autorizacin: Solo se permiten conectarse a los
equipos o dispositivos mviles autorizados, por medio de certificados de
autenticacin, llaves encriptadas y usuarios/contraseas.
Velocidad: Cuando enviamos o solicitamos informacin por medio de una
red VPN es comprimida y descomprimida entre los 2 clientes de la VPN, esto
hace que la VPN funcione mas veloz en la transferencia de informacin.
Administracin del ancho de banda: Es posible solicitar a nuestros ISP
un ancho de banda especifico para nuestra red VPN.
Costos: Un VPN nos ahorra en costo de los equipo y otros servicios que
se estn ofreciendo dentro de la red locales.
Tipos de VPN#
Para poder implementar una red VPN tendremos que saber que tipos de VPN
existen para poder instalarla y configurarle en nuestra red local. Existen 3 tipos de
redes VPN:
Servidores VPN#
Tenemos varios servicios de los cuales nos permite crear estos tneles en
GNU/Linux, los mas conocidos son:
http://www.openvpn.net/
http://www.poptop.org./
http://www.openswan.org/
Postinstalacion OpenVPN.#
Toda la instalacin y configuracin se realizara sobre la distribucin Centos versin
5.0, por el cual OpenVPN no viene agregada en los repositorio oficiales de dicha
distribucin. Por lo cual tendremos que agregar otra repositorio extra para este
servicio.
Agregando Repositorio.#
Para esto tendremos que agregaremos el repositorio de DAG Wieers, este
repositorio se encarga de proporcionar paquetes que no son soportados en los
repositorios oficiales de CentOS. Para mas informacin revisar el sitio oficial del
repositorio http://dag.wieers.com/rpm/ La forma mas rpida de agregar este
repositorio es instalar el paquete que agrega el repositorio a nuestra lista. Esta ruta
encontraran el paquete a instalar dependiendo de la versin de su CentOS
http://dag.wieers.com/rpm/FAQ.php#B
Instalacin OpenVPN.#
Despus de la actualizacin de paquetes ahora ya podremos instalar el servicio de
OpenVPN sin ningn problema.
[root@ascariote ~]# yum install openvpn
OpenVPN trabaja en el puerto 1194 del cual por default utiliza protocolo udp pero
tambin se puede utilizar tcp.
Interfaces OpenVPN.#
OpenVPN utiliza 2 tipos de interfaz de red virtuales como:
Servicio OpenVPN#
Dentro de este manual se enseara a configurar los mtodos de configuracin de
OpenVPN como:
Host To Host.
Road Warrior
Net To Net.
Host To Host#
Sus principales caractersticas son:
Con esto nos genera un archivo en cual tiene la llave de encriptacin. Ahora
crearemos un archivo en el cual contendr la configuracin del servicio OpenVPN
en modo Server.
[root@ascariote openvpn]# vim server.conf
proto udp comp-lzo port 1194 ifconfig 10.8.0.1 10.8.0.2 status openvpn-status.log
log /var/log/openvpn.log secret secret.key ping 10 verb 4 mute 10}}}
Explicaremos cada una de la opciones del servidor OpenVPN:
Parmetro
Descripcin
dev tun0
proto udp
comp-lzo
port 1194
ifconfig 10.8.0.1
10.8.0.2
Status openvpnstatus.log
log
Vemos el estado actual del servicio, como tambin la
/var/log/openvpn.lo
bitcora de errores y conexiones.
g
secret secret.key
ping 10
verb 4
mute 10
port 1194 dev tun tun-mtu 1500 ifconfig 10.8.0.2 10.8.0.1 secret secret.key ping
10 comp-lzo verb 4 mute 10}}} Con esto ya agregamos creado la configuracin
del cliente OpenVPN. Pero explicaremos para que nos sirve cada parmetro que
tiene este archivo de configuracin del cliente.
Parmetro
Descripcin
remote
En este parmetro indica el nombre del servidor
ascariote.dynalias.ne
OpenVPN, pero tambin se puede poner la IP publica.
t
port 1194
dev tun
tun-mtu 1500
ifconfig 10.8.0.2
10.8.0.1
secret secret.key
ping 10
comp-lzo
verb 4
mute 10
Clientes GNU/Linux#
En este tipo de configuracin solamente se instala openvpn en las distribuciones
GNU/Linux, indicaremos como instalar esta aplicacin en las conocidas como
debian, ubuntu, CentOS, Fedora. Distribuciones como debian/ubuntu y sus
derivados solamente tendremos que instalar el servicio de la siguiente manera.
lucifer:~# apt-get install openvpn
Para otra distribuciones existe un tar.gz el cual contiene el cdigo fuente para ser
compilado e instalado en su distribucin, lo pueden descargar desde la siguiente
liga. http://openvpn.net/index.php/open-source/downloads.html Con esto ya
tendremos instalado nuestro cliente en nuestra distribucin. Tendremos que hacer
los siguientes paso para poder configurar el cliente, toda la configuracin del
cliente se llevan acabo en el directorio /etc/openvpn y el fichero de configuracin
del cliente y la llave deben estar en esta ruta. Enviaremos estos archivos serian
Clientes Windows#
Para estos sistema operativos solamente tendremos que descargar el cliente en
formato exe, su instalacin es muy sencilla y rpida. Lo podremos descargar desde
el siguiente link. http://openvpn.net/index.php/open-source/downloads.html Ya que
tenemos instalado el cliente, solamente tenemos que ejecutar el siguiente
comando para que cambie el formato del archivo a msdos.
[root@ascariote openvpn]# unix2dos guindows.conf guindows.conf
Comprobando Conexin.#
La forma mas sencilla de saber que ya funciona nuestra red VPN es mandar
paquetes ICMP del servidor al cliente.
lucifer@lucifer:~$ ping -c 5 10.9.0.1
PING 10.9.0.1 (10.9.0.1) 56(84) bytes of data. 64 bytes from 10.9.0.1: icmp_seq=1
ttl=64 time=0.025 ms 64 bytes from 10.9.0.1: icmp_seq=2 ttl=64 time=0.038 ms
64 bytes from 10.9.0.1: icmp_seq=3 ttl=64 time=0.038 ms 64 bytes from 10.9.0.1:
icmp_seq=4 ttl=64 time=0.037 ms 64 bytes from 10.9.0.1: icmp_seq=5 ttl=64
time=0.045 ms --- 10.9.0.1 ping statistics --- 5 packets transmitted, 5 received, 0%
packet loss, time 3998ms rtt min/avg/max/mdev = 0.025/0.036/0.045/0.009 ms
lucifer@lucifer:$ }}} Como tambin hacemos la comprobacin en el cliente. Si
tuviramos algn otro servicio dentro del servidor/cliente VPN, un Servidor FTP,
Servidor Web, etc, ya podremos utilizar sus recursos desde la VPN.
Road Warrior#
La conexin Road Warrior permite la comunicacin entre los usuarios externo y
usuarios locales en la red local de nuestra oficina, en esta conexin puede ver mas
1 cliente conectado en la red virtual. En este tipo de configuracin los usuarios
estn bajo certificados y llaves de autenticacin para su conexin a la red VPN. Las
razones de utilizar una VPN en modo Road Warrior son:
1.0 2.0 [root@test easy-rsa]#}}} Debemos elegir la version mas actual y copiarla
a /etc/openvpn
[root@test easy-rsa]# cp -a 2.0/ /etc/openvpn/easy-rsa
build-ca build-key build-key-server clean-all Makefile pkitool sign-req build-dh buildkey-pass build-req inherit-inter openssl-0.9.6.cnf README vars build-inter build-keypkcs12 build-req-pass list-crl openssl.cnf}}} Lo que tendremos que hacer es editar
el archivo de vars el cual contiene la informacion relacionada hacia la empresa en
donde estamos laborando.
[root@test easy-rsa]# vim vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easyrsa/keys}}} Nos devuelve un posible error por lo cual tendremos que limpiar todas
la opciones de OpenVPN.
[root@test easy-rsa]# sh clean-all
Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to
take a long time ....+.....................+........+.+......................+...............
+............. ..................................+.............+.....+...................................... ....
+.......................+.................................+........................+.... .......................
+..............
+....................................................... ......................................................................
+......+................ ........................................++++++ [root@test easy-rsa]# }}}
Crearemos el certificado y la llave para el servidor OpenVPN, solicitara datos
generales de la empresa.
[root@test easy-rsa]# sh build-key-server server
Generating 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) [MX]: State or Province
Name (full name) [DF]: Locality Name (eg, city) [MEXICO]: Organization Name (eg,
company) [FACTOR SA DE CV]: Organizational Unit Name (eg, section) []:FACTOR
Common Name (eg, your name or your server's hostname) [server]:SERVER Name
[]:SERVER Email Address [administrador@factor.com.mx]: Please enter the
following 'extra' attributes to be sent with your certificate request A challenge
password []: An optional company name []: Using configuration from
/etc/openvpn/easy-rsa/openssl.cnf Check that the request matches the signature
Signature ok The Subject's Distinguished Name is as follows countryName
:PRINTABLE:'MX' stateOrProvinceName :PRINTABLE:'DF' localityName
:PRINTABLE:'MEXICO' organizationName :PRINTABLE:'FACTOR SA DE CV'
organizationalUnitName:PRINTABLE:'FACTOR' commonName :PRINTABLE:'SERVER'
name :PRINTABLE:'SERVER' emailAddress
:IA5STRING:'administrador@factor.com.mx' Certificate is to be certified until Aug
23 18:10:41 2019 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 [root@test easy-rsa]# }}} Todos estas llaves y
certificados generados se encuentran en el directorio key por lo cual entraremos a
ese directorio.
[root@test easy-rsa]# cd keys/
Archivo
Descripcin
ca.crt/ca.key
dh1024.pem
server.crt/
server.key
Ya teniendo estos archivos solamente tendremos que hacer una copia de estos
archivos y mandarlos a /etc/openvpn/.
Parmetro
Descripcin
proto udp
dev tun0
ca /etc/openvpn/ca.crt
cert
/etc/openvpn/server.crt
key
Especifica la ruta en donde se localiza la llave de
/etc/openvpn/server.key autenticacin.
dh
Especifica la ruta en cual contiene el formato de
/etc/openvpn/dh1024.pe
Diffie Hellman.
m
server 192.168.4.0
255.255.255.0
client-config-dir
/etc/openvpn/ccd
comp-lzo
persist-tun
mute 20
ping 10
ping-restart 120
ca.crt
ascariote.
Por recomendacion cuando nosotros creamos mas usuario todo se queda dentro de
esta carpeta sin ordenar pero te recomiendo tener a los usuarios separados. Esto lo
podemos arreglar de la siguiente manera. Creamos una carpeta en donde se
depositaran todos los clientes de la VPN Road Warrior.
[root@test keys]# mkdir /etc/openvpn/clientes/
Clientes GNU/Linux#
En este tipo de configuracin solamente se instala OpenVPN en las distribuciones
GNU/Linux, indicaremos como instalar esta aplicacin en las conocidas como
debian, ubuntu, CentOS, Fedora. Distribuciones como debian/ubuntu y sus
derivados solamente tendremos que instalar el servicio de la siguiente manera.
ascariote:~# apt-get install openvpn
Para otra distribuciones existe un tar.gz el cual contiene el cdigo fuente para ser
compilado e instalado en su distribucin, lo pueden descargar desde la siguiente
liga. http://openvpn.net/index.php/open-source/downloads.html Con esto ya
tendremos instalado nuestro cliente en nuestra distribucin ahora lo que tenemos
que hacer con el servidor es ir a /etc/openvpn/clientes, en el cual se encontraran
las carpetas de los usuarios permitidos en la VPN entramos alguna de las carpetas
y veremos que solo falta el archivo el archivo de configuracion para el cliente VPN.
Debemos crear el archivo de configuracin para los clientes de la VPN.
[root@test ~]# vim /etc/openvpn/clientes/ascariote.conf
Parmetro
Descripcin
Client
remote
test.ascanet.com.mx
Port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert
Especifica la ruta en donde se localiza el certificado del
/etc/openvpn/ascariote.
cliente
crt
key
Especifica la ruta en donde se localiza la llave de
/etc/openvpn/ascariote.
autenticacin del cliente.
key
comp-lzo
Mute 20
ping 10
ping-restart 120
Persist-key
persist-tun
Con esto solamente tendremos que crear el archivo comprimido y mandarlo por via
ssh, ftp, http el archivo.
[root@test clientes]# tar cvfz ascariote.tar.gz ascariote/
ascariote.tar.gz
Verificamos que tengamos levantada la interfaz virtual que se usa para conexin
VPN.
ascariote:ascariote# ifconfig tun0
Clientes Windows#
Para estos sistema operativos solamente tendremos que descargar el cliente en
formato exe, su instalacin es muy sencilla y rpida. Lo podremos descargar desde
el siguiente link. http://openvpn.net/index.php/open-source/downloads.html Ahora
en el servidor tendremos que crear el archivo de configuracin del cliente para
windows. En nuestro caso el usuario se llama GuindowsLPT, entramos a la ruta en
donde se encuentran los clientes.
[root@test GuindowsLPT]# vim GuindowsLPT.ovpn
remote test.ascanet.com.mx port 1194 proto udp dev tun ca ca.crt" cert
GuindowsLPT.crt key GuindowsLPT.key persist-key persist-tun comp-lzo verb 3
mute 20 ping 10 ping-restart 120}}} Convertimos el fichero a formato dos de
Windows.
GuindowsLPT.zip GuindowsLPT/*
Comprobando Conexin.#
La forma mas sencilla de saber que ya funciona nuestra red VPN es mandar
paquetes ICMP a algunos de los clientes que estn dentro de la red virtual.
ascariote:~# ping -c 5 192.168.4.10
En windows siempre se ocupa dos IP para que puedamos asignar una IP esttica
siempre empezando con la IP impar. Con esto solamente tendremos que reiniciar el
servicio de OpenVPN.
[root@test ccd]# /etc/init.d/openvpn restart
Net To Net#
Es una configuracin muy ocupada en las empresas que tienen varias sucursales
en lugares fsicamente apartados geogrficamente. Este mtodos nos sirve para
unir varias redes y puedan compartir informacin entre todos los clientes de todas
las redes conectadas de una forma transparente. Solamente se requiere un
servidor y clientes que permitan la conexin de a la red virtual.
UBICACION DOMINIO
RED FISICA
RED VIRTUAL
MEXICO
test.ascanet.com.mx
192.168.1.0/24
10.0.1.1/10.0.2.1
OAXACA
ascariote.dynalias.net
192.168.2.0/24
10.0.2.2
VERACRUZ
belzebu.dynalias.net
192.168.3.0/24
10.0.3.2
Para poder unir a estas 3 redes en el servidor tendremos que crear 2 llaves en las
cuales conecte a la sucursales de Mexico y Veracruz, las cuales reacremos de la
siguiente manera:
[root@test openvpn]# openvpn --genkey --secret mex-oax.txt
float port 1194 dev tun0 persist-tun ifconfig 10.0.1.1 10.0.1.2 comp-lzo ping 15
ping-restart 120 verb 3 secret /etc/openvpn/mex-oax.txt persist-key route
192.168.2.0 255.255.255.0 chroot /var/empty log /var/log/openvpn.log}}} Si
queremos que OpenVPN tenga varias conexin al servidor solamente tendremos
que cambiar el puerto de escucha del otro segmento de red. Configuraremos la
conexin de Mxico a Veracruz.
remote belzebu.dynalias.net
float port 1195 dev tun1 persist-tun ifconfig 10.0.2.1 10.0.2.2 comp-lzo ping 15
ping-restart 120 verb 3 secret /etc/openvpn/mex-ver.txt persist-key route
192.168.3.0 255.255.255.0 chroot /var/empty log /var/log/openvpn.log}}}
Explicaremos cada una de la opciones del cliente OpenVPN:
Parmetro
Descripcin
remote
ascariote.dynalias.net
float
port 1194/1195
proto udp
dev tun1/tun2
persist-tun
ifconfig 10.0.1.1
10.0.1.2
ifconfig 10.0.2.1
10.0.2.2
comp-lzo
ping 15
ping-restart 120
verb 3
secret
/etc/openvpn/mexoax.txt
secret
/etc/openvpn/mexver.txt
persist-key
route 192.168.2.0
255.255.255.0
route 192.168.3.0
255.255.255.0
chroot /var/empty
log /var/log/openvpnmex-oax.log
log /var/log/openvpn-
mex-oax.log
Iniciamos la configuracin de nuestro OpenVPN
[root@test openvpn]# /etc/init.d/openvpn start
float port 1194 dev tun0 persist-tun ifconfig 10.0.1.2 10.0.1.1 comp-lzo ping 15
ping-restart 120 verb 3 secret /etc/openvpn/plutarco.txt persist-key route
192.168.1.0 255.255.255.0 log /var/log/openvpn.log }}} Ahora comenzaremos con
la configuracin del cliente Veracruz a Mxico:
remote test.ascanet.com.mx
float port 1195 dev tun0 persist-tun ifconfig 10.0.2.2 10.0.2.1 comp-lzo ping 15
ping-restart 120 verb 3 secret /etc/openvpn/plutarco.txt persist-key route
192.168.1.0 255.255.255.0 log /var/log/openvpn.log }}} Como podemos ver son
los mismos parmetros que el servidor.
Comprobando Conexin#
La forma de comprobar esta conexin es hacer pings entre los segmentos red
fsicos. Comprobacin de Oaxaca a Mxico a una mquina cliente.
ascariote:~# ping -c 5 192.168.1.10
Firewall OpenVPN#
Cuando usamos una VPN se recomienda configurar nuestro firewall para que
termina las conexiones hacia el tnel. Aqu ya depende del administrador del
sistema que tipo de firewall pueda usar, pero actualmente se siguen utilizando
reglas de iptables. Comenzaremos a crear las reglas para nuestro firewall por
medio de iptables. Aceptamos el trafico que entrada y salida por el protocolo UDP
por el servicio OpenVPN.
[root@test ~]# iptables -A INPUT -i ppp0 -p udp --dport 1194 -j ACCEPT