mRemoteNG: administrador de conexiones de código abierto.

Hace unos días hemos descubierto este programa que te permite administrar, en un mismo programa y con una interfaz muy sencilla y amigable, múltiples conexiones con diferentes protocolos.

mRemoteNG te permite añadir, usar y gestionar conexiones con los siguientes protocolos:

  • RDP (Remote Desktop/Terminal Server)
  • VNC (Virtual Network Computing)
  • ICA (Citrix Independent Computing Architecture)
  • SSH (Secure Shell)
  • Telnet (TELecommunication NETwork)
  • HTTP/HTTPS (Hypertext Transfer Protocol)
  • rlogin
  • Raw Socket Connections

Obviamente, esto es útil para administradores de sistemas, creadores de páginas web, editores etc. No para el usuario normal.

Pero para los que gestionamos varios servidores, y varios tipos de conexiones, poder conectarte desde el mismo programa por SSH al servidor, o por https al paner de hosting, o incluso por RDP a ordenadores es muy útil.

Podemos tener las conexiones de Putty en el mismo programa que las conexiones https a las páginas web.

La documentación del programa la tenéis aquí, aunque es muy sencillo de usar.



Como exportar e importar la configuración de Putty (cliente de SSH).

Los que nos conectamos a servidores u otros dispositivos de red, solemos usar un protocolo que se llama SSH. El cliente de SSH más usado es Putty.
¿Qué ocurre si tenemos la configuración en un ordenador y lo queremos pasar a otro? Hoy os enseñamos a hacerlo.

Cómo exportar e importar la configuración de Putty.

Curiosamente Putty no guarda la configuración en carpetas, como otros programas, sino en el registro. Por lo que el proceso implica exportar una clave del registro en el ordenador original, e importarla en el nuevo (después de haber instalado Putty).

La clave es Equipo\HKEY_CURRENT_USER\Software\SimonTatham

Podemos exportar esta clave entera, o exportar Equipo\HKEY_CURRENT_USER\Software\SimonTatham\Putty\Sessions (sólo las sessiones).

Recordad que esto guarda configuraciones, usuarios y contraseñas. Pero no los ficheros de clave (que son ficheros y deben pasarse individualmente).

Por línea de comandos se puede hacer así:

CMD:

regedit /e "%USERPROFILE%\Desktop\putty.reg" HKEY_CURRENT_USER\Software\SimonTatham

POWERSHELL:

reg export HKCU\Software\SimonTatham ([Environment]::GetFolderPath("Desktop") + "\putty.reg")

Cómo crear una VPN con OpenVPN en Windows. Parte 2: Cliente

Ok, ya tenemos el servidor Windows funcionando con OpenVPN como indicamos en este artículo. Vamos a configurar los clientes que se van a conectar en remoto. Podéis usar la guía de OpenVPN en inglés también.

Cada cliente tiene que instalar OpenVPN, tener un fichero de configuración, dos ficheros de clave y certificado (crt y key) y dos ficheros de servidor (certificado y ta.key). Vamos a ello.

Configurar las claves de cliente en el servidor.

Vamos a ir al servidor, con un terminal (siempre usamos con permisos de administrador por si acaso) a la carpeta:
C:\Program Files\OpenVPN\easy-rsa  

Ahí escribiremos:
vars (ENTER)
build-key nombredelcliente (ENTER) por ejemplo build-key pgomez

Si hemos configurado bien el servidor, dejamos todo por defecto y damos a ENTER salvo donde pone Common Name que ponemos de nuevo el nombredelcliente. En el ejemplo pgomez.
Al resto Enter para la selección por defecto y dos y cuando lo pida firmar y confirmar.
Tomar nota que los certificados tienen una fecha de caducidad….es decir luego hay que realizar el proceso de nuevo para renovarlos (por seguridad).

En adelante cambia todo lo que ponemos nombredelusuario por el que has puesto en este paso.

Instalación de OpenVPN en el cliente.

Nos vamos al ordenador cliente e instalamos OpenVPN de aquí. Con la opción marcada de Easy-rsa. Si nos pide instalar y confiar en el interfaz TAP decimos que si.

Después, una vez instalado, tenemos que copiar los ficheros:

ca.crt
ta.key
nombredelusuario.key
nombredelusuario.crt


de la carpeta C:\Program Files\OpenVPN\easy-rsa\keys del servidor a la carpeta C:\Program Files\OpenVPN\config del ordenador del cliente remoto.
Nota: ta.key está en C:\Program Files\OpenVPN\easy-rsa

Vamos después, en el ordenador del cliente remoto a la carpeta 
C:\Program Files\OpenVPN\sample-config y copiamos el fichero client.ovpn a la carpeta C:\Program Files\OpenVPN\config (la misma donde hemos puesto los certificados).

Ahora renombramos el fichero client.ovpn que hemos copiado en config a nombredelusuario.ovpn y lo editamos.

  • Busca la línea dev tun y ponle un ; delante y quita el del dev tap. Tiene que tener dev tap para estar igual que el servidor.
  • Ve a la línea que pone
ca ca.crt 
cert client.crt
key client.key

Y lo cambias por
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\nombredelusuario.crt"
key "C:\\Program Files\\OpenVPN\\config\\nombredelusuario.key"
  • Ve a la línea remote my-server-1 1194 y cambia my-server-1 por tu IP fija o por tu dominio (estático o dinámico). Esto le dice a la configuración dónde tiene que apuntar (al servidor OpenVPN).

    Ya lo tienes, sólo ejecuta el OpenVPN GUI del escritorio, y en el icono de la barra de tareas (zona del reloj) botón derecho y conectar. Debería ponerse en verde. Con eso ya tienes conexión.

Cómo crear una VPN con OpenVPN en Windows. Parte 1: Servidor

Hace unos días nos han encargado realizar una VPN en un Windows Server 2008 R2. Como los usuarios podían no ser todos Windows (y también para probar), decidimos no usar la VPN de Windows y crearla con OpenVPN.
Os dejamos los pasos.
Puedes seguir el proceso en inglés también aquí. Y este vídeo está muy bien para ver los pasos (yo he hecho modificaciones al proceso, cuidado).

Configurar el servidor.

Primero hay que configurar el servidor al que se van a conectar los clientes, donde están las carpetas que queremos ver. En nuestro caso el Windows Server 2008, pero puede ser cualquier otro Windows (evidentemente mejor el servidor).

Instalar el programa OpenVPN en el servidor.

Vamos a descargarnos el programa de OpenVPN (es el mismo para servidor y para cliente). Puedes hacerlo aquí (la versión community es la gratuita). El programa más sencillo a descargar es el Windows Installer.
Descargamos el instalador, lo ejecutamos y damos a todas las opciones que si marcando la casilla de EasyRSA 2 Certificate…. (la necesitas para generar los certificados).


Cuando te pida instalar el adaptador TAP di que si y marca la opción de confiar en el fabricante.

Abre un terminal (cmd) y ve a la carpeta C:\Program Files\OpenVPN\easy-rsa  
Pon init-config y pulsa Enter.
Después hace copy vars.bat.sample a vars.bat


Edita el fichero creado con notepad vars.bat
Ve a las líneas siguientes y modifica la información con tus datos. Voy a poner unos de ejemplo:

set KEY_COUNTRY=US 
set KEY_PROVINCE=CA
set KEY_CITY=SanFrancisco
set KEY_ORG=OpenVPN
set KEY_EMAIL=mail@host.domain

Lo modificamos por

set KEY_COUNTRY=ES
set KEY_PROVINCE=MD
set KEY_CITY=Madrid
set KEY_ORG=TUEMPRESA (tb puedes dejarlo como OPenVPN)
set KEY_EMAIL=tucorreo@tucorreo.com

Guarda el fichero y ejecuta (Enter después de cada comando):
vars.bat
clean-all



Generar las claves y certificados del servidor.

  • Ahora vamos a generar las claves y certificados que necesita el servidor. En la misma carpeta de Easy-rsa ejecutamos el comando para crear la entidad certificadora:
    build-ca

Va a preguntar unos valores pero son los anteriores que has puesto en el fichero. Así que con que des a Enter se quedan esos valores.
Salvo cuando pregunte: Common Name (eg, your name or your server’s hostname) [] que yo suelo poner el nombre completo del servidor (aunque OpenVPN lo deja como OpenVPN-CA).

  • Creemos las claves con:
    build-key-server server

Vuelve a preguntar los mismos datos, das como antes a Enter salvo cuando pregunte «Common Name» pones server. Responde y a las dos preguntas y ya está.

  • Ahora genera la encriptación con
    build-dh

Configuración del servidor.

  • Ahora copia el fichero server.ovpn de la carpeta C:\Program Files\OpenVPN\sample-config al directorio C:\Program Files\OpenVPN\config
  • Edita el fichero server.ovpn. Recomiendo Notepad++ o, en Windows Server, Wordpad («abrir con», elegir programa, Wordpad). No uses notepad, te va a descolocar las líneas.

Vamos a modificar las siguientes secciones:

  • Poner el túnel como dev tap. No hace falta hacer la parte de Bridge (puente) en los interfaz de red que dice el vídeo mencionado arriba. Pero por lo que leo tap admite más protocolos que tun (aunque tun requiere menos recursos). Tu elijes, nosotros usamos tap pero sin modo bridge.
  • Donde pone:
ca ca.crt 
cert server.crt
key server.key

Pon:

ca "C:\\Program Files\\OpenVPN\\config\\ca.crt" cert "C:\\Program Files\\OpenVPN\\config\\server.crt" key "C:\\Program Files\\OpenVPN\\config\\server.key"
  • Donde pone: dh dh1024.pem pon: dh "C:\\Program Files\\OpenVPN\\config\\dh2048.pem"

Nota: en la generación de mis certificados me creó el fichero dh2048.pem en
C:\Program Files\OpenVPN\easy-rsa\ La cifra puede variar y podéis tener dh4096.pem, verifícalo.

  • Donde pone server 10.8.0.0 255.255.255.0 elije la red de tu VPN. Puedes poner cualquier red privada pero te recomiendo que no uses las de telefónica típicas (192.168.1.X ni 192.168.0.X). Yo suelo usar las 10, como la que viene en el fichero por ejemplo, o 192.168.2.X, 192.168.3.X etc). También, por lo tanto, puedes dejar la red que viene por defecto. Esto quiere decir que tu servidor VPN tendrá IP de VPN 10.8.0.1 y tus clientes tendrán la 10.8.0.X (según la máscara que elijas).
  • Verifica que la línea tls-auth ta.key 0 pone 0 en el servidor. Quita lo de # This file is kept secret de detrás. En los clientes tiene que ser: tls-auth ta.key 1.
  • Salva el fichero.
  • Copia los ficheros de clave. Ve a C:\Program Files\OpenVPN\easy-rsa\keys\ y copia los ficheros siguientes a C:\Program Files\OpenVPN\config\
ca.crt 
dh1024.pem
server.crt
server.key
server.ovpn
  • En la misma carpeta easy-rsa pon openvpn –genkey –secret ta.key  y copia ese fichero también a la carpeta C:\Program Files\OpenVPN\config\

El servidor ya está. Sólo tendrías que abrir el puerto 1194 UDP en el router apuntando a la IP (fija) de tu servidor. Recomiendo también abrir el firewall de Windows, si está activado, para ese puerto.

Si tienes IP dinámica tendrás que activar un servicio de DNS dinámicon tipo DYNDNS.

Puedes probar a ejecutar el icono de OpenVPN que te ha creado en el escritorio y darle botón derecho>Connect para que se empieze a ejecutar el servidor VPN.

Si todo va bien está preparado para recibir llamadas. Queda configurar a los clientes (en otro artículo).

Nota: si quieres que los clientes remotos vean los clientes de la oficina tienes que activar la opción client-to-client en el fichero de configuración del servidor.
Nota2: si quieres dirigir todo el tráfico del cliente por la VPN activa la opción push «redirect-gateway def1 bypass-dhcp» en el fichero de configuración del servidor.

Nosotros encontramos un error en Windows Server 2008 R2, que al arrancar la primera vez funcionaba, pero si reiniciábamos la GUI el TAP no cogía IP en Windows (OpenVPN decía que si). Y no sabía enrutar. Lo arreglamos instalando OpenVPN como servicio (otro artículo) y, si ocurre (que no debería al ser un servicio) con desactivar el TAP un momento y volver a activarlo cogía IP de nuevo.

Cómo desbloquear una IP bloqueada con Fail2ban

Hace un tiempo escribimos un artículo sobre cómo proteger un servidor con Fail2ban. Es una gran herramienta. Pero a veces bloquea IPs que no queremos. Por ejemplo si un cliente se equivoca mucho en su contraseña, o nosotros mismos (alguna vez nos ha bloqueado jejeje). Hoy os enseñamos cómo desbloquearlo.

Cómo desbloquear una IP bloqueada con Fail2ban.

Tenemos que conectarnos por ssh. Obviamente si nos ha bloqueado nuestra IP no podremos, así que o tendremos que acceder desde otro sitio (casa u otra oficina), o cambiar nuestra IP dinámica (reseteando router y ONT y ver si la cambia), o accediendo desde el SSH de nuestro panel del servidor.
Nota: Apunta antes la IP que quieres desbloquear, la tuya. Puedes verlo buscando cual es mi IP en Google. Cualquiera de esas páginas te lo dará.

Una vez hemos accedido por ssh tenemos que encontrar qué servicio nos han bloqueado en nuestra IP (ssh, ftp etc). Para ello tenemos que ejecutar:

iptables -L -n

Ahí comprobamos nuestra Ip y el servicio.

Podemos verificar los servicios con

fail2ban-client status

Ahora para desbloquear la IP ponemos:

fail2ban-client set servicio unbanip XXX.XXX.XXX.XXX

Donde servicio es el servicio que nos han baneado (ssh, ftp etc) y XXX…. la IP a desbloquear.

Con eso prueba a acceder porque debería estar solucionado.

Cómo saber las conexiones activas por FTP en un servidor Linux

Si tienes un servidor Linux y quieres saber qué conexiones de FTP están activas en ese momento o, dicho de otra manera, cuánta gente hay conectada en ese momento por FTP, hoy os decimos cómo.

Enumerar las conexiones activas por FTP en un servidor Linux.

  • Pure-ftpwho: Este es uno de los primeros comandos a probar. En línea de comandos lista las conexiones de FTP activas. Pero además tiene algún parámetro interesante como -c  o -w que hace que el resultado se muestre en html. Por lo tanto puede usarse en u script y mostrarse en una web o herramienta interna.
  • Puedes filtrar los resultados de netstat para el puerto que quieras, tanto el 21 de FTP clásico como el 22 de sftp.
    netstat -tan | grep \:21     para FTP
    netstat -tan | grep \:22    para SFTP
  • En algunos servidores, si lo tienen instalado, también puedes ejecutar ftptopftpwho.

Así podréis vigilar vuestras conexiones en  el servidor.

Ncdu. Comprueba el uso de tu disco desde terminal en Linux mejor que con du

Ya hemos comentado que para ver el uso del espacio por termina en Linux se puede usar el comando du (es el que usamos todos). Pero du es más bien escaso (por decir algo). Si necesitamos más información, conviene instalar ncdu, del que hablamos hoy.

Ncdu (Ncurses disck usage) es un analizador de disco programado en C y realizado bajo la interfaz ncurses (que permite crear aplicaciones con interfaces basadas en texto).  Añade varias funcionalidades a du y lo hace más visual y completo.
No viene por defecto en muchas distribuciones pero si está en los repositorios de las principales, así que puedes instalarlo fácilmente. En Debian y similares con:

sudo apt-get install ncdu

Uso del comando.

Una vez instalado, si ejecutas ncdu sin opciones obtendrás un listado de directorios en forma de árbol.

También se puede dar una ruta específica como:

ncdu /home/

Podrás navegar por el listado con el cursor o las flechas (lo bueno de la interfaz gráfica). Pulsando la tecla i encima de un directorio te dará información del mismo.

Como el programa está destinado a limpiar servidores, también te permite la opción de borrar. Puedes ponerte encima de una elemento y pulsar la tecla d para borrar (te pide confirmación, tranquilos).
La tecla ? te lleva a la ayuda con más comandos que puedes realizar.
Para salir tienes que pulsar la tecla q.

Además de la interfaz visual, ncdu tiene funciones extra. Por ejemplo podemos crear informes y enviarlos a un fichero:

ncdu /home/datos -o informe.txt

Estos ficheros tienen mucha información y no son muy amigables, puede pueden usarse como fuente y leerse desde el mismo comando:

ncdu-f informe.txt

Además, podemos programar la creación de estos informes en un crontab.

Hay muchísimas otras opciones como exclusiones, quiet mode etc, pero para más información mejor consultad el manual oficial.

Como veis un pequeño comando muy útil para los que usamos Linux.

Cómo configurar http/2 para Apache (ejemplo con Debian)

Hace unos días explicamos las ventajas de http/2, las páginas vuelan. Hoy queremos explicaros cómo activarlo en vuestro servidor Apache. En el ejemplo supondremos un servidor Debian (varía poco en otro sistema).

Apache tiene que tener el mod_http2.

Lo primero es que tu versión de Apache tiene que venir con el módulo http2  (mod_http2) compilado. Si no puedes o cambiar a una versión que lo tenga, o compilar Apache. Para poder hacerlo tu sistema necesita al menos la versión 1.2.1 de libnghttp2. Una vez comprobado, compila Apache con –enable-http2.

Http/2 funciona casi exclusivamente con SSL (https). Necesitas certificado.

Aunque no es una petición de http/2, la mayoría de los navegadores sólo hablan http/2 con certificado. Así que asegúrate que tus webs (las que quieres que vayan con http/2) lo tienen. Recuerda que puedes tener ambas cosas activadas así que puedes tener http/2 con alguna web y http/1 con otras.

Seguramente tendrás que cambiar tu Módulo de MultiProcesamiento (MPM).

Http/2  no funciona con todos los MPM. No funciona con apache mpm prefork desde apache 2.4.27. Hay que usar mpm worker o event. Pero mpm worker y event no pueden utilizar mod_php necesitan por fuerza usar fastcgi o php-fpm, así que a lo mejor también tienes que cambiar eso.

Os dejamos un ejemplo:

    apachectl stop
    apt-get install php7.1-fpm # Instala el Php-fpm Esto puede variar por la versión
    a2enmod proxy_fcgi setenvif
    a2enconf php7.1-fpm # De nuevo depende de la versión a instalar.
    a2dismod php7.1 # Deshabilita mod_php
    a2dismod mpm_prefork  # Deshabilita el prefork anterior porque sólo se puede usar un MPM
    a2enmod mpm_event  # Habilita event. Puedes habilitar worker en vez de este.
    apachectl start

Configuración.

Lo primero es activar el módulo con :

LoadModule http2_module modules/mod_http2.so

O activarlo con:

a2enmod http2
  apachectl restart

Después tienes que modificar tu fichero de configuración de Apache para decir si quieres que todas las webs vayan preferiblemente con http/2. Por ejemplo con :

Protocols h2 http/1.1

o

Protocols h2 h2c http/1.1

Como veis si no puede usar el 2 carga el protocolo en versión 1. Si, por el contrario, quieres activarlo sólo por web, por virtual host, tienes que hacer algo como:

Protocols http/1.1
<VirtualHost *:443>
    ServerName tudominio.es
    Protocols h2 http/1.1
</VirtualHost>

Recuerda reiniciar Apache para que todo se active.

Cómo poner certificado SSL en tu web usando Cloudflare

Hace unos días un cliente nos dijo que por qué no activábamos SSL en su web ( dados los cambios de Google ) a través de Cloudflare porque era «muy fácil». Es fácil, pero queremos explicaros las ventajas y desventajas.

Cloudflare ofrece varias opciones para activar los certificados. Os lo dejamos de manera sencilla:

  1. Si no tienes certificado en tu servidor y o ni ganas o ni conocimiento sobre cómo instalarlo:  Flexible SSL.

    Este modo es el más sencillo. No requiere configuración, ni conocimientos ni instalación. Damos a un botoncito en nuestro panel de Cloudflare y, como por arte de magia, tenemos https (SSL). ¿Fácil no? Pues como siempre no es oro todo lo que reluce.

    Este método sólo cifra desde Cloudflare hasta el visitante. Pero el trayecto de Cloudflare a tu servidor está sin cifrar. Si, en teoría todo debería pasar por Cloudflare, pero de la teoría a la práctica hay mucho trecho.

    Realmente no tienes un certificado, pero el cliente (y Google etc) ven como si lo tuvieras porque Cloudflare lo emula. Pero si se cae ésta, o dejas de usarlo, ya no lo tienes. Hasta ellos dicen que : «It should only be used as a last resort if you are not able to setup SSL on your own web server, but it is less secure than any other option…..(…) This option is not recommended if you have any sensitive information on your website»

    En resumen es una «chapucilla» que puede servir, si no puedes instalar un certificado, para salir del paso. Pero recomendamos que sea sólo momentáneo.

  2. Si puedes instalar un certificado en tu servidor: Full SSL.

    Esta es la opción clásica y más segura para activar SSL. Se instala el certificado (del tipo que sea) en tu servidor y así todo el trayecto está cifrado.
    Requiere que tengas un certificado válido. Puedes usar los de LetsEncrypt o alguno de pago.
    Pero también Cloudflare emite certificados Es lo que llama Origin CA , en el que es Cloudflare la que actúa como entidad certificadora.
    Eso si en Free y Pro son compartidos, a partir de Business creo que es ya un certificado personalizado.
    Eso si, instalar un certificado en un servidor no es muy sencillo, requiere conocer el proceso. Y luego, una vez activado, podemos tener que revisar los enlaces y cambiar código en base de datos o por código porque tendremos muchos que estén puestos por http. Por ejemplo los enlaces puestos a mano tendrán que cambiarse a manos.

  3. Strict (SSL-Only Origin Pull):  Esto es sólo para las cuentas Enterprise. Lo que hace es que si tienes alguna petición http en tu web, te la devuelve como https aunque no lo hayas configurado así.

Así que Cloudflare te puede ayudar a pasar a SSL si no tienes ni idea de cómo hacerlo, con la opción sencilla. Si no, te proporciona un certificado, o puedes hacerlo por tus medios.

Modo rescate OVH: cómo acceder a tu servidor aunque esté caído o bloqueado.

Tenemos servidores de clientes en varios proveedores, uno de ellos OVH. Hace unos días uno de dichos servidores, tras una modificación en los iptables, nos echó y no dejaba conectarnos. De ninguna manera, ni tras reiniciar.
Por si os ocurre, os explicamos el modo rescate de OVH (gracias, gracias, gracias OVH), a través del cual pudimos deshacer la modificación anterior y acceder de nuevo al servidor.

El modo rescue-pro, rescate, carga un sistema Linux basado en Debian desde red, lo que te permite montar los discos y hacer los cambios necesarios. Igual que si tuvieras el servidor delante y iniciaras en modo recuperación de Linux.

Para activar el modo rescate (inglés):

Tienes que ir al área de cliente dedicado y seleccione el servidor al que quieres acceder en la columna izquierda. En la pestaña «Estado del servidor», en «Información general» > «Boot», pincha en «Editar». Después «Iniciar en modo rescue» y elige la configuración rescue-pro.

Una vez elegido ese modo de inicio, hay que reiniciar el servidor. Si puedes por SSH, si no desde el panel de OVH.
OVH mandará un correo con el la contraseña temporal de root. Entra por SSH, usa el usuario root y la contraseña que te han mandado. Verás que puedes acceder, pero no tienes los discos montados. Tienes que montarlos. Para saber que disco tienes puedes hacer fdisk -l.
Monta los discos, por ejemplo con:

mount /dev/hda2 /mnt/var 

Después haz los cambios que necesites.

Para desactivar el modo rescate entra de nuevo en el mismo menú de OVH y después en el modo de inicio escoge «Iniciar en el disco duro». Después reinicia el servidor.

Este tipo de servicios de los proveedores no tienen precio 😀