Cómo abrir el puerto 25 en los servidores AWS (Lightsail y EC2) de Amazon

Si decides adquirir los servidores cloud de Amazon AWS (muy potentes aunque no son baratos), tenéis dos opciones principales:

  • Lightsail (la gama asequible y de entrada de Amazon).
  • EC2: todo el resto de instancias (servidores virtuales) de Amazon. Pensado para grandes proyectos y empresas. Con Amazon puedes hacer desde el proyecto más pequeño…al más grande.

En ambos casos, una vez instalado el servidor, o instancia, veréis que el puerto 25, el de SMTP, (puerto que usan los servicios de correo por defecto para enviar) está bloqueado. No salen los correos.
Esto es porque, como dicen “Amazon EC2 restricts traffic on port 25 of all EC2 instances by default, but you can request for this restriction to be removed” (y también vale para los Lightsail. Es decir, bloquea ese puerto por defecto.

¿Cómo se quita el bloqueo del puerto 25 en los servidores AWS?

Las instrucciones vienen aquí, pero lo que hay que hacer es rellenar este formulario para presentar la solicitud.

En el formulario tienes que explicar el uso para el que vas a destinar tu servidor. Además puedes proporcionar direcciones IP y, si las tienes, registros de reverse DNS, para reducir el riesgo de que los correos se marquen como spam.

Si te aprueban el formulario, recibirás una notificación que el puerto 25 ha sido desbloqueado.

Deshabilitar y habilitar el módulo de phpMyAdmin en Apache por comando.

Si manejas bases de datos de aplicaciones web, lo mejor es que gestiones las bases de datos desde tu ordenador con conexiones de programas como Mysql Workbench. O que limites las conexiones por IP. Es muy inseguro que tengas abierta al público una herramienta como phpMyAdmin que gestiona las bases de datos. Por muchos cambios de puerto o de rutas que hagas.

Sin embargo, tienes otra opción, que es habilitar y deshabilitar el módulo de phpMyAdmin de Apache por comando. Así, lo activas cuando lo vayas a usar, lo desactivas cuando no lo estés usando. Es muy difícil que alguien detecte cuando lo has activado y rompa tu acceso (usuario y contraseña) justo en la ventana en que lo has activado.

Habilitar y deshabilitar el módulo y phpMyAdmin en Apache por comando.

Os dejamos aquí los comandos.

Para habilitar el módulo de phpMyadmin.

a2enconf phpmyadmin

Te va a pedir reiniciar apache y te sugiere el comando, normalmente:

sudo apache2 restart

Para deshabilitar el módulo de phpMyadmin.

Para desactivarlo es:

a2disconf phpmyadmin

De nuevo te pedirá reiniciar Apache (comando en la primera parte del artículo).

MobaXterm: gestor de conexiones para Windows con cliente X server y mucho más.

La gente que nos conectamos a servidores usamos unos clientes, normalmente varios dependiendo de la labor a realizar. Si quieremos conectarnos por comandos usamos un cliente SSH como Putty. Si queremos conectarnos por FTP o SFTP usamos clientes como Filezilla, etc…

Pero de vez en cuando descubrimos herramientas que incluyen todo esto, y muchísimo más, en un mismo paquete. Este es el caso de MobaXterm.

Estamos hablando de, entre otras funcionalidades.

  • Cliente para conexiones: SH, Telnet, Rlogin, RDP, VNC, XDMCP, FTP, SFTP o Serial
  • Navegador visual de conexiones SFTP.
  • Servidor X11 incorporado : puedes ejecutar aplicaciones de la máquina remota en tu PC.
  • Permite ejecutar el mismo comando en varios servidores al mismo tiempo.
  • Permite ejecutar servidores de varios tipos para conectarte en remoto (crea demonios locales).
  • Herramientas de red y de sistemas.
  • Escritorio remoto de Unix XDMCP
  • Conexiones RDP desde MobaXterm.
  • Crear y gestionar túneles de SSH de manera muy sencilla y visual.
  • Package manager que te permite instalar más herramientas de Unix.
  • Editor de texto
  • Soporta macros
  • Gestor de contraseñas
  • Subraya código en diferentes colores.
  • Muchos plugins adicionales.

Es como el gestor de conexiones todo en uno, que además tienes herramientas adicionales. Viene en versión portable (para llevarlo a cualquier instalación) y versión instalable.

La única pega (razonable) es que es gratuito para versión Home, (uso no comercial y está limitado aunque es muy potente) y para empresas es de pago.

Tienes una demo de alguna de sus funciones aquí, pero os recomiendo que lo probéis porque es mucho más potente de lo que se ve en la demo.

Si gestionas o te conectas a máquinas o servidores remotos, pruébalo, te sorprenderá.

Tipos de rack, dimensiones y unidades.

Como nos ha surgido la duda varias veces, y nos lo ha preguntado algún cliente, vamos a dedicar el vídeo de hoy a los tipos de armario rack que existen.

¿Qué es un armario rack?

Un rack es un tipo de armario que se usa para colocar y ordenar elementos informáticos, normalmente en una empresa (aunque podemos poner uno pequeño en casa). Tiene unas columnas especiales en las que se pueden colocar los diferentes elementos de un centro de datos (switch, routers, rack, paneles etc).
Obviamente, tiene unas medidas y unas unidades estándar que procedemos a explicar.

Tipos de Rack.

Por cómo se colocan están:

  • los rack tipo mural (se pueden colgar y quedan como una estantería o un pequeño armario colgado)
  • los rack de suelo (son aquellos que se colocan en el suelo como un armario).

Por sus dimensiones se clasifican por su anchura en pulgadas (1 pulgada son 2,54 centímetros). Tenemos entonces los de:

  • 10″ = 25,4 cm de ancho.
  • 13″ = 33,02 cm de ancho.
  • 19″ = 48,26 cm de ancho. Los más comunes.
  • 23″ = 58,42 cm de ancho.
  • Etc…

Las unidades U de rack.

Dentro de los rack se habla mucho de las U. Es una medida estándar que mide la cantidad de unidades (U) que se pueden colocar (una encima de la otra). Una U son 4.445 cm.

Por ejemplo un rack de 42U puede contener 42 unidades dentro (y son casi 2 metros de altura).

Es evidente que, cuando hablemos de U, tenemos que saber también de qué ancho estamos hablando (si son unidades de rack de 19″ o de 23″). De alto serán lo mismo (por las U) pero no de ancho.
Existen también unidades de medio rack con varias U, cuando queremos colocar algún elemento que no cubra todo el rack de ancho.

Existen armarios rack de 6U, 9U, 12U, 15U, 18U, 22U, 24U ,42 U…. Obviamente a mayor U mayor altura.

Cuando compres aparatos de rack, es importante saber sus U para saber cuánto vas a ocupar. Y cuando compres el rack…planea para el futuro.

Fondo.

La última dimensión tras el ancho (en pulgadas) y el alto (en U) es el fondo. Las más comunes son 45 cm y 60 cm.

El estándar que rige las unidades de rack es el EIA-310 .

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 haz copy vars.bat.sample 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 (las dobles contrabarras y las comillas son importantes):

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.