Fail2Ban

Vigila el fichero de log de los servidores que tengamos instalados y banea aquellas IPs que hayan hecho un intento ilegal de entrar en el sistema mediante fuerza bruta:

Ahora copiaremos el archivo de configuración por defecto de Fail2Ban como jail.local que sera ejecutado y nos sobreescribira las configuraciones que tengamos en jail.conf , ponemos el siguiente comando en el terminal SSH:

Y ahora abriremos el archivo copiado con el comando:

En la sección [DEFAULT], esta la configuración genérica del servicio:

ignoreip (IPs que no deseemos que se baneen, son las correspondientes al localhost y a la IP local del PC desde el que accedemos normalmente).

bantime (tiempo de baneo, expresado en segundos).

maxretry (numero de intentos fallidos de login para que se active el baneo).

En las secciones ([ssh] y [ssh-ddos]) se activa la seguridad del servidor SSH contra ataques de fuerza bruta y/o contra ataques DDoS (Distributed Denial of Service):

enabled = true al comienzo de cada una, para que se active.

port = ssh si se esta usando el puerto (22) o bien ponemos el número del puerto por el que este corriendo.

Modificamos su contenido, que quedará así:

Fail2ban se puede aplicar también a otros web, servidores FTP o de correo.

Al acabar la configuración hay que reiniciar el servicio:

Podemos comprobar:

Como conocer su estado:

Ver los servicos activos:

O el estado actual de un servicio, que nos mostrará si tiene alguna IP baneada en este momento.  En el caso del ssh :

También se puede analizar fichero de log para comprobar si ha habido intentos de acceso no autorizados:

 

RECIBIR UN CORREO DE ALERTA AL BLOQUEAR UNA IP (aun por probar)

Podemos hacer que Fail2ban nos envíe un correo cuando detecte un intento de intrusión y bloquee una determinada IP, informándonos de este hecho. Para lograrlo, lo primero que hemos de hacer es  instalar un sistema de envío de correos desde la terminal.

Luego volvemos al fichero de configuración de Fail2ban:

Dentro de él, en la sección # ACTIONS, localizamos y configuramos los siguientes parámetros:

destemail = Dirección de email para recibir los avisos

sender = pi@raspberrypi [Este es el email del remitente]

mta = mail [Servidor de correo que usamos]

action = %(action_mw)s [Está al final de la sección]

En la primera línea hemos de escribir la dirección de email en la que deseamos recibir los avisos, mientras que en las demás pondremos únicamente lo que aparece en color rojo.

Hecho lo anterior, guardamos los cambios realizados en el fichero y reiniciamos el servicio:

Así, cada vez que haya un intento de acceso no autorizado y se bloquee la IP correspondiente, enviando un aviso a la dirección de correo indicado con información sobre la IP y el ISP desde los que se ha intentado acceder sin permiso a nuestra máquina. También también avisará cada vez que se detenga o se reactive el servicio.

Servidor SSH

En versiones anteriores a Raspbian Jessie, el servidor SSH, viene activado por defecto. A partir de Jessie, hay que activarlo en la configuración inicia.

En opciones avanzadas.

Una vez activado, debemos asegurar el acceso mediante SSH, ya que es muy frecuente los intentos de acceso no autorizado a los servidores SSH

Veamos a continuación algunos parámetros que podemos modificar o añadir para que nuestro servidor SSH esté más seguro.

En el archivo de configuración realizaremos los cambios:

Cambiar el puerto de acceso:

Si lo cambiamos (poniendo, por ejemplo, el puerto 3426), dificultaremos mucho el trabajo el acceso indebido. Por defecto esta en el puerto 22, lo cambiamos al puerto 3443, modificamos la linea:

por

No haremos una redirección, para que evitar una ataque al puerto redireccionado.

Para llamar ahora al SSH, se hará de la siguiente forma:

Denegar el acceso al usuario root

Para evitar los ataque por fuerza bruta, denegaremos el acceso mediante el usuario root. Para ello ponemos o modificamos la linea de la siguiente forma:

Tiempo de pantalla de disponibilidad de login:

El tiempo en segundos que la pantalla de login estará disponible para que el usuario se identifique. Pasado ese tiempo, la pantalla de acceso se cerrará:

Denegar los password vacíos:

El servidor no debe aceptar contraseñas vacías o en blanco:

Numero máximo de errores en login:

Indica el número máximo de errores permitidos al hacer login. Al sobrepasarlo, la pantalla de login se cerrará y habrá que volver a empezar de nuevo.

Numero máximo de conexiones simultáneas:

Indica el número máximo de conexiones simultáneas por IP que permite el servidor.

Permitir unos usuarios determinados:

Podemos añadir una directiva para que sólo los usuarios especificados tengan acceso al mismo:

O, por el contrario, a permitir el acceso a todos menos a los que se indican expresamente en ella:

Comprobación de errores de configuración:

Una vez guardados los cambios, para comprobar que la configuración del fichero es correcta, con el comando:

Si no aparece ningún mensaje de error, es que todo está bien.

Reinicio del demonio:

Terminadas las modificaciones, para que tengan efecto los cambios, hay que reiniciar el servicio. Lo haremos con el comando:

Revisar lo logs de autentificaron del demonio:

Es aconsejable revisar el fichero /var/log/auth.log para comprobar si tenemos algún intento de entrada ilegal.

Para comprobar que los intentos, lo haremos con el comando:

Para contar cuántas líneas con intentos de intrusión hay:

Instalar y configurar el cortafuegos UFW

El cortafuegos ufw es el más fácil de configurar. Su acrónimo uncomplicated firewall (cortafuegos sin complicaciones).

Instalación:

Por defecto, impide todo el tráfico entrante, pero permite el tráfico saliente. Equivale a escribir estas dos reglas:

Cada puerto admite los dos protocolos: tcp y udp. Al abrir un puerto por su número, se abren ambos. Para que se abra el protocolo correspondiente (tcp o udp). debemos indicarlo.

Añadiremos las excepciones creamos convenientes.

Permitir el puerto SSH:

También se podría hacer, refieriéndonos al nombre del servicio, en lugar del puerto, de la siguiente forma:

En el caso del servidor web que tengamos instalado, Lighttpd. Podemos hacerlo de dos maneras, o abriendo directanente el puerto:

o  haciendo referencia al servicio correspondiente:

También tiene activado el protocolo cifs, que es el que usa el servidor Samba:

Para ver la lista completa de los servicios que ya trae predefinidos, escribiremos el siguiente comando:

También lo vamos a hacer con los puertos de los servidores FTP (21), VPN (1723) y DLNA (8200),  el servicio Webmin (10000):

En el caso de abrir varios puertos consecutivos (por ejemplo, del 8080 al 8083,  no es necesario que lo hagamos de uno en uno; se pueden abre todos de una vez, de la siguiente forma:

Para denegar denegar un servicio o servidor, utilizamos el comando deny. Por ejemplo, impedir el acceso al servicio webmin:

O denegar el acceso a un determinado host de nuestra red local, indicando su IP:

Una vez añadidas todas las reglas, se activara el cortafuegos:

Comandos útiles en algún momento:
Desactivar el cortafuegos:

Reiniciarlo:

Mostrar su estado:

Ejemplo de cómo borrar una regla que hemos activado:

 

 

Comandos Varios

  • Histórico de comandos utilizados:

  • Saber qué usuarios están conectados al sistema:

  • Mostrar calendario del mes actual:

  • Mostrar calendario del año indicado:

  • Ver el espacio libre/ocupado en las unidades de almacenamiento:

  • Conocer la cantidad de memoria RAM y swap utilizadas:

  • Obtener información de la CPU:

  • Obtener la temperatura del procesador:

  • Cerrar sesión de Administrador o SSH:

Instalación de Paquetes software

  • Paquetes tipo .deb:

Instalar paquete tipo .deb

Desinstalar un paquete.deb

  • Paquetes desde el repositorio

Instalar :

Desinstalarlo:

  • Limpiar instalaciones fallidas:

  • Eliminar paquetes inservibles:

  • Corregir errores de instalaciones fallidas:

  • Saber si un paquete está instalado:

  • Instalar un programa desde los ficheros fuente:

Ficheros y Directorios

Crear un directorio o carpeta:

Borrar un directorio o carpeta:

Borrar un directorio o carpeta no vacíos:

Desplazarse a un directorio:

Saber en qué directorio estamos:

Mostrar el contenido de una carpeta:

Mostrar el contenido de una carpeta con toda la información:

Contar los elementos que contiene un directorio:

Contar los ficheros que contiene una directorio:

Que espacio ocupan los ficheros de un directorio:

  • Ir al directorio anterior:

Ir al directorio home:

Ir al directorio raíz:

Crear o editar un fichero:

Borrar un fichero:

Copiar un fichero en una carpeta:

Mover un fichero a una carpeta:

Renombrar un fichero:

Cambiar los permisos de un fichero o carpeta:

Cambiar el dueño de un fichero o carpeta:

Cambiar el grupo de un fichero o carpeta:

Volcar la salida de un comando en un fichero (usando >):

Apagado y Reinicio del sistema

Para apagar el sistema se puede usar cualquiera de estos dos métodos:

Para reiniciar el sistema se puede usar cualquiera de estos dos métodos:

Actualizar Kernel

Actualizar el Kérnel:

Después de la actualización, debe aparecer el siguiente mensaje:

If no errors appeared, your firmware was successfully updated to 99c274691c07480762dcda91a0ebfe3c4f519307

 *** A reboot is needed to activate the new firmware

Hay que respetar el sistema.

Mostrar la versión del kérnel:

Saber la versión del firmware:

Hello world!

Hola.

Esta pagina sera una recopilación de todo lo que voy haciendo con mis Raspberrys

Si tenéis algún comentario o duda, poneros en contacto en el formulario