Mostrando entradas con la etiqueta VPN. Mostrar todas las entradas
Mostrando entradas con la etiqueta VPN. Mostrar todas las entradas

martes, 17 de noviembre de 2015

Securizando nuestras conexiones: Instalando y configurarando OpenVPN









Como IT una parte importante es la seguridad y esta hay que tomársela bastante en serio y para el ámbito empresarial más aún. En el mundo empresarial son muchas las ocasiones en que sus empleados trabajan en remoto fuera de la intranet, ya sea por trabajo a pie de calle, porque  su estructura empresarial no está centralizada en un lugar concreto en definitiva, a la hora de trabajar con sus sistemas y redes se tienen que vale de conexiones remotas que no son ni seguras ni estables y es aquí donde entra VPN.

Una VPN o red privada virtual nos permite tener una conexión estable, segura, fiable e incluso más rápida que otro tipo de conexiones remotas. Este tipo de conexión nos permite trabajar  a través de la WAN como si estuviéramos en la propia LAN y esto lo permite creando un túnel de conexión desde nuestro cliente hasta la red interna permitiendo trabajar al cliente remoto de una manera local y segura.





Para poner en práctica todo esto nos vamos a valer de un servidor Debian  y de OpenVPN. Antes de empezar la instalación recomiendo que visitéis los enlaces puestos a lo largo de la entrada y que os empapéis bien de los conocimientos previos, también es recomendable la web de OpenVPN que está en perfecto inglés como se ha de esperar. Vuelvo a repetir OpenVPN no es una instalación sencilla, requiere de conocimientos previos para poder llevar a cabo su correcta instalación, configuración y puesta en marcha.

1.- Instalación: Actualizamos el sistema e instalamos OpenVPN.

sudo apt-get update
sudo apt-get install openvpn

2.- Configuración: Comenzamos con la configuración de ficheros y generación de certificados necesarios.

Copiamos ficheros:

cp –r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa

Nos movemos al directorio easy-rsa:

cd /etc/openvpn/easy-rsa

Editamos el fichero vars:

vim /etc/openvpn/easy-rsa/vars

Dejamos esta línea así:

export KEY_SIZE=2048

Ponemos los valores siguientes:

export KEY_COUNTRY="ES"
export KEY_PROVINCE="SE"
export KEY_CITY="Seville"
export KEY_ORG="TEST"
export KEY_EMAIL="mail.mydomain"
export KEY_EMAIL="mail@host.domain
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=changeme
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234

Generamos los certificados dentro del directorio easy-rsa, esto puede variar en el tiempo de exportación en función del tamaño del key:

source ./vars
./clean-all

./build-ca

Generamos el certificado del server:

./build-key-server saw

Ahora generamos el certificado del cliente:

./build-key

Generamos la clave HMAC:

openvpn --genkey --secret ta.key
cp ta.key keys

cp -r easy-rsa/keys/ .

Modificamos la configuración VPN para poner el servidor en funcionamiento:

vim /etc/openvpn/server.conf

Dejamos el archivo como aparece a continuación:

port 1194
proto tcp
dev tun

#Nuevos certificados
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/saw.crt
key /etc/openvpn/keys/saw.key
dh /etc/openvpn/keys/dh2048.pem
tls-auth /etc/openvpn/keys/ta.key 0

#rangos de direcciones
server 192.168.1.50 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"

#DNS 
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

client-to-client
keepalive 10 120

cipher AES-256-CBC # Triple-DES
comp-lzo

max-clients 5

user nobody
group nogroup
tcp-nodelay
persist-key
persist-tun

log /var/log/openvpn.log
status /var/log/openvpn-status.log

verb 3
mute 20
#client-config-dir ccd

Habilitamos el bit de forwarding:

echo 1 > /proc/sys/net/ipv4/ip_forward

Eliminamos decomentamos la linea "net.ipv4.ip_forward=1"en el fichero "/etc/sysctl.conf":

vim /etc/syscrl.conf

Cargamos el módulo tun:

modprobe tun

Después de esto habilitamos el servicio y lo arrancamos:

/etc/init.d/openvpn start

Añadimos la siguiente línea de comando para iptables:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s "192.168.88.0/24" -j ACCEPT
iptables -A FORWARD -j REJECT

iptables -t nat -A POSTROUTING -s "192.168.1.0/24" -j MASQUERADE

Finalmente guardar las reglas:

iptables-save


Finalmente vuelvo a recordar que para montar un servidor de este tipo debemos de tener unos conocimientos previos, esta guía es una mera muestra de como montarlo. Para llevarlo a acabo se deben tener conocimientos preestablecidos sobre redes, sistemas operativos, VPN y OpenVPN.



domingo, 10 de mayo de 2015

PPTD : Creando una VPN rápida, sencilla pero no tan segura.







Hoy veremos como crear una pequeña rápida y sencilla VPN sobre un servidor linux para tunelizar nuestras comunicaciones. Para ello usaremos el protocolo PPTP el cual ya os adelanto que no es muy seguro pero que nos sacará de algún que otro apuro para realizar tareas en los nuestros clientes ya que muchas veces para aplicaciones de pequeños negocios  y grandes negocios se necesitan valer de una VPN para trabajar y hacer más productivo su trabajo. Para esto trabajaremos con un servidor debian o deribado. 


Instalando pptpd: Comenzaremos instalando mediante la siguiente línea.

sudo apt-get install pptpd

Fichero de configuarión pptpd: Una vez instalado configuraremos  el fichero pptpd

sudo vim /etc/pptpd.conf

Editamos en el los apartados localip (esta es la ip de nuestro servidor) y remoteip (el rango de IP que se dará a los cliente que conecten)

localip 192.168.1.200 (ejemplo)
remoteip 192.168.1.30-33 (ejemplo)


Fichero de opciones pptpd: Ahora editaremos las opciones de pptpd en el fichero "/etc/ppp/pptpd-options" donde editaremos las dns en mi caso usé para el ejemplo las google, pero en caso de necesidad de usar otro de la red interna sería elegir el adecuado.

vim /etc/ppp/pptpd-options

Editamos los siguientes valores

ms-dns 8.8.8.8

ms-dns 8.8.4.4




Creando un usuario para los clientes que van a conectar: Una vez realizado esto crearemos un usuario con su contraseña que será la que le valga al cliente para validarse, esto se realiza en el fichero "/etc/ppp/chap-secrets"

Aqui editaremos el fichero introduciendo en el usuario, servidor, contraseña y nos valdremos de la siguiente linea de comandos, la cual deberemos modificar en función de los valores que le queramos dar.

echo "usuario pptpd contraseña *" >> /etc/ppp/chap-secrets




Permitiendo redireccionamiento: Ahora debemos permitir el redireccionamiento para que el cliente pueda acceder a todos os dispositivos de la red interna para ello editaremos el fichero "/etc/sysctl.conf" y descomentaremos la linea "net.ipv4.ip_forward=1" y finalmente aplicamos los cambios "sudo sysctl -p".

Abriendo puertos: Ahora tendremos que abrir puertos en el router correspondiente para el correcto acceso del cliente, los puertos que tendremos que abrir seran el 1723 en el router de la red del servidor.

Finalmente nos queda contectar mediante un dispositivo cliente a nuestra VPNRecordar finalmente como se comenta en el comienzo que nos es un tipo de tunelación muy seguro y que por lo tanto tendremos que optar por otras opciones en caso de necesitarlas