Configurar OpenVPN

INTRODUCCIÓN

VPN o red privada virtual es una red privada segura a través de una red pública como Internet. Una VPN es un túnel seguro a través de Internet que protege su tráfico de datos y aumenta la privacidad y seguridad de Internet. El acceso a la VPN está restringido por métodos de autenticación seguros.

OpenVPN es un software de código abierto para construir redes privadas virtuales, utiliza la biblioteca OpenSSL para cifrar los datos tunelizados y admite transportes UDP o TCP. OpenVPN puede usar claves previamente compartidas, autenticación basada en certificados y basada en nombre de usuario / contraseña.

En este tutorial, les mostraré cómo implementar una red privada virtual usando OpenVPN bajo el sistema operativo Linux OpenSUSE Leap 15.1

PRERREQUISITOS

OpenSUSE Leap 15.1 – 64bit
Acceso a la cuenta Root
TUN/TAP habilitados.

PASO 1 – Verificar si TUN/TAP esta habilitado

Si se desea crear una VPN en su servidor, hay que asegurarse de que TUN / TAP esté instalado y habilitado en el servidor. Se puede comprobar mediante el siguiente comando:

  # cat /dev/net/tun

Si resultado es:

  # cat: /dev/net/tun: File descriptor in bad state

significa el paquete no está instalado y habrá que instalarlo.

Paso 2 – Instalar OpenVPN

OpenVPN está disponible en el repositorio de OpenSUSE. Se puede instalar con el comando zypper:

  # zypper install openvpn

Paso 3 – Configurar Easy-RSA

Una vez intalado OpenVPN, descargamos easy-rsa para generar un archivo de certificado. Easy-rsa es una utilidad para administrar certificados, puede crear la autoridad certificadora raíz con ella y solicitar y firmar certificados.

Para esto, vamos al directorio OpenVPN (etc/openvpn) y descargamos easy-rsa con el comando wget:

  # cd /etc/openvpn/
  # wget https://github.com/OpenVPN/easy-rsa/archive/release/2.x.zip

Descomprimimos el archivo descargado y movemos el directorio easy-rsa:

  # unzip 2.x.zip
  # mv easy-rsa-release-2.x/easy-rsa/ /etc/openvpn/
  # rm -rf easy-rsa-release-2.x/

Configuramos la clave:

Vamos al directorio easy-rsa y editamos el archivo «vars» para configurar la clave y el certificado:

  # cd easy-rsa/2.0/
  # vi vars

Linea 29 – Modificarla para dejarla como se debajo

export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf

Línea 53 – Puede aumentar el tamaño de la clave. Baja la perfomance

export KEY_SIZE=2048

Línea 56 y 59: en cuántos días vencerán la clave y el certificado.

export CA_EXPIRE=3650
export KEY_EXPIRE=3650

Línea 64 – 72: cambiamos el valor predeterminado de la clave y la información del certificado.

export KEY_COUNTRY="AR"
export KEY_PROVINCE="Santa Fe"
export KEY_CITY="Casilda"
export KEY_ORG="Master Solutions"
export KEY_EMAIL="mimail@mastersolutions.com.ar"
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="EasyRSA"

Guardamos el archivo y cerramos vi.

Inicializar la PKI

A continuación, inicializamos la PKI (infraestructura de clave pública):

  # source ./vars && ./clean-all && ./build-ca

Dejaremos los valores predeterminados, solo presionamos ‘Enter’.

Generar parámetros de Diffie Hellman

Ejecutamos el siguiente comando:

  # ./build-dh

Y veremos la siguiente salida:

Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
…………………………….

Generamos la clave privada del servidor

Generamos la clave privada con el nombre ‘server’:

  # ./build-key-server server

Presionamos ‘Enter’ y respondemos ‘y’ (dos veces) para confirmar y generar la clave.

Generar clave y certificado para el cliente

Generamos la clave del cliente y el certificado con el nombre ‘ayuale’:

  # ./build-key ayuale

Presionamos ‘Enter’ y respondemos ‘y’ (dos veces) para confirmar la generación de la clave.

La clave y el certificado se han generado en el directorio ‘keys’. Ahora hacemos una copia del directorio ‘keys’ y lo colocamos en el directorio ‘openvpn’.

  # cp -r keys/ /etc/openvpn/

Paso 4: configurar OpenVPN

En este paso, configuraremos OpenVPN para que se ejecute en el protocolo UDP, utilizando el puerto 1194 (default) para la conexión del cliente. Creamos el nuevo archivo de configuración server.conf en el directorio OpenVPN.

  # cd /etc/openvpn/
  # vi server.conf

Pegamos la configuración a continuación:

# Cambiar con el puerto que indicamos a openvpn
port 1194
# Podemos usar UPD o TCP
proto udp
# 'dev tun' creará un túnel IP enrutado.
dev tun
#ca certificate
ca /etc/openvpn/keys/ca.crt
#Server Certificate
cert /etc/openvpn/keys/server.crt
#Server Key hay mantenerlo en secreto
key /etc/openvpn/keys/server.key
# Ver el tamaño del dh key en /etc/openvpn/keys/
dh /etc/openvpn/keys/dh2048.pem
# La IP interna se obtendrá cuando ya esté conectado
server 10.10.2.0 255.255.255.0
# esta línea redirigirá todo el tráfico a través de nuestro OpenVPN
push "redirect-gateway def1"
# Proporcione servidores DNS al cliente, puede usar goolge DNS
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
# Permitir que varios clientes se conecten con la misma clave
duplicate-cn
keepalive 20 60
comp-lzo
persist-key
persist-tun
daemon
#  registro de estado
status /var/log/openvpn/openvpn-status.log
# Habilitar el log
log-append /var/log/openvpn/openvpn.log
# Nivel de Log
verb 3

Guarde el archivo y salga del editor.

A continuación, creamos un nuevo directorio y archivo para el registro de los de openvpn:

  # mkdir -p /var/log/openvpn/
  # touch /var/log/openvpn/{openvpn,openvpn-status}.log

Paso 5: configurar SuSEfirewall2

SuSEfirewall2 es un script para generar reglas de iptables basadas en el archivo ‘/etc/sysconfig/SuSEfirewall2’. Instalaremos SuSEfirewall2 y luego configuraremos el puerto para acceder a OpenVPN, luego habilitaremos NAT con un script iptables para OpenVPN.

Instalamos SuSEfirewall2 con el comando zypper:

  # zypper in SuSEfirewall2

Ahora, vamos al directorio sysconfig y editamos el archivo de configuración SuSEfirewall2:

  # cd /etc/sysconfig/
  # vi SuSEfirewall2

Línea 138 – Habilitar ruta.

FW_ROUTE="yes"

Linea 257 – Habilitar el pure TCP  22 para acceso SSH desde fuera de la red.

FW_SERVICES_EXT_TCP="22"

Linea 271 – Habilitar el puerto udp 2034, para acceso de clientes openvpn

FW_SERVICES_EXT_UDP="1194"

Línea 901: Habilite las reglas personalizadas SuSEfirewall2.

FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom"

Guardamos y salimos de vi.

A continuación, editamos las reglas personalizadas de SuSEfirewall2 en el directorio de scripts.

  # cd /etc/sysconfig/scripts/
  # vi SuSEfirewall2-custom

Dentro de la directiva ‘fw_custom_after_chain_creation’, pegamos las nuevas reglas de iptables para OpenVPN:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.10.2.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.10.2.0/24 -o eth0 -j MASQUERADE

Guardamos y salimos del editor.

Nota:
IP 10.10.2.0/24 es la red del archivo de configuración server.conf OpenVPN.

Ahora podemos habilitar el reenvío agregando esta nueva línea de configuración al archivo sysctl.conf.

  # vi /etc/sysctl.conf

Pegamos la configuración a continuación:

net.ipv4.ip_forward = 1

Guardamos y salimos del editor.

Nota:
Si ya tiene la línea en el archivo, cambie el valor de ‘0’ a ‘1’ en lugar de agregar una nueva línea.

Ahora ejecutamos el siguiente comando para aplicar el cambio de configuración.

  # sysctl -p

Iniciamos o reiniciamos el SuSEfirewall2 y el servidor OpenVPN:

  # systemctl start SuSEfirewall2
  # systemctl start openvpn@server

Si tenemos algún un error, podemos ver el mensaje de error detallado en el registro de OpenVPN.

Agregamos los servicios al inicio del sistema:

  # systemctl enable SuSEfirewall2
  # systemctl enable openvpn@server

Paso 6: configurar el cliente

Descargamos la clave del cliente y el certificado del directorio de claves a su computadora local. Puede usar el comando scp o sftp, estoy aquí usando scp:

Este comando que debe ejecutarse en la computadora local.

  # scp root@serverip:/etc/openvpn/keys/ca.crt ~/myvpn/
  # scp root@serverip:/etc/openvpn/keys/ayuale.crt ~/myvpn/
  # scp root@serverip:/etc/openvpn/keys/ayuale.key ~/myvpn/

En el directorio myvpn, cree un nuevo archivo de configuración para el cliente ‘ayuale.ovpn’.

  # cd ~/myvpn/
  # vi ayuale.ovpn

Luego, pegamos la siguiente configuración:

client
remote [IP_DEL_SERVIDOR] 1194
ca ./ca.crt
cert ./ayuale.crt
key ./ayuale.key
comp-lzo yes
cipher AES-256-CBC
dev tun
proto udp
nobind
auth-nocache
script-security 2
persist-key
persist-tun
remote-cert-tls server

Guardamos y salimos el edito.

Para conectarse a nuestra VPN, se puede instalar un cliente VPN o, si está usando Linux, puede usar el ‘Network-Manager’. Si queremos probar la VPN con una terminal, podemos usar el siguiente comando:

  # cd ~/myvpn/
  # sudo openvpn –config ayuale.ovpn

Clientes

Para Mac: Tunnelblick
Para Windows: OpenVPN Connect

Referencias

https://en.opensuse.org/SDB:OpenVPN_Installation_and_Setup

 

 

 

 

 

 

 

 

 

 

 

 

El Estado y los Servicios públicos

Por estas horas se esta debatiendo en la redes y en los medios, la decision del gobierno de pasar a Servicios Públicos a internet,  a la TV paga y la telefonía celular, según tuits enviados por el presidente.

Particularmente me gusta analizar el efecto que eso tendrá en la gente, mas que la discusión política, porque la segunda no lleva a nada (si no se dá en el ámbito del Congreso) y la primera impacta en la gente, en las empresas y en el propio Gobierno.

Toda empresa que brinda un servicio, tiene un costo por brindar ese servicio. Supongamos que el servicio vale $100 pesos, y la empresa los comercializa a $130. $30 es el margen bruto, que después, debe ser utilizado para pagar impuestos y otros costos no directamente asociados al servicio, es decir que la ganancia neta puede ser de $7 u $8 pesos. (No importa la magnitud, solo es un ejemplo)

Si el gobierno congela la tarifa en $130 y luego aumentan los sueldos, aumenta el alquiler, aumenta el costo de la fibra óptica, aumenta el costo del satélite, aumenta el dólar y los equipamientos para estos servicios están dolarizados, la empresa va a empezar sacar de esos $7 u $8 de ganancia neta, para poder cubrir el aumento de costos. Si no existieran estos aumentos, cuál sería el sentido de congelar las tarifas ?

Llega un punto de quiebre donde la empresa ya no puede operar normalmente, porque directamente da pérdida. Alli comienzan las negociaciones con el gobierno y aparecen los benditos subsidios a las empresas, entonces si el servicio debería salir por ejemplo $150, los $20 que faltan, los pone el Estado. La gente contenta porque el servicio no aumenta, la empresa contenta por cobra lo que debería…. El problema es de dónde salen los $20. Obviamente de la creación de otros impuestos y/o aumento de los ya existentes (retenciones al agro, por ejemplo, bienes personales, etc.), de más emisión monetaria, que va a generar más inflación o con financiamiento externo. Subir los impuestos es imposible, porque la ciudadanía no soporta los ya existentes, financiamiento externo, no existe, ya que nadie nos presta dinero a tasas razonables y diría que tampoco a tasas irracionales. Solo queda la posibilidad de emitir dinero. Como ya sabemos y sufrimos, esto genera inflación, que lo terminamos pagando todos por igual, solo que los que menos ingresos tienen, la sufren mas, porque consumen todos su ingresos. Es decir que la persona que no tiene TV paga, la termina pagando en el costo del sachet de leche o en el kilo de pan de carne o de manzanas.

Por otro lado, estos $20 de diferencia, también dejan espacio a la corrupción… porque en la negociación del subsidio, se le pide a la empresa que infle los costos, para poder repartir el exceso. Por ejemplo el valor de venta real debería ser $140, se informa $150 y la diferencia de $10 la reparten entre el funcionario del gobierno, que se lleva $7 («roben, pero con código»)  y el encargado de la empresa, los otros $3.

De esta forma, la empresa pasa a ser complice del gobierno y pierde el foco de su existir, transformándose en una empresa sin proyectos a futuro, mas que cobrar a fin de mes la tajada del Estado. Cuando este mecanismo persiste en el tiempo, los valores suelen ser mucho mas grandes en forma porcentual al valor del servicio mismo.

Muchas veces, el gobierno, con la necesidad de bajar la emisión, deja de aportar esos $20 a la empresa (aunque alguien pierda su tajada) y la empresa comienza a brindar un mal servicio, porque está incapacitada de hacerlo. El primer costo que eliminan es el mantenimiento (recuerden el tren sarmiento). Entonces, por ejemplo,  si se corta Internet, tendrás varios días o semanas antes de que te lo arreglen, porque en vez de haber 100 personas trabajando en eso, habrá  20 personas o menos. Con el tiempo, el servicio es una porquería, y obsoleto, más allá, de que además se pierden puestos de trabajo.

Por el otro lado, si la empresa se desarrolla libremente, sin intervención del Estado, invierte en nuevas tecnologías, realiza nuevas investigaciones promueve el desarrollo de las personas que allí trabajan para brindar mejores servicios, ser mejores en el mercado, y que la gente los elija y los inversionistas confíen en ellos.  Si ve que tiene servicios caros, su estrategia es segmentarlos, y, volviendo a los servicios de Internet, crean servicios de 50Mb, de 100Mb, de 200Mb. Obviamente las personas de mas ingresos tomaran el servicio de 200Mb y personas de menos ingresos tomaran el servicio de 50Mb. Es una estrategia natural para poder llegar con el servicio a más cantidad de gente. Y si aun es caro el servicio de 50Mb, seguro otra empresa encontrara un nicho de posibilidades de ventas en 10Mb. Otro tipo de empresas crean diferentes marcas, para poder segmentar sus productos, según los ingresos de la gente.

Como ejemplo, en el año 2002, 64Kb de internet en una linea dedicada, de cobre, costaban U$S 800 !! Con los años 100Mb cuestan alrededor de U$S 52 y con fibra optica. El aumento del mercado, la expansión del servicio, el libre comercio, la no interferencia del Estado, logro esta tremenda baja en el costo y aumento de la calidad del servicio. 

Nada tiene que hacer el estado interfiriendo en  telefonía celular, TV de pago o internet… El estado debe dar educación, salud, seguridad y crear las condiciones necesarias para que haya estabilidad económica. Los demás temas, los llevamos adelante los trabajadores, emprendedores, comercios y empresas.

Si fuéramos Suecia en educación, salud, seguridad y estabilidad económica, tampoco haría falta la intervención del estado en estos temas, porque todos podrían pagar dignamente el valor del servicio.

© Agosto 2020, Viru Yualé