Telegram Notifications from Ubuntu Server – all SSH Logins

Recently I added to my home lab, my first Ubuntu Server with a Hardened Repository for Veeam Backup, you can find more info here.

Now, the thing is, I want to be able to get notified if some user logs into the server via ssh, as a extra control, since I disable the SSH service when I dont use it.

Also the idea came, to be able to get notified from other applications via telegram, so wasn’t a crazy idea at the end.

from previous entries, or the internet, you can easily find how to create a Bot, and how to get your ID, so Im not going to dive into that,

So first, once we have created and activated our bot and user ID, lets go a create our Telegram messaging program,

in our home, lets create a file like this:

nano send-over-telegram.sh
#!/bin/bash
GROUP_ID=
BOT_TOKEN=

# this 3 checks (if) are not necessary but should be convenient
if [ "$1" == "-h" ]; then
  echo "Usage: `basename $0` \"text message\""
  exit 0
fi

if [ -z "$1" ]
  then
    echo "Add message text as second arguments"
    exit 0
fi

if [ "$#" -ne 1 ]; then
    echo "You can pass only one argument. For string with spaces put it on quotes"
    exit 0
fi
curl -s --data "text=$1" --data "chat_id=$GROUP_ID" 'https://api.telegram.org/bot'$BOT_TOKEN'/sendMessage' > /dev/null

GROUP_ID: Your Group ID from your telegram suscription
BOT_TOKEN: your token received when you created your bot.

let`s convert this into a «program» to do so, lets move (or copy) our file into the route /usr/sbin

sudo mv send-over-telegram.sh /usr/sbin/send-over-telegram

Everything inside /usr/sbin is owned by root, so lets change the ownership to our file

sudo chown root:root /usr/sbin/send-over-telegram

Finally, we want any user to execute this «program» so lets also modify the permissions for that

sudo chmod 0755 /usr/sbin/send-over-telegram

now we can test it out:

send-over-telegram test

you should get the «test» text message into your Telegram Group!

Now, let’s get notified any time a user logs into our server via SSH, to do so, we are going to create a script, and move it to a specific folder.

nano login-notification.sh
#!/bin/bash
    
# prepare any message you want
login_ip="$(echo $SSH_CONNECTION | cut -d " " -f 1)"
login_date="$(date +"%e %b %Y, %a %r")"
login_name="$(whoami)"

# For new line I use $'\n' here
message="New login to server"$'\n'"$login_name"$'\n'"$login_ip"$'\n'"$login_dat>

#send it to telegram
send-over-telegram "$message"

As you can see, here we are sending the information to our previously created «command» send-over-telegram

now, lets move (copy) the script where needs to be to trigger the alert:

sudo mv login-notification.sh /etc/profile.d/login-notification.sh
sudo chown root:root /etc/profile.d/login-notification.sh
sudo chmod 0755 /etc/profile.d/login-notification.sh

We are done!
Now, lets log off and back on to our Ubuntu Server,

You should get your Telegram Message with the information like this:

Remember!!

After using your SSH access, you should always disable it from the server, to avoid unwanted accesses to your server remotely, and do local changes or enable it just when you need to

To disable SSH:

sudo systemctl stop ssh
sudo systemctl disable ssh

Cheers!

Creando nuestro propio Ubuntu Server + Harden Repository Linux para Veeam V12

En una entrada anterior, veíamos como desplegar el Ubuntu VHL «paquetizado» directamente, ya aplicando todo el Hardening y opciones del script «por defecto» e incluso endureciendo los permisos de usuarios.

Ahora bien, si el caso es, que quieres instalar tu propio Ubuntu Server, y luego aplicar el Hardening, te traigo unos pantallazos con una Instalación estándar más la ejecución del script.

al lío –
Instalamos Nuestro Ubuntu Server:

Ya tenemos instalado el S.O. Base, ahora
Vamos a descargar el Script desde el siguiente enlace, lo subimos a nuestro servidor, y lo ejecutamos, atentos:

Nos vamos a la sección de descarga «Download»
Nos envía a un repositorio git, ahí tenemos el script.
Yo me lo bajé a mi ordenador, y lo subí via ssh a mi servidor Ubuntu. a vuestra elección.
Aqui importante, una vez copiado el archivo, le damos permisos de ejecución, y lo ejecutamos con permisos de «super user».
comienza el script a hacer lo suyo….
Listo, todo aplicado e instalado
aquí, tras un reinicio y login, vemos el mensaje arriba del todo, el famoso «Disclaimer»
También vemos la salida de puntos de montaje, vemos el sistema y /backups, que será donde guardemos nuestros backups inmutables más adelante.

Listo!

Ya tenemos nuestro Ubuntu Server con el Harden aplicado, y ya podemos seguir los pasos del artículo siguiente para añadir nuestro repo a Veeam B&R V12 y hacerlo inmutable, desde la parte de la adición del repo a VBR V12.

saludos.

Instalación e integración de VHR en VBR V12!

(Veeam Hardened Repository)

Hola, Hoy por fin me he animado a desplegar y probar el fantástico proyecto de Veeam, el VHR «Veeam Hardened Repository»

Se trata de un despliegue «paquetizado» de un Ubuntu Server, el cual ha sido «endurecido» o «reforzado» con las pautas de seguridad DISA STIG.

Existe la opción de instalar el S.O. por tu cuenta, y después correr el script de Hardened, pero me ha parecido más interesante probar este «paquetizado«

Voy a ir poniendo pantallazos y algunos comentarios, el proceso es muy sencillo.
Para las pruebas, lo he desplegado en una maquina virtual, pero este VHR está diseñado para ser desplegado en un servidor físico, no en vm.

Toda la información y descargas las podemos encontrar aquí!

Comenzamos:

Como pre requisito, este deploy buscará en los discos el más pequeño para el S.O. y el más grande para el repositorio, yo en mi caso he desplegado un disco de 20GB y otro de 100Gb y los ha reconocido solo.
Recomendado si hacéis el despliegue en servidor, que tenga controladora RAID, un RAID 1 «Pequeño» para el S.O. y un Raid 5 ò 6 para el repositorio.

Booteamos la ISO
Configuración de red, recomendado bond de 2 tarjetas de red, muy fácil de hacer con el asistente.
en mi caso al ser laboratorio, solo he dejado una tarjeta y por DHCP
Si tenemos servidor Proxy para la conexión a internet, importante definirlo, ya que se bajará actualizaciones de seguridad en el proceso de instalación.
OJO! Vamos a destruir todo el contenido de los discos, e instalar el S.O, y el repositorio,
si estais re instalando el S.O por fallo, no hagas esto, o lo perderéis todo.
Definimos usuario
arranca la magia
Sigue la magia con actualizaciones
acabamos, ahora, a reiniciar.
Arranque inicial, nos «logueamos» con el usuario creado previamente…
Ojo al disclammer, nos indica que tras este setup inicial, y reiniciemos, el S.O. se va a «endurecer» deshabilitando todos los comandos para el usuario, a excepción de reboot y shutdown!!
Haremos nuestros ajustes, y ante de reiniciar, lo añadiremos al servidor de Veeam VBR!!!
En nuestro VBR, vamos al Wizard de añadir repositorio de backup.
HARDENED!!!
Añadimos nuestro servidor VHR recién desplegado
Las credenciales como single use, sino, nos va a fallar, es un hardened repo, todo debe ser lo más seguro posible!
Continuamos con el proceso,
Seleccionamos nuestra unidad donde vamos a almacenar los backups, el Repo!
Aquí definimos la inmutabilidad, en días, lo he dejado por defecto, 7!
Seguimos con la configuración convencional de nuestros repos
Listo!

Vemos aquí nuestro repo Inmutable listo para ser usado, independiente, en SORB, etc…

OJO, continuamos ahora en el Servidor VHR que desplegamos, para terminar el Hardening!!

Como veis, ya lo hemos añadido a nuestro VBR, por tanto, ahora, a reiniciar, tras lo cual, se ejecutará el script de «endurecido» quedando el usuario solamente con la opción de shutdown y reboot.
Listo! ya nos dice el disclamer que el Hardening se ha efectuado.
Todo listo para usar nuestro repositorio en nuestro servidor seguro.

ara poder hacer troubleshooting, tendremos que reiniciar y lomearnos en el servidor como root desde el modo Standalone desde el arranque del Grub, ya que el root está deshabilitado, y nuestro usuario únicamente tiene permisos de Reboot y Shutdown.

Espero os haya gustado, y os facilite el despliegue de esta fantástica opción,
yo lo tengo en mi laboratorio, y como bien dice la documentación, usarlo a vuestro criterio, y no tiene soporte, no habrás tickets en soporte!

Para monitorear los discos en caso de fallo, etc, deberes configurar la ILO, IPMI, DRAC, etc… que tenga vuestro servidor, ya que el S.O. del VHR no mandará notificaciones.

un saludo.

USB Storage over the Network!

Hi everyone!

I had a case during this week, and I wanted to share my experience / workaround with y’all.

I wanted to export a backup to an external drive, the VBR was a virtual machine, and no access to the Hypervisor to plug the USB and push it to the vm.

Now you may think, mount it somewhere and share it over the network as a shared folder…

I did, and was not working, some windows stuff that we were not allowed to share any unit, and was driving us crazy!

We did some research, and remembered that there was a way to share / mount remote USB Devices over the Network! now, time to give it a shot!

The idea is very straight forward, a Server machine, where the USB Devices is located at, and a client, to mount the remote resource as “local”.

The tool name is VIRTUALHERE

USB SERVER(Local USB Drive)→NETWORK→USB CLIENT“Remotely mounted USB Drive”

You simply download the Server and client, and execute them in the decided machines, couple of easy configs, and you are good to go, let me show you some screenshots.

VirtualHere Server running in the workstation out of the Vsphere environment.
Client running in the VBR Server
We right click into the device we would like to mount remotely – locally.
Boom! now shows the USB Drive like being plugged locally, its not!
VBR Sees the unit from the system, so now we are good to export the backup to it.
Some networking traffic going on, sending the files to the USB drive.
After the usage, we unmount the unit by right clicking and stop using the device.
Now we can see here at the “Server” that the unit has the files into it! worked perfectly.
Finally, you can see that the USB Drive is unmounted in the VBR server, all the files copied ok.

Hope you liked this little workaround, 

now, planning and thinking in future usages for this great tool.

Just wanted to highlight that I used the “Free” Version, which only allows to mount one USB Device at a time, there is a licensed version, but not used for now.
Also wanted to tell you that I have no relationship at all with them, just found it and wanted to share it with all of you.

cheers!

Exportando Backup de Veeam VBR 12 a vmdk

Hola,
Este paso curioso me llegó, dado que un amigo me pidió ayuda con un tema,
un servidor, el cual necesita una copia del mismo para hacer una auditoría, solo de las unidades de disco.

Lo primero que me vino a la cabeza fue, restaurar la vm desde un backup, y ya de ahí coger los vmdks pertinentes y hacer lo que sea.

De ahí, otra idea, si es un servidor virtual, restaurar los ficheros de vm, no el contenido, no?
Este parece ser el paso más sencillo y adecuado, siendo una vm.

Pero luego, dándole vueltas, caí en la cuenta, y si es físico? cómo podríamos hacerlo?
Por qué no mejor coger y pedirle a veeam directamente los vmdks?

Veeam no solo nos «convierte» o «entrega vmdks (vmware), sino también puede ser vhd (Hyper-V o Azure) o vhdx (Hyper-V).

Vamos a verlo con unos sencillos pantallazos, por si a más de uno le puede ser útil:

ya los tenemos,
Saludos.

Detalle / error a la hora de hacer un Move backup a S3(i)

Hola, en un post anterior vimos la funcionalidad Backup Move en VBR 12, una maravilla.

Ahora bien, me he encontrado con un pequeño error, el cual no me permitía mover los backups de un repo a otro, en concreto, de un repo local a un repo S3 en Wasabi (immutable).

Tal y como podemos leer en el error, se trata de nuestra configuración de la tarea, la cual tiene puesto un Synthetic Full los sábados, y no le ha gustado nada.

Lo cambiamos a Active full, realizamos un Full, y ya nos permitirá hacer el cambio de Repo.

Pequeño detalle a tener en cuenta a la hora de querer hacer nuestros movimientos.
Ojo con el espacio disponible, ya que un Active Full ocupa, y según tengamos nuestros recursos disponibles, podemos tener problemas.

Detalle también a tener en cuenta a la hora de crear nuestras tareas en el inicio,
si prevemos que haremos este tipo de movimientos, conviene tenerlo preparado.

saludos.

Función «Copy Job» Virtual Machine – Veeam B&R V12

En esta ocasión vamos a ver, en sencillos pasos, como configurar una tera de Copy Job de una maquina virtual de nuestro entorno, a otro datastore, bien de un VBR ó de un servidor ESXi que tengamos registrado en nuestro VBR Server.

No lo confundamos con un Backup Copy Job, que es algo totalmente diferente,
Esta tarea está enfocada en copiar los archivos de la maquina, no los backups o resultados.

No veo muy implementada o nombrada esta funcionalidad, yo la he empleado para hacer copias de maquinas virtuales, directamente al destino donde las quería tener, con un mecanismo de control, «garantizando» que la copia se había realizado correctamente, o para casos que queremos tener dicha copia, de ultima frontera, dado que el destino es un ESXi y se puede «registrar» la vm rápidamente y encenderla.

Como último detalle, decir que es un Copy, por tanto, no mantiene registro de diferentes ejecuciones, sino que tendremos disponibles los archivos de la última copia OK ejecutada.

Vamos a ver los pantallazos y el ejemplo:

Aquí vemos seleccionado el ESXi y el datastore
Finaliza la tarea, veremos los archivos de la vm copiados en destino
Datastore Optane 1+2 contenido
Vemos los archivos de la vm copiados, y procedemos a registrar la vm para probarla
boom! registrada y arrancada en destino!

Ahora vemos la otra opción, como destino, un repositorio de Veeam, en este caso, el Local repo de nuestro VBR Server

La tarea es todo igual, solo cambia el destino de la copia a un datastore de un VBR Server
y Aquí tenemos los archivos copiados.

Como habéis visto, una manera muy efectiva de copiar una vm para luego hacer diferentes cosas con ella, registrarla en un ESXi, tener los archivos en un repositorio o servidor, o para mover una maquina virtual de un host a otro, si no tenemos opción de HA, o de Réplicas, o simplemente mantener una copia de nuestra/s máquinas en un repositorio diferente, sin estar en formato vbr, sino directamente como vm de ESXi en este caso.

saludos.

Función «Move Backup» Veeam B&R V12

La entrada de hoy va dirigida a una funcionalidad que me encanta de Veeam B&R V12,
Se trata de «Move Backup», el cual nos va a ayudar a mover nuestros backups de un repositorio a otro, de manera automática, modificando la tarea a la cual estaba asignado, sin ningún esfuerzo o problema.

Muy útil cuado debemos mover los backup debido a un cambio de almacenamiento, bien sea por ampliación, mantenimiento o cambio de modelo, sin perder nuestra cadena de backups o configuraciones, o tener ur crear una tarea nueva.

Vamos a ver unos pantallazos e intentaré descubrir el proceso, para que veáis las diferencias y utilidad.

Comprobamos la tarea, ahora apunta el storage al nuevo repo
Backups ahora en repo local en Default Backup Repo, D:\…
La carpeta ya no existe en origen, repo en dxiv storage appliance

Listo, como veis, ya no sale el backup listado en el repo en red, solamente en el nuevo destino y la tarea modificada por veeam, por tanto, sin cambios en cadenas de backup ni configuraciones!.

Ahora, volvemos a haver el move, para volver a tener los backups como al principio:

Ahora volvemos a hacer el Move, vuelta al dxiv repo original

Listo!

Un proceso muy sencillo y útil, como hemos dicho antes, para hacer cambios de infraestructura de almacenamiento, reparaciones o migraciones.

saludos.

Backup a S3 – Wasabi con Veeam V12 a pantallazos!

Hola, en la entrada anterior, veíamos como hacer un backup con Veeam B&R V12 a un repositorio «normal» / «local».

Backup Simple con Veeam B&R V12

Ahora, seguiremos la misma linea, pero enviando nuestro backup directamente a un repositorio S3, si, sin intermediarios ni SOBR ni nada!

Vamos a ver unos pocos pantallazos para que sea más visual y claro!

La velocidad y estabilidad son fantásticas, prueba realizada con una conexión de fibra de 300mbps

Como veis, el proceso es «casi» igual que con el backup convencional,
aquí tenis la entrada paso a paso como crear un repositorio y bucket en Wasabi S3.

Ya no hay excusas para tener nuestra copia fuera del edificio / oficina, y así obtener la famosa regla del 3-2-1

Más adelante la «complicaremos» con el 1-0 !

saludos.

Better than Just VPN for the Home Lab

Hi everyone!
I wanted to write today about a tool that happily surprised me and now has made my life easier, related to VPN and connectivity, its called Tailscale

The main slogan says :

Secure remote access to shared resources

Tailscale connects your team’s devices and development environments for easy access to remote resources.

I’ll try to put it on my own words, in my use case, I’ve been using it at the beginning to connect to my Home Lab remotely from my house to my “Jump Station” over RDP, then, I started to use some advanced features:

  • VPN Access to a single client
  • VPN to Remote Site, to access other devices not capable to install the Client
  • Proxy / Traffic router when Im out of the house or in a untrusted network
  • Web central console for configurations, users creation and management.
  • Easy to use client for Linux, Windows, Android, OSX, iOS, etc.

The client is very neat, clean and easy to use, 
also the documentation is great!
Im gong to post a few screenshots and will make a future entry with an example setup.

The “Free” version comes with great features to start using it, as I said, in my case, at my home lab,

https://tailscale.com/pricing/

One of the positive things for me, is that I dont need to setup a firewall + opening ports for connecting from / to my hose / homelab, the Iphone / Ipad client works “like a champ” and I can access all I need, and secure my traffic navigating from my home when needed.

Web Main Console
OSX Client
iOS Client