Mi nuevo viejo vps

2023-09-27T03:00:00+02:00 | 6 minutos de lectura | Actualizado en 2023-09-27T03:00:00+02:00

Mi nuevo viejo vps

De un proyecto de consultoría hace mucho tiempo en un CPD muy lejano… Esto si es legacy de verdad. Vamos a preparar un documento del plan de continuidad.

Pues resulta que tengo aún un VPS

Si, diréis “Nadie es tan despistado para no saber que tiene algo por ahí”.
Pues es un servidor que en un principio funcionó para un proyecto, a modo de sonda y de testigo (whiteness lo llaman ahora) donde por necesidades monté un servicio para balancear por GSLB un par de Netscalers de Citrix, y luego además sirvió para medir las diferencias de replicación entre servicios de VSAN (por favor, un ubemeguare expuesto no que horror) pero ya.
Cuando terminé con ello decidí quedarme con uno de los VPS para pruebas y vamos que si funcionó.

Durante la pandemia del 2020 hizo de todo, pero lo mas espectacular, ser el servicio de radio de Wintablet en <player.wintablet.info> con un Icecast2 y una web resultona con reproductor embebido.
También hizo de servidor web para la <maratonpod.es> o <maratonpod.com> que ya no me acuerdo, y tantos otros proyectos descabellados, que por algún motivo (cof cof trabajo cof cof) dejé de mantener y fueron cayendo poco a poco en un automantenido servidor Debian 9.

Plan de trabajo

Pues es simple. Esto es un backup de lo que he ido haciendo para reinstalarlo y todas las modificaciones que he metido, por lo que pueda pasar.
La reinstalación se pide desde el panel del IaaS del proveedor, así que reinstalación al canto. Ni backup ni ná.
Un nuevo Windows Debian 12.1 se cocina en 10 minutos.

Primera conexión

Como ya me he conectado, hay que eliminar los residuos de las claves ssh que hay en los host conocidos.
Con nano -l ~/.ssh/known_hosts será suficiente en mi caso. Vosotros el editor que más rabia os de.
Así que ya, ssh a la ip, siendo root porque el script de instalación no contempla ni usuarios, ni paneles ni nada.

ssh -x root@vps.yovirtualizador.com  # -x es para deshabilitar cualquier intento de que se levante X11Forwarding

Como soy muy vago, voy a crear un usuario, instalar alguna cosilla y otras opciones que me vienen bien, y lo pongo todo juntito en un solo bloque porque sí. No creo que haga falta demasiada explicación a este bloque de código.

useradd -d /home/yovirtualizador -m -s/bin/bash -c YoVirtualizador,+34nomellames,usuario-de-yo yovirtualizador && passwd yovirtualizador
apt update
apt install sudo nftables iptables fail2ban rsyslog -y  # Si acaso se añade cockpit como panel, systemctl enable cockpit.socket y el puerto 9090/tcp o bien un túnel ssh.
usermod -aG sudo yovirtualizador
sed -i 's/PermitRootLogin yes/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config

Que la línea de sed podemos hacerla más segura es un hecho. Con esta otra opción siempre, claro.

sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config

Otras cosas menores, que no son tan menores, pues ajustar timezone y locales.
Aquí si hay algún comentario que seguro se me va la pinza de por qué.

# Primero a quitar lo que sea que tenga. Primero lo busco y luego lo quito que empalmar no tiene sentido si no es powershell
limpiar=$(cat /etc/locale.gen | grep -v '#' | grep -v '^$')
limpiado="# "$(echo $limpiar)
sed -i "s/$(echo $limpiar)/$(echo $limpiado)/g" /etc/locale.gen
sed -i 's/#C.UTF-8 UTF-8/C.UTF-8 UTF-8/g' /etc/locale.gen
# Podéis tener gustos diferentes, pero la hora me da un poco igual en los logs siempre y cuando tengan una buena referencia. UTC
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/UTC /etc/localtime
# y como tiene ntp, fin de la historia

Y a reiniciar, que tarda poco.

Gestión de usuarios y certificados

Creo que ya expliqué esto en el artículo sobre iVentoy pero me cito a mi mismo.
Salvando las distancias, aplicaría esto mismo, obviamente cambiando los valores necesarios:

sudo ssh-keygen -t ed25519 -f ./id_ed25519.esxi    # O el usuario local que corresponda
sudo ssh-copy-id -i id_ed25519.esxi.pub root@esxi  # Con el nombre adecuado y el acceso al usuario y máquina remota que corresponda

Firewall nftables

Tengo una IPv4 y un rango de IPv6. Y tengo que hacer algo para que no esté todo al público.
Para activarlo tan solo systemctl start nftables.service && systemctl enable nftables.service.

Fichero /etc/nftables.conf

Mi configuración del fichero /etc/nftables.conf por defecto:

flush ruleset
table inet firewall {
    chain inbound_ipv4 {
        icmp type echo-request limit rate 2/second accept
    }
    chain inbound_ipv6 {
        icmpv6 type { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } accept
        icmpv6 type echo-request limit rate 2/second accept
    }
    chain inbound {
        type filter hook input priority 0; policy drop;
        ct state vmap { established : accept, related : accept, invalid : drop }
        iifname lo accept
        meta protocol vmap { ip : jump inbound_ipv4, ip6 : jump inbound_ipv6 }
        tcp dport { 22 } accept
    }
    chain forward {
        # Esto no hace de router
        type filter hook forward priority 0; policy drop;
    }
}

Es muy genérico, creo que lo encontrareis como ejemplo en muchos sitios porque lo he hecho a partir de la documentación.

fail2ban

Ahora si viene algo interesante. Con fail2ban instalado, los servicios arrancan con systemctl start fail2ban.service && systemctl enable fail2ban.service.

Problema, pues que no hay un log del que tirar.

fail2ban.configreader   [96345]: WARNING 'allowipv6' not defined in 'Definition'. Using default one: 'auto'
fail2ban                [96345]: ERROR   Failed during configuration: Have not found any log file for sshd jail
fail2ban                [96345]: ERROR   Async configuration of server failed

Así que a configurar rsyslog y demás.
Una vez puesto a vuestro gusto, fail2ban puede empezar a operar.

systemd[1]: Started fail2ban.service - Fail2Ban Service.
fail2ban-server[96596]: 2023-09-19 23:44:24,024 fail2ban.configreader   [96596]: WARNING 'allowipv6' not defined in 'Definition'. Using default one: 'auto'
fail2ban-server[96596]: Server ready

Y en sudo fail2ban-client status

Status for the jail: sshd
|- Filter
|  |- Currently failed: 11
|  |- Total failed:     31
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 8
   |- Total banned:     8
   `- Banned IP list:   114.36.120.17 114.67.112.190 154.209.5.219 186.96.145.241 36.107.231.11 43.155.141.65 50.199.225.200 68.183.46.135

No lleva ni 10 minutos y ya ha recibido visitas llamando a la puerta.
Para las jaulas personalizadas… De un ejemplo de unos pantallazos que me pasaron hace mucho.

cat /etc/fail2ban/jail.d/webmin.conf
[webmin-auth]
enabled = true
port    = 10000
filter  = webmin-auth
logpath  = /var/log/auth.log
maxretry = 3
bantime = 120

cat /etc/fail2ban/jail.d/sshd.conf
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 120
ignoreip = whitelist-IP

wget https://plugins.svn.wordpress.org/wp-fail2ban/trunk/filters.d/wordpress-hard.conf -O /etc/fail2ban/filter.d/wordpress.conf
nano /etc/fail2ban/jail.d/wordpress.conf
[wordpress]
enabled = true
filter = wordpress
logpath = /var/log/auth.log
maxretry = 3
port = http,https
bantime = 300

En cuanto a su integración en nftables, simplemente hay que darle tiempo. Y gente que entre buscando miel como en el log.

Y ya, queda listo para mi nodo remoto de mis cosas selfhosted

Como me siento muy generoso, voy a usar podman.


YoVirtualizador en formato podcast. Ahora también en Sospechosos Habituales: https://wt.territoriolinux.es/rss/short.xml
Y sin más, os dejo los enlaces:

Web: https://www.yovirtualizador.com
Grupo de telegram: https://t.me/grupovirtualizador
Podcast: https://www.ivoox.com/podcast-yovirtualizador_fg_f1563806_filtro_1.xml
Canal de youtube: https://www.youtube.com/channel/UC0R70cABSsmC6TFyXth0qPg
Enlace de afiliados de amazon: https://amzn.to/3gX3HmK
Enlace de referidos de la Asociación Podcast: https://www.asociacionpodcast.es/registrarse/socio/?coupon=SB6A70

© 2019 - 2025 YoVirtualizador

Tu podcast y blog de confianza

Política de comentarios

En YoVirtualizador, todos los comentarios serán bienvenidos pero moderados.

Los grupos de telegram y redes sociales tienen moderación activa. Consulta con sus administradores.

Respetos guardan respetos.

El contenido irrelevante u ofensivo será eliminado.

Acerca de YoVirtualizador

YoVirtualizador es la marca de varios proyectos

Podcast de informática profesional. Canal de Youtube sobre el blog, el podcast y de temática profesional. Blog de contenido diverso, con temática BOFH y técnica.

Gracias por la lectura.

Galletas

Política de cookies

Lo de las galletas en 2025

En YoVirtualizador no usamos cookies para nada, pero los servicios de discus y analytics recopilan datos en servidores ajenos a YoVirtualizador sin que yo pueda hacer nada. Si no quieres galletas, usa un navegador que no ejecute javascript.

Este aviso es sólo porque algún político tenía que justificar su existencia, y ahora además hay que redactar.

Legislación aplicable:

  • Reglamento (UE) 2016/679 del Parlamento Europeo y del Consejo, de 27 de abril de 2016, General de Protección de Datos (RGPD) (Aplicable desde mayo de 2018),“Establece la definición y los requisitos del consentimiento (libre, informado, específico e inequívoco) y los derechos del interesado. Es la norma principal sobre datos personales.”
  • Artículo 22 de la Ley 34/2002, de 11 de julio, de servicios de la sociedad de la información y de comercio electrónico (LSSI). Es la norma específica española sobre cookies. Establece la obligación de informar y obtener el consentimiento para el uso de dispositivos de almacenamiento y recuperación de datos (cookies) que no sean estrictamente necesarios.
  • Ley Orgánica 3/2018, de 5 de diciembre, de Protección de Datos y garantía de los derechos digitales (LOPDGDD) (Aplicable desde diciembre de 2018),Es la ley española que desarrolla y adapta el RGPD al ordenamiento jurídico español. Complementa la LSSI en lo relativo a la protección de datos personales.

Definición y función de las cookies

¿Qué son las cookies? Una cookie es un fichero que se descarga en su ordenador al acceder a determinadas páginas web. Las cookies permiten a una página web, entre otras cosas, almacenar y recuperar información sobre los hábitos de navegación de un usuario o de su equipo y, dependiendo de la información que contengan y de la forma en que utilice su equipo, pueden utilizarse para reconocer al usuario.
¿Qué tipos de cookies utiliza esta página web? Cookies propias: Son aquéllas que se envían al equipo terminal del usuario desde un equipo o dominio gestionado por el propio editor y desde el que se presta el servicio solicitado por el usuario. Cookies de terceros Son aquéllas que se envían al equipo terminal del usuario desde un equipo o dominio que no es gestionado por el editor, sino por otra entidad que trata los datos obtenidos través de las cookies. Cookies persistentes Son un tipo de cookies en el que los datos siguen almacenados en el terminal y pueden ser accedidos y tratados durante un periodo definido por el responsable de la cookie, y que puede ir de unos minutos a varios años. Cookies de análisis Son aquéllas que bien tratadas por nosotros o por terceros, nos permiten cuantificar el número de usuarios y así realizar la medición y análisis estadístico de la utilización que hacen los usuarios del servicio ofertado. Para ello se analiza su navegación en nuestra página web con el fin de mejorar la oferta informativa, productos o servicios que le ofrecemos. Cookies publicitarias Son aquéllas que permiten la gestión, de la forma más eficaz posible, de los espacios publicitarios que, en su caso, el editor haya incluido en una página web, aplicación o plataforma desde la que presta el servicio solicitado en base a criterios como el contenido editado o la frecuencia en la que se muestran los anuncios.

Asimismo es posible que al visitar alguna pagina web o al abrir algún email donde se publique algún anuncio o alguna promoción sobre nuestros productos o servicios se instale en tu navegador alguna cookie que nos sirve para mostrarte posteriormente publicidad relacionada con la búsqueda que hayas realizado, desarrollar un control de nuestros anuncios en relación, por ejemplo, con el numero de veces que son vistos, donde aparecen, a que hora se ven, etc

Ayuda con las galletas

Como algún político tenía que justificar su existencia, yo te cuento como lo vamos a hacer.

Revocación y eliminación de cookies (IA generativa dixit)

Usted puede permitir, bloquear o eliminar las cookies instaladas en su equipo mediante la configuración de las opciones del navegador instalado en su ordenador, en caso que no permita la instalación de cookies en su navegador es posible que no pueda acceder a alguna de las secciones de nuestra web.

A continuación puede encontrar como acceder a la configuración de las cookies en los principales navegadores:

  • Internet Explorer: Menú Herramientas -> Opciones de Internet -> Privacidad -> Configuración. También puede consultar el soporte de Microsoft o la Ayuda del navegador.
  • Firefox: Menú Herramientas -> Opciones -> Privacidad -> Historial -> Configuración Personalizada. También puede consultar el soporte de Mozilla o la Ayuda del navegador.
  • Chrome: Menú Configuración -> Mostrar opciones avanzadas -> Privacidad -> Configuración de contenido. También puede consultar el soporte de Google o la Ayuda del navegador.
  • Safari: Menú Preferencias -> Seguridad. También puede consultar el soporte de Apple o la Ayuda del navegador.